diff --git a/examples/injective/package.json b/examples/injective/package.json
index 9e612e90..f60f002c 100644
--- a/examples/injective/package.json
+++ b/examples/injective/package.json
@@ -21,13 +21,6 @@
     "@chain-registry/types": "^0.50.13",
     "@chain-registry/utils": "^1.51.13",
     "@chain-registry/v2": "^1.71.31",
-    "@chakra-ui/icons": "2.0.12",
-    "@chakra-ui/react": "2.5.1",
-    "@cosmjs/amino": "0.32.3",
-    "@cosmjs/cosmwasm-stargate": "0.31.3",
-    "@cosmjs/proto-signing": "0.32.3",
-    "@cosmjs/stargate": "0.32.3",
-    "@cosmology/lcd": "^0.12.0",
     "@cosmology/telescope": "^1.10.3",
     "@emotion/react": "11.10.6",
     "@emotion/styled": "11.10.6",
diff --git a/examples/injective/src/codegen/binary.ts b/examples/injective/src/codegen/binary.ts
deleted file mode 100644
index d87841e1..00000000
--- a/examples/injective/src/codegen/binary.ts
+++ /dev/null
@@ -1,534 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-
-// Copyright (c) 2016, Daniel Wirtz  All rights reserved.
-
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-
-// * Redistributions of source code must retain the above copyright
-//   notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright
-//   notice, this list of conditions and the following disclaimer in the
-//   documentation and/or other materials provided with the distribution.
-// * Neither the name of its author, nor the names of its contributors
-//   may be used to endorse or promote products derived from this software
-//   without specific prior written permission.
-
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// ---
-
-// Code generated by the command line utilities is owned by the owner
-// of the input file used when generating it. This code is not
-// standalone and requires a support library to be linked with it. This
-// support library is itself covered by the above license.
-
-import { utf8Length, utf8Read, utf8Write } from "./utf8";
-import {
-  int64ToString,
-  readInt32,
-  readUInt32,
-  uInt64ToString,
-  varint32read,
-  varint64read,
-  writeVarint32,
-  writeVarint64,
-  int64FromString,
-  int64Length,
-  writeFixed32,
-  writeByte,
-  zzDecode,
-  zzEncode,
-} from "./varint";
-
-export enum WireType {
-  Varint = 0,
-
-  Fixed64 = 1,
-
-  Bytes = 2,
-
-  Fixed32 = 5,
-}
-
-// Reader
-export interface IBinaryReader {
-  buf: Uint8Array;
-  pos: number;
-  type: number;
-  len: number;
-  tag(): [number, WireType, number];
-  skip(length?: number): this;
-  skipType(wireType: number): this;
-  uint32(): number;
-  int32(): number;
-  sint32(): number;
-  fixed32(): number;
-  sfixed32(): number;
-  int64(): bigint;
-  uint64(): bigint;
-  sint64(): bigint;
-  fixed64(): bigint;
-  sfixed64(): bigint;
-  float(): number;
-  double(): number;
-  bool(): boolean;
-  bytes(): Uint8Array;
-  string(): string;
-}
-
-export class BinaryReader implements IBinaryReader {
-  buf: Uint8Array;
-  pos: number;
-  type: number;
-  len: number;
-
-  assertBounds(): void {
-    if (this.pos > this.len) throw new RangeError("premature EOF");
-  }
-
-  constructor(buf?: ArrayLike<number>) {
-    this.buf = buf ? new Uint8Array(buf) : new Uint8Array(0);
-    this.pos = 0;
-    this.type = 0;
-    this.len = this.buf.length;
-  }
-
-  tag(): [number, WireType, number] {
-    const tag = this.uint32(),
-      fieldNo = tag >>> 3,
-      wireType = tag & 7;
-    if (fieldNo <= 0 || wireType < 0 || wireType > 5)
-      throw new Error(
-        "illegal tag: field no " + fieldNo + " wire type " + wireType
-      );
-    return [fieldNo, wireType, tag];
-  }
-
-  skip(length?: number) {
-    if (typeof length === "number") {
-      if (this.pos + length > this.len) throw indexOutOfRange(this, length);
-      this.pos += length;
-    } else {
-      do {
-        if (this.pos >= this.len) throw indexOutOfRange(this);
-      } while (this.buf[this.pos++] & 128);
-    }
-    return this;
-  }
-
-  skipType(wireType: number) {
-    switch (wireType) {
-      case WireType.Varint:
-        this.skip();
-        break;
-      case WireType.Fixed64:
-        this.skip(8);
-        break;
-      case WireType.Bytes:
-        this.skip(this.uint32());
-        break;
-      case 3:
-        while ((wireType = this.uint32() & 7) !== 4) {
-          this.skipType(wireType);
-        }
-        break;
-      case WireType.Fixed32:
-        this.skip(4);
-        break;
-
-      /* istanbul ignore next */
-      default:
-        throw Error("invalid wire type " + wireType + " at offset " + this.pos);
-    }
-    return this;
-  }
-
-  uint32(): number {
-    return varint32read.bind(this)();
-  }
-
-  int32(): number {
-    return this.uint32() | 0;
-  }
-
-  sint32(): number {
-    const num = this.uint32();
-    return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding
-  }
-
-  fixed32(): number {
-    const val = readUInt32(this.buf, this.pos);
-    this.pos += 4;
-    return val;
-  }
-
-  sfixed32(): number {
-    const val = readInt32(this.buf, this.pos);
-    this.pos += 4;
-    return val;
-  }
-
-  int64(): bigint {
-    const [lo, hi] = varint64read.bind(this)();
-    return BigInt(int64ToString(lo, hi));
-  }
-
-  uint64(): bigint {
-    const [lo, hi] = varint64read.bind(this)();
-    return BigInt(uInt64ToString(lo, hi));
-  }
-
-  sint64(): bigint {
-    let [lo, hi] = varint64read.bind(this)();
-    // zig zag
-    [lo, hi] = zzDecode(lo, hi);
-    return BigInt(int64ToString(lo, hi));
-  }
-
-  fixed64(): bigint {
-    const lo = this.sfixed32();
-    const hi = this.sfixed32();
-    return BigInt(uInt64ToString(lo, hi));
-  }
-  sfixed64(): bigint {
-    const lo = this.sfixed32();
-    const hi = this.sfixed32();
-    return BigInt(int64ToString(lo, hi));
-  }
-
-  float(): number {
-    throw new Error("float not supported");
-  }
-
-  double(): number {
-    throw new Error("double not supported");
-  }
-
-  bool(): boolean {
-    const [lo, hi] = varint64read.bind(this)();
-    return lo !== 0 || hi !== 0;
-  }
-
-  bytes(): Uint8Array {
-    const len = this.uint32(),
-      start = this.pos;
-    this.pos += len;
-    this.assertBounds();
-    return this.buf.subarray(start, start + len);
-  }
-
-  string(): string {
-    const bytes = this.bytes();
-    return utf8Read(bytes, 0, bytes.length);
-  }
-}
-
-// Writer
-export interface IBinaryWriter {
-  len: number;
-  head: IOp;
-  tail: IOp;
-  states: State | null;
-  finish(): Uint8Array;
-  fork(): IBinaryWriter;
-  reset(): IBinaryWriter;
-  ldelim(): IBinaryWriter;
-  tag(fieldNo: number, type: WireType): IBinaryWriter;
-  uint32(value: number): IBinaryWriter;
-  int32(value: number): IBinaryWriter;
-  sint32(value: number): IBinaryWriter;
-  int64(value: string | number | bigint): IBinaryWriter;
-  uint64: (value: string | number | bigint) => IBinaryWriter;
-  sint64(value: string | number | bigint): IBinaryWriter;
-  fixed64(value: string | number | bigint): IBinaryWriter;
-  sfixed64: (value: string | number | bigint) => IBinaryWriter;
-  bool(value: boolean): IBinaryWriter;
-  fixed32(value: number): IBinaryWriter;
-  sfixed32: (value: number) => IBinaryWriter;
-  float(value: number): IBinaryWriter;
-  double(value: number): IBinaryWriter;
-  bytes(value: Uint8Array): IBinaryWriter;
-  string(value: string): IBinaryWriter;
-}
-
-interface IOp {
-  len: number;
-  next?: IOp;
-  proceed(buf: Uint8Array | number[], pos: number): void;
-}
-
-class Op<T> implements IOp {
-  fn?: ((val: T, buf: Uint8Array | number[], pos: number) => void) | null;
-  len: number;
-  val: T;
-  next?: IOp;
-
-  constructor(
-    fn:
-      | ((
-          val: T,
-          buf: Uint8Array | number[],
-          pos: number
-        ) => void | undefined | null)
-      | null,
-    len: number,
-    val: T
-  ) {
-    this.fn = fn;
-    this.len = len;
-    this.val = val;
-  }
-
-  proceed(buf: Uint8Array | number[], pos: number) {
-    if (this.fn) {
-      this.fn(this.val, buf, pos);
-    }
-  }
-}
-
-class State {
-  head: IOp;
-  tail: IOp;
-  len: number;
-  next: State | null;
-
-  constructor(writer: BinaryWriter) {
-    this.head = writer.head;
-    this.tail = writer.tail;
-    this.len = writer.len;
-    this.next = writer.states;
-  }
-}
-
-export class BinaryWriter implements IBinaryWriter {
-  len = 0;
-  head: IOp;
-  tail: IOp;
-  states: State | null;
-
-  constructor() {
-    this.head = new Op(null, 0, 0);
-    this.tail = this.head;
-    this.states = null;
-  }
-
-  static create() {
-    return new BinaryWriter();
-  }
-
-  static alloc(size: number): Uint8Array | number[] {
-    if (typeof Uint8Array !== "undefined") {
-      return pool(
-        (size) => new Uint8Array(size),
-        Uint8Array.prototype.subarray
-      )(size);
-    } else {
-      return new Array(size);
-    }
-  }
-
-  private _push<T>(
-    fn: (val: T, buf: Uint8Array | number[], pos: number) => void,
-    len: number,
-    val: T
-  ) {
-    this.tail = this.tail.next = new Op(fn, len, val);
-    this.len += len;
-    return this;
-  }
-
-  finish(): Uint8Array {
-    let head = this.head.next,
-      pos = 0;
-    const buf = BinaryWriter.alloc(this.len);
-    while (head) {
-      head.proceed(buf, pos);
-      pos += head.len;
-      head = head.next;
-    }
-    return buf as Uint8Array;
-  }
-
-  fork(): BinaryWriter {
-    this.states = new State(this);
-    this.head = this.tail = new Op(null, 0, 0);
-    this.len = 0;
-    return this;
-  }
-
-  reset(): BinaryWriter {
-    if (this.states) {
-      this.head = this.states.head;
-      this.tail = this.states.tail;
-      this.len = this.states.len;
-      this.states = this.states.next;
-    } else {
-      this.head = this.tail = new Op(null, 0, 0);
-      this.len = 0;
-    }
-    return this;
-  }
-
-  ldelim(): BinaryWriter {
-    const head = this.head,
-      tail = this.tail,
-      len = this.len;
-    this.reset().uint32(len);
-    if (len) {
-      this.tail.next = head.next; // skip noop
-      this.tail = tail;
-      this.len += len;
-    }
-    return this;
-  }
-
-  tag(fieldNo: number, type: WireType): BinaryWriter {
-    return this.uint32(((fieldNo << 3) | type) >>> 0);
-  }
-
-  uint32(value: number): BinaryWriter {
-    this.len += (this.tail = this.tail.next =
-      new Op(
-        writeVarint32,
-        (value = value >>> 0) < 128
-          ? 1
-          : value < 16384
-          ? 2
-          : value < 2097152
-          ? 3
-          : value < 268435456
-          ? 4
-          : 5,
-        value
-      )).len;
-    return this;
-  }
-
-  int32(value: number): BinaryWriter {
-    return value < 0
-      ? this._push(writeVarint64, 10, int64FromString(value.toString())) // 10 bytes per spec
-      : this.uint32(value);
-  }
-
-  sint32(value: number): BinaryWriter {
-    return this.uint32(((value << 1) ^ (value >> 31)) >>> 0);
-  }
-
-  int64(value: string | number | bigint): BinaryWriter {
-    const { lo, hi } = int64FromString(value.toString());
-    return this._push(writeVarint64, int64Length(lo, hi), { lo, hi });
-  }
-
-  // uint64 is the same with int64
-  uint64 = BinaryWriter.prototype.int64;
-
-  sint64(value: string | number | bigint): BinaryWriter {
-    let { lo, hi } = int64FromString(value.toString());
-    // zig zag
-    [lo, hi] = zzEncode(lo, hi);
-    return this._push(writeVarint64, int64Length(lo, hi), { lo, hi });
-  }
-
-  fixed64(value: string | number | bigint): BinaryWriter {
-    const { lo, hi } = int64FromString(value.toString());
-    return this._push(writeFixed32, 4, lo)._push(writeFixed32, 4, hi);
-  }
-
-  // sfixed64 is the same with fixed64
-  sfixed64 = BinaryWriter.prototype.fixed64;
-
-  bool(value: boolean): BinaryWriter {
-    return this._push(writeByte, 1, value ? 1 : 0);
-  }
-
-  fixed32(value: number): BinaryWriter {
-    return this._push(writeFixed32, 4, value >>> 0);
-  }
-
-  // sfixed32 is the same with fixed32
-  sfixed32 = BinaryWriter.prototype.fixed32;
-
-  float(value: number): BinaryWriter {
-    throw new Error("float not supported" + value);
-  }
-
-  double(value: number): BinaryWriter {
-    throw new Error("double not supported" + value);
-  }
-
-  bytes(value: Uint8Array): BinaryWriter {
-    const len = value.length >>> 0;
-    if (!len) return this._push(writeByte, 1, 0);
-    return this.uint32(len)._push(writeBytes, len, value);
-  }
-
-  string(value: string): BinaryWriter {
-    const len = utf8Length(value);
-    return len
-      ? this.uint32(len)._push(utf8Write, len, value)
-      : this._push(writeByte, 1, 0);
-  }
-}
-
-function writeBytes(
-  val: Uint8Array | number[],
-  buf: Uint8Array | number[],
-  pos: number
-) {
-  if (typeof Uint8Array !== "undefined") {
-    (buf as Uint8Array).set(val, pos);
-  } else {
-    for (let i = 0; i < val.length; ++i) buf[pos + i] = val[i];
-  }
-}
-
-function pool(
-  alloc: (size: number) => Uint8Array,
-  slice: (begin?: number, end?: number) => Uint8Array,
-  size?: number
-): (size: number) => Uint8Array {
-  const SIZE = size || 8192;
-  const MAX = SIZE >>> 1;
-  let slab: Uint8Array | null = null;
-  let offset = SIZE;
-  return function pool_alloc(size): Uint8Array {
-    if (size < 1 || size > MAX) return alloc(size);
-    if (offset + size > SIZE) {
-      slab = alloc(SIZE);
-      offset = 0;
-    }
-    const buf: Uint8Array = slice.call(slab, offset, (offset += size));
-    if (offset & 7)
-      // align to 32 bit
-      offset = (offset | 7) + 1;
-    return buf;
-  };
-}
-
-function indexOutOfRange(reader: BinaryReader, writeLength?: number) {
-  return RangeError(
-    "index out of range: " +
-      reader.pos +
-      " + " +
-      (writeLength || 1) +
-      " > " +
-      reader.len
-  );
-}
diff --git a/examples/injective/src/codegen/confio/proofs.ts b/examples/injective/src/codegen/confio/proofs.ts
deleted file mode 100644
index 50a8626c..00000000
--- a/examples/injective/src/codegen/confio/proofs.ts
+++ /dev/null
@@ -1,2318 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../helpers";
-export enum HashOp {
-  /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */
-  NO_HASH = 0,
-  SHA256 = 1,
-  SHA512 = 2,
-  KECCAK = 3,
-  RIPEMD160 = 4,
-  /** BITCOIN - ripemd160(sha256(x)) */
-  BITCOIN = 5,
-  UNRECOGNIZED = -1,
-}
-export const HashOpSDKType = HashOp;
-export const HashOpAmino = HashOp;
-export function hashOpFromJSON(object: any): HashOp {
-  switch (object) {
-    case 0:
-    case "NO_HASH":
-      return HashOp.NO_HASH;
-    case 1:
-    case "SHA256":
-      return HashOp.SHA256;
-    case 2:
-    case "SHA512":
-      return HashOp.SHA512;
-    case 3:
-    case "KECCAK":
-      return HashOp.KECCAK;
-    case 4:
-    case "RIPEMD160":
-      return HashOp.RIPEMD160;
-    case 5:
-    case "BITCOIN":
-      return HashOp.BITCOIN;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return HashOp.UNRECOGNIZED;
-  }
-}
-export function hashOpToJSON(object: HashOp): string {
-  switch (object) {
-    case HashOp.NO_HASH:
-      return "NO_HASH";
-    case HashOp.SHA256:
-      return "SHA256";
-    case HashOp.SHA512:
-      return "SHA512";
-    case HashOp.KECCAK:
-      return "KECCAK";
-    case HashOp.RIPEMD160:
-      return "RIPEMD160";
-    case HashOp.BITCOIN:
-      return "BITCOIN";
-    case HashOp.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * LengthOp defines how to process the key and value of the LeafOp
- * to include length information. After encoding the length with the given
- * algorithm, the length will be prepended to the key and value bytes.
- * (Each one with it's own encoded length)
- */
-export enum LengthOp {
-  /** NO_PREFIX - NO_PREFIX don't include any length info */
-  NO_PREFIX = 0,
-  /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */
-  VAR_PROTO = 1,
-  /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */
-  VAR_RLP = 2,
-  /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */
-  FIXED32_BIG = 3,
-  /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */
-  FIXED32_LITTLE = 4,
-  /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */
-  FIXED64_BIG = 5,
-  /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */
-  FIXED64_LITTLE = 6,
-  /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */
-  REQUIRE_32_BYTES = 7,
-  /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */
-  REQUIRE_64_BYTES = 8,
-  UNRECOGNIZED = -1,
-}
-export const LengthOpSDKType = LengthOp;
-export const LengthOpAmino = LengthOp;
-export function lengthOpFromJSON(object: any): LengthOp {
-  switch (object) {
-    case 0:
-    case "NO_PREFIX":
-      return LengthOp.NO_PREFIX;
-    case 1:
-    case "VAR_PROTO":
-      return LengthOp.VAR_PROTO;
-    case 2:
-    case "VAR_RLP":
-      return LengthOp.VAR_RLP;
-    case 3:
-    case "FIXED32_BIG":
-      return LengthOp.FIXED32_BIG;
-    case 4:
-    case "FIXED32_LITTLE":
-      return LengthOp.FIXED32_LITTLE;
-    case 5:
-    case "FIXED64_BIG":
-      return LengthOp.FIXED64_BIG;
-    case 6:
-    case "FIXED64_LITTLE":
-      return LengthOp.FIXED64_LITTLE;
-    case 7:
-    case "REQUIRE_32_BYTES":
-      return LengthOp.REQUIRE_32_BYTES;
-    case 8:
-    case "REQUIRE_64_BYTES":
-      return LengthOp.REQUIRE_64_BYTES;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return LengthOp.UNRECOGNIZED;
-  }
-}
-export function lengthOpToJSON(object: LengthOp): string {
-  switch (object) {
-    case LengthOp.NO_PREFIX:
-      return "NO_PREFIX";
-    case LengthOp.VAR_PROTO:
-      return "VAR_PROTO";
-    case LengthOp.VAR_RLP:
-      return "VAR_RLP";
-    case LengthOp.FIXED32_BIG:
-      return "FIXED32_BIG";
-    case LengthOp.FIXED32_LITTLE:
-      return "FIXED32_LITTLE";
-    case LengthOp.FIXED64_BIG:
-      return "FIXED64_BIG";
-    case LengthOp.FIXED64_LITTLE:
-      return "FIXED64_LITTLE";
-    case LengthOp.REQUIRE_32_BYTES:
-      return "REQUIRE_32_BYTES";
-    case LengthOp.REQUIRE_64_BYTES:
-      return "REQUIRE_64_BYTES";
-    case LengthOp.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * ExistenceProof takes a key and a value and a set of steps to perform on it.
- * The result of peforming all these steps will provide a "root hash", which can
- * be compared to the value in a header.
- * 
- * Since it is computationally infeasible to produce a hash collission for any of the used
- * cryptographic hash functions, if someone can provide a series of operations to transform
- * a given key and value into a root hash that matches some trusted root, these key and values
- * must be in the referenced merkle tree.
- * 
- * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,
- * which should be controlled by a spec. Eg. with lengthOp as NONE,
- * prefix = FOO, key = BAR, value = CHOICE
- * and
- * prefix = F, key = OOBAR, value = CHOICE
- * would produce the same value.
- * 
- * With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field
- * in the ProofSpec is valuable to prevent this mutability. And why all trees should
- * length-prefix the data before hashing it.
- */
-export interface ExistenceProof {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf: LeafOp | undefined;
-  path: InnerOp[];
-}
-export interface ExistenceProofProtoMsg {
-  typeUrl: "/ics23.ExistenceProof";
-  value: Uint8Array;
-}
-/**
- * ExistenceProof takes a key and a value and a set of steps to perform on it.
- * The result of peforming all these steps will provide a "root hash", which can
- * be compared to the value in a header.
- * 
- * Since it is computationally infeasible to produce a hash collission for any of the used
- * cryptographic hash functions, if someone can provide a series of operations to transform
- * a given key and value into a root hash that matches some trusted root, these key and values
- * must be in the referenced merkle tree.
- * 
- * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,
- * which should be controlled by a spec. Eg. with lengthOp as NONE,
- * prefix = FOO, key = BAR, value = CHOICE
- * and
- * prefix = F, key = OOBAR, value = CHOICE
- * would produce the same value.
- * 
- * With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field
- * in the ProofSpec is valuable to prevent this mutability. And why all trees should
- * length-prefix the data before hashing it.
- */
-export interface ExistenceProofAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf?: LeafOpAmino | undefined;
-  path: InnerOpAmino[];
-}
-export interface ExistenceProofAminoMsg {
-  type: "/ics23.ExistenceProof";
-  value: ExistenceProofAmino;
-}
-/**
- * ExistenceProof takes a key and a value and a set of steps to perform on it.
- * The result of peforming all these steps will provide a "root hash", which can
- * be compared to the value in a header.
- * 
- * Since it is computationally infeasible to produce a hash collission for any of the used
- * cryptographic hash functions, if someone can provide a series of operations to transform
- * a given key and value into a root hash that matches some trusted root, these key and values
- * must be in the referenced merkle tree.
- * 
- * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,
- * which should be controlled by a spec. Eg. with lengthOp as NONE,
- * prefix = FOO, key = BAR, value = CHOICE
- * and
- * prefix = F, key = OOBAR, value = CHOICE
- * would produce the same value.
- * 
- * With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field
- * in the ProofSpec is valuable to prevent this mutability. And why all trees should
- * length-prefix the data before hashing it.
- */
-export interface ExistenceProofSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf: LeafOpSDKType | undefined;
-  path: InnerOpSDKType[];
-}
-/**
- * NonExistenceProof takes a proof of two neighbors, one left of the desired key,
- * one right of the desired key. If both proofs are valid AND they are neighbors,
- * then there is no valid proof for the given key.
- */
-export interface NonExistenceProof {
-  /** TODO: remove this as unnecessary??? we prove a range */
-  key: Uint8Array;
-  left: ExistenceProof | undefined;
-  right: ExistenceProof | undefined;
-}
-export interface NonExistenceProofProtoMsg {
-  typeUrl: "/ics23.NonExistenceProof";
-  value: Uint8Array;
-}
-/**
- * NonExistenceProof takes a proof of two neighbors, one left of the desired key,
- * one right of the desired key. If both proofs are valid AND they are neighbors,
- * then there is no valid proof for the given key.
- */
-export interface NonExistenceProofAmino {
-  /** TODO: remove this as unnecessary??? we prove a range */
-  key: Uint8Array;
-  left?: ExistenceProofAmino | undefined;
-  right?: ExistenceProofAmino | undefined;
-}
-export interface NonExistenceProofAminoMsg {
-  type: "/ics23.NonExistenceProof";
-  value: NonExistenceProofAmino;
-}
-/**
- * NonExistenceProof takes a proof of two neighbors, one left of the desired key,
- * one right of the desired key. If both proofs are valid AND they are neighbors,
- * then there is no valid proof for the given key.
- */
-export interface NonExistenceProofSDKType {
-  key: Uint8Array;
-  left: ExistenceProofSDKType | undefined;
-  right: ExistenceProofSDKType | undefined;
-}
-/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */
-export interface CommitmentProof {
-  exist?: ExistenceProof | undefined;
-  nonexist?: NonExistenceProof | undefined;
-  batch?: BatchProof | undefined;
-  compressed?: CompressedBatchProof | undefined;
-}
-export interface CommitmentProofProtoMsg {
-  typeUrl: "/ics23.CommitmentProof";
-  value: Uint8Array;
-}
-/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */
-export interface CommitmentProofAmino {
-  exist?: ExistenceProofAmino | undefined;
-  nonexist?: NonExistenceProofAmino | undefined;
-  batch?: BatchProofAmino | undefined;
-  compressed?: CompressedBatchProofAmino | undefined;
-}
-export interface CommitmentProofAminoMsg {
-  type: "/ics23.CommitmentProof";
-  value: CommitmentProofAmino;
-}
-/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */
-export interface CommitmentProofSDKType {
-  exist?: ExistenceProofSDKType | undefined;
-  nonexist?: NonExistenceProofSDKType | undefined;
-  batch?: BatchProofSDKType | undefined;
-  compressed?: CompressedBatchProofSDKType | undefined;
-}
-/**
- * LeafOp represents the raw key-value data we wish to prove, and
- * must be flexible to represent the internal transformation from
- * the original key-value pairs into the basis hash, for many existing
- * merkle trees.
- * 
- * key and value are passed in. So that the signature of this operation is:
- * leafOp(key, value) -> output
- * 
- * To process this, first prehash the keys and values if needed (ANY means no hash in this case):
- * hkey = prehashKey(key)
- * hvalue = prehashValue(value)
- * 
- * Then combine the bytes, and hash it
- * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)
- */
-export interface LeafOp {
-  hash: HashOp;
-  prehashKey: HashOp;
-  prehashValue: HashOp;
-  length: LengthOp;
-  /**
-   * prefix is a fixed bytes that may optionally be included at the beginning to differentiate
-   * a leaf node from an inner node.
-   */
-  prefix: Uint8Array;
-}
-export interface LeafOpProtoMsg {
-  typeUrl: "/ics23.LeafOp";
-  value: Uint8Array;
-}
-/**
- * LeafOp represents the raw key-value data we wish to prove, and
- * must be flexible to represent the internal transformation from
- * the original key-value pairs into the basis hash, for many existing
- * merkle trees.
- * 
- * key and value are passed in. So that the signature of this operation is:
- * leafOp(key, value) -> output
- * 
- * To process this, first prehash the keys and values if needed (ANY means no hash in this case):
- * hkey = prehashKey(key)
- * hvalue = prehashValue(value)
- * 
- * Then combine the bytes, and hash it
- * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)
- */
-export interface LeafOpAmino {
-  hash: HashOp;
-  prehash_key: HashOp;
-  prehash_value: HashOp;
-  length: LengthOp;
-  /**
-   * prefix is a fixed bytes that may optionally be included at the beginning to differentiate
-   * a leaf node from an inner node.
-   */
-  prefix: Uint8Array;
-}
-export interface LeafOpAminoMsg {
-  type: "/ics23.LeafOp";
-  value: LeafOpAmino;
-}
-/**
- * LeafOp represents the raw key-value data we wish to prove, and
- * must be flexible to represent the internal transformation from
- * the original key-value pairs into the basis hash, for many existing
- * merkle trees.
- * 
- * key and value are passed in. So that the signature of this operation is:
- * leafOp(key, value) -> output
- * 
- * To process this, first prehash the keys and values if needed (ANY means no hash in this case):
- * hkey = prehashKey(key)
- * hvalue = prehashValue(value)
- * 
- * Then combine the bytes, and hash it
- * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)
- */
-export interface LeafOpSDKType {
-  hash: HashOp;
-  prehash_key: HashOp;
-  prehash_value: HashOp;
-  length: LengthOp;
-  prefix: Uint8Array;
-}
-/**
- * InnerOp represents a merkle-proof step that is not a leaf.
- * It represents concatenating two children and hashing them to provide the next result.
- * 
- * The result of the previous step is passed in, so the signature of this op is:
- * innerOp(child) -> output
- * 
- * The result of applying InnerOp should be:
- * output = op.hash(op.prefix || child || op.suffix)
- * 
- * where the || operator is concatenation of binary data,
- * and child is the result of hashing all the tree below this step.
- * 
- * Any special data, like prepending child with the length, or prepending the entire operation with
- * some value to differentiate from leaf nodes, should be included in prefix and suffix.
- * If either of prefix or suffix is empty, we just treat it as an empty string
- */
-export interface InnerOp {
-  hash: HashOp;
-  prefix: Uint8Array;
-  suffix: Uint8Array;
-}
-export interface InnerOpProtoMsg {
-  typeUrl: "/ics23.InnerOp";
-  value: Uint8Array;
-}
-/**
- * InnerOp represents a merkle-proof step that is not a leaf.
- * It represents concatenating two children and hashing them to provide the next result.
- * 
- * The result of the previous step is passed in, so the signature of this op is:
- * innerOp(child) -> output
- * 
- * The result of applying InnerOp should be:
- * output = op.hash(op.prefix || child || op.suffix)
- * 
- * where the || operator is concatenation of binary data,
- * and child is the result of hashing all the tree below this step.
- * 
- * Any special data, like prepending child with the length, or prepending the entire operation with
- * some value to differentiate from leaf nodes, should be included in prefix and suffix.
- * If either of prefix or suffix is empty, we just treat it as an empty string
- */
-export interface InnerOpAmino {
-  hash: HashOp;
-  prefix: Uint8Array;
-  suffix: Uint8Array;
-}
-export interface InnerOpAminoMsg {
-  type: "/ics23.InnerOp";
-  value: InnerOpAmino;
-}
-/**
- * InnerOp represents a merkle-proof step that is not a leaf.
- * It represents concatenating two children and hashing them to provide the next result.
- * 
- * The result of the previous step is passed in, so the signature of this op is:
- * innerOp(child) -> output
- * 
- * The result of applying InnerOp should be:
- * output = op.hash(op.prefix || child || op.suffix)
- * 
- * where the || operator is concatenation of binary data,
- * and child is the result of hashing all the tree below this step.
- * 
- * Any special data, like prepending child with the length, or prepending the entire operation with
- * some value to differentiate from leaf nodes, should be included in prefix and suffix.
- * If either of prefix or suffix is empty, we just treat it as an empty string
- */
-export interface InnerOpSDKType {
-  hash: HashOp;
-  prefix: Uint8Array;
-  suffix: Uint8Array;
-}
-/**
- * ProofSpec defines what the expected parameters are for a given proof type.
- * This can be stored in the client and used to validate any incoming proofs.
- * 
- * verify(ProofSpec, Proof) -> Proof | Error
- * 
- * As demonstrated in tests, if we don't fix the algorithm used to calculate the
- * LeafHash for a given tree, there are many possible key-value pairs that can
- * generate a given hash (by interpretting the preimage differently).
- * We need this for proper security, requires client knows a priori what
- * tree format server uses. But not in code, rather a configuration object.
- */
-export interface ProofSpec {
-  /**
-   * any field in the ExistenceProof must be the same as in this spec.
-   * except Prefix, which is just the first bytes of prefix (spec can be longer)
-   */
-  leafSpec: LeafOp | undefined;
-  innerSpec: InnerSpec | undefined;
-  /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */
-  maxDepth: number;
-  /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */
-  minDepth: number;
-}
-export interface ProofSpecProtoMsg {
-  typeUrl: "/ics23.ProofSpec";
-  value: Uint8Array;
-}
-/**
- * ProofSpec defines what the expected parameters are for a given proof type.
- * This can be stored in the client and used to validate any incoming proofs.
- * 
- * verify(ProofSpec, Proof) -> Proof | Error
- * 
- * As demonstrated in tests, if we don't fix the algorithm used to calculate the
- * LeafHash for a given tree, there are many possible key-value pairs that can
- * generate a given hash (by interpretting the preimage differently).
- * We need this for proper security, requires client knows a priori what
- * tree format server uses. But not in code, rather a configuration object.
- */
-export interface ProofSpecAmino {
-  /**
-   * any field in the ExistenceProof must be the same as in this spec.
-   * except Prefix, which is just the first bytes of prefix (spec can be longer)
-   */
-  leaf_spec?: LeafOpAmino | undefined;
-  inner_spec?: InnerSpecAmino | undefined;
-  /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */
-  max_depth: number;
-  /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */
-  min_depth: number;
-}
-export interface ProofSpecAminoMsg {
-  type: "/ics23.ProofSpec";
-  value: ProofSpecAmino;
-}
-/**
- * ProofSpec defines what the expected parameters are for a given proof type.
- * This can be stored in the client and used to validate any incoming proofs.
- * 
- * verify(ProofSpec, Proof) -> Proof | Error
- * 
- * As demonstrated in tests, if we don't fix the algorithm used to calculate the
- * LeafHash for a given tree, there are many possible key-value pairs that can
- * generate a given hash (by interpretting the preimage differently).
- * We need this for proper security, requires client knows a priori what
- * tree format server uses. But not in code, rather a configuration object.
- */
-export interface ProofSpecSDKType {
-  leaf_spec: LeafOpSDKType | undefined;
-  inner_spec: InnerSpecSDKType | undefined;
-  max_depth: number;
-  min_depth: number;
-}
-/**
- * InnerSpec contains all store-specific structure info to determine if two proofs from a
- * given store are neighbors.
- * 
- * This enables:
- * 
- * isLeftMost(spec: InnerSpec, op: InnerOp)
- * isRightMost(spec: InnerSpec, op: InnerOp)
- * isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp)
- */
-export interface InnerSpec {
-  /**
-   * Child order is the ordering of the children node, must count from 0
-   * iavl tree is [0, 1] (left then right)
-   * merk is [0, 2, 1] (left, right, here)
-   */
-  childOrder: number[];
-  childSize: number;
-  minPrefixLength: number;
-  maxPrefixLength: number;
-  /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */
-  emptyChild: Uint8Array;
-  /** hash is the algorithm that must be used for each InnerOp */
-  hash: HashOp;
-}
-export interface InnerSpecProtoMsg {
-  typeUrl: "/ics23.InnerSpec";
-  value: Uint8Array;
-}
-/**
- * InnerSpec contains all store-specific structure info to determine if two proofs from a
- * given store are neighbors.
- * 
- * This enables:
- * 
- * isLeftMost(spec: InnerSpec, op: InnerOp)
- * isRightMost(spec: InnerSpec, op: InnerOp)
- * isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp)
- */
-export interface InnerSpecAmino {
-  /**
-   * Child order is the ordering of the children node, must count from 0
-   * iavl tree is [0, 1] (left then right)
-   * merk is [0, 2, 1] (left, right, here)
-   */
-  child_order: number[];
-  child_size: number;
-  min_prefix_length: number;
-  max_prefix_length: number;
-  /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */
-  empty_child: Uint8Array;
-  /** hash is the algorithm that must be used for each InnerOp */
-  hash: HashOp;
-}
-export interface InnerSpecAminoMsg {
-  type: "/ics23.InnerSpec";
-  value: InnerSpecAmino;
-}
-/**
- * InnerSpec contains all store-specific structure info to determine if two proofs from a
- * given store are neighbors.
- * 
- * This enables:
- * 
- * isLeftMost(spec: InnerSpec, op: InnerOp)
- * isRightMost(spec: InnerSpec, op: InnerOp)
- * isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp)
- */
-export interface InnerSpecSDKType {
-  child_order: number[];
-  child_size: number;
-  min_prefix_length: number;
-  max_prefix_length: number;
-  empty_child: Uint8Array;
-  hash: HashOp;
-}
-/** BatchProof is a group of multiple proof types than can be compressed */
-export interface BatchProof {
-  entries: BatchEntry[];
-}
-export interface BatchProofProtoMsg {
-  typeUrl: "/ics23.BatchProof";
-  value: Uint8Array;
-}
-/** BatchProof is a group of multiple proof types than can be compressed */
-export interface BatchProofAmino {
-  entries: BatchEntryAmino[];
-}
-export interface BatchProofAminoMsg {
-  type: "/ics23.BatchProof";
-  value: BatchProofAmino;
-}
-/** BatchProof is a group of multiple proof types than can be compressed */
-export interface BatchProofSDKType {
-  entries: BatchEntrySDKType[];
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface BatchEntry {
-  exist?: ExistenceProof | undefined;
-  nonexist?: NonExistenceProof | undefined;
-}
-export interface BatchEntryProtoMsg {
-  typeUrl: "/ics23.BatchEntry";
-  value: Uint8Array;
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface BatchEntryAmino {
-  exist?: ExistenceProofAmino | undefined;
-  nonexist?: NonExistenceProofAmino | undefined;
-}
-export interface BatchEntryAminoMsg {
-  type: "/ics23.BatchEntry";
-  value: BatchEntryAmino;
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface BatchEntrySDKType {
-  exist?: ExistenceProofSDKType | undefined;
-  nonexist?: NonExistenceProofSDKType | undefined;
-}
-export interface CompressedBatchProof {
-  entries: CompressedBatchEntry[];
-  lookupInners: InnerOp[];
-}
-export interface CompressedBatchProofProtoMsg {
-  typeUrl: "/ics23.CompressedBatchProof";
-  value: Uint8Array;
-}
-export interface CompressedBatchProofAmino {
-  entries: CompressedBatchEntryAmino[];
-  lookup_inners: InnerOpAmino[];
-}
-export interface CompressedBatchProofAminoMsg {
-  type: "/ics23.CompressedBatchProof";
-  value: CompressedBatchProofAmino;
-}
-export interface CompressedBatchProofSDKType {
-  entries: CompressedBatchEntrySDKType[];
-  lookup_inners: InnerOpSDKType[];
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface CompressedBatchEntry {
-  exist?: CompressedExistenceProof | undefined;
-  nonexist?: CompressedNonExistenceProof | undefined;
-}
-export interface CompressedBatchEntryProtoMsg {
-  typeUrl: "/ics23.CompressedBatchEntry";
-  value: Uint8Array;
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface CompressedBatchEntryAmino {
-  exist?: CompressedExistenceProofAmino | undefined;
-  nonexist?: CompressedNonExistenceProofAmino | undefined;
-}
-export interface CompressedBatchEntryAminoMsg {
-  type: "/ics23.CompressedBatchEntry";
-  value: CompressedBatchEntryAmino;
-}
-/** Use BatchEntry not CommitmentProof, to avoid recursion */
-export interface CompressedBatchEntrySDKType {
-  exist?: CompressedExistenceProofSDKType | undefined;
-  nonexist?: CompressedNonExistenceProofSDKType | undefined;
-}
-export interface CompressedExistenceProof {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf: LeafOp | undefined;
-  /** these are indexes into the lookup_inners table in CompressedBatchProof */
-  path: number[];
-}
-export interface CompressedExistenceProofProtoMsg {
-  typeUrl: "/ics23.CompressedExistenceProof";
-  value: Uint8Array;
-}
-export interface CompressedExistenceProofAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf?: LeafOpAmino | undefined;
-  /** these are indexes into the lookup_inners table in CompressedBatchProof */
-  path: number[];
-}
-export interface CompressedExistenceProofAminoMsg {
-  type: "/ics23.CompressedExistenceProof";
-  value: CompressedExistenceProofAmino;
-}
-export interface CompressedExistenceProofSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-  leaf: LeafOpSDKType | undefined;
-  path: number[];
-}
-export interface CompressedNonExistenceProof {
-  /** TODO: remove this as unnecessary??? we prove a range */
-  key: Uint8Array;
-  left: CompressedExistenceProof | undefined;
-  right: CompressedExistenceProof | undefined;
-}
-export interface CompressedNonExistenceProofProtoMsg {
-  typeUrl: "/ics23.CompressedNonExistenceProof";
-  value: Uint8Array;
-}
-export interface CompressedNonExistenceProofAmino {
-  /** TODO: remove this as unnecessary??? we prove a range */
-  key: Uint8Array;
-  left?: CompressedExistenceProofAmino | undefined;
-  right?: CompressedExistenceProofAmino | undefined;
-}
-export interface CompressedNonExistenceProofAminoMsg {
-  type: "/ics23.CompressedNonExistenceProof";
-  value: CompressedNonExistenceProofAmino;
-}
-export interface CompressedNonExistenceProofSDKType {
-  key: Uint8Array;
-  left: CompressedExistenceProofSDKType | undefined;
-  right: CompressedExistenceProofSDKType | undefined;
-}
-function createBaseExistenceProof(): ExistenceProof {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array(),
-    leaf: LeafOp.fromPartial({}),
-    path: []
-  };
-}
-export const ExistenceProof = {
-  typeUrl: "/ics23.ExistenceProof",
-  encode(message: ExistenceProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    if (message.leaf !== undefined) {
-      LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.path) {
-      InnerOp.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ExistenceProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseExistenceProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        case 3:
-          message.leaf = LeafOp.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.path.push(InnerOp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ExistenceProof {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(),
-      leaf: isSet(object.leaf) ? LeafOp.fromJSON(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => InnerOp.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ExistenceProof): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined);
-    if (message.path) {
-      obj.path = message.path.map(e => e ? InnerOp.toJSON(e) : undefined);
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ExistenceProof>): ExistenceProof {
-    const message = createBaseExistenceProof();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    message.leaf = object.leaf !== undefined && object.leaf !== null ? LeafOp.fromPartial(object.leaf) : undefined;
-    message.path = object.path?.map(e => InnerOp.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ExistenceProofSDKType): ExistenceProof {
-    return {
-      key: object?.key,
-      value: object?.value,
-      leaf: object.leaf ? LeafOp.fromSDK(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => InnerOp.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ExistenceProof): ExistenceProofSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toSDK(message.leaf) : undefined);
-    if (message.path) {
-      obj.path = message.path.map(e => e ? InnerOp.toSDK(e) : undefined);
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ExistenceProofAmino): ExistenceProof {
-    return {
-      key: object.key,
-      value: object.value,
-      leaf: object?.leaf ? LeafOp.fromAmino(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => InnerOp.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ExistenceProof): ExistenceProofAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.leaf = message.leaf ? LeafOp.toAmino(message.leaf) : undefined;
-    if (message.path) {
-      obj.path = message.path.map(e => e ? InnerOp.toAmino(e) : undefined);
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ExistenceProofAminoMsg): ExistenceProof {
-    return ExistenceProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ExistenceProofProtoMsg): ExistenceProof {
-    return ExistenceProof.decode(message.value);
-  },
-  toProto(message: ExistenceProof): Uint8Array {
-    return ExistenceProof.encode(message).finish();
-  },
-  toProtoMsg(message: ExistenceProof): ExistenceProofProtoMsg {
-    return {
-      typeUrl: "/ics23.ExistenceProof",
-      value: ExistenceProof.encode(message).finish()
-    };
-  }
-};
-function createBaseNonExistenceProof(): NonExistenceProof {
-  return {
-    key: new Uint8Array(),
-    left: ExistenceProof.fromPartial({}),
-    right: ExistenceProof.fromPartial({})
-  };
-}
-export const NonExistenceProof = {
-  typeUrl: "/ics23.NonExistenceProof",
-  encode(message: NonExistenceProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.left !== undefined) {
-      ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.right !== undefined) {
-      ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NonExistenceProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNonExistenceProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.left = ExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.right = ExistenceProof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NonExistenceProof {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      left: isSet(object.left) ? ExistenceProof.fromJSON(object.left) : undefined,
-      right: isSet(object.right) ? ExistenceProof.fromJSON(object.right) : undefined
-    };
-  },
-  toJSON(message: NonExistenceProof): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.left !== undefined && (obj.left = message.left ? ExistenceProof.toJSON(message.left) : undefined);
-    message.right !== undefined && (obj.right = message.right ? ExistenceProof.toJSON(message.right) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NonExistenceProof>): NonExistenceProof {
-    const message = createBaseNonExistenceProof();
-    message.key = object.key ?? new Uint8Array();
-    message.left = object.left !== undefined && object.left !== null ? ExistenceProof.fromPartial(object.left) : undefined;
-    message.right = object.right !== undefined && object.right !== null ? ExistenceProof.fromPartial(object.right) : undefined;
-    return message;
-  },
-  fromSDK(object: NonExistenceProofSDKType): NonExistenceProof {
-    return {
-      key: object?.key,
-      left: object.left ? ExistenceProof.fromSDK(object.left) : undefined,
-      right: object.right ? ExistenceProof.fromSDK(object.right) : undefined
-    };
-  },
-  toSDK(message: NonExistenceProof): NonExistenceProofSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    message.left !== undefined && (obj.left = message.left ? ExistenceProof.toSDK(message.left) : undefined);
-    message.right !== undefined && (obj.right = message.right ? ExistenceProof.toSDK(message.right) : undefined);
-    return obj;
-  },
-  fromAmino(object: NonExistenceProofAmino): NonExistenceProof {
-    return {
-      key: object.key,
-      left: object?.left ? ExistenceProof.fromAmino(object.left) : undefined,
-      right: object?.right ? ExistenceProof.fromAmino(object.right) : undefined
-    };
-  },
-  toAmino(message: NonExistenceProof): NonExistenceProofAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.left = message.left ? ExistenceProof.toAmino(message.left) : undefined;
-    obj.right = message.right ? ExistenceProof.toAmino(message.right) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: NonExistenceProofAminoMsg): NonExistenceProof {
-    return NonExistenceProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: NonExistenceProofProtoMsg): NonExistenceProof {
-    return NonExistenceProof.decode(message.value);
-  },
-  toProto(message: NonExistenceProof): Uint8Array {
-    return NonExistenceProof.encode(message).finish();
-  },
-  toProtoMsg(message: NonExistenceProof): NonExistenceProofProtoMsg {
-    return {
-      typeUrl: "/ics23.NonExistenceProof",
-      value: NonExistenceProof.encode(message).finish()
-    };
-  }
-};
-function createBaseCommitmentProof(): CommitmentProof {
-  return {
-    exist: undefined,
-    nonexist: undefined,
-    batch: undefined,
-    compressed: undefined
-  };
-}
-export const CommitmentProof = {
-  typeUrl: "/ics23.CommitmentProof",
-  encode(message: CommitmentProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.exist !== undefined) {
-      ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.nonexist !== undefined) {
-      NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.batch !== undefined) {
-      BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.compressed !== undefined) {
-      CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommitmentProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommitmentProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.exist = ExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.nonexist = NonExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.batch = BatchProof.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.compressed = CompressedBatchProof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommitmentProof {
-    return {
-      exist: isSet(object.exist) ? ExistenceProof.fromJSON(object.exist) : undefined,
-      nonexist: isSet(object.nonexist) ? NonExistenceProof.fromJSON(object.nonexist) : undefined,
-      batch: isSet(object.batch) ? BatchProof.fromJSON(object.batch) : undefined,
-      compressed: isSet(object.compressed) ? CompressedBatchProof.fromJSON(object.compressed) : undefined
-    };
-  },
-  toJSON(message: CommitmentProof): unknown {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toJSON(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toJSON(message.nonexist) : undefined);
-    message.batch !== undefined && (obj.batch = message.batch ? BatchProof.toJSON(message.batch) : undefined);
-    message.compressed !== undefined && (obj.compressed = message.compressed ? CompressedBatchProof.toJSON(message.compressed) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommitmentProof>): CommitmentProof {
-    const message = createBaseCommitmentProof();
-    message.exist = object.exist !== undefined && object.exist !== null ? ExistenceProof.fromPartial(object.exist) : undefined;
-    message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? NonExistenceProof.fromPartial(object.nonexist) : undefined;
-    message.batch = object.batch !== undefined && object.batch !== null ? BatchProof.fromPartial(object.batch) : undefined;
-    message.compressed = object.compressed !== undefined && object.compressed !== null ? CompressedBatchProof.fromPartial(object.compressed) : undefined;
-    return message;
-  },
-  fromSDK(object: CommitmentProofSDKType): CommitmentProof {
-    return {
-      exist: object.exist ? ExistenceProof.fromSDK(object.exist) : undefined,
-      nonexist: object.nonexist ? NonExistenceProof.fromSDK(object.nonexist) : undefined,
-      batch: object.batch ? BatchProof.fromSDK(object.batch) : undefined,
-      compressed: object.compressed ? CompressedBatchProof.fromSDK(object.compressed) : undefined
-    };
-  },
-  toSDK(message: CommitmentProof): CommitmentProofSDKType {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toSDK(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toSDK(message.nonexist) : undefined);
-    message.batch !== undefined && (obj.batch = message.batch ? BatchProof.toSDK(message.batch) : undefined);
-    message.compressed !== undefined && (obj.compressed = message.compressed ? CompressedBatchProof.toSDK(message.compressed) : undefined);
-    return obj;
-  },
-  fromAmino(object: CommitmentProofAmino): CommitmentProof {
-    return {
-      exist: object?.exist ? ExistenceProof.fromAmino(object.exist) : undefined,
-      nonexist: object?.nonexist ? NonExistenceProof.fromAmino(object.nonexist) : undefined,
-      batch: object?.batch ? BatchProof.fromAmino(object.batch) : undefined,
-      compressed: object?.compressed ? CompressedBatchProof.fromAmino(object.compressed) : undefined
-    };
-  },
-  toAmino(message: CommitmentProof): CommitmentProofAmino {
-    const obj: any = {};
-    obj.exist = message.exist ? ExistenceProof.toAmino(message.exist) : undefined;
-    obj.nonexist = message.nonexist ? NonExistenceProof.toAmino(message.nonexist) : undefined;
-    obj.batch = message.batch ? BatchProof.toAmino(message.batch) : undefined;
-    obj.compressed = message.compressed ? CompressedBatchProof.toAmino(message.compressed) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CommitmentProofAminoMsg): CommitmentProof {
-    return CommitmentProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CommitmentProofProtoMsg): CommitmentProof {
-    return CommitmentProof.decode(message.value);
-  },
-  toProto(message: CommitmentProof): Uint8Array {
-    return CommitmentProof.encode(message).finish();
-  },
-  toProtoMsg(message: CommitmentProof): CommitmentProofProtoMsg {
-    return {
-      typeUrl: "/ics23.CommitmentProof",
-      value: CommitmentProof.encode(message).finish()
-    };
-  }
-};
-function createBaseLeafOp(): LeafOp {
-  return {
-    hash: 0,
-    prehashKey: 0,
-    prehashValue: 0,
-    length: 0,
-    prefix: new Uint8Array()
-  };
-}
-export const LeafOp = {
-  typeUrl: "/ics23.LeafOp",
-  encode(message: LeafOp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash !== 0) {
-      writer.uint32(8).int32(message.hash);
-    }
-    if (message.prehashKey !== 0) {
-      writer.uint32(16).int32(message.prehashKey);
-    }
-    if (message.prehashValue !== 0) {
-      writer.uint32(24).int32(message.prehashValue);
-    }
-    if (message.length !== 0) {
-      writer.uint32(32).int32(message.length);
-    }
-    if (message.prefix.length !== 0) {
-      writer.uint32(42).bytes(message.prefix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LeafOp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLeafOp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = (reader.int32() as any);
-          break;
-        case 2:
-          message.prehashKey = (reader.int32() as any);
-          break;
-        case 3:
-          message.prehashValue = (reader.int32() as any);
-          break;
-        case 4:
-          message.length = (reader.int32() as any);
-          break;
-        case 5:
-          message.prefix = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LeafOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prehashKey: isSet(object.prehashKey) ? hashOpFromJSON(object.prehashKey) : -1,
-      prehashValue: isSet(object.prehashValue) ? hashOpFromJSON(object.prehashValue) : -1,
-      length: isSet(object.length) ? lengthOpFromJSON(object.length) : -1,
-      prefix: isSet(object.prefix) ? bytesFromBase64(object.prefix) : new Uint8Array()
-    };
-  },
-  toJSON(message: LeafOp): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));
-    message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));
-    message.length !== undefined && (obj.length = lengthOpToJSON(message.length));
-    message.prefix !== undefined && (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LeafOp>): LeafOp {
-    const message = createBaseLeafOp();
-    message.hash = object.hash ?? 0;
-    message.prehashKey = object.prehashKey ?? 0;
-    message.prehashValue = object.prehashValue ?? 0;
-    message.length = object.length ?? 0;
-    message.prefix = object.prefix ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: LeafOpSDKType): LeafOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prehashKey: isSet(object.prehash_key) ? hashOpFromJSON(object.prehash_key) : -1,
-      prehashValue: isSet(object.prehash_value) ? hashOpFromJSON(object.prehash_value) : -1,
-      length: isSet(object.length) ? lengthOpFromJSON(object.length) : -1,
-      prefix: object?.prefix
-    };
-  },
-  toSDK(message: LeafOp): LeafOpSDKType {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    message.prehashKey !== undefined && (obj.prehash_key = hashOpToJSON(message.prehashKey));
-    message.prehashValue !== undefined && (obj.prehash_value = hashOpToJSON(message.prehashValue));
-    message.length !== undefined && (obj.length = lengthOpToJSON(message.length));
-    obj.prefix = message.prefix;
-    return obj;
-  },
-  fromAmino(object: LeafOpAmino): LeafOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prehashKey: isSet(object.prehash_key) ? hashOpFromJSON(object.prehash_key) : -1,
-      prehashValue: isSet(object.prehash_value) ? hashOpFromJSON(object.prehash_value) : -1,
-      length: isSet(object.length) ? lengthOpFromJSON(object.length) : -1,
-      prefix: object.prefix
-    };
-  },
-  toAmino(message: LeafOp): LeafOpAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    obj.prehash_key = message.prehashKey;
-    obj.prehash_value = message.prehashValue;
-    obj.length = message.length;
-    obj.prefix = message.prefix;
-    return obj;
-  },
-  fromAminoMsg(object: LeafOpAminoMsg): LeafOp {
-    return LeafOp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: LeafOpProtoMsg): LeafOp {
-    return LeafOp.decode(message.value);
-  },
-  toProto(message: LeafOp): Uint8Array {
-    return LeafOp.encode(message).finish();
-  },
-  toProtoMsg(message: LeafOp): LeafOpProtoMsg {
-    return {
-      typeUrl: "/ics23.LeafOp",
-      value: LeafOp.encode(message).finish()
-    };
-  }
-};
-function createBaseInnerOp(): InnerOp {
-  return {
-    hash: 0,
-    prefix: new Uint8Array(),
-    suffix: new Uint8Array()
-  };
-}
-export const InnerOp = {
-  typeUrl: "/ics23.InnerOp",
-  encode(message: InnerOp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash !== 0) {
-      writer.uint32(8).int32(message.hash);
-    }
-    if (message.prefix.length !== 0) {
-      writer.uint32(18).bytes(message.prefix);
-    }
-    if (message.suffix.length !== 0) {
-      writer.uint32(26).bytes(message.suffix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InnerOp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInnerOp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = (reader.int32() as any);
-          break;
-        case 2:
-          message.prefix = reader.bytes();
-          break;
-        case 3:
-          message.suffix = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InnerOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prefix: isSet(object.prefix) ? bytesFromBase64(object.prefix) : new Uint8Array(),
-      suffix: isSet(object.suffix) ? bytesFromBase64(object.suffix) : new Uint8Array()
-    };
-  },
-  toJSON(message: InnerOp): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    message.prefix !== undefined && (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));
-    message.suffix !== undefined && (obj.suffix = base64FromBytes(message.suffix !== undefined ? message.suffix : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InnerOp>): InnerOp {
-    const message = createBaseInnerOp();
-    message.hash = object.hash ?? 0;
-    message.prefix = object.prefix ?? new Uint8Array();
-    message.suffix = object.suffix ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: InnerOpSDKType): InnerOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prefix: object?.prefix,
-      suffix: object?.suffix
-    };
-  },
-  toSDK(message: InnerOp): InnerOpSDKType {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    obj.prefix = message.prefix;
-    obj.suffix = message.suffix;
-    return obj;
-  },
-  fromAmino(object: InnerOpAmino): InnerOp {
-    return {
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1,
-      prefix: object.prefix,
-      suffix: object.suffix
-    };
-  },
-  toAmino(message: InnerOp): InnerOpAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    obj.prefix = message.prefix;
-    obj.suffix = message.suffix;
-    return obj;
-  },
-  fromAminoMsg(object: InnerOpAminoMsg): InnerOp {
-    return InnerOp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: InnerOpProtoMsg): InnerOp {
-    return InnerOp.decode(message.value);
-  },
-  toProto(message: InnerOp): Uint8Array {
-    return InnerOp.encode(message).finish();
-  },
-  toProtoMsg(message: InnerOp): InnerOpProtoMsg {
-    return {
-      typeUrl: "/ics23.InnerOp",
-      value: InnerOp.encode(message).finish()
-    };
-  }
-};
-function createBaseProofSpec(): ProofSpec {
-  return {
-    leafSpec: LeafOp.fromPartial({}),
-    innerSpec: InnerSpec.fromPartial({}),
-    maxDepth: 0,
-    minDepth: 0
-  };
-}
-export const ProofSpec = {
-  typeUrl: "/ics23.ProofSpec",
-  encode(message: ProofSpec, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.leafSpec !== undefined) {
-      LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.innerSpec !== undefined) {
-      InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.maxDepth !== 0) {
-      writer.uint32(24).int32(message.maxDepth);
-    }
-    if (message.minDepth !== 0) {
-      writer.uint32(32).int32(message.minDepth);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ProofSpec {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProofSpec();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.leafSpec = LeafOp.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.innerSpec = InnerSpec.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.maxDepth = reader.int32();
-          break;
-        case 4:
-          message.minDepth = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ProofSpec {
-    return {
-      leafSpec: isSet(object.leafSpec) ? LeafOp.fromJSON(object.leafSpec) : undefined,
-      innerSpec: isSet(object.innerSpec) ? InnerSpec.fromJSON(object.innerSpec) : undefined,
-      maxDepth: isSet(object.maxDepth) ? Number(object.maxDepth) : 0,
-      minDepth: isSet(object.minDepth) ? Number(object.minDepth) : 0
-    };
-  },
-  toJSON(message: ProofSpec): unknown {
-    const obj: any = {};
-    message.leafSpec !== undefined && (obj.leafSpec = message.leafSpec ? LeafOp.toJSON(message.leafSpec) : undefined);
-    message.innerSpec !== undefined && (obj.innerSpec = message.innerSpec ? InnerSpec.toJSON(message.innerSpec) : undefined);
-    message.maxDepth !== undefined && (obj.maxDepth = Math.round(message.maxDepth));
-    message.minDepth !== undefined && (obj.minDepth = Math.round(message.minDepth));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ProofSpec>): ProofSpec {
-    const message = createBaseProofSpec();
-    message.leafSpec = object.leafSpec !== undefined && object.leafSpec !== null ? LeafOp.fromPartial(object.leafSpec) : undefined;
-    message.innerSpec = object.innerSpec !== undefined && object.innerSpec !== null ? InnerSpec.fromPartial(object.innerSpec) : undefined;
-    message.maxDepth = object.maxDepth ?? 0;
-    message.minDepth = object.minDepth ?? 0;
-    return message;
-  },
-  fromSDK(object: ProofSpecSDKType): ProofSpec {
-    return {
-      leafSpec: object.leaf_spec ? LeafOp.fromSDK(object.leaf_spec) : undefined,
-      innerSpec: object.inner_spec ? InnerSpec.fromSDK(object.inner_spec) : undefined,
-      maxDepth: object?.max_depth,
-      minDepth: object?.min_depth
-    };
-  },
-  toSDK(message: ProofSpec): ProofSpecSDKType {
-    const obj: any = {};
-    message.leafSpec !== undefined && (obj.leaf_spec = message.leafSpec ? LeafOp.toSDK(message.leafSpec) : undefined);
-    message.innerSpec !== undefined && (obj.inner_spec = message.innerSpec ? InnerSpec.toSDK(message.innerSpec) : undefined);
-    obj.max_depth = message.maxDepth;
-    obj.min_depth = message.minDepth;
-    return obj;
-  },
-  fromAmino(object: ProofSpecAmino): ProofSpec {
-    return {
-      leafSpec: object?.leaf_spec ? LeafOp.fromAmino(object.leaf_spec) : undefined,
-      innerSpec: object?.inner_spec ? InnerSpec.fromAmino(object.inner_spec) : undefined,
-      maxDepth: object.max_depth,
-      minDepth: object.min_depth
-    };
-  },
-  toAmino(message: ProofSpec): ProofSpecAmino {
-    const obj: any = {};
-    obj.leaf_spec = message.leafSpec ? LeafOp.toAmino(message.leafSpec) : undefined;
-    obj.inner_spec = message.innerSpec ? InnerSpec.toAmino(message.innerSpec) : undefined;
-    obj.max_depth = message.maxDepth;
-    obj.min_depth = message.minDepth;
-    return obj;
-  },
-  fromAminoMsg(object: ProofSpecAminoMsg): ProofSpec {
-    return ProofSpec.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProofSpecProtoMsg): ProofSpec {
-    return ProofSpec.decode(message.value);
-  },
-  toProto(message: ProofSpec): Uint8Array {
-    return ProofSpec.encode(message).finish();
-  },
-  toProtoMsg(message: ProofSpec): ProofSpecProtoMsg {
-    return {
-      typeUrl: "/ics23.ProofSpec",
-      value: ProofSpec.encode(message).finish()
-    };
-  }
-};
-function createBaseInnerSpec(): InnerSpec {
-  return {
-    childOrder: [],
-    childSize: 0,
-    minPrefixLength: 0,
-    maxPrefixLength: 0,
-    emptyChild: new Uint8Array(),
-    hash: 0
-  };
-}
-export const InnerSpec = {
-  typeUrl: "/ics23.InnerSpec",
-  encode(message: InnerSpec, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.childOrder) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    if (message.childSize !== 0) {
-      writer.uint32(16).int32(message.childSize);
-    }
-    if (message.minPrefixLength !== 0) {
-      writer.uint32(24).int32(message.minPrefixLength);
-    }
-    if (message.maxPrefixLength !== 0) {
-      writer.uint32(32).int32(message.maxPrefixLength);
-    }
-    if (message.emptyChild.length !== 0) {
-      writer.uint32(42).bytes(message.emptyChild);
-    }
-    if (message.hash !== 0) {
-      writer.uint32(48).int32(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InnerSpec {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInnerSpec();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.childOrder.push(reader.int32());
-            }
-          } else {
-            message.childOrder.push(reader.int32());
-          }
-          break;
-        case 2:
-          message.childSize = reader.int32();
-          break;
-        case 3:
-          message.minPrefixLength = reader.int32();
-          break;
-        case 4:
-          message.maxPrefixLength = reader.int32();
-          break;
-        case 5:
-          message.emptyChild = reader.bytes();
-          break;
-        case 6:
-          message.hash = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InnerSpec {
-    return {
-      childOrder: Array.isArray(object?.childOrder) ? object.childOrder.map((e: any) => Number(e)) : [],
-      childSize: isSet(object.childSize) ? Number(object.childSize) : 0,
-      minPrefixLength: isSet(object.minPrefixLength) ? Number(object.minPrefixLength) : 0,
-      maxPrefixLength: isSet(object.maxPrefixLength) ? Number(object.maxPrefixLength) : 0,
-      emptyChild: isSet(object.emptyChild) ? bytesFromBase64(object.emptyChild) : new Uint8Array(),
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1
-    };
-  },
-  toJSON(message: InnerSpec): unknown {
-    const obj: any = {};
-    if (message.childOrder) {
-      obj.childOrder = message.childOrder.map(e => Math.round(e));
-    } else {
-      obj.childOrder = [];
-    }
-    message.childSize !== undefined && (obj.childSize = Math.round(message.childSize));
-    message.minPrefixLength !== undefined && (obj.minPrefixLength = Math.round(message.minPrefixLength));
-    message.maxPrefixLength !== undefined && (obj.maxPrefixLength = Math.round(message.maxPrefixLength));
-    message.emptyChild !== undefined && (obj.emptyChild = base64FromBytes(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InnerSpec>): InnerSpec {
-    const message = createBaseInnerSpec();
-    message.childOrder = object.childOrder?.map(e => e) || [];
-    message.childSize = object.childSize ?? 0;
-    message.minPrefixLength = object.minPrefixLength ?? 0;
-    message.maxPrefixLength = object.maxPrefixLength ?? 0;
-    message.emptyChild = object.emptyChild ?? new Uint8Array();
-    message.hash = object.hash ?? 0;
-    return message;
-  },
-  fromSDK(object: InnerSpecSDKType): InnerSpec {
-    return {
-      childOrder: Array.isArray(object?.child_order) ? object.child_order.map((e: any) => e) : [],
-      childSize: object?.child_size,
-      minPrefixLength: object?.min_prefix_length,
-      maxPrefixLength: object?.max_prefix_length,
-      emptyChild: object?.empty_child,
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1
-    };
-  },
-  toSDK(message: InnerSpec): InnerSpecSDKType {
-    const obj: any = {};
-    if (message.childOrder) {
-      obj.child_order = message.childOrder.map(e => e);
-    } else {
-      obj.child_order = [];
-    }
-    obj.child_size = message.childSize;
-    obj.min_prefix_length = message.minPrefixLength;
-    obj.max_prefix_length = message.maxPrefixLength;
-    obj.empty_child = message.emptyChild;
-    message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));
-    return obj;
-  },
-  fromAmino(object: InnerSpecAmino): InnerSpec {
-    return {
-      childOrder: Array.isArray(object?.child_order) ? object.child_order.map((e: any) => e) : [],
-      childSize: object.child_size,
-      minPrefixLength: object.min_prefix_length,
-      maxPrefixLength: object.max_prefix_length,
-      emptyChild: object.empty_child,
-      hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : -1
-    };
-  },
-  toAmino(message: InnerSpec): InnerSpecAmino {
-    const obj: any = {};
-    if (message.childOrder) {
-      obj.child_order = message.childOrder.map(e => e);
-    } else {
-      obj.child_order = [];
-    }
-    obj.child_size = message.childSize;
-    obj.min_prefix_length = message.minPrefixLength;
-    obj.max_prefix_length = message.maxPrefixLength;
-    obj.empty_child = message.emptyChild;
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: InnerSpecAminoMsg): InnerSpec {
-    return InnerSpec.fromAmino(object.value);
-  },
-  fromProtoMsg(message: InnerSpecProtoMsg): InnerSpec {
-    return InnerSpec.decode(message.value);
-  },
-  toProto(message: InnerSpec): Uint8Array {
-    return InnerSpec.encode(message).finish();
-  },
-  toProtoMsg(message: InnerSpec): InnerSpecProtoMsg {
-    return {
-      typeUrl: "/ics23.InnerSpec",
-      value: InnerSpec.encode(message).finish()
-    };
-  }
-};
-function createBaseBatchProof(): BatchProof {
-  return {
-    entries: []
-  };
-}
-export const BatchProof = {
-  typeUrl: "/ics23.BatchProof",
-  encode(message: BatchProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.entries) {
-      BatchEntry.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BatchProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBatchProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.entries.push(BatchEntry.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => BatchEntry.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: BatchProof): unknown {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? BatchEntry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BatchProof>): BatchProof {
-    const message = createBaseBatchProof();
-    message.entries = object.entries?.map(e => BatchEntry.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: BatchProofSDKType): BatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => BatchEntry.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: BatchProof): BatchProofSDKType {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? BatchEntry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAmino(object: BatchProofAmino): BatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => BatchEntry.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: BatchProof): BatchProofAmino {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? BatchEntry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: BatchProofAminoMsg): BatchProof {
-    return BatchProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BatchProofProtoMsg): BatchProof {
-    return BatchProof.decode(message.value);
-  },
-  toProto(message: BatchProof): Uint8Array {
-    return BatchProof.encode(message).finish();
-  },
-  toProtoMsg(message: BatchProof): BatchProofProtoMsg {
-    return {
-      typeUrl: "/ics23.BatchProof",
-      value: BatchProof.encode(message).finish()
-    };
-  }
-};
-function createBaseBatchEntry(): BatchEntry {
-  return {
-    exist: undefined,
-    nonexist: undefined
-  };
-}
-export const BatchEntry = {
-  typeUrl: "/ics23.BatchEntry",
-  encode(message: BatchEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.exist !== undefined) {
-      ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.nonexist !== undefined) {
-      NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BatchEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBatchEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.exist = ExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.nonexist = NonExistenceProof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BatchEntry {
-    return {
-      exist: isSet(object.exist) ? ExistenceProof.fromJSON(object.exist) : undefined,
-      nonexist: isSet(object.nonexist) ? NonExistenceProof.fromJSON(object.nonexist) : undefined
-    };
-  },
-  toJSON(message: BatchEntry): unknown {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toJSON(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toJSON(message.nonexist) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BatchEntry>): BatchEntry {
-    const message = createBaseBatchEntry();
-    message.exist = object.exist !== undefined && object.exist !== null ? ExistenceProof.fromPartial(object.exist) : undefined;
-    message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? NonExistenceProof.fromPartial(object.nonexist) : undefined;
-    return message;
-  },
-  fromSDK(object: BatchEntrySDKType): BatchEntry {
-    return {
-      exist: object.exist ? ExistenceProof.fromSDK(object.exist) : undefined,
-      nonexist: object.nonexist ? NonExistenceProof.fromSDK(object.nonexist) : undefined
-    };
-  },
-  toSDK(message: BatchEntry): BatchEntrySDKType {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toSDK(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toSDK(message.nonexist) : undefined);
-    return obj;
-  },
-  fromAmino(object: BatchEntryAmino): BatchEntry {
-    return {
-      exist: object?.exist ? ExistenceProof.fromAmino(object.exist) : undefined,
-      nonexist: object?.nonexist ? NonExistenceProof.fromAmino(object.nonexist) : undefined
-    };
-  },
-  toAmino(message: BatchEntry): BatchEntryAmino {
-    const obj: any = {};
-    obj.exist = message.exist ? ExistenceProof.toAmino(message.exist) : undefined;
-    obj.nonexist = message.nonexist ? NonExistenceProof.toAmino(message.nonexist) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BatchEntryAminoMsg): BatchEntry {
-    return BatchEntry.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BatchEntryProtoMsg): BatchEntry {
-    return BatchEntry.decode(message.value);
-  },
-  toProto(message: BatchEntry): Uint8Array {
-    return BatchEntry.encode(message).finish();
-  },
-  toProtoMsg(message: BatchEntry): BatchEntryProtoMsg {
-    return {
-      typeUrl: "/ics23.BatchEntry",
-      value: BatchEntry.encode(message).finish()
-    };
-  }
-};
-function createBaseCompressedBatchProof(): CompressedBatchProof {
-  return {
-    entries: [],
-    lookupInners: []
-  };
-}
-export const CompressedBatchProof = {
-  typeUrl: "/ics23.CompressedBatchProof",
-  encode(message: CompressedBatchProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.entries) {
-      CompressedBatchEntry.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.lookupInners) {
-      InnerOp.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CompressedBatchProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCompressedBatchProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.entries.push(CompressedBatchEntry.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.lookupInners.push(InnerOp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CompressedBatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => CompressedBatchEntry.fromJSON(e)) : [],
-      lookupInners: Array.isArray(object?.lookupInners) ? object.lookupInners.map((e: any) => InnerOp.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: CompressedBatchProof): unknown {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? CompressedBatchEntry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    if (message.lookupInners) {
-      obj.lookupInners = message.lookupInners.map(e => e ? InnerOp.toJSON(e) : undefined);
-    } else {
-      obj.lookupInners = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CompressedBatchProof>): CompressedBatchProof {
-    const message = createBaseCompressedBatchProof();
-    message.entries = object.entries?.map(e => CompressedBatchEntry.fromPartial(e)) || [];
-    message.lookupInners = object.lookupInners?.map(e => InnerOp.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CompressedBatchProofSDKType): CompressedBatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => CompressedBatchEntry.fromSDK(e)) : [],
-      lookupInners: Array.isArray(object?.lookup_inners) ? object.lookup_inners.map((e: any) => InnerOp.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: CompressedBatchProof): CompressedBatchProofSDKType {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? CompressedBatchEntry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    if (message.lookupInners) {
-      obj.lookup_inners = message.lookupInners.map(e => e ? InnerOp.toSDK(e) : undefined);
-    } else {
-      obj.lookup_inners = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CompressedBatchProofAmino): CompressedBatchProof {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => CompressedBatchEntry.fromAmino(e)) : [],
-      lookupInners: Array.isArray(object?.lookup_inners) ? object.lookup_inners.map((e: any) => InnerOp.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: CompressedBatchProof): CompressedBatchProofAmino {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? CompressedBatchEntry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    if (message.lookupInners) {
-      obj.lookup_inners = message.lookupInners.map(e => e ? InnerOp.toAmino(e) : undefined);
-    } else {
-      obj.lookup_inners = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CompressedBatchProofAminoMsg): CompressedBatchProof {
-    return CompressedBatchProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CompressedBatchProofProtoMsg): CompressedBatchProof {
-    return CompressedBatchProof.decode(message.value);
-  },
-  toProto(message: CompressedBatchProof): Uint8Array {
-    return CompressedBatchProof.encode(message).finish();
-  },
-  toProtoMsg(message: CompressedBatchProof): CompressedBatchProofProtoMsg {
-    return {
-      typeUrl: "/ics23.CompressedBatchProof",
-      value: CompressedBatchProof.encode(message).finish()
-    };
-  }
-};
-function createBaseCompressedBatchEntry(): CompressedBatchEntry {
-  return {
-    exist: undefined,
-    nonexist: undefined
-  };
-}
-export const CompressedBatchEntry = {
-  typeUrl: "/ics23.CompressedBatchEntry",
-  encode(message: CompressedBatchEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.exist !== undefined) {
-      CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.nonexist !== undefined) {
-      CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CompressedBatchEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCompressedBatchEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.exist = CompressedExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.nonexist = CompressedNonExistenceProof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CompressedBatchEntry {
-    return {
-      exist: isSet(object.exist) ? CompressedExistenceProof.fromJSON(object.exist) : undefined,
-      nonexist: isSet(object.nonexist) ? CompressedNonExistenceProof.fromJSON(object.nonexist) : undefined
-    };
-  },
-  toJSON(message: CompressedBatchEntry): unknown {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? CompressedExistenceProof.toJSON(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CompressedBatchEntry>): CompressedBatchEntry {
-    const message = createBaseCompressedBatchEntry();
-    message.exist = object.exist !== undefined && object.exist !== null ? CompressedExistenceProof.fromPartial(object.exist) : undefined;
-    message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? CompressedNonExistenceProof.fromPartial(object.nonexist) : undefined;
-    return message;
-  },
-  fromSDK(object: CompressedBatchEntrySDKType): CompressedBatchEntry {
-    return {
-      exist: object.exist ? CompressedExistenceProof.fromSDK(object.exist) : undefined,
-      nonexist: object.nonexist ? CompressedNonExistenceProof.fromSDK(object.nonexist) : undefined
-    };
-  },
-  toSDK(message: CompressedBatchEntry): CompressedBatchEntrySDKType {
-    const obj: any = {};
-    message.exist !== undefined && (obj.exist = message.exist ? CompressedExistenceProof.toSDK(message.exist) : undefined);
-    message.nonexist !== undefined && (obj.nonexist = message.nonexist ? CompressedNonExistenceProof.toSDK(message.nonexist) : undefined);
-    return obj;
-  },
-  fromAmino(object: CompressedBatchEntryAmino): CompressedBatchEntry {
-    return {
-      exist: object?.exist ? CompressedExistenceProof.fromAmino(object.exist) : undefined,
-      nonexist: object?.nonexist ? CompressedNonExistenceProof.fromAmino(object.nonexist) : undefined
-    };
-  },
-  toAmino(message: CompressedBatchEntry): CompressedBatchEntryAmino {
-    const obj: any = {};
-    obj.exist = message.exist ? CompressedExistenceProof.toAmino(message.exist) : undefined;
-    obj.nonexist = message.nonexist ? CompressedNonExistenceProof.toAmino(message.nonexist) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CompressedBatchEntryAminoMsg): CompressedBatchEntry {
-    return CompressedBatchEntry.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CompressedBatchEntryProtoMsg): CompressedBatchEntry {
-    return CompressedBatchEntry.decode(message.value);
-  },
-  toProto(message: CompressedBatchEntry): Uint8Array {
-    return CompressedBatchEntry.encode(message).finish();
-  },
-  toProtoMsg(message: CompressedBatchEntry): CompressedBatchEntryProtoMsg {
-    return {
-      typeUrl: "/ics23.CompressedBatchEntry",
-      value: CompressedBatchEntry.encode(message).finish()
-    };
-  }
-};
-function createBaseCompressedExistenceProof(): CompressedExistenceProof {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array(),
-    leaf: LeafOp.fromPartial({}),
-    path: []
-  };
-}
-export const CompressedExistenceProof = {
-  typeUrl: "/ics23.CompressedExistenceProof",
-  encode(message: CompressedExistenceProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    if (message.leaf !== undefined) {
-      LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();
-    }
-    writer.uint32(34).fork();
-    for (const v of message.path) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CompressedExistenceProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCompressedExistenceProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        case 3:
-          message.leaf = LeafOp.decode(reader, reader.uint32());
-          break;
-        case 4:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.path.push(reader.int32());
-            }
-          } else {
-            message.path.push(reader.int32());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CompressedExistenceProof {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(),
-      leaf: isSet(object.leaf) ? LeafOp.fromJSON(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => Number(e)) : []
-    };
-  },
-  toJSON(message: CompressedExistenceProof): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined);
-    if (message.path) {
-      obj.path = message.path.map(e => Math.round(e));
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CompressedExistenceProof>): CompressedExistenceProof {
-    const message = createBaseCompressedExistenceProof();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    message.leaf = object.leaf !== undefined && object.leaf !== null ? LeafOp.fromPartial(object.leaf) : undefined;
-    message.path = object.path?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: CompressedExistenceProofSDKType): CompressedExistenceProof {
-    return {
-      key: object?.key,
-      value: object?.value,
-      leaf: object.leaf ? LeafOp.fromSDK(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: CompressedExistenceProof): CompressedExistenceProofSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toSDK(message.leaf) : undefined);
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CompressedExistenceProofAmino): CompressedExistenceProof {
-    return {
-      key: object.key,
-      value: object.value,
-      leaf: object?.leaf ? LeafOp.fromAmino(object.leaf) : undefined,
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: CompressedExistenceProof): CompressedExistenceProofAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.leaf = message.leaf ? LeafOp.toAmino(message.leaf) : undefined;
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CompressedExistenceProofAminoMsg): CompressedExistenceProof {
-    return CompressedExistenceProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CompressedExistenceProofProtoMsg): CompressedExistenceProof {
-    return CompressedExistenceProof.decode(message.value);
-  },
-  toProto(message: CompressedExistenceProof): Uint8Array {
-    return CompressedExistenceProof.encode(message).finish();
-  },
-  toProtoMsg(message: CompressedExistenceProof): CompressedExistenceProofProtoMsg {
-    return {
-      typeUrl: "/ics23.CompressedExistenceProof",
-      value: CompressedExistenceProof.encode(message).finish()
-    };
-  }
-};
-function createBaseCompressedNonExistenceProof(): CompressedNonExistenceProof {
-  return {
-    key: new Uint8Array(),
-    left: CompressedExistenceProof.fromPartial({}),
-    right: CompressedExistenceProof.fromPartial({})
-  };
-}
-export const CompressedNonExistenceProof = {
-  typeUrl: "/ics23.CompressedNonExistenceProof",
-  encode(message: CompressedNonExistenceProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.left !== undefined) {
-      CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.right !== undefined) {
-      CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CompressedNonExistenceProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCompressedNonExistenceProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.left = CompressedExistenceProof.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.right = CompressedExistenceProof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CompressedNonExistenceProof {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      left: isSet(object.left) ? CompressedExistenceProof.fromJSON(object.left) : undefined,
-      right: isSet(object.right) ? CompressedExistenceProof.fromJSON(object.right) : undefined
-    };
-  },
-  toJSON(message: CompressedNonExistenceProof): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.left !== undefined && (obj.left = message.left ? CompressedExistenceProof.toJSON(message.left) : undefined);
-    message.right !== undefined && (obj.right = message.right ? CompressedExistenceProof.toJSON(message.right) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CompressedNonExistenceProof>): CompressedNonExistenceProof {
-    const message = createBaseCompressedNonExistenceProof();
-    message.key = object.key ?? new Uint8Array();
-    message.left = object.left !== undefined && object.left !== null ? CompressedExistenceProof.fromPartial(object.left) : undefined;
-    message.right = object.right !== undefined && object.right !== null ? CompressedExistenceProof.fromPartial(object.right) : undefined;
-    return message;
-  },
-  fromSDK(object: CompressedNonExistenceProofSDKType): CompressedNonExistenceProof {
-    return {
-      key: object?.key,
-      left: object.left ? CompressedExistenceProof.fromSDK(object.left) : undefined,
-      right: object.right ? CompressedExistenceProof.fromSDK(object.right) : undefined
-    };
-  },
-  toSDK(message: CompressedNonExistenceProof): CompressedNonExistenceProofSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    message.left !== undefined && (obj.left = message.left ? CompressedExistenceProof.toSDK(message.left) : undefined);
-    message.right !== undefined && (obj.right = message.right ? CompressedExistenceProof.toSDK(message.right) : undefined);
-    return obj;
-  },
-  fromAmino(object: CompressedNonExistenceProofAmino): CompressedNonExistenceProof {
-    return {
-      key: object.key,
-      left: object?.left ? CompressedExistenceProof.fromAmino(object.left) : undefined,
-      right: object?.right ? CompressedExistenceProof.fromAmino(object.right) : undefined
-    };
-  },
-  toAmino(message: CompressedNonExistenceProof): CompressedNonExistenceProofAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.left = message.left ? CompressedExistenceProof.toAmino(message.left) : undefined;
-    obj.right = message.right ? CompressedExistenceProof.toAmino(message.right) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CompressedNonExistenceProofAminoMsg): CompressedNonExistenceProof {
-    return CompressedNonExistenceProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CompressedNonExistenceProofProtoMsg): CompressedNonExistenceProof {
-    return CompressedNonExistenceProof.decode(message.value);
-  },
-  toProto(message: CompressedNonExistenceProof): Uint8Array {
-    return CompressedNonExistenceProof.encode(message).finish();
-  },
-  toProtoMsg(message: CompressedNonExistenceProof): CompressedNonExistenceProofProtoMsg {
-    return {
-      typeUrl: "/ics23.CompressedNonExistenceProof",
-      value: CompressedNonExistenceProof.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/app/v1alpha1/config.ts b/examples/injective/src/codegen/cosmos/app/v1alpha1/config.ts
deleted file mode 100644
index eda0a15c..00000000
--- a/examples/injective/src/codegen/cosmos/app/v1alpha1/config.ts
+++ /dev/null
@@ -1,306 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/**
- * Config represents the configuration for a Cosmos SDK ABCI app.
- * It is intended that all state machine logic including the version of
- * baseapp and tx handlers (and possibly even Tendermint) that an app needs
- * can be described in a config object. For compatibility, the framework should
- * allow a mixture of declarative and imperative app wiring, however, apps
- * that strive for the maximum ease of maintainability should be able to describe
- * their state machine with a config object alone.
- */
-export interface Config {
-  /** modules are the module configurations for the app. */
-  modules: ModuleConfig[];
-}
-export interface ConfigProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.Config";
-  value: Uint8Array;
-}
-/**
- * Config represents the configuration for a Cosmos SDK ABCI app.
- * It is intended that all state machine logic including the version of
- * baseapp and tx handlers (and possibly even Tendermint) that an app needs
- * can be described in a config object. For compatibility, the framework should
- * allow a mixture of declarative and imperative app wiring, however, apps
- * that strive for the maximum ease of maintainability should be able to describe
- * their state machine with a config object alone.
- */
-export interface ConfigAmino {
-  /** modules are the module configurations for the app. */
-  modules: ModuleConfigAmino[];
-}
-export interface ConfigAminoMsg {
-  type: "cosmos-sdk/Config";
-  value: ConfigAmino;
-}
-/**
- * Config represents the configuration for a Cosmos SDK ABCI app.
- * It is intended that all state machine logic including the version of
- * baseapp and tx handlers (and possibly even Tendermint) that an app needs
- * can be described in a config object. For compatibility, the framework should
- * allow a mixture of declarative and imperative app wiring, however, apps
- * that strive for the maximum ease of maintainability should be able to describe
- * their state machine with a config object alone.
- */
-export interface ConfigSDKType {
-  modules: ModuleConfigSDKType[];
-}
-/** ModuleConfig is a module configuration for an app. */
-export interface ModuleConfig {
-  /**
-   * name is the unique name of the module within the app. It should be a name
-   * that persists between different versions of a module so that modules
-   * can be smoothly upgraded to new versions.
-   * 
-   * For example, for the module cosmos.bank.module.v1.Module, we may chose
-   * to simply name the module "bank" in the app. When we upgrade to
-   * cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same
-   * and the framework knows that the v2 module should receive all the same state
-   * that the v1 module had. Note: modules should provide info on which versions
-   * they can migrate from in the ModuleDescriptor.can_migration_from field.
-   */
-  name: string;
-  /**
-   * config is the config object for the module. Module config messages should
-   * define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension.
-   */
-  config: Any | undefined;
-}
-export interface ModuleConfigProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.ModuleConfig";
-  value: Uint8Array;
-}
-/** ModuleConfig is a module configuration for an app. */
-export interface ModuleConfigAmino {
-  /**
-   * name is the unique name of the module within the app. It should be a name
-   * that persists between different versions of a module so that modules
-   * can be smoothly upgraded to new versions.
-   * 
-   * For example, for the module cosmos.bank.module.v1.Module, we may chose
-   * to simply name the module "bank" in the app. When we upgrade to
-   * cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same
-   * and the framework knows that the v2 module should receive all the same state
-   * that the v1 module had. Note: modules should provide info on which versions
-   * they can migrate from in the ModuleDescriptor.can_migration_from field.
-   */
-  name: string;
-  /**
-   * config is the config object for the module. Module config messages should
-   * define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension.
-   */
-  config?: AnyAmino | undefined;
-}
-export interface ModuleConfigAminoMsg {
-  type: "cosmos-sdk/ModuleConfig";
-  value: ModuleConfigAmino;
-}
-/** ModuleConfig is a module configuration for an app. */
-export interface ModuleConfigSDKType {
-  name: string;
-  config: AnySDKType | undefined;
-}
-function createBaseConfig(): Config {
-  return {
-    modules: []
-  };
-}
-export const Config = {
-  typeUrl: "/cosmos.app.v1alpha1.Config",
-  aminoType: "cosmos-sdk/Config",
-  encode(message: Config, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.modules) {
-      ModuleConfig.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Config {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConfig();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.modules.push(ModuleConfig.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Config {
-    return {
-      modules: Array.isArray(object?.modules) ? object.modules.map((e: any) => ModuleConfig.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Config): unknown {
-    const obj: any = {};
-    if (message.modules) {
-      obj.modules = message.modules.map(e => e ? ModuleConfig.toJSON(e) : undefined);
-    } else {
-      obj.modules = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Config>): Config {
-    const message = createBaseConfig();
-    message.modules = object.modules?.map(e => ModuleConfig.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ConfigSDKType): Config {
-    return {
-      modules: Array.isArray(object?.modules) ? object.modules.map((e: any) => ModuleConfig.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Config): ConfigSDKType {
-    const obj: any = {};
-    if (message.modules) {
-      obj.modules = message.modules.map(e => e ? ModuleConfig.toSDK(e) : undefined);
-    } else {
-      obj.modules = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ConfigAmino): Config {
-    return {
-      modules: Array.isArray(object?.modules) ? object.modules.map((e: any) => ModuleConfig.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Config): ConfigAmino {
-    const obj: any = {};
-    if (message.modules) {
-      obj.modules = message.modules.map(e => e ? ModuleConfig.toAmino(e) : undefined);
-    } else {
-      obj.modules = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ConfigAminoMsg): Config {
-    return Config.fromAmino(object.value);
-  },
-  toAminoMsg(message: Config): ConfigAminoMsg {
-    return {
-      type: "cosmos-sdk/Config",
-      value: Config.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConfigProtoMsg): Config {
-    return Config.decode(message.value);
-  },
-  toProto(message: Config): Uint8Array {
-    return Config.encode(message).finish();
-  },
-  toProtoMsg(message: Config): ConfigProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.Config",
-      value: Config.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleConfig(): ModuleConfig {
-  return {
-    name: "",
-    config: Any.fromPartial({})
-  };
-}
-export const ModuleConfig = {
-  typeUrl: "/cosmos.app.v1alpha1.ModuleConfig",
-  aminoType: "cosmos-sdk/ModuleConfig",
-  encode(message: ModuleConfig, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.config !== undefined) {
-      Any.encode(message.config, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleConfig {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleConfig();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.config = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleConfig {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      config: isSet(object.config) ? Any.fromJSON(object.config) : undefined
-    };
-  },
-  toJSON(message: ModuleConfig): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.config !== undefined && (obj.config = message.config ? Any.toJSON(message.config) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleConfig>): ModuleConfig {
-    const message = createBaseModuleConfig();
-    message.name = object.name ?? "";
-    message.config = object.config !== undefined && object.config !== null ? Any.fromPartial(object.config) : undefined;
-    return message;
-  },
-  fromSDK(object: ModuleConfigSDKType): ModuleConfig {
-    return {
-      name: object?.name,
-      config: object.config ? Any.fromSDK(object.config) : undefined
-    };
-  },
-  toSDK(message: ModuleConfig): ModuleConfigSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    message.config !== undefined && (obj.config = message.config ? Any.toSDK(message.config) : undefined);
-    return obj;
-  },
-  fromAmino(object: ModuleConfigAmino): ModuleConfig {
-    return {
-      name: object.name,
-      config: object?.config ? Any.fromAmino(object.config) : undefined
-    };
-  },
-  toAmino(message: ModuleConfig): ModuleConfigAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.config = message.config ? Any.toAmino(message.config) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ModuleConfigAminoMsg): ModuleConfig {
-    return ModuleConfig.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleConfig): ModuleConfigAminoMsg {
-    return {
-      type: "cosmos-sdk/ModuleConfig",
-      value: ModuleConfig.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleConfigProtoMsg): ModuleConfig {
-    return ModuleConfig.decode(message.value);
-  },
-  toProto(message: ModuleConfig): Uint8Array {
-    return ModuleConfig.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleConfig): ModuleConfigProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.ModuleConfig",
-      value: ModuleConfig.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/app/v1alpha1/module.ts b/examples/injective/src/codegen/cosmos/app/v1alpha1/module.ts
deleted file mode 100644
index 38394f94..00000000
--- a/examples/injective/src/codegen/cosmos/app/v1alpha1/module.ts
+++ /dev/null
@@ -1,538 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** ModuleDescriptor describes an app module. */
-export interface ModuleDescriptor {
-  /**
-   * go_import names the package that should be imported by an app to load the
-   * module in the runtime module registry. Either go_import must be defined here
-   * or the go_package option must be defined at the file level to indicate
-   * to users where to location the module implementation. go_import takes
-   * precedence over go_package when both are defined.
-   */
-  goImport: string;
-  /**
-   * use_package refers to a protobuf package that this module
-   * uses and exposes to the world. In an app, only one module should "use"
-   * or own a single protobuf package. It is assumed that the module uses
-   * all of the .proto files in a single package.
-   */
-  usePackage: PackageReference[];
-  /**
-   * can_migrate_from defines which module versions this module can migrate
-   * state from. The framework will check that one module version is able to
-   * migrate from a previous module version before attempting to update its
-   * config. It is assumed that modules can transitively migrate from earlier
-   * versions. For instance if v3 declares it can migrate from v2, and v2
-   * declares it can migrate from v1, the framework knows how to migrate
-   * from v1 to v3, assuming all 3 module versions are registered at runtime.
-   */
-  canMigrateFrom: MigrateFromInfo[];
-}
-export interface ModuleDescriptorProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.ModuleDescriptor";
-  value: Uint8Array;
-}
-/** ModuleDescriptor describes an app module. */
-export interface ModuleDescriptorAmino {
-  /**
-   * go_import names the package that should be imported by an app to load the
-   * module in the runtime module registry. Either go_import must be defined here
-   * or the go_package option must be defined at the file level to indicate
-   * to users where to location the module implementation. go_import takes
-   * precedence over go_package when both are defined.
-   */
-  go_import: string;
-  /**
-   * use_package refers to a protobuf package that this module
-   * uses and exposes to the world. In an app, only one module should "use"
-   * or own a single protobuf package. It is assumed that the module uses
-   * all of the .proto files in a single package.
-   */
-  use_package: PackageReferenceAmino[];
-  /**
-   * can_migrate_from defines which module versions this module can migrate
-   * state from. The framework will check that one module version is able to
-   * migrate from a previous module version before attempting to update its
-   * config. It is assumed that modules can transitively migrate from earlier
-   * versions. For instance if v3 declares it can migrate from v2, and v2
-   * declares it can migrate from v1, the framework knows how to migrate
-   * from v1 to v3, assuming all 3 module versions are registered at runtime.
-   */
-  can_migrate_from: MigrateFromInfoAmino[];
-}
-export interface ModuleDescriptorAminoMsg {
-  type: "cosmos-sdk/ModuleDescriptor";
-  value: ModuleDescriptorAmino;
-}
-/** ModuleDescriptor describes an app module. */
-export interface ModuleDescriptorSDKType {
-  go_import: string;
-  use_package: PackageReferenceSDKType[];
-  can_migrate_from: MigrateFromInfoSDKType[];
-}
-/** PackageReference is a reference to a protobuf package used by a module. */
-export interface PackageReference {
-  /** name is the fully-qualified name of the package. */
-  name: string;
-  /**
-   * revision is the optional revision of the package that is being used.
-   * Protobuf packages used in Cosmos should generally have a major version
-   * as the last part of the package name, ex. foo.bar.baz.v1.
-   * The revision of a package can be thought of as the minor version of a
-   * package which has additional backwards compatible definitions that weren't
-   * present in a previous version.
-   * 
-   * A package should indicate its revision with a source code comment
-   * above the package declaration in one of its fields containing the
-   * test "Revision N" where N is an integer revision. All packages start
-   * at revision 0 the first time they are released in a module.
-   * 
-   * When a new version of a module is released and items are added to existing
-   * .proto files, these definitions should contain comments of the form
-   * "Since Revision N" where N is an integer revision.
-   * 
-   * When the module runtime starts up, it will check the pinned proto
-   * image and panic if there are runtime protobuf definitions that are not
-   * in the pinned descriptor which do not have
-   * a "Since Revision N" comment or have a "Since Revision N" comment where
-   * N is <= to the revision specified here. This indicates that the protobuf
-   * files have been updated, but the pinned file descriptor hasn't.
-   * 
-   * If there are items in the pinned file descriptor with a revision
-   * greater than the value indicated here, this will also cause a panic
-   * as it may mean that the pinned descriptor for a legacy module has been
-   * improperly updated or that there is some other versioning discrepancy.
-   * Runtime protobuf definitions will also be checked for compatibility
-   * with pinned file descriptors to make sure there are no incompatible changes.
-   * 
-   * This behavior ensures that:
-   * * pinned proto images are up-to-date
-   * * protobuf files are carefully annotated with revision comments which
-   *   are important good client UX
-   * * protobuf files are changed in backwards and forwards compatible ways
-   */
-  revision: number;
-}
-export interface PackageReferenceProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.PackageReference";
-  value: Uint8Array;
-}
-/** PackageReference is a reference to a protobuf package used by a module. */
-export interface PackageReferenceAmino {
-  /** name is the fully-qualified name of the package. */
-  name: string;
-  /**
-   * revision is the optional revision of the package that is being used.
-   * Protobuf packages used in Cosmos should generally have a major version
-   * as the last part of the package name, ex. foo.bar.baz.v1.
-   * The revision of a package can be thought of as the minor version of a
-   * package which has additional backwards compatible definitions that weren't
-   * present in a previous version.
-   * 
-   * A package should indicate its revision with a source code comment
-   * above the package declaration in one of its fields containing the
-   * test "Revision N" where N is an integer revision. All packages start
-   * at revision 0 the first time they are released in a module.
-   * 
-   * When a new version of a module is released and items are added to existing
-   * .proto files, these definitions should contain comments of the form
-   * "Since Revision N" where N is an integer revision.
-   * 
-   * When the module runtime starts up, it will check the pinned proto
-   * image and panic if there are runtime protobuf definitions that are not
-   * in the pinned descriptor which do not have
-   * a "Since Revision N" comment or have a "Since Revision N" comment where
-   * N is <= to the revision specified here. This indicates that the protobuf
-   * files have been updated, but the pinned file descriptor hasn't.
-   * 
-   * If there are items in the pinned file descriptor with a revision
-   * greater than the value indicated here, this will also cause a panic
-   * as it may mean that the pinned descriptor for a legacy module has been
-   * improperly updated or that there is some other versioning discrepancy.
-   * Runtime protobuf definitions will also be checked for compatibility
-   * with pinned file descriptors to make sure there are no incompatible changes.
-   * 
-   * This behavior ensures that:
-   * * pinned proto images are up-to-date
-   * * protobuf files are carefully annotated with revision comments which
-   *   are important good client UX
-   * * protobuf files are changed in backwards and forwards compatible ways
-   */
-  revision: number;
-}
-export interface PackageReferenceAminoMsg {
-  type: "cosmos-sdk/PackageReference";
-  value: PackageReferenceAmino;
-}
-/** PackageReference is a reference to a protobuf package used by a module. */
-export interface PackageReferenceSDKType {
-  name: string;
-  revision: number;
-}
-/**
- * MigrateFromInfo is information on a module version that a newer module
- * can migrate from.
- */
-export interface MigrateFromInfo {
-  /**
-   * module is the fully-qualified protobuf name of the module config object
-   * for the previous module version, ex: "cosmos.group.module.v1.Module".
-   */
-  module: string;
-}
-export interface MigrateFromInfoProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.MigrateFromInfo";
-  value: Uint8Array;
-}
-/**
- * MigrateFromInfo is information on a module version that a newer module
- * can migrate from.
- */
-export interface MigrateFromInfoAmino {
-  /**
-   * module is the fully-qualified protobuf name of the module config object
-   * for the previous module version, ex: "cosmos.group.module.v1.Module".
-   */
-  module: string;
-}
-export interface MigrateFromInfoAminoMsg {
-  type: "cosmos-sdk/MigrateFromInfo";
-  value: MigrateFromInfoAmino;
-}
-/**
- * MigrateFromInfo is information on a module version that a newer module
- * can migrate from.
- */
-export interface MigrateFromInfoSDKType {
-  module: string;
-}
-function createBaseModuleDescriptor(): ModuleDescriptor {
-  return {
-    goImport: "",
-    usePackage: [],
-    canMigrateFrom: []
-  };
-}
-export const ModuleDescriptor = {
-  typeUrl: "/cosmos.app.v1alpha1.ModuleDescriptor",
-  aminoType: "cosmos-sdk/ModuleDescriptor",
-  encode(message: ModuleDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.goImport !== "") {
-      writer.uint32(10).string(message.goImport);
-    }
-    for (const v of message.usePackage) {
-      PackageReference.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.canMigrateFrom) {
-      MigrateFromInfo.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.goImport = reader.string();
-          break;
-        case 2:
-          message.usePackage.push(PackageReference.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.canMigrateFrom.push(MigrateFromInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleDescriptor {
-    return {
-      goImport: isSet(object.goImport) ? String(object.goImport) : "",
-      usePackage: Array.isArray(object?.usePackage) ? object.usePackage.map((e: any) => PackageReference.fromJSON(e)) : [],
-      canMigrateFrom: Array.isArray(object?.canMigrateFrom) ? object.canMigrateFrom.map((e: any) => MigrateFromInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ModuleDescriptor): unknown {
-    const obj: any = {};
-    message.goImport !== undefined && (obj.goImport = message.goImport);
-    if (message.usePackage) {
-      obj.usePackage = message.usePackage.map(e => e ? PackageReference.toJSON(e) : undefined);
-    } else {
-      obj.usePackage = [];
-    }
-    if (message.canMigrateFrom) {
-      obj.canMigrateFrom = message.canMigrateFrom.map(e => e ? MigrateFromInfo.toJSON(e) : undefined);
-    } else {
-      obj.canMigrateFrom = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleDescriptor>): ModuleDescriptor {
-    const message = createBaseModuleDescriptor();
-    message.goImport = object.goImport ?? "";
-    message.usePackage = object.usePackage?.map(e => PackageReference.fromPartial(e)) || [];
-    message.canMigrateFrom = object.canMigrateFrom?.map(e => MigrateFromInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ModuleDescriptorSDKType): ModuleDescriptor {
-    return {
-      goImport: object?.go_import,
-      usePackage: Array.isArray(object?.use_package) ? object.use_package.map((e: any) => PackageReference.fromSDK(e)) : [],
-      canMigrateFrom: Array.isArray(object?.can_migrate_from) ? object.can_migrate_from.map((e: any) => MigrateFromInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ModuleDescriptor): ModuleDescriptorSDKType {
-    const obj: any = {};
-    obj.go_import = message.goImport;
-    if (message.usePackage) {
-      obj.use_package = message.usePackage.map(e => e ? PackageReference.toSDK(e) : undefined);
-    } else {
-      obj.use_package = [];
-    }
-    if (message.canMigrateFrom) {
-      obj.can_migrate_from = message.canMigrateFrom.map(e => e ? MigrateFromInfo.toSDK(e) : undefined);
-    } else {
-      obj.can_migrate_from = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModuleDescriptorAmino): ModuleDescriptor {
-    return {
-      goImport: object.go_import,
-      usePackage: Array.isArray(object?.use_package) ? object.use_package.map((e: any) => PackageReference.fromAmino(e)) : [],
-      canMigrateFrom: Array.isArray(object?.can_migrate_from) ? object.can_migrate_from.map((e: any) => MigrateFromInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ModuleDescriptor): ModuleDescriptorAmino {
-    const obj: any = {};
-    obj.go_import = message.goImport;
-    if (message.usePackage) {
-      obj.use_package = message.usePackage.map(e => e ? PackageReference.toAmino(e) : undefined);
-    } else {
-      obj.use_package = [];
-    }
-    if (message.canMigrateFrom) {
-      obj.can_migrate_from = message.canMigrateFrom.map(e => e ? MigrateFromInfo.toAmino(e) : undefined);
-    } else {
-      obj.can_migrate_from = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModuleDescriptorAminoMsg): ModuleDescriptor {
-    return ModuleDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleDescriptor): ModuleDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/ModuleDescriptor",
-      value: ModuleDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleDescriptorProtoMsg): ModuleDescriptor {
-    return ModuleDescriptor.decode(message.value);
-  },
-  toProto(message: ModuleDescriptor): Uint8Array {
-    return ModuleDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleDescriptor): ModuleDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.ModuleDescriptor",
-      value: ModuleDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBasePackageReference(): PackageReference {
-  return {
-    name: "",
-    revision: 0
-  };
-}
-export const PackageReference = {
-  typeUrl: "/cosmos.app.v1alpha1.PackageReference",
-  aminoType: "cosmos-sdk/PackageReference",
-  encode(message: PackageReference, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.revision !== 0) {
-      writer.uint32(16).uint32(message.revision);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PackageReference {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePackageReference();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.revision = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PackageReference {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      revision: isSet(object.revision) ? Number(object.revision) : 0
-    };
-  },
-  toJSON(message: PackageReference): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.revision !== undefined && (obj.revision = Math.round(message.revision));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PackageReference>): PackageReference {
-    const message = createBasePackageReference();
-    message.name = object.name ?? "";
-    message.revision = object.revision ?? 0;
-    return message;
-  },
-  fromSDK(object: PackageReferenceSDKType): PackageReference {
-    return {
-      name: object?.name,
-      revision: object?.revision
-    };
-  },
-  toSDK(message: PackageReference): PackageReferenceSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.revision = message.revision;
-    return obj;
-  },
-  fromAmino(object: PackageReferenceAmino): PackageReference {
-    return {
-      name: object.name,
-      revision: object.revision
-    };
-  },
-  toAmino(message: PackageReference): PackageReferenceAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.revision = message.revision;
-    return obj;
-  },
-  fromAminoMsg(object: PackageReferenceAminoMsg): PackageReference {
-    return PackageReference.fromAmino(object.value);
-  },
-  toAminoMsg(message: PackageReference): PackageReferenceAminoMsg {
-    return {
-      type: "cosmos-sdk/PackageReference",
-      value: PackageReference.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PackageReferenceProtoMsg): PackageReference {
-    return PackageReference.decode(message.value);
-  },
-  toProto(message: PackageReference): Uint8Array {
-    return PackageReference.encode(message).finish();
-  },
-  toProtoMsg(message: PackageReference): PackageReferenceProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.PackageReference",
-      value: PackageReference.encode(message).finish()
-    };
-  }
-};
-function createBaseMigrateFromInfo(): MigrateFromInfo {
-  return {
-    module: ""
-  };
-}
-export const MigrateFromInfo = {
-  typeUrl: "/cosmos.app.v1alpha1.MigrateFromInfo",
-  aminoType: "cosmos-sdk/MigrateFromInfo",
-  encode(message: MigrateFromInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.module !== "") {
-      writer.uint32(10).string(message.module);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MigrateFromInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMigrateFromInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.module = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MigrateFromInfo {
-    return {
-      module: isSet(object.module) ? String(object.module) : ""
-    };
-  },
-  toJSON(message: MigrateFromInfo): unknown {
-    const obj: any = {};
-    message.module !== undefined && (obj.module = message.module);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MigrateFromInfo>): MigrateFromInfo {
-    const message = createBaseMigrateFromInfo();
-    message.module = object.module ?? "";
-    return message;
-  },
-  fromSDK(object: MigrateFromInfoSDKType): MigrateFromInfo {
-    return {
-      module: object?.module
-    };
-  },
-  toSDK(message: MigrateFromInfo): MigrateFromInfoSDKType {
-    const obj: any = {};
-    obj.module = message.module;
-    return obj;
-  },
-  fromAmino(object: MigrateFromInfoAmino): MigrateFromInfo {
-    return {
-      module: object.module
-    };
-  },
-  toAmino(message: MigrateFromInfo): MigrateFromInfoAmino {
-    const obj: any = {};
-    obj.module = message.module;
-    return obj;
-  },
-  fromAminoMsg(object: MigrateFromInfoAminoMsg): MigrateFromInfo {
-    return MigrateFromInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: MigrateFromInfo): MigrateFromInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/MigrateFromInfo",
-      value: MigrateFromInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MigrateFromInfoProtoMsg): MigrateFromInfo {
-    return MigrateFromInfo.decode(message.value);
-  },
-  toProto(message: MigrateFromInfo): Uint8Array {
-    return MigrateFromInfo.encode(message).finish();
-  },
-  toProtoMsg(message: MigrateFromInfo): MigrateFromInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.MigrateFromInfo",
-      value: MigrateFromInfo.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/app/v1alpha1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/app/v1alpha1/query.rpc.Query.ts
deleted file mode 100644
index 824a36a2..00000000
--- a/examples/injective/src/codegen/cosmos/app/v1alpha1/query.rpc.Query.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryConfigRequest, QueryConfigResponse } from "./query";
-/** Query is the app module query service. */
-export interface Query {
-  /** Config returns the current app config. */
-  config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.config = this.config.bind(this);
-  }
-  config(request: QueryConfigRequest = {}): Promise<QueryConfigResponse> {
-    const data = QueryConfigRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.app.v1alpha1.Query", "Config", data);
-    return promise.then(data => QueryConfigResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    config(request?: QueryConfigRequest): Promise<QueryConfigResponse> {
-      return queryService.config(request);
-    }
-  };
-};
-export interface UseConfigQuery<TData> extends ReactQueryParams<QueryConfigResponse, TData> {
-  request?: QueryConfigRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useConfig = <TData = QueryConfigResponse,>({
-    request,
-    options
-  }: UseConfigQuery<TData>) => {
-    return useQuery<QueryConfigResponse, Error, TData>(["configQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.config(request);
-    }, options);
-  };
-  return {
-    /** Config returns the current app config. */useConfig
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryConfigStore {
-    store = new QueryStore<QueryConfigRequest, QueryConfigResponse>(queryService?.config);
-    config(request: QueryConfigRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Config returns the current app config. */QueryConfigStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/app/v1alpha1/query.ts b/examples/injective/src/codegen/cosmos/app/v1alpha1/query.ts
deleted file mode 100644
index c0d25a19..00000000
--- a/examples/injective/src/codegen/cosmos/app/v1alpha1/query.ts
+++ /dev/null
@@ -1,197 +0,0 @@
-import { Config, ConfigAmino, ConfigSDKType } from "./config";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryConfigRequest is the Query/Config request type. */
-export interface QueryConfigRequest {}
-export interface QueryConfigRequestProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.QueryConfigRequest";
-  value: Uint8Array;
-}
-/** QueryConfigRequest is the Query/Config request type. */
-export interface QueryConfigRequestAmino {}
-export interface QueryConfigRequestAminoMsg {
-  type: "cosmos-sdk/QueryConfigRequest";
-  value: QueryConfigRequestAmino;
-}
-/** QueryConfigRequest is the Query/Config request type. */
-export interface QueryConfigRequestSDKType {}
-/** QueryConfigRequest is the Query/Config response type. */
-export interface QueryConfigResponse {
-  /** config is the current app config. */
-  config: Config | undefined;
-}
-export interface QueryConfigResponseProtoMsg {
-  typeUrl: "/cosmos.app.v1alpha1.QueryConfigResponse";
-  value: Uint8Array;
-}
-/** QueryConfigRequest is the Query/Config response type. */
-export interface QueryConfigResponseAmino {
-  /** config is the current app config. */
-  config?: ConfigAmino | undefined;
-}
-export interface QueryConfigResponseAminoMsg {
-  type: "cosmos-sdk/QueryConfigResponse";
-  value: QueryConfigResponseAmino;
-}
-/** QueryConfigRequest is the Query/Config response type. */
-export interface QueryConfigResponseSDKType {
-  config: ConfigSDKType | undefined;
-}
-function createBaseQueryConfigRequest(): QueryConfigRequest {
-  return {};
-}
-export const QueryConfigRequest = {
-  typeUrl: "/cosmos.app.v1alpha1.QueryConfigRequest",
-  aminoType: "cosmos-sdk/QueryConfigRequest",
-  encode(_: QueryConfigRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConfigRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConfigRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryConfigRequest {
-    return {};
-  },
-  toJSON(_: QueryConfigRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryConfigRequest>): QueryConfigRequest {
-    const message = createBaseQueryConfigRequest();
-    return message;
-  },
-  fromSDK(_: QueryConfigRequestSDKType): QueryConfigRequest {
-    return {};
-  },
-  toSDK(_: QueryConfigRequest): QueryConfigRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryConfigRequestAmino): QueryConfigRequest {
-    return {};
-  },
-  toAmino(_: QueryConfigRequest): QueryConfigRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConfigRequestAminoMsg): QueryConfigRequest {
-    return QueryConfigRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConfigRequest): QueryConfigRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConfigRequest",
-      value: QueryConfigRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConfigRequestProtoMsg): QueryConfigRequest {
-    return QueryConfigRequest.decode(message.value);
-  },
-  toProto(message: QueryConfigRequest): Uint8Array {
-    return QueryConfigRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConfigRequest): QueryConfigRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.QueryConfigRequest",
-      value: QueryConfigRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConfigResponse(): QueryConfigResponse {
-  return {
-    config: Config.fromPartial({})
-  };
-}
-export const QueryConfigResponse = {
-  typeUrl: "/cosmos.app.v1alpha1.QueryConfigResponse",
-  aminoType: "cosmos-sdk/QueryConfigResponse",
-  encode(message: QueryConfigResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.config !== undefined) {
-      Config.encode(message.config, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConfigResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConfigResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.config = Config.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConfigResponse {
-    return {
-      config: isSet(object.config) ? Config.fromJSON(object.config) : undefined
-    };
-  },
-  toJSON(message: QueryConfigResponse): unknown {
-    const obj: any = {};
-    message.config !== undefined && (obj.config = message.config ? Config.toJSON(message.config) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConfigResponse>): QueryConfigResponse {
-    const message = createBaseQueryConfigResponse();
-    message.config = object.config !== undefined && object.config !== null ? Config.fromPartial(object.config) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConfigResponseSDKType): QueryConfigResponse {
-    return {
-      config: object.config ? Config.fromSDK(object.config) : undefined
-    };
-  },
-  toSDK(message: QueryConfigResponse): QueryConfigResponseSDKType {
-    const obj: any = {};
-    message.config !== undefined && (obj.config = message.config ? Config.toSDK(message.config) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConfigResponseAmino): QueryConfigResponse {
-    return {
-      config: object?.config ? Config.fromAmino(object.config) : undefined
-    };
-  },
-  toAmino(message: QueryConfigResponse): QueryConfigResponseAmino {
-    const obj: any = {};
-    obj.config = message.config ? Config.toAmino(message.config) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConfigResponseAminoMsg): QueryConfigResponse {
-    return QueryConfigResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConfigResponse): QueryConfigResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConfigResponse",
-      value: QueryConfigResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConfigResponseProtoMsg): QueryConfigResponse {
-    return QueryConfigResponse.decode(message.value);
-  },
-  toProto(message: QueryConfigResponse): Uint8Array {
-    return QueryConfigResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConfigResponse): QueryConfigResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.app.v1alpha1.QueryConfigResponse",
-      value: QueryConfigResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/auth/v1beta1/auth.ts b/examples/injective/src/codegen/cosmos/auth/v1beta1/auth.ts
deleted file mode 100644
index da7c5280..00000000
--- a/examples/injective/src/codegen/cosmos/auth/v1beta1/auth.ts
+++ /dev/null
@@ -1,504 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * BaseAccount defines a base account type. It contains all the necessary fields
- * for basic account functionality. Any custom account type should extend this
- * type for additional functionality (e.g. vesting).
- */
-export interface BaseAccount {
-  address: string;
-  pubKey: Any | undefined;
-  accountNumber: bigint;
-  sequence: bigint;
-}
-export interface BaseAccountProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.BaseAccount";
-  value: Uint8Array;
-}
-/**
- * BaseAccount defines a base account type. It contains all the necessary fields
- * for basic account functionality. Any custom account type should extend this
- * type for additional functionality (e.g. vesting).
- */
-export interface BaseAccountAmino {
-  address: string;
-  pub_key?: AnyAmino | undefined;
-  account_number: string;
-  sequence: string;
-}
-export interface BaseAccountAminoMsg {
-  type: "cosmos-sdk/BaseAccount";
-  value: BaseAccountAmino;
-}
-/**
- * BaseAccount defines a base account type. It contains all the necessary fields
- * for basic account functionality. Any custom account type should extend this
- * type for additional functionality (e.g. vesting).
- */
-export interface BaseAccountSDKType {
-  address: string;
-  pub_key: AnySDKType | undefined;
-  account_number: bigint;
-  sequence: bigint;
-}
-/** ModuleAccount defines an account for modules that holds coins on a pool. */
-export interface ModuleAccount {
-  baseAccount: BaseAccount | undefined;
-  name: string;
-  permissions: string[];
-}
-export interface ModuleAccountProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.ModuleAccount";
-  value: Uint8Array;
-}
-/** ModuleAccount defines an account for modules that holds coins on a pool. */
-export interface ModuleAccountAmino {
-  base_account?: BaseAccountAmino | undefined;
-  name: string;
-  permissions: string[];
-}
-export interface ModuleAccountAminoMsg {
-  type: "cosmos-sdk/ModuleAccount";
-  value: ModuleAccountAmino;
-}
-/** ModuleAccount defines an account for modules that holds coins on a pool. */
-export interface ModuleAccountSDKType {
-  base_account: BaseAccountSDKType | undefined;
-  name: string;
-  permissions: string[];
-}
-/** Params defines the parameters for the auth module. */
-export interface Params {
-  maxMemoCharacters: bigint;
-  txSigLimit: bigint;
-  txSizeCostPerByte: bigint;
-  sigVerifyCostEd25519: bigint;
-  sigVerifyCostSecp256k1: bigint;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the parameters for the auth module. */
-export interface ParamsAmino {
-  max_memo_characters: string;
-  tx_sig_limit: string;
-  tx_size_cost_per_byte: string;
-  sig_verify_cost_ed25519: string;
-  sig_verify_cost_secp256k1: string;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the parameters for the auth module. */
-export interface ParamsSDKType {
-  max_memo_characters: bigint;
-  tx_sig_limit: bigint;
-  tx_size_cost_per_byte: bigint;
-  sig_verify_cost_ed25519: bigint;
-  sig_verify_cost_secp256k1: bigint;
-}
-function createBaseBaseAccount(): BaseAccount {
-  return {
-    address: "",
-    pubKey: Any.fromPartial({}),
-    accountNumber: BigInt(0),
-    sequence: BigInt(0)
-  };
-}
-export const BaseAccount = {
-  typeUrl: "/cosmos.auth.v1beta1.BaseAccount",
-  aminoType: "cosmos-sdk/BaseAccount",
-  encode(message: BaseAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pubKey !== undefined) {
-      Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.accountNumber !== BigInt(0)) {
-      writer.uint32(24).uint64(message.accountNumber);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(32).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BaseAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBaseAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pubKey = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.accountNumber = reader.uint64();
-          break;
-        case 4:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BaseAccount {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pubKey: isSet(object.pubKey) ? Any.fromJSON(object.pubKey) : undefined,
-      accountNumber: isSet(object.accountNumber) ? BigInt(object.accountNumber.toString()) : BigInt(0),
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: BaseAccount): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? Any.toJSON(message.pubKey) : undefined);
-    message.accountNumber !== undefined && (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BaseAccount>): BaseAccount {
-    const message = createBaseBaseAccount();
-    message.address = object.address ?? "";
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined;
-    message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? BigInt(object.accountNumber.toString()) : BigInt(0);
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: BaseAccountSDKType): BaseAccount {
-    return {
-      address: object?.address,
-      pubKey: object.pub_key ? Any.fromSDK(object.pub_key) : undefined,
-      accountNumber: object?.account_number,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: BaseAccount): BaseAccountSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? Any.toSDK(message.pubKey) : undefined);
-    obj.account_number = message.accountNumber;
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: BaseAccountAmino): BaseAccount {
-    return {
-      address: object.address,
-      pubKey: object?.pub_key ? Any.fromAmino(object.pub_key) : undefined,
-      accountNumber: BigInt(object.account_number),
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: BaseAccount): BaseAccountAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pub_key = message.pubKey ? Any.toAmino(message.pubKey) : undefined;
-    obj.account_number = message.accountNumber ? message.accountNumber.toString() : undefined;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BaseAccountAminoMsg): BaseAccount {
-    return BaseAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: BaseAccount): BaseAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/BaseAccount",
-      value: BaseAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BaseAccountProtoMsg): BaseAccount {
-    return BaseAccount.decode(message.value);
-  },
-  toProto(message: BaseAccount): Uint8Array {
-    return BaseAccount.encode(message).finish();
-  },
-  toProtoMsg(message: BaseAccount): BaseAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.BaseAccount",
-      value: BaseAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleAccount(): ModuleAccount {
-  return {
-    baseAccount: BaseAccount.fromPartial({}),
-    name: "",
-    permissions: []
-  };
-}
-export const ModuleAccount = {
-  typeUrl: "/cosmos.auth.v1beta1.ModuleAccount",
-  aminoType: "cosmos-sdk/ModuleAccount",
-  encode(message: ModuleAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseAccount !== undefined) {
-      BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.name !== "") {
-      writer.uint32(18).string(message.name);
-    }
-    for (const v of message.permissions) {
-      writer.uint32(26).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseAccount = BaseAccount.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.name = reader.string();
-          break;
-        case 3:
-          message.permissions.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleAccount {
-    return {
-      baseAccount: isSet(object.baseAccount) ? BaseAccount.fromJSON(object.baseAccount) : undefined,
-      name: isSet(object.name) ? String(object.name) : "",
-      permissions: Array.isArray(object?.permissions) ? object.permissions.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ModuleAccount): unknown {
-    const obj: any = {};
-    message.baseAccount !== undefined && (obj.baseAccount = message.baseAccount ? BaseAccount.toJSON(message.baseAccount) : undefined);
-    message.name !== undefined && (obj.name = message.name);
-    if (message.permissions) {
-      obj.permissions = message.permissions.map(e => e);
-    } else {
-      obj.permissions = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleAccount>): ModuleAccount {
-    const message = createBaseModuleAccount();
-    message.baseAccount = object.baseAccount !== undefined && object.baseAccount !== null ? BaseAccount.fromPartial(object.baseAccount) : undefined;
-    message.name = object.name ?? "";
-    message.permissions = object.permissions?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ModuleAccountSDKType): ModuleAccount {
-    return {
-      baseAccount: object.base_account ? BaseAccount.fromSDK(object.base_account) : undefined,
-      name: object?.name,
-      permissions: Array.isArray(object?.permissions) ? object.permissions.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ModuleAccount): ModuleAccountSDKType {
-    const obj: any = {};
-    message.baseAccount !== undefined && (obj.base_account = message.baseAccount ? BaseAccount.toSDK(message.baseAccount) : undefined);
-    obj.name = message.name;
-    if (message.permissions) {
-      obj.permissions = message.permissions.map(e => e);
-    } else {
-      obj.permissions = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModuleAccountAmino): ModuleAccount {
-    return {
-      baseAccount: object?.base_account ? BaseAccount.fromAmino(object.base_account) : undefined,
-      name: object.name,
-      permissions: Array.isArray(object?.permissions) ? object.permissions.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ModuleAccount): ModuleAccountAmino {
-    const obj: any = {};
-    obj.base_account = message.baseAccount ? BaseAccount.toAmino(message.baseAccount) : undefined;
-    obj.name = message.name;
-    if (message.permissions) {
-      obj.permissions = message.permissions.map(e => e);
-    } else {
-      obj.permissions = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModuleAccountAminoMsg): ModuleAccount {
-    return ModuleAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleAccount): ModuleAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/ModuleAccount",
-      value: ModuleAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleAccountProtoMsg): ModuleAccount {
-    return ModuleAccount.decode(message.value);
-  },
-  toProto(message: ModuleAccount): Uint8Array {
-    return ModuleAccount.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleAccount): ModuleAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.ModuleAccount",
-      value: ModuleAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    maxMemoCharacters: BigInt(0),
-    txSigLimit: BigInt(0),
-    txSizeCostPerByte: BigInt(0),
-    sigVerifyCostEd25519: BigInt(0),
-    sigVerifyCostSecp256k1: BigInt(0)
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.auth.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxMemoCharacters !== BigInt(0)) {
-      writer.uint32(8).uint64(message.maxMemoCharacters);
-    }
-    if (message.txSigLimit !== BigInt(0)) {
-      writer.uint32(16).uint64(message.txSigLimit);
-    }
-    if (message.txSizeCostPerByte !== BigInt(0)) {
-      writer.uint32(24).uint64(message.txSizeCostPerByte);
-    }
-    if (message.sigVerifyCostEd25519 !== BigInt(0)) {
-      writer.uint32(32).uint64(message.sigVerifyCostEd25519);
-    }
-    if (message.sigVerifyCostSecp256k1 !== BigInt(0)) {
-      writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxMemoCharacters = reader.uint64();
-          break;
-        case 2:
-          message.txSigLimit = reader.uint64();
-          break;
-        case 3:
-          message.txSizeCostPerByte = reader.uint64();
-          break;
-        case 4:
-          message.sigVerifyCostEd25519 = reader.uint64();
-          break;
-        case 5:
-          message.sigVerifyCostSecp256k1 = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      maxMemoCharacters: isSet(object.maxMemoCharacters) ? BigInt(object.maxMemoCharacters.toString()) : BigInt(0),
-      txSigLimit: isSet(object.txSigLimit) ? BigInt(object.txSigLimit.toString()) : BigInt(0),
-      txSizeCostPerByte: isSet(object.txSizeCostPerByte) ? BigInt(object.txSizeCostPerByte.toString()) : BigInt(0),
-      sigVerifyCostEd25519: isSet(object.sigVerifyCostEd25519) ? BigInt(object.sigVerifyCostEd25519.toString()) : BigInt(0),
-      sigVerifyCostSecp256k1: isSet(object.sigVerifyCostSecp256k1) ? BigInt(object.sigVerifyCostSecp256k1.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.maxMemoCharacters !== undefined && (obj.maxMemoCharacters = (message.maxMemoCharacters || BigInt(0)).toString());
-    message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || BigInt(0)).toString());
-    message.txSizeCostPerByte !== undefined && (obj.txSizeCostPerByte = (message.txSizeCostPerByte || BigInt(0)).toString());
-    message.sigVerifyCostEd25519 !== undefined && (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || BigInt(0)).toString());
-    message.sigVerifyCostSecp256k1 !== undefined && (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.maxMemoCharacters = object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null ? BigInt(object.maxMemoCharacters.toString()) : BigInt(0);
-    message.txSigLimit = object.txSigLimit !== undefined && object.txSigLimit !== null ? BigInt(object.txSigLimit.toString()) : BigInt(0);
-    message.txSizeCostPerByte = object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null ? BigInt(object.txSizeCostPerByte.toString()) : BigInt(0);
-    message.sigVerifyCostEd25519 = object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null ? BigInt(object.sigVerifyCostEd25519.toString()) : BigInt(0);
-    message.sigVerifyCostSecp256k1 = object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null ? BigInt(object.sigVerifyCostSecp256k1.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      maxMemoCharacters: object?.max_memo_characters,
-      txSigLimit: object?.tx_sig_limit,
-      txSizeCostPerByte: object?.tx_size_cost_per_byte,
-      sigVerifyCostEd25519: object?.sig_verify_cost_ed25519,
-      sigVerifyCostSecp256k1: object?.sig_verify_cost_secp256k1
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.max_memo_characters = message.maxMemoCharacters;
-    obj.tx_sig_limit = message.txSigLimit;
-    obj.tx_size_cost_per_byte = message.txSizeCostPerByte;
-    obj.sig_verify_cost_ed25519 = message.sigVerifyCostEd25519;
-    obj.sig_verify_cost_secp256k1 = message.sigVerifyCostSecp256k1;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      maxMemoCharacters: BigInt(object.max_memo_characters),
-      txSigLimit: BigInt(object.tx_sig_limit),
-      txSizeCostPerByte: BigInt(object.tx_size_cost_per_byte),
-      sigVerifyCostEd25519: BigInt(object.sig_verify_cost_ed25519),
-      sigVerifyCostSecp256k1: BigInt(object.sig_verify_cost_secp256k1)
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.max_memo_characters = message.maxMemoCharacters ? message.maxMemoCharacters.toString() : undefined;
-    obj.tx_sig_limit = message.txSigLimit ? message.txSigLimit.toString() : undefined;
-    obj.tx_size_cost_per_byte = message.txSizeCostPerByte ? message.txSizeCostPerByte.toString() : undefined;
-    obj.sig_verify_cost_ed25519 = message.sigVerifyCostEd25519 ? message.sigVerifyCostEd25519.toString() : undefined;
-    obj.sig_verify_cost_secp256k1 = message.sigVerifyCostSecp256k1 ? message.sigVerifyCostSecp256k1.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/auth/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/auth/v1beta1/genesis.ts
deleted file mode 100644
index 67e0de17..00000000
--- a/examples/injective/src/codegen/cosmos/auth/v1beta1/genesis.ts
+++ /dev/null
@@ -1,145 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./auth";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the auth module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of the module. */
-  params: Params | undefined;
-  /** accounts are the accounts present at genesis. */
-  accounts: Any[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the auth module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-  /** accounts are the accounts present at genesis. */
-  accounts: AnyAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the auth module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  accounts: AnySDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    accounts: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.auth.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.accounts) {
-      Any.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.accounts.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/auth/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/auth/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 6b060fad..00000000
--- a/examples/injective/src/codegen/cosmos/auth/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,275 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryAccountsRequest, QueryAccountsResponse, QueryAccountRequest, QueryAccountResponse, QueryParamsRequest, QueryParamsResponse, QueryModuleAccountsRequest, QueryModuleAccountsResponse, Bech32PrefixRequest, Bech32PrefixResponse, AddressBytesToStringRequest, AddressBytesToStringResponse, AddressStringToBytesRequest, AddressStringToBytesResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /**
-   * Accounts returns all the existing accounts
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
-  /** Account returns account details based on address. */
-  account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
-  /** Params queries all parameters. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** ModuleAccounts returns all the existing module accounts. */
-  moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
-  /** Bech32 queries bech32Prefix */
-  bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
-  /** AddressBytesToString converts Account Address bytes to string */
-  addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
-  /** AddressStringToBytes converts Address string to bytes */
-  addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.accounts = this.accounts.bind(this);
-    this.account = this.account.bind(this);
-    this.params = this.params.bind(this);
-    this.moduleAccounts = this.moduleAccounts.bind(this);
-    this.bech32Prefix = this.bech32Prefix.bind(this);
-    this.addressBytesToString = this.addressBytesToString.bind(this);
-    this.addressStringToBytes = this.addressStringToBytes.bind(this);
-  }
-  accounts(request: QueryAccountsRequest = {
-    pagination: undefined
-  }): Promise<QueryAccountsResponse> {
-    const data = QueryAccountsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data);
-    return promise.then(data => QueryAccountsResponse.decode(new BinaryReader(data)));
-  }
-  account(request: QueryAccountRequest): Promise<QueryAccountResponse> {
-    const data = QueryAccountRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data);
-    return promise.then(data => QueryAccountResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  moduleAccounts(request: QueryModuleAccountsRequest = {}): Promise<QueryModuleAccountsResponse> {
-    const data = QueryModuleAccountsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccounts", data);
-    return promise.then(data => QueryModuleAccountsResponse.decode(new BinaryReader(data)));
-  }
-  bech32Prefix(request: Bech32PrefixRequest = {}): Promise<Bech32PrefixResponse> {
-    const data = Bech32PrefixRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Bech32Prefix", data);
-    return promise.then(data => Bech32PrefixResponse.decode(new BinaryReader(data)));
-  }
-  addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse> {
-    const data = AddressBytesToStringRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressBytesToString", data);
-    return promise.then(data => AddressBytesToStringResponse.decode(new BinaryReader(data)));
-  }
-  addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse> {
-    const data = AddressStringToBytesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressStringToBytes", data);
-    return promise.then(data => AddressStringToBytesResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse> {
-      return queryService.accounts(request);
-    },
-    account(request: QueryAccountRequest): Promise<QueryAccountResponse> {
-      return queryService.account(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse> {
-      return queryService.moduleAccounts(request);
-    },
-    bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse> {
-      return queryService.bech32Prefix(request);
-    },
-    addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse> {
-      return queryService.addressBytesToString(request);
-    },
-    addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse> {
-      return queryService.addressStringToBytes(request);
-    }
-  };
-};
-export interface UseAccountsQuery<TData> extends ReactQueryParams<QueryAccountsResponse, TData> {
-  request?: QueryAccountsRequest;
-}
-export interface UseAccountQuery<TData> extends ReactQueryParams<QueryAccountResponse, TData> {
-  request: QueryAccountRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseModuleAccountsQuery<TData> extends ReactQueryParams<QueryModuleAccountsResponse, TData> {
-  request?: QueryModuleAccountsRequest;
-}
-export interface UseBech32PrefixQuery<TData> extends ReactQueryParams<Bech32PrefixResponse, TData> {
-  request?: Bech32PrefixRequest;
-}
-export interface UseAddressBytesToStringQuery<TData> extends ReactQueryParams<AddressBytesToStringResponse, TData> {
-  request: AddressBytesToStringRequest;
-}
-export interface UseAddressStringToBytesQuery<TData> extends ReactQueryParams<AddressStringToBytesResponse, TData> {
-  request: AddressStringToBytesRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useAccounts = <TData = QueryAccountsResponse,>({
-    request,
-    options
-  }: UseAccountsQuery<TData>) => {
-    return useQuery<QueryAccountsResponse, Error, TData>(["accountsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accounts(request);
-    }, options);
-  };
-  const useAccount = <TData = QueryAccountResponse,>({
-    request,
-    options
-  }: UseAccountQuery<TData>) => {
-    return useQuery<QueryAccountResponse, Error, TData>(["accountQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.account(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useModuleAccounts = <TData = QueryModuleAccountsResponse,>({
-    request,
-    options
-  }: UseModuleAccountsQuery<TData>) => {
-    return useQuery<QueryModuleAccountsResponse, Error, TData>(["moduleAccountsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleAccounts(request);
-    }, options);
-  };
-  const useBech32Prefix = <TData = Bech32PrefixResponse,>({
-    request,
-    options
-  }: UseBech32PrefixQuery<TData>) => {
-    return useQuery<Bech32PrefixResponse, Error, TData>(["bech32PrefixQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.bech32Prefix(request);
-    }, options);
-  };
-  const useAddressBytesToString = <TData = AddressBytesToStringResponse,>({
-    request,
-    options
-  }: UseAddressBytesToStringQuery<TData>) => {
-    return useQuery<AddressBytesToStringResponse, Error, TData>(["addressBytesToStringQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.addressBytesToString(request);
-    }, options);
-  };
-  const useAddressStringToBytes = <TData = AddressStringToBytesResponse,>({
-    request,
-    options
-  }: UseAddressStringToBytesQuery<TData>) => {
-    return useQuery<AddressStringToBytesResponse, Error, TData>(["addressStringToBytesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.addressStringToBytes(request);
-    }, options);
-  };
-  return {
-    /**
-     * Accounts returns all the existing accounts
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    useAccounts,
-    /** Account returns account details based on address. */useAccount,
-    /** Params queries all parameters. */useParams,
-    /** ModuleAccounts returns all the existing module accounts. */useModuleAccounts,
-    /** Bech32 queries bech32Prefix */useBech32Prefix,
-    /** AddressBytesToString converts Account Address bytes to string */useAddressBytesToString,
-    /** AddressStringToBytes converts Address string to bytes */useAddressStringToBytes
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryAccountsStore {
-    store = new QueryStore<QueryAccountsRequest, QueryAccountsResponse>(queryService?.accounts);
-    accounts(request: QueryAccountsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountStore {
-    store = new QueryStore<QueryAccountRequest, QueryAccountResponse>(queryService?.account);
-    account(request: QueryAccountRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryModuleAccountsStore {
-    store = new QueryStore<QueryModuleAccountsRequest, QueryModuleAccountsResponse>(queryService?.moduleAccounts);
-    moduleAccounts(request: QueryModuleAccountsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryBech32PrefixStore {
-    store = new QueryStore<Bech32PrefixRequest, Bech32PrefixResponse>(queryService?.bech32Prefix);
-    bech32Prefix(request: Bech32PrefixRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAddressBytesToStringStore {
-    store = new QueryStore<AddressBytesToStringRequest, AddressBytesToStringResponse>(queryService?.addressBytesToString);
-    addressBytesToString(request: AddressBytesToStringRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAddressStringToBytesStore {
-    store = new QueryStore<AddressStringToBytesRequest, AddressStringToBytesResponse>(queryService?.addressStringToBytes);
-    addressStringToBytes(request: AddressStringToBytesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * Accounts returns all the existing accounts
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    QueryAccountsStore,
-    /** Account returns account details based on address. */QueryAccountStore,
-    /** Params queries all parameters. */QueryParamsStore,
-    /** ModuleAccounts returns all the existing module accounts. */QueryModuleAccountsStore,
-    /** Bech32 queries bech32Prefix */QueryBech32PrefixStore,
-    /** AddressBytesToString converts Account Address bytes to string */QueryAddressBytesToStringStore,
-    /** AddressStringToBytes converts Address string to bytes */QueryAddressStringToBytesStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/auth/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/auth/v1beta1/query.ts
deleted file mode 100644
index f101cbf2..00000000
--- a/examples/injective/src/codegen/cosmos/auth/v1beta1/query.ts
+++ /dev/null
@@ -1,1522 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Params, ParamsAmino, ParamsSDKType } from "./auth";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/**
- * QueryAccountsRequest is the request type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAccountsRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryAccountsRequest is the request type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAccountsRequestAminoMsg {
-  type: "cosmos-sdk/QueryAccountsRequest";
-  value: QueryAccountsRequestAmino;
-}
-/**
- * QueryAccountsRequest is the request type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryAccountsResponse is the response type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsResponse {
-  /** accounts are the existing accounts */
-  accounts: Any[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAccountsResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAccountsResponse is the response type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsResponseAmino {
-  /** accounts are the existing accounts */
-  accounts: AnyAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAccountsResponseAminoMsg {
-  type: "cosmos-sdk/QueryAccountsResponse";
-  value: QueryAccountsResponseAmino;
-}
-/**
- * QueryAccountsResponse is the response type for the Query/Accounts RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryAccountsResponseSDKType {
-  accounts: AnySDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryAccountRequest is the request type for the Query/Account RPC method. */
-export interface QueryAccountRequest {
-  /** address defines the address to query for. */
-  address: string;
-}
-export interface QueryAccountRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountRequest";
-  value: Uint8Array;
-}
-/** QueryAccountRequest is the request type for the Query/Account RPC method. */
-export interface QueryAccountRequestAmino {
-  /** address defines the address to query for. */
-  address: string;
-}
-export interface QueryAccountRequestAminoMsg {
-  type: "cosmos-sdk/QueryAccountRequest";
-  value: QueryAccountRequestAmino;
-}
-/** QueryAccountRequest is the request type for the Query/Account RPC method. */
-export interface QueryAccountRequestSDKType {
-  address: string;
-}
-/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsRequest {}
-export interface QueryModuleAccountsRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsRequest";
-  value: Uint8Array;
-}
-/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsRequestAmino {}
-export interface QueryModuleAccountsRequestAminoMsg {
-  type: "cosmos-sdk/QueryModuleAccountsRequest";
-  value: QueryModuleAccountsRequestAmino;
-}
-/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/** QueryAccountResponse is the response type for the Query/Account RPC method. */
-export interface QueryAccountResponse {
-  /** account defines the account of the corresponding address. */
-  account: Any | undefined;
-}
-export interface QueryAccountResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountResponse";
-  value: Uint8Array;
-}
-/** QueryAccountResponse is the response type for the Query/Account RPC method. */
-export interface QueryAccountResponseAmino {
-  /** account defines the account of the corresponding address. */
-  account?: AnyAmino | undefined;
-}
-export interface QueryAccountResponseAminoMsg {
-  type: "cosmos-sdk/QueryAccountResponse";
-  value: QueryAccountResponseAmino;
-}
-/** QueryAccountResponse is the response type for the Query/Account RPC method. */
-export interface QueryAccountResponseSDKType {
-  account: AnySDKType | undefined;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsResponse {
-  accounts: Any[];
-}
-export interface QueryModuleAccountsResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsResponse";
-  value: Uint8Array;
-}
-/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsResponseAmino {
-  accounts: AnyAmino[];
-}
-export interface QueryModuleAccountsResponseAminoMsg {
-  type: "cosmos-sdk/QueryModuleAccountsResponse";
-  value: QueryModuleAccountsResponseAmino;
-}
-/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */
-export interface QueryModuleAccountsResponseSDKType {
-  accounts: AnySDKType[];
-}
-/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */
-export interface Bech32PrefixRequest {}
-export interface Bech32PrefixRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixRequest";
-  value: Uint8Array;
-}
-/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */
-export interface Bech32PrefixRequestAmino {}
-export interface Bech32PrefixRequestAminoMsg {
-  type: "cosmos-sdk/Bech32PrefixRequest";
-  value: Bech32PrefixRequestAmino;
-}
-/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */
-export interface Bech32PrefixRequestSDKType {}
-/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */
-export interface Bech32PrefixResponse {
-  bech32Prefix: string;
-}
-export interface Bech32PrefixResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixResponse";
-  value: Uint8Array;
-}
-/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */
-export interface Bech32PrefixResponseAmino {
-  bech32_prefix: string;
-}
-export interface Bech32PrefixResponseAminoMsg {
-  type: "cosmos-sdk/Bech32PrefixResponse";
-  value: Bech32PrefixResponseAmino;
-}
-/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */
-export interface Bech32PrefixResponseSDKType {
-  bech32_prefix: string;
-}
-/** AddressBytesToStringRequest is the request type for AddressString rpc method */
-export interface AddressBytesToStringRequest {
-  addressBytes: Uint8Array;
-}
-export interface AddressBytesToStringRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringRequest";
-  value: Uint8Array;
-}
-/** AddressBytesToStringRequest is the request type for AddressString rpc method */
-export interface AddressBytesToStringRequestAmino {
-  address_bytes: Uint8Array;
-}
-export interface AddressBytesToStringRequestAminoMsg {
-  type: "cosmos-sdk/AddressBytesToStringRequest";
-  value: AddressBytesToStringRequestAmino;
-}
-/** AddressBytesToStringRequest is the request type for AddressString rpc method */
-export interface AddressBytesToStringRequestSDKType {
-  address_bytes: Uint8Array;
-}
-/** AddressBytesToStringResponse is the response type for AddressString rpc method */
-export interface AddressBytesToStringResponse {
-  addressString: string;
-}
-export interface AddressBytesToStringResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringResponse";
-  value: Uint8Array;
-}
-/** AddressBytesToStringResponse is the response type for AddressString rpc method */
-export interface AddressBytesToStringResponseAmino {
-  address_string: string;
-}
-export interface AddressBytesToStringResponseAminoMsg {
-  type: "cosmos-sdk/AddressBytesToStringResponse";
-  value: AddressBytesToStringResponseAmino;
-}
-/** AddressBytesToStringResponse is the response type for AddressString rpc method */
-export interface AddressBytesToStringResponseSDKType {
-  address_string: string;
-}
-/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */
-export interface AddressStringToBytesRequest {
-  addressString: string;
-}
-export interface AddressStringToBytesRequestProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesRequest";
-  value: Uint8Array;
-}
-/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */
-export interface AddressStringToBytesRequestAmino {
-  address_string: string;
-}
-export interface AddressStringToBytesRequestAminoMsg {
-  type: "cosmos-sdk/AddressStringToBytesRequest";
-  value: AddressStringToBytesRequestAmino;
-}
-/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */
-export interface AddressStringToBytesRequestSDKType {
-  address_string: string;
-}
-/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */
-export interface AddressStringToBytesResponse {
-  addressBytes: Uint8Array;
-}
-export interface AddressStringToBytesResponseProtoMsg {
-  typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesResponse";
-  value: Uint8Array;
-}
-/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */
-export interface AddressStringToBytesResponseAmino {
-  address_bytes: Uint8Array;
-}
-export interface AddressStringToBytesResponseAminoMsg {
-  type: "cosmos-sdk/AddressStringToBytesResponse";
-  value: AddressStringToBytesResponseAmino;
-}
-/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */
-export interface AddressStringToBytesResponseSDKType {
-  address_bytes: Uint8Array;
-}
-function createBaseQueryAccountsRequest(): QueryAccountsRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAccountsRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountsRequest",
-  aminoType: "cosmos-sdk/QueryAccountsRequest",
-  encode(message: QueryAccountsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAccountsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAccountsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAccountsRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAccountsRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAccountsRequest>): QueryAccountsRequest {
-    const message = createBaseQueryAccountsRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAccountsRequestSDKType): QueryAccountsRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAccountsRequest): QueryAccountsRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAccountsRequestAmino): QueryAccountsRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAccountsRequest): QueryAccountsRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAccountsRequestAminoMsg): QueryAccountsRequest {
-    return QueryAccountsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAccountsRequest): QueryAccountsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAccountsRequest",
-      value: QueryAccountsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAccountsRequestProtoMsg): QueryAccountsRequest {
-    return QueryAccountsRequest.decode(message.value);
-  },
-  toProto(message: QueryAccountsRequest): Uint8Array {
-    return QueryAccountsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAccountsRequest): QueryAccountsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryAccountsRequest",
-      value: QueryAccountsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAccountsResponse(): QueryAccountsResponse {
-  return {
-    accounts: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAccountsResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountsResponse",
-  aminoType: "cosmos-sdk/QueryAccountsResponse",
-  encode(message: QueryAccountsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.accounts) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAccountsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAccountsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.accounts.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAccountsResponse): unknown {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAccountsResponse>): QueryAccountsResponse {
-    const message = createBaseQueryAccountsResponse();
-    message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAccountsResponseSDKType): QueryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAccountsResponse): QueryAccountsResponseSDKType {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAccountsResponseAmino): QueryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAccountsResponse): QueryAccountsResponseAmino {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAccountsResponseAminoMsg): QueryAccountsResponse {
-    return QueryAccountsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAccountsResponse): QueryAccountsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAccountsResponse",
-      value: QueryAccountsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAccountsResponseProtoMsg): QueryAccountsResponse {
-    return QueryAccountsResponse.decode(message.value);
-  },
-  toProto(message: QueryAccountsResponse): Uint8Array {
-    return QueryAccountsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAccountsResponse): QueryAccountsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryAccountsResponse",
-      value: QueryAccountsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAccountRequest(): QueryAccountRequest {
-  return {
-    address: ""
-  };
-}
-export const QueryAccountRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountRequest",
-  aminoType: "cosmos-sdk/QueryAccountRequest",
-  encode(message: QueryAccountRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAccountRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAccountRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAccountRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryAccountRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAccountRequest>): QueryAccountRequest {
-    const message = createBaseQueryAccountRequest();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAccountRequestSDKType): QueryAccountRequest {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryAccountRequest): QueryAccountRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryAccountRequestAmino): QueryAccountRequest {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryAccountRequest): QueryAccountRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAccountRequestAminoMsg): QueryAccountRequest {
-    return QueryAccountRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAccountRequest): QueryAccountRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAccountRequest",
-      value: QueryAccountRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAccountRequestProtoMsg): QueryAccountRequest {
-    return QueryAccountRequest.decode(message.value);
-  },
-  toProto(message: QueryAccountRequest): Uint8Array {
-    return QueryAccountRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAccountRequest): QueryAccountRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryAccountRequest",
-      value: QueryAccountRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryModuleAccountsRequest(): QueryModuleAccountsRequest {
-  return {};
-}
-export const QueryModuleAccountsRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsRequest",
-  aminoType: "cosmos-sdk/QueryModuleAccountsRequest",
-  encode(_: QueryModuleAccountsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleAccountsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleAccountsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryModuleAccountsRequest {
-    return {};
-  },
-  toJSON(_: QueryModuleAccountsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryModuleAccountsRequest>): QueryModuleAccountsRequest {
-    const message = createBaseQueryModuleAccountsRequest();
-    return message;
-  },
-  fromSDK(_: QueryModuleAccountsRequestSDKType): QueryModuleAccountsRequest {
-    return {};
-  },
-  toSDK(_: QueryModuleAccountsRequest): QueryModuleAccountsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryModuleAccountsRequestAmino): QueryModuleAccountsRequest {
-    return {};
-  },
-  toAmino(_: QueryModuleAccountsRequest): QueryModuleAccountsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleAccountsRequestAminoMsg): QueryModuleAccountsRequest {
-    return QueryModuleAccountsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleAccountsRequest): QueryModuleAccountsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryModuleAccountsRequest",
-      value: QueryModuleAccountsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleAccountsRequestProtoMsg): QueryModuleAccountsRequest {
-    return QueryModuleAccountsRequest.decode(message.value);
-  },
-  toProto(message: QueryModuleAccountsRequest): Uint8Array {
-    return QueryModuleAccountsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleAccountsRequest): QueryModuleAccountsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsRequest",
-      value: QueryModuleAccountsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAccountResponse(): QueryAccountResponse {
-  return {
-    account: Any.fromPartial({})
-  };
-}
-export const QueryAccountResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryAccountResponse",
-  aminoType: "cosmos-sdk/QueryAccountResponse",
-  encode(message: QueryAccountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.account !== undefined) {
-      Any.encode(message.account, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAccountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAccountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.account = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAccountResponse {
-    return {
-      account: isSet(object.account) ? Any.fromJSON(object.account) : undefined
-    };
-  },
-  toJSON(message: QueryAccountResponse): unknown {
-    const obj: any = {};
-    message.account !== undefined && (obj.account = message.account ? Any.toJSON(message.account) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAccountResponse>): QueryAccountResponse {
-    const message = createBaseQueryAccountResponse();
-    message.account = object.account !== undefined && object.account !== null ? Any.fromPartial(object.account) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAccountResponseSDKType): QueryAccountResponse {
-    return {
-      account: object.account ? Any.fromSDK(object.account) : undefined
-    };
-  },
-  toSDK(message: QueryAccountResponse): QueryAccountResponseSDKType {
-    const obj: any = {};
-    message.account !== undefined && (obj.account = message.account ? Any.toSDK(message.account) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAccountResponseAmino): QueryAccountResponse {
-    return {
-      account: object?.account ? Any.fromAmino(object.account) : undefined
-    };
-  },
-  toAmino(message: QueryAccountResponse): QueryAccountResponseAmino {
-    const obj: any = {};
-    obj.account = message.account ? Any.toAmino(message.account) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAccountResponseAminoMsg): QueryAccountResponse {
-    return QueryAccountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAccountResponse): QueryAccountResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAccountResponse",
-      value: QueryAccountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAccountResponseProtoMsg): QueryAccountResponse {
-    return QueryAccountResponse.decode(message.value);
-  },
-  toProto(message: QueryAccountResponse): Uint8Array {
-    return QueryAccountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAccountResponse): QueryAccountResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryAccountResponse",
-      value: QueryAccountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryModuleAccountsResponse(): QueryModuleAccountsResponse {
-  return {
-    accounts: []
-  };
-}
-export const QueryModuleAccountsResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsResponse",
-  aminoType: "cosmos-sdk/QueryModuleAccountsResponse",
-  encode(message: QueryModuleAccountsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.accounts) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleAccountsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleAccountsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.accounts.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryModuleAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryModuleAccountsResponse): unknown {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryModuleAccountsResponse>): QueryModuleAccountsResponse {
-    const message = createBaseQueryModuleAccountsResponse();
-    message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryModuleAccountsResponseSDKType): QueryModuleAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryModuleAccountsResponse): QueryModuleAccountsResponseSDKType {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryModuleAccountsResponseAmino): QueryModuleAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryModuleAccountsResponse): QueryModuleAccountsResponseAmino {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleAccountsResponseAminoMsg): QueryModuleAccountsResponse {
-    return QueryModuleAccountsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleAccountsResponse): QueryModuleAccountsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryModuleAccountsResponse",
-      value: QueryModuleAccountsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleAccountsResponseProtoMsg): QueryModuleAccountsResponse {
-    return QueryModuleAccountsResponse.decode(message.value);
-  },
-  toProto(message: QueryModuleAccountsResponse): Uint8Array {
-    return QueryModuleAccountsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleAccountsResponse): QueryModuleAccountsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsResponse",
-      value: QueryModuleAccountsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseBech32PrefixRequest(): Bech32PrefixRequest {
-  return {};
-}
-export const Bech32PrefixRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixRequest",
-  aminoType: "cosmos-sdk/Bech32PrefixRequest",
-  encode(_: Bech32PrefixRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Bech32PrefixRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBech32PrefixRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): Bech32PrefixRequest {
-    return {};
-  },
-  toJSON(_: Bech32PrefixRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<Bech32PrefixRequest>): Bech32PrefixRequest {
-    const message = createBaseBech32PrefixRequest();
-    return message;
-  },
-  fromSDK(_: Bech32PrefixRequestSDKType): Bech32PrefixRequest {
-    return {};
-  },
-  toSDK(_: Bech32PrefixRequest): Bech32PrefixRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: Bech32PrefixRequestAmino): Bech32PrefixRequest {
-    return {};
-  },
-  toAmino(_: Bech32PrefixRequest): Bech32PrefixRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: Bech32PrefixRequestAminoMsg): Bech32PrefixRequest {
-    return Bech32PrefixRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: Bech32PrefixRequest): Bech32PrefixRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/Bech32PrefixRequest",
-      value: Bech32PrefixRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Bech32PrefixRequestProtoMsg): Bech32PrefixRequest {
-    return Bech32PrefixRequest.decode(message.value);
-  },
-  toProto(message: Bech32PrefixRequest): Uint8Array {
-    return Bech32PrefixRequest.encode(message).finish();
-  },
-  toProtoMsg(message: Bech32PrefixRequest): Bech32PrefixRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixRequest",
-      value: Bech32PrefixRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseBech32PrefixResponse(): Bech32PrefixResponse {
-  return {
-    bech32Prefix: ""
-  };
-}
-export const Bech32PrefixResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixResponse",
-  aminoType: "cosmos-sdk/Bech32PrefixResponse",
-  encode(message: Bech32PrefixResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bech32Prefix !== "") {
-      writer.uint32(10).string(message.bech32Prefix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Bech32PrefixResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBech32PrefixResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bech32Prefix = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Bech32PrefixResponse {
-    return {
-      bech32Prefix: isSet(object.bech32Prefix) ? String(object.bech32Prefix) : ""
-    };
-  },
-  toJSON(message: Bech32PrefixResponse): unknown {
-    const obj: any = {};
-    message.bech32Prefix !== undefined && (obj.bech32Prefix = message.bech32Prefix);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Bech32PrefixResponse>): Bech32PrefixResponse {
-    const message = createBaseBech32PrefixResponse();
-    message.bech32Prefix = object.bech32Prefix ?? "";
-    return message;
-  },
-  fromSDK(object: Bech32PrefixResponseSDKType): Bech32PrefixResponse {
-    return {
-      bech32Prefix: object?.bech32_prefix
-    };
-  },
-  toSDK(message: Bech32PrefixResponse): Bech32PrefixResponseSDKType {
-    const obj: any = {};
-    obj.bech32_prefix = message.bech32Prefix;
-    return obj;
-  },
-  fromAmino(object: Bech32PrefixResponseAmino): Bech32PrefixResponse {
-    return {
-      bech32Prefix: object.bech32_prefix
-    };
-  },
-  toAmino(message: Bech32PrefixResponse): Bech32PrefixResponseAmino {
-    const obj: any = {};
-    obj.bech32_prefix = message.bech32Prefix;
-    return obj;
-  },
-  fromAminoMsg(object: Bech32PrefixResponseAminoMsg): Bech32PrefixResponse {
-    return Bech32PrefixResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: Bech32PrefixResponse): Bech32PrefixResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/Bech32PrefixResponse",
-      value: Bech32PrefixResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Bech32PrefixResponseProtoMsg): Bech32PrefixResponse {
-    return Bech32PrefixResponse.decode(message.value);
-  },
-  toProto(message: Bech32PrefixResponse): Uint8Array {
-    return Bech32PrefixResponse.encode(message).finish();
-  },
-  toProtoMsg(message: Bech32PrefixResponse): Bech32PrefixResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixResponse",
-      value: Bech32PrefixResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAddressBytesToStringRequest(): AddressBytesToStringRequest {
-  return {
-    addressBytes: new Uint8Array()
-  };
-}
-export const AddressBytesToStringRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringRequest",
-  aminoType: "cosmos-sdk/AddressBytesToStringRequest",
-  encode(message: AddressBytesToStringRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.addressBytes.length !== 0) {
-      writer.uint32(10).bytes(message.addressBytes);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AddressBytesToStringRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAddressBytesToStringRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.addressBytes = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AddressBytesToStringRequest {
-    return {
-      addressBytes: isSet(object.addressBytes) ? bytesFromBase64(object.addressBytes) : new Uint8Array()
-    };
-  },
-  toJSON(message: AddressBytesToStringRequest): unknown {
-    const obj: any = {};
-    message.addressBytes !== undefined && (obj.addressBytes = base64FromBytes(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AddressBytesToStringRequest>): AddressBytesToStringRequest {
-    const message = createBaseAddressBytesToStringRequest();
-    message.addressBytes = object.addressBytes ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: AddressBytesToStringRequestSDKType): AddressBytesToStringRequest {
-    return {
-      addressBytes: object?.address_bytes
-    };
-  },
-  toSDK(message: AddressBytesToStringRequest): AddressBytesToStringRequestSDKType {
-    const obj: any = {};
-    obj.address_bytes = message.addressBytes;
-    return obj;
-  },
-  fromAmino(object: AddressBytesToStringRequestAmino): AddressBytesToStringRequest {
-    return {
-      addressBytes: object.address_bytes
-    };
-  },
-  toAmino(message: AddressBytesToStringRequest): AddressBytesToStringRequestAmino {
-    const obj: any = {};
-    obj.address_bytes = message.addressBytes;
-    return obj;
-  },
-  fromAminoMsg(object: AddressBytesToStringRequestAminoMsg): AddressBytesToStringRequest {
-    return AddressBytesToStringRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AddressBytesToStringRequest): AddressBytesToStringRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/AddressBytesToStringRequest",
-      value: AddressBytesToStringRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AddressBytesToStringRequestProtoMsg): AddressBytesToStringRequest {
-    return AddressBytesToStringRequest.decode(message.value);
-  },
-  toProto(message: AddressBytesToStringRequest): Uint8Array {
-    return AddressBytesToStringRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AddressBytesToStringRequest): AddressBytesToStringRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringRequest",
-      value: AddressBytesToStringRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAddressBytesToStringResponse(): AddressBytesToStringResponse {
-  return {
-    addressString: ""
-  };
-}
-export const AddressBytesToStringResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringResponse",
-  aminoType: "cosmos-sdk/AddressBytesToStringResponse",
-  encode(message: AddressBytesToStringResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.addressString !== "") {
-      writer.uint32(10).string(message.addressString);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AddressBytesToStringResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAddressBytesToStringResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.addressString = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AddressBytesToStringResponse {
-    return {
-      addressString: isSet(object.addressString) ? String(object.addressString) : ""
-    };
-  },
-  toJSON(message: AddressBytesToStringResponse): unknown {
-    const obj: any = {};
-    message.addressString !== undefined && (obj.addressString = message.addressString);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AddressBytesToStringResponse>): AddressBytesToStringResponse {
-    const message = createBaseAddressBytesToStringResponse();
-    message.addressString = object.addressString ?? "";
-    return message;
-  },
-  fromSDK(object: AddressBytesToStringResponseSDKType): AddressBytesToStringResponse {
-    return {
-      addressString: object?.address_string
-    };
-  },
-  toSDK(message: AddressBytesToStringResponse): AddressBytesToStringResponseSDKType {
-    const obj: any = {};
-    obj.address_string = message.addressString;
-    return obj;
-  },
-  fromAmino(object: AddressBytesToStringResponseAmino): AddressBytesToStringResponse {
-    return {
-      addressString: object.address_string
-    };
-  },
-  toAmino(message: AddressBytesToStringResponse): AddressBytesToStringResponseAmino {
-    const obj: any = {};
-    obj.address_string = message.addressString;
-    return obj;
-  },
-  fromAminoMsg(object: AddressBytesToStringResponseAminoMsg): AddressBytesToStringResponse {
-    return AddressBytesToStringResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AddressBytesToStringResponse): AddressBytesToStringResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/AddressBytesToStringResponse",
-      value: AddressBytesToStringResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AddressBytesToStringResponseProtoMsg): AddressBytesToStringResponse {
-    return AddressBytesToStringResponse.decode(message.value);
-  },
-  toProto(message: AddressBytesToStringResponse): Uint8Array {
-    return AddressBytesToStringResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AddressBytesToStringResponse): AddressBytesToStringResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringResponse",
-      value: AddressBytesToStringResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAddressStringToBytesRequest(): AddressStringToBytesRequest {
-  return {
-    addressString: ""
-  };
-}
-export const AddressStringToBytesRequest = {
-  typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesRequest",
-  aminoType: "cosmos-sdk/AddressStringToBytesRequest",
-  encode(message: AddressStringToBytesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.addressString !== "") {
-      writer.uint32(10).string(message.addressString);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AddressStringToBytesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAddressStringToBytesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.addressString = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AddressStringToBytesRequest {
-    return {
-      addressString: isSet(object.addressString) ? String(object.addressString) : ""
-    };
-  },
-  toJSON(message: AddressStringToBytesRequest): unknown {
-    const obj: any = {};
-    message.addressString !== undefined && (obj.addressString = message.addressString);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AddressStringToBytesRequest>): AddressStringToBytesRequest {
-    const message = createBaseAddressStringToBytesRequest();
-    message.addressString = object.addressString ?? "";
-    return message;
-  },
-  fromSDK(object: AddressStringToBytesRequestSDKType): AddressStringToBytesRequest {
-    return {
-      addressString: object?.address_string
-    };
-  },
-  toSDK(message: AddressStringToBytesRequest): AddressStringToBytesRequestSDKType {
-    const obj: any = {};
-    obj.address_string = message.addressString;
-    return obj;
-  },
-  fromAmino(object: AddressStringToBytesRequestAmino): AddressStringToBytesRequest {
-    return {
-      addressString: object.address_string
-    };
-  },
-  toAmino(message: AddressStringToBytesRequest): AddressStringToBytesRequestAmino {
-    const obj: any = {};
-    obj.address_string = message.addressString;
-    return obj;
-  },
-  fromAminoMsg(object: AddressStringToBytesRequestAminoMsg): AddressStringToBytesRequest {
-    return AddressStringToBytesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AddressStringToBytesRequest): AddressStringToBytesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/AddressStringToBytesRequest",
-      value: AddressStringToBytesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AddressStringToBytesRequestProtoMsg): AddressStringToBytesRequest {
-    return AddressStringToBytesRequest.decode(message.value);
-  },
-  toProto(message: AddressStringToBytesRequest): Uint8Array {
-    return AddressStringToBytesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AddressStringToBytesRequest): AddressStringToBytesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesRequest",
-      value: AddressStringToBytesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAddressStringToBytesResponse(): AddressStringToBytesResponse {
-  return {
-    addressBytes: new Uint8Array()
-  };
-}
-export const AddressStringToBytesResponse = {
-  typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesResponse",
-  aminoType: "cosmos-sdk/AddressStringToBytesResponse",
-  encode(message: AddressStringToBytesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.addressBytes.length !== 0) {
-      writer.uint32(10).bytes(message.addressBytes);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AddressStringToBytesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAddressStringToBytesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.addressBytes = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AddressStringToBytesResponse {
-    return {
-      addressBytes: isSet(object.addressBytes) ? bytesFromBase64(object.addressBytes) : new Uint8Array()
-    };
-  },
-  toJSON(message: AddressStringToBytesResponse): unknown {
-    const obj: any = {};
-    message.addressBytes !== undefined && (obj.addressBytes = base64FromBytes(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AddressStringToBytesResponse>): AddressStringToBytesResponse {
-    const message = createBaseAddressStringToBytesResponse();
-    message.addressBytes = object.addressBytes ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: AddressStringToBytesResponseSDKType): AddressStringToBytesResponse {
-    return {
-      addressBytes: object?.address_bytes
-    };
-  },
-  toSDK(message: AddressStringToBytesResponse): AddressStringToBytesResponseSDKType {
-    const obj: any = {};
-    obj.address_bytes = message.addressBytes;
-    return obj;
-  },
-  fromAmino(object: AddressStringToBytesResponseAmino): AddressStringToBytesResponse {
-    return {
-      addressBytes: object.address_bytes
-    };
-  },
-  toAmino(message: AddressStringToBytesResponse): AddressStringToBytesResponseAmino {
-    const obj: any = {};
-    obj.address_bytes = message.addressBytes;
-    return obj;
-  },
-  fromAminoMsg(object: AddressStringToBytesResponseAminoMsg): AddressStringToBytesResponse {
-    return AddressStringToBytesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AddressStringToBytesResponse): AddressStringToBytesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/AddressStringToBytesResponse",
-      value: AddressStringToBytesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AddressStringToBytesResponseProtoMsg): AddressStringToBytesResponse {
-    return AddressStringToBytesResponse.decode(message.value);
-  },
-  toProto(message: AddressStringToBytesResponse): Uint8Array {
-    return AddressStringToBytesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AddressStringToBytesResponse): AddressStringToBytesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesResponse",
-      value: AddressStringToBytesResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/authz.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/authz.ts
deleted file mode 100644
index b1a98b40..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/authz.ts
+++ /dev/null
@@ -1,557 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers";
-/**
- * GenericAuthorization gives the grantee unrestricted permissions to execute
- * the provided method on behalf of the granter's account.
- */
-export interface GenericAuthorization {
-  /** Msg, identified by it's type URL, to grant unrestricted permissions to execute */
-  msg: string;
-}
-export interface GenericAuthorizationProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.GenericAuthorization";
-  value: Uint8Array;
-}
-/**
- * GenericAuthorization gives the grantee unrestricted permissions to execute
- * the provided method on behalf of the granter's account.
- */
-export interface GenericAuthorizationAmino {
-  /** Msg, identified by it's type URL, to grant unrestricted permissions to execute */
-  msg: string;
-}
-export interface GenericAuthorizationAminoMsg {
-  type: "cosmos-sdk/GenericAuthorization";
-  value: GenericAuthorizationAmino;
-}
-/**
- * GenericAuthorization gives the grantee unrestricted permissions to execute
- * the provided method on behalf of the granter's account.
- */
-export interface GenericAuthorizationSDKType {
-  msg: string;
-}
-/**
- * Grant gives permissions to execute
- * the provide method with expiration time.
- */
-export interface Grant {
-  authorization: Any | undefined;
-  /**
-   * time when the grant will expire and will be pruned. If null, then the grant
-   * doesn't have a time expiration (other conditions  in `authorization`
-   * may apply to invalidate the grant)
-   */
-  expiration?: Date | undefined;
-}
-export interface GrantProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.Grant";
-  value: Uint8Array;
-}
-/**
- * Grant gives permissions to execute
- * the provide method with expiration time.
- */
-export interface GrantAmino {
-  authorization?: AnyAmino | undefined;
-  /**
-   * time when the grant will expire and will be pruned. If null, then the grant
-   * doesn't have a time expiration (other conditions  in `authorization`
-   * may apply to invalidate the grant)
-   */
-  expiration?: Date | undefined;
-}
-export interface GrantAminoMsg {
-  type: "cosmos-sdk/Grant";
-  value: GrantAmino;
-}
-/**
- * Grant gives permissions to execute
- * the provide method with expiration time.
- */
-export interface GrantSDKType {
-  authorization: AnySDKType | undefined;
-  expiration?: Date | undefined;
-}
-/**
- * GrantAuthorization extends a grant with both the addresses of the grantee and granter.
- * It is used in genesis.proto and query.proto
- */
-export interface GrantAuthorization {
-  granter: string;
-  grantee: string;
-  authorization: Any | undefined;
-  expiration: Date | undefined;
-}
-export interface GrantAuthorizationProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.GrantAuthorization";
-  value: Uint8Array;
-}
-/**
- * GrantAuthorization extends a grant with both the addresses of the grantee and granter.
- * It is used in genesis.proto and query.proto
- */
-export interface GrantAuthorizationAmino {
-  granter: string;
-  grantee: string;
-  authorization?: AnyAmino | undefined;
-  expiration?: Date | undefined;
-}
-export interface GrantAuthorizationAminoMsg {
-  type: "cosmos-sdk/GrantAuthorization";
-  value: GrantAuthorizationAmino;
-}
-/**
- * GrantAuthorization extends a grant with both the addresses of the grantee and granter.
- * It is used in genesis.proto and query.proto
- */
-export interface GrantAuthorizationSDKType {
-  granter: string;
-  grantee: string;
-  authorization: AnySDKType | undefined;
-  expiration: Date | undefined;
-}
-/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */
-export interface GrantQueueItem {
-  /** msg_type_urls contains the list of TypeURL of a sdk.Msg. */
-  msgTypeUrls: string[];
-}
-export interface GrantQueueItemProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.GrantQueueItem";
-  value: Uint8Array;
-}
-/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */
-export interface GrantQueueItemAmino {
-  /** msg_type_urls contains the list of TypeURL of a sdk.Msg. */
-  msg_type_urls: string[];
-}
-export interface GrantQueueItemAminoMsg {
-  type: "cosmos-sdk/GrantQueueItem";
-  value: GrantQueueItemAmino;
-}
-/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */
-export interface GrantQueueItemSDKType {
-  msg_type_urls: string[];
-}
-function createBaseGenericAuthorization(): GenericAuthorization {
-  return {
-    msg: ""
-  };
-}
-export const GenericAuthorization = {
-  typeUrl: "/cosmos.authz.v1beta1.GenericAuthorization",
-  aminoType: "cosmos-sdk/GenericAuthorization",
-  encode(message: GenericAuthorization, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msg !== "") {
-      writer.uint32(10).string(message.msg);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenericAuthorization {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenericAuthorization();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.msg = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenericAuthorization {
-    return {
-      msg: isSet(object.msg) ? String(object.msg) : ""
-    };
-  },
-  toJSON(message: GenericAuthorization): unknown {
-    const obj: any = {};
-    message.msg !== undefined && (obj.msg = message.msg);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenericAuthorization>): GenericAuthorization {
-    const message = createBaseGenericAuthorization();
-    message.msg = object.msg ?? "";
-    return message;
-  },
-  fromSDK(object: GenericAuthorizationSDKType): GenericAuthorization {
-    return {
-      msg: object?.msg
-    };
-  },
-  toSDK(message: GenericAuthorization): GenericAuthorizationSDKType {
-    const obj: any = {};
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAmino(object: GenericAuthorizationAmino): GenericAuthorization {
-    return {
-      msg: object.msg
-    };
-  },
-  toAmino(message: GenericAuthorization): GenericAuthorizationAmino {
-    const obj: any = {};
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAminoMsg(object: GenericAuthorizationAminoMsg): GenericAuthorization {
-    return GenericAuthorization.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenericAuthorization): GenericAuthorizationAminoMsg {
-    return {
-      type: "cosmos-sdk/GenericAuthorization",
-      value: GenericAuthorization.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenericAuthorizationProtoMsg): GenericAuthorization {
-    return GenericAuthorization.decode(message.value);
-  },
-  toProto(message: GenericAuthorization): Uint8Array {
-    return GenericAuthorization.encode(message).finish();
-  },
-  toProtoMsg(message: GenericAuthorization): GenericAuthorizationProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.GenericAuthorization",
-      value: GenericAuthorization.encode(message).finish()
-    };
-  }
-};
-function createBaseGrant(): Grant {
-  return {
-    authorization: Any.fromPartial({}),
-    expiration: undefined
-  };
-}
-export const Grant = {
-  typeUrl: "/cosmos.authz.v1beta1.Grant",
-  aminoType: "cosmos-sdk/Grant",
-  encode(message: Grant, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authorization !== undefined) {
-      Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.expiration !== undefined) {
-      Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Grant {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGrant();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authorization = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Grant {
-    return {
-      authorization: isSet(object.authorization) ? Any.fromJSON(object.authorization) : undefined,
-      expiration: isSet(object.expiration) ? new Date(object.expiration) : undefined
-    };
-  },
-  toJSON(message: Grant): unknown {
-    const obj: any = {};
-    message.authorization !== undefined && (obj.authorization = message.authorization ? Any.toJSON(message.authorization) : undefined);
-    message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Grant>): Grant {
-    const message = createBaseGrant();
-    message.authorization = object.authorization !== undefined && object.authorization !== null ? Any.fromPartial(object.authorization) : undefined;
-    message.expiration = object.expiration ?? undefined;
-    return message;
-  },
-  fromSDK(object: GrantSDKType): Grant {
-    return {
-      authorization: object.authorization ? Any.fromSDK(object.authorization) : undefined,
-      expiration: object.expiration ?? undefined
-    };
-  },
-  toSDK(message: Grant): GrantSDKType {
-    const obj: any = {};
-    message.authorization !== undefined && (obj.authorization = message.authorization ? Any.toSDK(message.authorization) : undefined);
-    message.expiration !== undefined && (obj.expiration = message.expiration ?? undefined);
-    return obj;
-  },
-  fromAmino(object: GrantAmino): Grant {
-    return {
-      authorization: object?.authorization ? Any.fromAmino(object.authorization) : undefined,
-      expiration: object?.expiration
-    };
-  },
-  toAmino(message: Grant): GrantAmino {
-    const obj: any = {};
-    obj.authorization = message.authorization ? Any.toAmino(message.authorization) : undefined;
-    obj.expiration = message.expiration;
-    return obj;
-  },
-  fromAminoMsg(object: GrantAminoMsg): Grant {
-    return Grant.fromAmino(object.value);
-  },
-  toAminoMsg(message: Grant): GrantAminoMsg {
-    return {
-      type: "cosmos-sdk/Grant",
-      value: Grant.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GrantProtoMsg): Grant {
-    return Grant.decode(message.value);
-  },
-  toProto(message: Grant): Uint8Array {
-    return Grant.encode(message).finish();
-  },
-  toProtoMsg(message: Grant): GrantProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.Grant",
-      value: Grant.encode(message).finish()
-    };
-  }
-};
-function createBaseGrantAuthorization(): GrantAuthorization {
-  return {
-    granter: "",
-    grantee: "",
-    authorization: Any.fromPartial({}),
-    expiration: new Date()
-  };
-}
-export const GrantAuthorization = {
-  typeUrl: "/cosmos.authz.v1beta1.GrantAuthorization",
-  aminoType: "cosmos-sdk/GrantAuthorization",
-  encode(message: GrantAuthorization, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.authorization !== undefined) {
-      Any.encode(message.authorization, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.expiration !== undefined) {
-      Timestamp.encode(toTimestamp(message.expiration), writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GrantAuthorization {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGrantAuthorization();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.authorization = Any.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GrantAuthorization {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      authorization: isSet(object.authorization) ? Any.fromJSON(object.authorization) : undefined,
-      expiration: isSet(object.expiration) ? new Date(object.expiration) : undefined
-    };
-  },
-  toJSON(message: GrantAuthorization): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.authorization !== undefined && (obj.authorization = message.authorization ? Any.toJSON(message.authorization) : undefined);
-    message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GrantAuthorization>): GrantAuthorization {
-    const message = createBaseGrantAuthorization();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.authorization = object.authorization !== undefined && object.authorization !== null ? Any.fromPartial(object.authorization) : undefined;
-    message.expiration = object.expiration ?? undefined;
-    return message;
-  },
-  fromSDK(object: GrantAuthorizationSDKType): GrantAuthorization {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      authorization: object.authorization ? Any.fromSDK(object.authorization) : undefined,
-      expiration: object.expiration ?? undefined
-    };
-  },
-  toSDK(message: GrantAuthorization): GrantAuthorizationSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    message.authorization !== undefined && (obj.authorization = message.authorization ? Any.toSDK(message.authorization) : undefined);
-    message.expiration !== undefined && (obj.expiration = message.expiration ?? undefined);
-    return obj;
-  },
-  fromAmino(object: GrantAuthorizationAmino): GrantAuthorization {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      authorization: object?.authorization ? Any.fromAmino(object.authorization) : undefined,
-      expiration: object.expiration
-    };
-  },
-  toAmino(message: GrantAuthorization): GrantAuthorizationAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.authorization = message.authorization ? Any.toAmino(message.authorization) : undefined;
-    obj.expiration = message.expiration;
-    return obj;
-  },
-  fromAminoMsg(object: GrantAuthorizationAminoMsg): GrantAuthorization {
-    return GrantAuthorization.fromAmino(object.value);
-  },
-  toAminoMsg(message: GrantAuthorization): GrantAuthorizationAminoMsg {
-    return {
-      type: "cosmos-sdk/GrantAuthorization",
-      value: GrantAuthorization.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GrantAuthorizationProtoMsg): GrantAuthorization {
-    return GrantAuthorization.decode(message.value);
-  },
-  toProto(message: GrantAuthorization): Uint8Array {
-    return GrantAuthorization.encode(message).finish();
-  },
-  toProtoMsg(message: GrantAuthorization): GrantAuthorizationProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.GrantAuthorization",
-      value: GrantAuthorization.encode(message).finish()
-    };
-  }
-};
-function createBaseGrantQueueItem(): GrantQueueItem {
-  return {
-    msgTypeUrls: []
-  };
-}
-export const GrantQueueItem = {
-  typeUrl: "/cosmos.authz.v1beta1.GrantQueueItem",
-  aminoType: "cosmos-sdk/GrantQueueItem",
-  encode(message: GrantQueueItem, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.msgTypeUrls) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GrantQueueItem {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGrantQueueItem();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.msgTypeUrls.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GrantQueueItem {
-    return {
-      msgTypeUrls: Array.isArray(object?.msgTypeUrls) ? object.msgTypeUrls.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: GrantQueueItem): unknown {
-    const obj: any = {};
-    if (message.msgTypeUrls) {
-      obj.msgTypeUrls = message.msgTypeUrls.map(e => e);
-    } else {
-      obj.msgTypeUrls = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GrantQueueItem>): GrantQueueItem {
-    const message = createBaseGrantQueueItem();
-    message.msgTypeUrls = object.msgTypeUrls?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: GrantQueueItemSDKType): GrantQueueItem {
-    return {
-      msgTypeUrls: Array.isArray(object?.msg_type_urls) ? object.msg_type_urls.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: GrantQueueItem): GrantQueueItemSDKType {
-    const obj: any = {};
-    if (message.msgTypeUrls) {
-      obj.msg_type_urls = message.msgTypeUrls.map(e => e);
-    } else {
-      obj.msg_type_urls = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GrantQueueItemAmino): GrantQueueItem {
-    return {
-      msgTypeUrls: Array.isArray(object?.msg_type_urls) ? object.msg_type_urls.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: GrantQueueItem): GrantQueueItemAmino {
-    const obj: any = {};
-    if (message.msgTypeUrls) {
-      obj.msg_type_urls = message.msgTypeUrls.map(e => e);
-    } else {
-      obj.msg_type_urls = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GrantQueueItemAminoMsg): GrantQueueItem {
-    return GrantQueueItem.fromAmino(object.value);
-  },
-  toAminoMsg(message: GrantQueueItem): GrantQueueItemAminoMsg {
-    return {
-      type: "cosmos-sdk/GrantQueueItem",
-      value: GrantQueueItem.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GrantQueueItemProtoMsg): GrantQueueItem {
-    return GrantQueueItem.decode(message.value);
-  },
-  toProto(message: GrantQueueItem): Uint8Array {
-    return GrantQueueItem.encode(message).finish();
-  },
-  toProtoMsg(message: GrantQueueItem): GrantQueueItemProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.GrantQueueItem",
-      value: GrantQueueItem.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/event.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/event.ts
deleted file mode 100644
index cebacb9b..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/event.ts
+++ /dev/null
@@ -1,298 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** EventGrant is emitted on Msg/Grant */
-export interface EventGrant {
-  /** Msg type URL for which an autorization is granted */
-  msgTypeUrl: string;
-  /** Granter account address */
-  granter: string;
-  /** Grantee account address */
-  grantee: string;
-}
-export interface EventGrantProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.EventGrant";
-  value: Uint8Array;
-}
-/** EventGrant is emitted on Msg/Grant */
-export interface EventGrantAmino {
-  /** Msg type URL for which an autorization is granted */
-  msg_type_url: string;
-  /** Granter account address */
-  granter: string;
-  /** Grantee account address */
-  grantee: string;
-}
-export interface EventGrantAminoMsg {
-  type: "cosmos-sdk/EventGrant";
-  value: EventGrantAmino;
-}
-/** EventGrant is emitted on Msg/Grant */
-export interface EventGrantSDKType {
-  msg_type_url: string;
-  granter: string;
-  grantee: string;
-}
-/** EventRevoke is emitted on Msg/Revoke */
-export interface EventRevoke {
-  /** Msg type URL for which an autorization is revoked */
-  msgTypeUrl: string;
-  /** Granter account address */
-  granter: string;
-  /** Grantee account address */
-  grantee: string;
-}
-export interface EventRevokeProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.EventRevoke";
-  value: Uint8Array;
-}
-/** EventRevoke is emitted on Msg/Revoke */
-export interface EventRevokeAmino {
-  /** Msg type URL for which an autorization is revoked */
-  msg_type_url: string;
-  /** Granter account address */
-  granter: string;
-  /** Grantee account address */
-  grantee: string;
-}
-export interface EventRevokeAminoMsg {
-  type: "cosmos-sdk/EventRevoke";
-  value: EventRevokeAmino;
-}
-/** EventRevoke is emitted on Msg/Revoke */
-export interface EventRevokeSDKType {
-  msg_type_url: string;
-  granter: string;
-  grantee: string;
-}
-function createBaseEventGrant(): EventGrant {
-  return {
-    msgTypeUrl: "",
-    granter: "",
-    grantee: ""
-  };
-}
-export const EventGrant = {
-  typeUrl: "/cosmos.authz.v1beta1.EventGrant",
-  aminoType: "cosmos-sdk/EventGrant",
-  encode(message: EventGrant, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msgTypeUrl !== "") {
-      writer.uint32(18).string(message.msgTypeUrl);
-    }
-    if (message.granter !== "") {
-      writer.uint32(26).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(34).string(message.grantee);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventGrant {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventGrant();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.msgTypeUrl = reader.string();
-          break;
-        case 3:
-          message.granter = reader.string();
-          break;
-        case 4:
-          message.grantee = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventGrant {
-    return {
-      msgTypeUrl: isSet(object.msgTypeUrl) ? String(object.msgTypeUrl) : "",
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : ""
-    };
-  },
-  toJSON(message: EventGrant): unknown {
-    const obj: any = {};
-    message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventGrant>): EventGrant {
-    const message = createBaseEventGrant();
-    message.msgTypeUrl = object.msgTypeUrl ?? "";
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    return message;
-  },
-  fromSDK(object: EventGrantSDKType): EventGrant {
-    return {
-      msgTypeUrl: object?.msg_type_url,
-      granter: object?.granter,
-      grantee: object?.grantee
-    };
-  },
-  toSDK(message: EventGrant): EventGrantSDKType {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAmino(object: EventGrantAmino): EventGrant {
-    return {
-      msgTypeUrl: object.msg_type_url,
-      granter: object.granter,
-      grantee: object.grantee
-    };
-  },
-  toAmino(message: EventGrant): EventGrantAmino {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAminoMsg(object: EventGrantAminoMsg): EventGrant {
-    return EventGrant.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventGrant): EventGrantAminoMsg {
-    return {
-      type: "cosmos-sdk/EventGrant",
-      value: EventGrant.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventGrantProtoMsg): EventGrant {
-    return EventGrant.decode(message.value);
-  },
-  toProto(message: EventGrant): Uint8Array {
-    return EventGrant.encode(message).finish();
-  },
-  toProtoMsg(message: EventGrant): EventGrantProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.EventGrant",
-      value: EventGrant.encode(message).finish()
-    };
-  }
-};
-function createBaseEventRevoke(): EventRevoke {
-  return {
-    msgTypeUrl: "",
-    granter: "",
-    grantee: ""
-  };
-}
-export const EventRevoke = {
-  typeUrl: "/cosmos.authz.v1beta1.EventRevoke",
-  aminoType: "cosmos-sdk/EventRevoke",
-  encode(message: EventRevoke, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msgTypeUrl !== "") {
-      writer.uint32(18).string(message.msgTypeUrl);
-    }
-    if (message.granter !== "") {
-      writer.uint32(26).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(34).string(message.grantee);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventRevoke {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventRevoke();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.msgTypeUrl = reader.string();
-          break;
-        case 3:
-          message.granter = reader.string();
-          break;
-        case 4:
-          message.grantee = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventRevoke {
-    return {
-      msgTypeUrl: isSet(object.msgTypeUrl) ? String(object.msgTypeUrl) : "",
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : ""
-    };
-  },
-  toJSON(message: EventRevoke): unknown {
-    const obj: any = {};
-    message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventRevoke>): EventRevoke {
-    const message = createBaseEventRevoke();
-    message.msgTypeUrl = object.msgTypeUrl ?? "";
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    return message;
-  },
-  fromSDK(object: EventRevokeSDKType): EventRevoke {
-    return {
-      msgTypeUrl: object?.msg_type_url,
-      granter: object?.granter,
-      grantee: object?.grantee
-    };
-  },
-  toSDK(message: EventRevoke): EventRevokeSDKType {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAmino(object: EventRevokeAmino): EventRevoke {
-    return {
-      msgTypeUrl: object.msg_type_url,
-      granter: object.granter,
-      grantee: object.grantee
-    };
-  },
-  toAmino(message: EventRevoke): EventRevokeAmino {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAminoMsg(object: EventRevokeAminoMsg): EventRevoke {
-    return EventRevoke.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventRevoke): EventRevokeAminoMsg {
-    return {
-      type: "cosmos-sdk/EventRevoke",
-      value: EventRevoke.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventRevokeProtoMsg): EventRevoke {
-    return EventRevoke.decode(message.value);
-  },
-  toProto(message: EventRevoke): Uint8Array {
-    return EventRevoke.encode(message).finish();
-  },
-  toProtoMsg(message: EventRevoke): EventRevokeProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.EventRevoke",
-      value: EventRevoke.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/genesis.ts
deleted file mode 100644
index 3c061e7d..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/genesis.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { GrantAuthorization, GrantAuthorizationAmino, GrantAuthorizationSDKType } from "./authz";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial } from "../../../helpers";
-/** GenesisState defines the authz module's genesis state. */
-export interface GenesisState {
-  authorization: GrantAuthorization[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the authz module's genesis state. */
-export interface GenesisStateAmino {
-  authorization: GrantAuthorizationAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the authz module's genesis state. */
-export interface GenesisStateSDKType {
-  authorization: GrantAuthorizationSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    authorization: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.authz.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.authorization) {
-      GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authorization.push(GrantAuthorization.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      authorization: Array.isArray(object?.authorization) ? object.authorization.map((e: any) => GrantAuthorization.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.authorization) {
-      obj.authorization = message.authorization.map(e => e ? GrantAuthorization.toJSON(e) : undefined);
-    } else {
-      obj.authorization = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.authorization = object.authorization?.map(e => GrantAuthorization.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      authorization: Array.isArray(object?.authorization) ? object.authorization.map((e: any) => GrantAuthorization.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.authorization) {
-      obj.authorization = message.authorization.map(e => e ? GrantAuthorization.toSDK(e) : undefined);
-    } else {
-      obj.authorization = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      authorization: Array.isArray(object?.authorization) ? object.authorization.map((e: any) => GrantAuthorization.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.authorization) {
-      obj.authorization = message.authorization.map(e => e ? GrantAuthorization.toAmino(e) : undefined);
-    } else {
-      obj.authorization = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index a8639988..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,163 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryGrantsRequest, QueryGrantsResponse, QueryGranterGrantsRequest, QueryGranterGrantsResponse, QueryGranteeGrantsRequest, QueryGranteeGrantsResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Returns list of `Authorization`, granted to the grantee by the granter. */
-  grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
-  /**
-   * GranterGrants returns list of `GrantAuthorization`, granted by granter.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
-  /**
-   * GranteeGrants returns a list of `GrantAuthorization` by grantee.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.grants = this.grants.bind(this);
-    this.granterGrants = this.granterGrants.bind(this);
-    this.granteeGrants = this.granteeGrants.bind(this);
-  }
-  grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse> {
-    const data = QueryGrantsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "Grants", data);
-    return promise.then(data => QueryGrantsResponse.decode(new BinaryReader(data)));
-  }
-  granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse> {
-    const data = QueryGranterGrantsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranterGrants", data);
-    return promise.then(data => QueryGranterGrantsResponse.decode(new BinaryReader(data)));
-  }
-  granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse> {
-    const data = QueryGranteeGrantsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranteeGrants", data);
-    return promise.then(data => QueryGranteeGrantsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse> {
-      return queryService.grants(request);
-    },
-    granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse> {
-      return queryService.granterGrants(request);
-    },
-    granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse> {
-      return queryService.granteeGrants(request);
-    }
-  };
-};
-export interface UseGrantsQuery<TData> extends ReactQueryParams<QueryGrantsResponse, TData> {
-  request: QueryGrantsRequest;
-}
-export interface UseGranterGrantsQuery<TData> extends ReactQueryParams<QueryGranterGrantsResponse, TData> {
-  request: QueryGranterGrantsRequest;
-}
-export interface UseGranteeGrantsQuery<TData> extends ReactQueryParams<QueryGranteeGrantsResponse, TData> {
-  request: QueryGranteeGrantsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useGrants = <TData = QueryGrantsResponse,>({
-    request,
-    options
-  }: UseGrantsQuery<TData>) => {
-    return useQuery<QueryGrantsResponse, Error, TData>(["grantsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.grants(request);
-    }, options);
-  };
-  const useGranterGrants = <TData = QueryGranterGrantsResponse,>({
-    request,
-    options
-  }: UseGranterGrantsQuery<TData>) => {
-    return useQuery<QueryGranterGrantsResponse, Error, TData>(["granterGrantsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.granterGrants(request);
-    }, options);
-  };
-  const useGranteeGrants = <TData = QueryGranteeGrantsResponse,>({
-    request,
-    options
-  }: UseGranteeGrantsQuery<TData>) => {
-    return useQuery<QueryGranteeGrantsResponse, Error, TData>(["granteeGrantsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.granteeGrants(request);
-    }, options);
-  };
-  return {
-    /** Returns list of `Authorization`, granted to the grantee by the granter. */useGrants,
-    /**
-     * GranterGrants returns list of `GrantAuthorization`, granted by granter.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    useGranterGrants,
-    /**
-     * GranteeGrants returns a list of `GrantAuthorization` by grantee.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    useGranteeGrants
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryGrantsStore {
-    store = new QueryStore<QueryGrantsRequest, QueryGrantsResponse>(queryService?.grants);
-    grants(request: QueryGrantsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGranterGrantsStore {
-    store = new QueryStore<QueryGranterGrantsRequest, QueryGranterGrantsResponse>(queryService?.granterGrants);
-    granterGrants(request: QueryGranterGrantsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGranteeGrantsStore {
-    store = new QueryStore<QueryGranteeGrantsRequest, QueryGranteeGrantsResponse>(queryService?.granteeGrants);
-    granteeGrants(request: QueryGranteeGrantsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Returns list of `Authorization`, granted to the grantee by the granter. */QueryGrantsStore,
-    /**
-     * GranterGrants returns list of `GrantAuthorization`, granted by granter.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    QueryGranterGrantsStore,
-    /**
-     * GranteeGrants returns a list of `GrantAuthorization` by grantee.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    QueryGranteeGrantsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/query.ts
deleted file mode 100644
index 4730de75..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/query.ts
+++ /dev/null
@@ -1,844 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Grant, GrantAmino, GrantSDKType, GrantAuthorization, GrantAuthorizationAmino, GrantAuthorizationSDKType } from "./authz";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */
-export interface QueryGrantsRequest {
-  granter: string;
-  grantee: string;
-  /** Optional, msg_type_url, when set, will query only grants matching given msg type. */
-  msgTypeUrl: string;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGrantsRequestProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGrantsRequest";
-  value: Uint8Array;
-}
-/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */
-export interface QueryGrantsRequestAmino {
-  granter: string;
-  grantee: string;
-  /** Optional, msg_type_url, when set, will query only grants matching given msg type. */
-  msg_type_url: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGrantsRequestAminoMsg {
-  type: "cosmos-sdk/QueryGrantsRequest";
-  value: QueryGrantsRequestAmino;
-}
-/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */
-export interface QueryGrantsRequestSDKType {
-  granter: string;
-  grantee: string;
-  msg_type_url: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */
-export interface QueryGrantsResponse {
-  /** authorizations is a list of grants granted for grantee by granter. */
-  grants: Grant[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGrantsResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGrantsResponse";
-  value: Uint8Array;
-}
-/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */
-export interface QueryGrantsResponseAmino {
-  /** authorizations is a list of grants granted for grantee by granter. */
-  grants: GrantAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGrantsResponseAminoMsg {
-  type: "cosmos-sdk/QueryGrantsResponse";
-  value: QueryGrantsResponseAmino;
-}
-/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */
-export interface QueryGrantsResponseSDKType {
-  grants: GrantSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsRequest {
-  granter: string;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGranterGrantsRequestProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsRequest";
-  value: Uint8Array;
-}
-/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsRequestAmino {
-  granter: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGranterGrantsRequestAminoMsg {
-  type: "cosmos-sdk/QueryGranterGrantsRequest";
-  value: QueryGranterGrantsRequestAmino;
-}
-/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsRequestSDKType {
-  granter: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsResponse {
-  /** grants is a list of grants granted by the granter. */
-  grants: GrantAuthorization[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGranterGrantsResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsResponse";
-  value: Uint8Array;
-}
-/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsResponseAmino {
-  /** grants is a list of grants granted by the granter. */
-  grants: GrantAuthorizationAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGranterGrantsResponseAminoMsg {
-  type: "cosmos-sdk/QueryGranterGrantsResponse";
-  value: QueryGranterGrantsResponseAmino;
-}
-/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */
-export interface QueryGranterGrantsResponseSDKType {
-  grants: GrantAuthorizationSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */
-export interface QueryGranteeGrantsRequest {
-  grantee: string;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGranteeGrantsRequestProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsRequest";
-  value: Uint8Array;
-}
-/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */
-export interface QueryGranteeGrantsRequestAmino {
-  grantee: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGranteeGrantsRequestAminoMsg {
-  type: "cosmos-sdk/QueryGranteeGrantsRequest";
-  value: QueryGranteeGrantsRequestAmino;
-}
-/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */
-export interface QueryGranteeGrantsRequestSDKType {
-  grantee: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */
-export interface QueryGranteeGrantsResponse {
-  /** grants is a list of grants granted to the grantee. */
-  grants: GrantAuthorization[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGranteeGrantsResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsResponse";
-  value: Uint8Array;
-}
-/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */
-export interface QueryGranteeGrantsResponseAmino {
-  /** grants is a list of grants granted to the grantee. */
-  grants: GrantAuthorizationAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGranteeGrantsResponseAminoMsg {
-  type: "cosmos-sdk/QueryGranteeGrantsResponse";
-  value: QueryGranteeGrantsResponseAmino;
-}
-/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */
-export interface QueryGranteeGrantsResponseSDKType {
-  grants: GrantAuthorizationSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryGrantsRequest(): QueryGrantsRequest {
-  return {
-    granter: "",
-    grantee: "",
-    msgTypeUrl: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGrantsRequest = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGrantsRequest",
-  aminoType: "cosmos-sdk/QueryGrantsRequest",
-  encode(message: QueryGrantsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.msgTypeUrl !== "") {
-      writer.uint32(26).string(message.msgTypeUrl);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGrantsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGrantsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.msgTypeUrl = reader.string();
-          break;
-        case 4:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGrantsRequest {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      msgTypeUrl: isSet(object.msgTypeUrl) ? String(object.msgTypeUrl) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGrantsRequest): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGrantsRequest>): QueryGrantsRequest {
-    const message = createBaseQueryGrantsRequest();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.msgTypeUrl = object.msgTypeUrl ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGrantsRequestSDKType): QueryGrantsRequest {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      msgTypeUrl: object?.msg_type_url,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGrantsRequest): QueryGrantsRequestSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.msg_type_url = message.msgTypeUrl;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGrantsRequestAmino): QueryGrantsRequest {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      msgTypeUrl: object.msg_type_url,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGrantsRequest): QueryGrantsRequestAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.msg_type_url = message.msgTypeUrl;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGrantsRequestAminoMsg): QueryGrantsRequest {
-    return QueryGrantsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGrantsRequest): QueryGrantsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGrantsRequest",
-      value: QueryGrantsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGrantsRequestProtoMsg): QueryGrantsRequest {
-    return QueryGrantsRequest.decode(message.value);
-  },
-  toProto(message: QueryGrantsRequest): Uint8Array {
-    return QueryGrantsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGrantsRequest): QueryGrantsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGrantsRequest",
-      value: QueryGrantsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGrantsResponse(): QueryGrantsResponse {
-  return {
-    grants: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGrantsResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGrantsResponse",
-  aminoType: "cosmos-sdk/QueryGrantsResponse",
-  encode(message: QueryGrantsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.grants) {
-      Grant.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGrantsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGrantsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grants.push(Grant.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => Grant.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGrantsResponse): unknown {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? Grant.toJSON(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGrantsResponse>): QueryGrantsResponse {
-    const message = createBaseQueryGrantsResponse();
-    message.grants = object.grants?.map(e => Grant.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGrantsResponseSDKType): QueryGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => Grant.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGrantsResponse): QueryGrantsResponseSDKType {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? Grant.toSDK(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGrantsResponseAmino): QueryGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => Grant.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGrantsResponse): QueryGrantsResponseAmino {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? Grant.toAmino(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGrantsResponseAminoMsg): QueryGrantsResponse {
-    return QueryGrantsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGrantsResponse): QueryGrantsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGrantsResponse",
-      value: QueryGrantsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGrantsResponseProtoMsg): QueryGrantsResponse {
-    return QueryGrantsResponse.decode(message.value);
-  },
-  toProto(message: QueryGrantsResponse): Uint8Array {
-    return QueryGrantsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGrantsResponse): QueryGrantsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGrantsResponse",
-      value: QueryGrantsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGranterGrantsRequest(): QueryGranterGrantsRequest {
-  return {
-    granter: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGranterGrantsRequest = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsRequest",
-  aminoType: "cosmos-sdk/QueryGranterGrantsRequest",
-  encode(message: QueryGranterGrantsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGranterGrantsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGranterGrantsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGranterGrantsRequest {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGranterGrantsRequest): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGranterGrantsRequest>): QueryGranterGrantsRequest {
-    const message = createBaseQueryGranterGrantsRequest();
-    message.granter = object.granter ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGranterGrantsRequestSDKType): QueryGranterGrantsRequest {
-    return {
-      granter: object?.granter,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGranterGrantsRequest): QueryGranterGrantsRequestSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGranterGrantsRequestAmino): QueryGranterGrantsRequest {
-    return {
-      granter: object.granter,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGranterGrantsRequest): QueryGranterGrantsRequestAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGranterGrantsRequestAminoMsg): QueryGranterGrantsRequest {
-    return QueryGranterGrantsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGranterGrantsRequest): QueryGranterGrantsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGranterGrantsRequest",
-      value: QueryGranterGrantsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGranterGrantsRequestProtoMsg): QueryGranterGrantsRequest {
-    return QueryGranterGrantsRequest.decode(message.value);
-  },
-  toProto(message: QueryGranterGrantsRequest): Uint8Array {
-    return QueryGranterGrantsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGranterGrantsRequest): QueryGranterGrantsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsRequest",
-      value: QueryGranterGrantsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGranterGrantsResponse(): QueryGranterGrantsResponse {
-  return {
-    grants: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGranterGrantsResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsResponse",
-  aminoType: "cosmos-sdk/QueryGranterGrantsResponse",
-  encode(message: QueryGranterGrantsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.grants) {
-      GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGranterGrantsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGranterGrantsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grants.push(GrantAuthorization.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGranterGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGranterGrantsResponse): unknown {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toJSON(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGranterGrantsResponse>): QueryGranterGrantsResponse {
-    const message = createBaseQueryGranterGrantsResponse();
-    message.grants = object.grants?.map(e => GrantAuthorization.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGranterGrantsResponseSDKType): QueryGranterGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGranterGrantsResponse): QueryGranterGrantsResponseSDKType {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toSDK(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGranterGrantsResponseAmino): QueryGranterGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGranterGrantsResponse): QueryGranterGrantsResponseAmino {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toAmino(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGranterGrantsResponseAminoMsg): QueryGranterGrantsResponse {
-    return QueryGranterGrantsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGranterGrantsResponse): QueryGranterGrantsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGranterGrantsResponse",
-      value: QueryGranterGrantsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGranterGrantsResponseProtoMsg): QueryGranterGrantsResponse {
-    return QueryGranterGrantsResponse.decode(message.value);
-  },
-  toProto(message: QueryGranterGrantsResponse): Uint8Array {
-    return QueryGranterGrantsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGranterGrantsResponse): QueryGranterGrantsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsResponse",
-      value: QueryGranterGrantsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGranteeGrantsRequest(): QueryGranteeGrantsRequest {
-  return {
-    grantee: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGranteeGrantsRequest = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsRequest",
-  aminoType: "cosmos-sdk/QueryGranteeGrantsRequest",
-  encode(message: QueryGranteeGrantsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.grantee !== "") {
-      writer.uint32(10).string(message.grantee);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGranteeGrantsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGranteeGrantsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grantee = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGranteeGrantsRequest {
-    return {
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGranteeGrantsRequest): unknown {
-    const obj: any = {};
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGranteeGrantsRequest>): QueryGranteeGrantsRequest {
-    const message = createBaseQueryGranteeGrantsRequest();
-    message.grantee = object.grantee ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGranteeGrantsRequestSDKType): QueryGranteeGrantsRequest {
-    return {
-      grantee: object?.grantee,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGranteeGrantsRequest): QueryGranteeGrantsRequestSDKType {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGranteeGrantsRequestAmino): QueryGranteeGrantsRequest {
-    return {
-      grantee: object.grantee,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGranteeGrantsRequest): QueryGranteeGrantsRequestAmino {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGranteeGrantsRequestAminoMsg): QueryGranteeGrantsRequest {
-    return QueryGranteeGrantsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGranteeGrantsRequest): QueryGranteeGrantsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGranteeGrantsRequest",
-      value: QueryGranteeGrantsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGranteeGrantsRequestProtoMsg): QueryGranteeGrantsRequest {
-    return QueryGranteeGrantsRequest.decode(message.value);
-  },
-  toProto(message: QueryGranteeGrantsRequest): Uint8Array {
-    return QueryGranteeGrantsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGranteeGrantsRequest): QueryGranteeGrantsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsRequest",
-      value: QueryGranteeGrantsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGranteeGrantsResponse(): QueryGranteeGrantsResponse {
-  return {
-    grants: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGranteeGrantsResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsResponse",
-  aminoType: "cosmos-sdk/QueryGranteeGrantsResponse",
-  encode(message: QueryGranteeGrantsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.grants) {
-      GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGranteeGrantsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGranteeGrantsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grants.push(GrantAuthorization.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGranteeGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGranteeGrantsResponse): unknown {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toJSON(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGranteeGrantsResponse>): QueryGranteeGrantsResponse {
-    const message = createBaseQueryGranteeGrantsResponse();
-    message.grants = object.grants?.map(e => GrantAuthorization.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGranteeGrantsResponseSDKType): QueryGranteeGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGranteeGrantsResponse): QueryGranteeGrantsResponseSDKType {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toSDK(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGranteeGrantsResponseAmino): QueryGranteeGrantsResponse {
-    return {
-      grants: Array.isArray(object?.grants) ? object.grants.map((e: any) => GrantAuthorization.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGranteeGrantsResponse): QueryGranteeGrantsResponseAmino {
-    const obj: any = {};
-    if (message.grants) {
-      obj.grants = message.grants.map(e => e ? GrantAuthorization.toAmino(e) : undefined);
-    } else {
-      obj.grants = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGranteeGrantsResponseAminoMsg): QueryGranteeGrantsResponse {
-    return QueryGranteeGrantsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGranteeGrantsResponse): QueryGranteeGrantsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGranteeGrantsResponse",
-      value: QueryGranteeGrantsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGranteeGrantsResponseProtoMsg): QueryGranteeGrantsResponse {
-    return QueryGranteeGrantsResponse.decode(message.value);
-  },
-  toProto(message: QueryGranteeGrantsResponse): Uint8Array {
-    return QueryGranteeGrantsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGranteeGrantsResponse): QueryGranteeGrantsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsResponse",
-      value: QueryGranteeGrantsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.amino.ts
deleted file mode 100644
index dce86d05..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-//@ts-nocheck
-import { MsgGrant, MsgExec, MsgRevoke } from "./tx";
-export const AminoConverter = {
-  "/cosmos.authz.v1beta1.MsgGrant": {
-    aminoType: "cosmos-sdk/MsgGrant",
-    toAmino: MsgGrant.toAmino,
-    fromAmino: MsgGrant.fromAmino
-  },
-  "/cosmos.authz.v1beta1.MsgExec": {
-    aminoType: "cosmos-sdk/MsgExec",
-    toAmino: MsgExec.toAmino,
-    fromAmino: MsgExec.fromAmino
-  },
-  "/cosmos.authz.v1beta1.MsgRevoke": {
-    aminoType: "cosmos-sdk/MsgRevoke",
-    toAmino: MsgRevoke.toAmino,
-    fromAmino: MsgRevoke.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.registry.ts
deleted file mode 100644
index c9004e62..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgGrant, MsgExec, MsgRevoke } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.authz.v1beta1.MsgGrant", MsgGrant], ["/cosmos.authz.v1beta1.MsgExec", MsgExec], ["/cosmos.authz.v1beta1.MsgRevoke", MsgRevoke]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    grant(value: MsgGrant) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-        value: MsgGrant.encode(value).finish()
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-        value: MsgExec.encode(value).finish()
-      };
-    },
-    revoke(value: MsgRevoke) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-        value: MsgRevoke.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    grant(value: MsgGrant) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-        value
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-        value
-      };
-    },
-    revoke(value: MsgRevoke) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-        value
-      };
-    }
-  },
-  toJSON: {
-    grant(value: MsgGrant) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-        value: MsgGrant.toJSON(value)
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-        value: MsgExec.toJSON(value)
-      };
-    },
-    revoke(value: MsgRevoke) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-        value: MsgRevoke.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    grant(value: any) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-        value: MsgGrant.fromJSON(value)
-      };
-    },
-    exec(value: any) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-        value: MsgExec.fromJSON(value)
-      };
-    },
-    revoke(value: any) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-        value: MsgRevoke.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    grant(value: MsgGrant) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-        value: MsgGrant.fromPartial(value)
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-        value: MsgExec.fromPartial(value)
-      };
-    },
-    revoke(value: MsgRevoke) {
-      return {
-        typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-        value: MsgRevoke.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 4f5bb4ee..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgGrant, MsgGrantResponse, MsgExec, MsgExecResponse, MsgRevoke, MsgRevokeResponse } from "./tx";
-/** Msg defines the authz Msg service. */
-export interface Msg {
-  /**
-   * Grant grants the provided authorization to the grantee on the granter's
-   * account with the provided expiration time. If there is already a grant
-   * for the given (granter, grantee, Authorization) triple, then the grant
-   * will be overwritten.
-   */
-  grant(request: MsgGrant): Promise<MsgGrantResponse>;
-  /**
-   * Exec attempts to execute the provided messages using
-   * authorizations granted to the grantee. Each message should have only
-   * one signer corresponding to the granter of the authorization.
-   */
-  exec(request: MsgExec): Promise<MsgExecResponse>;
-  /**
-   * Revoke revokes any authorization corresponding to the provided method name on the
-   * granter's account that has been granted to the grantee.
-   */
-  revoke(request: MsgRevoke): Promise<MsgRevokeResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.grant = this.grant.bind(this);
-    this.exec = this.exec.bind(this);
-    this.revoke = this.revoke.bind(this);
-  }
-  grant(request: MsgGrant): Promise<MsgGrantResponse> {
-    const data = MsgGrant.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Grant", data);
-    return promise.then(data => MsgGrantResponse.decode(new BinaryReader(data)));
-  }
-  exec(request: MsgExec): Promise<MsgExecResponse> {
-    const data = MsgExec.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Exec", data);
-    return promise.then(data => MsgExecResponse.decode(new BinaryReader(data)));
-  }
-  revoke(request: MsgRevoke): Promise<MsgRevokeResponse> {
-    const data = MsgRevoke.encode(request).finish();
-    const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Revoke", data);
-    return promise.then(data => MsgRevokeResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.ts
deleted file mode 100644
index 6717160e..00000000
--- a/examples/injective/src/codegen/cosmos/authz/v1beta1/tx.ts
+++ /dev/null
@@ -1,753 +0,0 @@
-import { Grant, GrantAmino, GrantSDKType } from "./authz";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/**
- * MsgGrant is a request type for Grant method. It declares authorization to the grantee
- * on behalf of the granter with the provided expiration time.
- */
-export interface MsgGrant {
-  granter: string;
-  grantee: string;
-  grant: Grant | undefined;
-}
-export interface MsgGrantProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgGrant";
-  value: Uint8Array;
-}
-/**
- * MsgGrant is a request type for Grant method. It declares authorization to the grantee
- * on behalf of the granter with the provided expiration time.
- */
-export interface MsgGrantAmino {
-  granter: string;
-  grantee: string;
-  grant?: GrantAmino | undefined;
-}
-export interface MsgGrantAminoMsg {
-  type: "cosmos-sdk/MsgGrant";
-  value: MsgGrantAmino;
-}
-/**
- * MsgGrant is a request type for Grant method. It declares authorization to the grantee
- * on behalf of the granter with the provided expiration time.
- */
-export interface MsgGrantSDKType {
-  granter: string;
-  grantee: string;
-  grant: GrantSDKType | undefined;
-}
-/** MsgExecResponse defines the Msg/MsgExecResponse response type. */
-export interface MsgExecResponse {
-  results: Uint8Array[];
-}
-export interface MsgExecResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgExecResponse";
-  value: Uint8Array;
-}
-/** MsgExecResponse defines the Msg/MsgExecResponse response type. */
-export interface MsgExecResponseAmino {
-  results: Uint8Array[];
-}
-export interface MsgExecResponseAminoMsg {
-  type: "cosmos-sdk/MsgExecResponse";
-  value: MsgExecResponseAmino;
-}
-/** MsgExecResponse defines the Msg/MsgExecResponse response type. */
-export interface MsgExecResponseSDKType {
-  results: Uint8Array[];
-}
-/**
- * MsgExec attempts to execute the provided messages using
- * authorizations granted to the grantee. Each message should have only
- * one signer corresponding to the granter of the authorization.
- */
-export interface MsgExec {
-  grantee: string;
-  /**
-   * Authorization Msg requests to execute. Each msg must implement Authorization interface
-   * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg))
-   * triple and validate it.
-   */
-  msgs: Any[];
-}
-export interface MsgExecProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgExec";
-  value: Uint8Array;
-}
-/**
- * MsgExec attempts to execute the provided messages using
- * authorizations granted to the grantee. Each message should have only
- * one signer corresponding to the granter of the authorization.
- */
-export interface MsgExecAmino {
-  grantee: string;
-  /**
-   * Authorization Msg requests to execute. Each msg must implement Authorization interface
-   * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg))
-   * triple and validate it.
-   */
-  msgs: AnyAmino[];
-}
-export interface MsgExecAminoMsg {
-  type: "cosmos-sdk/MsgExec";
-  value: MsgExecAmino;
-}
-/**
- * MsgExec attempts to execute the provided messages using
- * authorizations granted to the grantee. Each message should have only
- * one signer corresponding to the granter of the authorization.
- */
-export interface MsgExecSDKType {
-  grantee: string;
-  msgs: AnySDKType[];
-}
-/** MsgGrantResponse defines the Msg/MsgGrant response type. */
-export interface MsgGrantResponse {}
-export interface MsgGrantResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgGrantResponse";
-  value: Uint8Array;
-}
-/** MsgGrantResponse defines the Msg/MsgGrant response type. */
-export interface MsgGrantResponseAmino {}
-export interface MsgGrantResponseAminoMsg {
-  type: "cosmos-sdk/MsgGrantResponse";
-  value: MsgGrantResponseAmino;
-}
-/** MsgGrantResponse defines the Msg/MsgGrant response type. */
-export interface MsgGrantResponseSDKType {}
-/**
- * MsgRevoke revokes any authorization with the provided sdk.Msg type on the
- * granter's account with that has been granted to the grantee.
- */
-export interface MsgRevoke {
-  granter: string;
-  grantee: string;
-  msgTypeUrl: string;
-}
-export interface MsgRevokeProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgRevoke";
-  value: Uint8Array;
-}
-/**
- * MsgRevoke revokes any authorization with the provided sdk.Msg type on the
- * granter's account with that has been granted to the grantee.
- */
-export interface MsgRevokeAmino {
-  granter: string;
-  grantee: string;
-  msg_type_url: string;
-}
-export interface MsgRevokeAminoMsg {
-  type: "cosmos-sdk/MsgRevoke";
-  value: MsgRevokeAmino;
-}
-/**
- * MsgRevoke revokes any authorization with the provided sdk.Msg type on the
- * granter's account with that has been granted to the grantee.
- */
-export interface MsgRevokeSDKType {
-  granter: string;
-  grantee: string;
-  msg_type_url: string;
-}
-/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */
-export interface MsgRevokeResponse {}
-export interface MsgRevokeResponseProtoMsg {
-  typeUrl: "/cosmos.authz.v1beta1.MsgRevokeResponse";
-  value: Uint8Array;
-}
-/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */
-export interface MsgRevokeResponseAmino {}
-export interface MsgRevokeResponseAminoMsg {
-  type: "cosmos-sdk/MsgRevokeResponse";
-  value: MsgRevokeResponseAmino;
-}
-/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */
-export interface MsgRevokeResponseSDKType {}
-function createBaseMsgGrant(): MsgGrant {
-  return {
-    granter: "",
-    grantee: "",
-    grant: Grant.fromPartial({})
-  };
-}
-export const MsgGrant = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-  aminoType: "cosmos-sdk/MsgGrant",
-  encode(message: MsgGrant, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.grant !== undefined) {
-      Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgGrant {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgGrant();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.grant = Grant.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgGrant {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      grant: isSet(object.grant) ? Grant.fromJSON(object.grant) : undefined
-    };
-  },
-  toJSON(message: MsgGrant): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.grant !== undefined && (obj.grant = message.grant ? Grant.toJSON(message.grant) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgGrant>): MsgGrant {
-    const message = createBaseMsgGrant();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.grant = object.grant !== undefined && object.grant !== null ? Grant.fromPartial(object.grant) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgGrantSDKType): MsgGrant {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      grant: object.grant ? Grant.fromSDK(object.grant) : undefined
-    };
-  },
-  toSDK(message: MsgGrant): MsgGrantSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    message.grant !== undefined && (obj.grant = message.grant ? Grant.toSDK(message.grant) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgGrantAmino): MsgGrant {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      grant: object?.grant ? Grant.fromAmino(object.grant) : undefined
-    };
-  },
-  toAmino(message: MsgGrant): MsgGrantAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.grant = message.grant ? Grant.toAmino(message.grant) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgGrantAminoMsg): MsgGrant {
-    return MsgGrant.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgGrant): MsgGrantAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgGrant",
-      value: MsgGrant.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgGrantProtoMsg): MsgGrant {
-    return MsgGrant.decode(message.value);
-  },
-  toProto(message: MsgGrant): Uint8Array {
-    return MsgGrant.encode(message).finish();
-  },
-  toProtoMsg(message: MsgGrant): MsgGrantProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgGrant",
-      value: MsgGrant.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecResponse(): MsgExecResponse {
-  return {
-    results: []
-  };
-}
-export const MsgExecResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgExecResponse",
-  aminoType: "cosmos-sdk/MsgExecResponse",
-  encode(message: MsgExecResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.results) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.results.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExecResponse {
-    return {
-      results: Array.isArray(object?.results) ? object.results.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: MsgExecResponse): unknown {
-    const obj: any = {};
-    if (message.results) {
-      obj.results = message.results.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.results = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExecResponse>): MsgExecResponse {
-    const message = createBaseMsgExecResponse();
-    message.results = object.results?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: MsgExecResponseSDKType): MsgExecResponse {
-    return {
-      results: Array.isArray(object?.results) ? object.results.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: MsgExecResponse): MsgExecResponseSDKType {
-    const obj: any = {};
-    if (message.results) {
-      obj.results = message.results.map(e => e);
-    } else {
-      obj.results = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgExecResponseAmino): MsgExecResponse {
-    return {
-      results: Array.isArray(object?.results) ? object.results.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: MsgExecResponse): MsgExecResponseAmino {
-    const obj: any = {};
-    if (message.results) {
-      obj.results = message.results.map(e => e);
-    } else {
-      obj.results = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecResponseAminoMsg): MsgExecResponse {
-    return MsgExecResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecResponse): MsgExecResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgExecResponse",
-      value: MsgExecResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecResponseProtoMsg): MsgExecResponse {
-    return MsgExecResponse.decode(message.value);
-  },
-  toProto(message: MsgExecResponse): Uint8Array {
-    return MsgExecResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecResponse): MsgExecResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgExecResponse",
-      value: MsgExecResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExec(): MsgExec {
-  return {
-    grantee: "",
-    msgs: []
-  };
-}
-export const MsgExec = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-  aminoType: "cosmos-sdk/MsgExec",
-  encode(message: MsgExec, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.grantee !== "") {
-      writer.uint32(10).string(message.grantee);
-    }
-    for (const v of message.msgs) {
-      Any.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExec {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExec();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grantee = reader.string();
-          break;
-        case 2:
-          message.msgs.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExec {
-    return {
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgExec): unknown {
-    const obj: any = {};
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExec>): MsgExec {
-    const message = createBaseMsgExec();
-    message.grantee = object.grantee ?? "";
-    message.msgs = object.msgs?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgExecSDKType): MsgExec {
-    return {
-      grantee: object?.grantee,
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgExec): MsgExecSDKType {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgExecAmino): MsgExec {
-    return {
-      grantee: object.grantee,
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgExec): MsgExecAmino {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecAminoMsg): MsgExec {
-    return MsgExec.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExec): MsgExecAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgExec",
-      value: MsgExec.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecProtoMsg): MsgExec {
-    return MsgExec.decode(message.value);
-  },
-  toProto(message: MsgExec): Uint8Array {
-    return MsgExec.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExec): MsgExecProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgExec",
-      value: MsgExec.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgGrantResponse(): MsgGrantResponse {
-  return {};
-}
-export const MsgGrantResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgGrantResponse",
-  aminoType: "cosmos-sdk/MsgGrantResponse",
-  encode(_: MsgGrantResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgGrantResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgGrantResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgGrantResponse {
-    return {};
-  },
-  toJSON(_: MsgGrantResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgGrantResponse>): MsgGrantResponse {
-    const message = createBaseMsgGrantResponse();
-    return message;
-  },
-  fromSDK(_: MsgGrantResponseSDKType): MsgGrantResponse {
-    return {};
-  },
-  toSDK(_: MsgGrantResponse): MsgGrantResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgGrantResponseAmino): MsgGrantResponse {
-    return {};
-  },
-  toAmino(_: MsgGrantResponse): MsgGrantResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgGrantResponseAminoMsg): MsgGrantResponse {
-    return MsgGrantResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgGrantResponse): MsgGrantResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgGrantResponse",
-      value: MsgGrantResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgGrantResponseProtoMsg): MsgGrantResponse {
-    return MsgGrantResponse.decode(message.value);
-  },
-  toProto(message: MsgGrantResponse): Uint8Array {
-    return MsgGrantResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgGrantResponse): MsgGrantResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgGrantResponse",
-      value: MsgGrantResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRevoke(): MsgRevoke {
-  return {
-    granter: "",
-    grantee: "",
-    msgTypeUrl: ""
-  };
-}
-export const MsgRevoke = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-  aminoType: "cosmos-sdk/MsgRevoke",
-  encode(message: MsgRevoke, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.msgTypeUrl !== "") {
-      writer.uint32(26).string(message.msgTypeUrl);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRevoke {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRevoke();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.msgTypeUrl = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgRevoke {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      msgTypeUrl: isSet(object.msgTypeUrl) ? String(object.msgTypeUrl) : ""
-    };
-  },
-  toJSON(message: MsgRevoke): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgRevoke>): MsgRevoke {
-    const message = createBaseMsgRevoke();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.msgTypeUrl = object.msgTypeUrl ?? "";
-    return message;
-  },
-  fromSDK(object: MsgRevokeSDKType): MsgRevoke {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      msgTypeUrl: object?.msg_type_url
-    };
-  },
-  toSDK(message: MsgRevoke): MsgRevokeSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.msg_type_url = message.msgTypeUrl;
-    return obj;
-  },
-  fromAmino(object: MsgRevokeAmino): MsgRevoke {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      msgTypeUrl: object.msg_type_url
-    };
-  },
-  toAmino(message: MsgRevoke): MsgRevokeAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.msg_type_url = message.msgTypeUrl;
-    return obj;
-  },
-  fromAminoMsg(object: MsgRevokeAminoMsg): MsgRevoke {
-    return MsgRevoke.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRevoke): MsgRevokeAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRevoke",
-      value: MsgRevoke.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRevokeProtoMsg): MsgRevoke {
-    return MsgRevoke.decode(message.value);
-  },
-  toProto(message: MsgRevoke): Uint8Array {
-    return MsgRevoke.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRevoke): MsgRevokeProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
-      value: MsgRevoke.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRevokeResponse(): MsgRevokeResponse {
-  return {};
-}
-export const MsgRevokeResponse = {
-  typeUrl: "/cosmos.authz.v1beta1.MsgRevokeResponse",
-  aminoType: "cosmos-sdk/MsgRevokeResponse",
-  encode(_: MsgRevokeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRevokeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRevokeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgRevokeResponse {
-    return {};
-  },
-  toJSON(_: MsgRevokeResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgRevokeResponse>): MsgRevokeResponse {
-    const message = createBaseMsgRevokeResponse();
-    return message;
-  },
-  fromSDK(_: MsgRevokeResponseSDKType): MsgRevokeResponse {
-    return {};
-  },
-  toSDK(_: MsgRevokeResponse): MsgRevokeResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgRevokeResponseAmino): MsgRevokeResponse {
-    return {};
-  },
-  toAmino(_: MsgRevokeResponse): MsgRevokeResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgRevokeResponseAminoMsg): MsgRevokeResponse {
-    return MsgRevokeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRevokeResponse): MsgRevokeResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRevokeResponse",
-      value: MsgRevokeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRevokeResponseProtoMsg): MsgRevokeResponse {
-    return MsgRevokeResponse.decode(message.value);
-  },
-  toProto(message: MsgRevokeResponse): Uint8Array {
-    return MsgRevokeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRevokeResponse): MsgRevokeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.authz.v1beta1.MsgRevokeResponse",
-      value: MsgRevokeResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/authz.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/authz.ts
deleted file mode 100644
index 4a5d18a7..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/authz.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial } from "../../../helpers";
-/**
- * SendAuthorization allows the grantee to spend up to spend_limit coins from
- * the granter's account.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface SendAuthorization {
-  spendLimit: Coin[];
-}
-export interface SendAuthorizationProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.SendAuthorization";
-  value: Uint8Array;
-}
-/**
- * SendAuthorization allows the grantee to spend up to spend_limit coins from
- * the granter's account.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface SendAuthorizationAmino {
-  spend_limit: CoinAmino[];
-}
-export interface SendAuthorizationAminoMsg {
-  type: "cosmos-sdk/SendAuthorization";
-  value: SendAuthorizationAmino;
-}
-/**
- * SendAuthorization allows the grantee to spend up to spend_limit coins from
- * the granter's account.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface SendAuthorizationSDKType {
-  spend_limit: CoinSDKType[];
-}
-function createBaseSendAuthorization(): SendAuthorization {
-  return {
-    spendLimit: []
-  };
-}
-export const SendAuthorization = {
-  typeUrl: "/cosmos.bank.v1beta1.SendAuthorization",
-  aminoType: "cosmos-sdk/SendAuthorization",
-  encode(message: SendAuthorization, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.spendLimit) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SendAuthorization {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSendAuthorization();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.spendLimit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SendAuthorization {
-    return {
-      spendLimit: Array.isArray(object?.spendLimit) ? object.spendLimit.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SendAuthorization): unknown {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spendLimit = message.spendLimit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.spendLimit = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SendAuthorization>): SendAuthorization {
-    const message = createBaseSendAuthorization();
-    message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SendAuthorizationSDKType): SendAuthorization {
-    return {
-      spendLimit: Array.isArray(object?.spend_limit) ? object.spend_limit.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SendAuthorization): SendAuthorizationSDKType {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spend_limit = message.spendLimit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.spend_limit = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SendAuthorizationAmino): SendAuthorization {
-    return {
-      spendLimit: Array.isArray(object?.spend_limit) ? object.spend_limit.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SendAuthorization): SendAuthorizationAmino {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spend_limit = message.spendLimit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.spend_limit = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SendAuthorizationAminoMsg): SendAuthorization {
-    return SendAuthorization.fromAmino(object.value);
-  },
-  toAminoMsg(message: SendAuthorization): SendAuthorizationAminoMsg {
-    return {
-      type: "cosmos-sdk/SendAuthorization",
-      value: SendAuthorization.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SendAuthorizationProtoMsg): SendAuthorization {
-    return SendAuthorization.decode(message.value);
-  },
-  toProto(message: SendAuthorization): Uint8Array {
-    return SendAuthorization.encode(message).finish();
-  },
-  toProtoMsg(message: SendAuthorization): SendAuthorizationProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.SendAuthorization",
-      value: SendAuthorization.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/bank.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/bank.ts
deleted file mode 100644
index 5e8a752e..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/bank.ts
+++ /dev/null
@@ -1,1168 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Params defines the parameters for the bank module. */
-export interface Params {
-  sendEnabled: SendEnabled[];
-  defaultSendEnabled: boolean;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the parameters for the bank module. */
-export interface ParamsAmino {
-  send_enabled: SendEnabledAmino[];
-  default_send_enabled: boolean;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the parameters for the bank module. */
-export interface ParamsSDKType {
-  send_enabled: SendEnabledSDKType[];
-  default_send_enabled: boolean;
-}
-/**
- * SendEnabled maps coin denom to a send_enabled status (whether a denom is
- * sendable).
- */
-export interface SendEnabled {
-  denom: string;
-  enabled: boolean;
-}
-export interface SendEnabledProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.SendEnabled";
-  value: Uint8Array;
-}
-/**
- * SendEnabled maps coin denom to a send_enabled status (whether a denom is
- * sendable).
- */
-export interface SendEnabledAmino {
-  denom: string;
-  enabled: boolean;
-}
-export interface SendEnabledAminoMsg {
-  type: "cosmos-sdk/SendEnabled";
-  value: SendEnabledAmino;
-}
-/**
- * SendEnabled maps coin denom to a send_enabled status (whether a denom is
- * sendable).
- */
-export interface SendEnabledSDKType {
-  denom: string;
-  enabled: boolean;
-}
-/** Input models transaction input. */
-export interface Input {
-  address: string;
-  coins: Coin[];
-}
-export interface InputProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Input";
-  value: Uint8Array;
-}
-/** Input models transaction input. */
-export interface InputAmino {
-  address: string;
-  coins: CoinAmino[];
-}
-export interface InputAminoMsg {
-  type: "cosmos-sdk/Input";
-  value: InputAmino;
-}
-/** Input models transaction input. */
-export interface InputSDKType {
-  address: string;
-  coins: CoinSDKType[];
-}
-/** Output models transaction outputs. */
-export interface Output {
-  address: string;
-  coins: Coin[];
-}
-export interface OutputProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Output";
-  value: Uint8Array;
-}
-/** Output models transaction outputs. */
-export interface OutputAmino {
-  address: string;
-  coins: CoinAmino[];
-}
-export interface OutputAminoMsg {
-  type: "cosmos-sdk/Output";
-  value: OutputAmino;
-}
-/** Output models transaction outputs. */
-export interface OutputSDKType {
-  address: string;
-  coins: CoinSDKType[];
-}
-/**
- * Supply represents a struct that passively keeps track of the total supply
- * amounts in the network.
- * This message is deprecated now that supply is indexed by denom.
- */
-/** @deprecated */
-export interface Supply {
-  total: Coin[];
-}
-export interface SupplyProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Supply";
-  value: Uint8Array;
-}
-/**
- * Supply represents a struct that passively keeps track of the total supply
- * amounts in the network.
- * This message is deprecated now that supply is indexed by denom.
- */
-/** @deprecated */
-export interface SupplyAmino {
-  total: CoinAmino[];
-}
-export interface SupplyAminoMsg {
-  type: "cosmos-sdk/Supply";
-  value: SupplyAmino;
-}
-/**
- * Supply represents a struct that passively keeps track of the total supply
- * amounts in the network.
- * This message is deprecated now that supply is indexed by denom.
- */
-/** @deprecated */
-export interface SupplySDKType {
-  total: CoinSDKType[];
-}
-/**
- * DenomUnit represents a struct that describes a given
- * denomination unit of the basic token.
- */
-export interface DenomUnit {
-  /** denom represents the string name of the given denom unit (e.g uatom). */
-  denom: string;
-  /**
-   * exponent represents power of 10 exponent that one must
-   * raise the base_denom to in order to equal the given DenomUnit's denom
-   * 1 denom = 10^exponent base_denom
-   * (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with
-   * exponent = 6, thus: 1 atom = 10^6 uatom).
-   */
-  exponent: number;
-  /** aliases is a list of string aliases for the given denom */
-  aliases: string[];
-}
-export interface DenomUnitProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.DenomUnit";
-  value: Uint8Array;
-}
-/**
- * DenomUnit represents a struct that describes a given
- * denomination unit of the basic token.
- */
-export interface DenomUnitAmino {
-  /** denom represents the string name of the given denom unit (e.g uatom). */
-  denom: string;
-  /**
-   * exponent represents power of 10 exponent that one must
-   * raise the base_denom to in order to equal the given DenomUnit's denom
-   * 1 denom = 10^exponent base_denom
-   * (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with
-   * exponent = 6, thus: 1 atom = 10^6 uatom).
-   */
-  exponent: number;
-  /** aliases is a list of string aliases for the given denom */
-  aliases: string[];
-}
-export interface DenomUnitAminoMsg {
-  type: "cosmos-sdk/DenomUnit";
-  value: DenomUnitAmino;
-}
-/**
- * DenomUnit represents a struct that describes a given
- * denomination unit of the basic token.
- */
-export interface DenomUnitSDKType {
-  denom: string;
-  exponent: number;
-  aliases: string[];
-}
-/**
- * Metadata represents a struct that describes
- * a basic token.
- */
-export interface Metadata {
-  description: string;
-  /** denom_units represents the list of DenomUnit's for a given coin */
-  denomUnits: DenomUnit[];
-  /** base represents the base denom (should be the DenomUnit with exponent = 0). */
-  base: string;
-  /**
-   * display indicates the suggested denom that should be
-   * displayed in clients.
-   */
-  display: string;
-  /**
-   * name defines the name of the token (eg: Cosmos Atom)
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  name: string;
-  /**
-   * symbol is the token symbol usually shown on exchanges (eg: ATOM). This can
-   * be the same as the display.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  symbol: string;
-  /**
-   * URI to a document (on or off-chain) that contains additional information. Optional.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  uri: string;
-  /**
-   * URIHash is a sha256 hash of a document pointed by URI. It's used to verify that
-   * the document didn't change. Optional.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  uriHash: string;
-}
-export interface MetadataProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Metadata";
-  value: Uint8Array;
-}
-/**
- * Metadata represents a struct that describes
- * a basic token.
- */
-export interface MetadataAmino {
-  description: string;
-  /** denom_units represents the list of DenomUnit's for a given coin */
-  denom_units: DenomUnitAmino[];
-  /** base represents the base denom (should be the DenomUnit with exponent = 0). */
-  base: string;
-  /**
-   * display indicates the suggested denom that should be
-   * displayed in clients.
-   */
-  display: string;
-  /**
-   * name defines the name of the token (eg: Cosmos Atom)
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  name: string;
-  /**
-   * symbol is the token symbol usually shown on exchanges (eg: ATOM). This can
-   * be the same as the display.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  symbol: string;
-  /**
-   * URI to a document (on or off-chain) that contains additional information. Optional.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  uri: string;
-  /**
-   * URIHash is a sha256 hash of a document pointed by URI. It's used to verify that
-   * the document didn't change. Optional.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  uri_hash: string;
-}
-export interface MetadataAminoMsg {
-  type: "cosmos-sdk/Metadata";
-  value: MetadataAmino;
-}
-/**
- * Metadata represents a struct that describes
- * a basic token.
- */
-export interface MetadataSDKType {
-  description: string;
-  denom_units: DenomUnitSDKType[];
-  base: string;
-  display: string;
-  name: string;
-  symbol: string;
-  uri: string;
-  uri_hash: string;
-}
-function createBaseParams(): Params {
-  return {
-    sendEnabled: [],
-    defaultSendEnabled: false
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.bank.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.sendEnabled) {
-      SendEnabled.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.defaultSendEnabled === true) {
-      writer.uint32(16).bool(message.defaultSendEnabled);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sendEnabled.push(SendEnabled.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.defaultSendEnabled = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      sendEnabled: Array.isArray(object?.sendEnabled) ? object.sendEnabled.map((e: any) => SendEnabled.fromJSON(e)) : [],
-      defaultSendEnabled: isSet(object.defaultSendEnabled) ? Boolean(object.defaultSendEnabled) : false
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    if (message.sendEnabled) {
-      obj.sendEnabled = message.sendEnabled.map(e => e ? SendEnabled.toJSON(e) : undefined);
-    } else {
-      obj.sendEnabled = [];
-    }
-    message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.sendEnabled = object.sendEnabled?.map(e => SendEnabled.fromPartial(e)) || [];
-    message.defaultSendEnabled = object.defaultSendEnabled ?? false;
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      sendEnabled: Array.isArray(object?.send_enabled) ? object.send_enabled.map((e: any) => SendEnabled.fromSDK(e)) : [],
-      defaultSendEnabled: object?.default_send_enabled
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    if (message.sendEnabled) {
-      obj.send_enabled = message.sendEnabled.map(e => e ? SendEnabled.toSDK(e) : undefined);
-    } else {
-      obj.send_enabled = [];
-    }
-    obj.default_send_enabled = message.defaultSendEnabled;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      sendEnabled: Array.isArray(object?.send_enabled) ? object.send_enabled.map((e: any) => SendEnabled.fromAmino(e)) : [],
-      defaultSendEnabled: object.default_send_enabled
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    if (message.sendEnabled) {
-      obj.send_enabled = message.sendEnabled.map(e => e ? SendEnabled.toAmino(e) : undefined);
-    } else {
-      obj.send_enabled = [];
-    }
-    obj.default_send_enabled = message.defaultSendEnabled;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseSendEnabled(): SendEnabled {
-  return {
-    denom: "",
-    enabled: false
-  };
-}
-export const SendEnabled = {
-  typeUrl: "/cosmos.bank.v1beta1.SendEnabled",
-  aminoType: "cosmos-sdk/SendEnabled",
-  encode(message: SendEnabled, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.enabled === true) {
-      writer.uint32(16).bool(message.enabled);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SendEnabled {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSendEnabled();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.enabled = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SendEnabled {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      enabled: isSet(object.enabled) ? Boolean(object.enabled) : false
-    };
-  },
-  toJSON(message: SendEnabled): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.enabled !== undefined && (obj.enabled = message.enabled);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SendEnabled>): SendEnabled {
-    const message = createBaseSendEnabled();
-    message.denom = object.denom ?? "";
-    message.enabled = object.enabled ?? false;
-    return message;
-  },
-  fromSDK(object: SendEnabledSDKType): SendEnabled {
-    return {
-      denom: object?.denom,
-      enabled: object?.enabled
-    };
-  },
-  toSDK(message: SendEnabled): SendEnabledSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.enabled = message.enabled;
-    return obj;
-  },
-  fromAmino(object: SendEnabledAmino): SendEnabled {
-    return {
-      denom: object.denom,
-      enabled: object.enabled
-    };
-  },
-  toAmino(message: SendEnabled): SendEnabledAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.enabled = message.enabled;
-    return obj;
-  },
-  fromAminoMsg(object: SendEnabledAminoMsg): SendEnabled {
-    return SendEnabled.fromAmino(object.value);
-  },
-  toAminoMsg(message: SendEnabled): SendEnabledAminoMsg {
-    return {
-      type: "cosmos-sdk/SendEnabled",
-      value: SendEnabled.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SendEnabledProtoMsg): SendEnabled {
-    return SendEnabled.decode(message.value);
-  },
-  toProto(message: SendEnabled): Uint8Array {
-    return SendEnabled.encode(message).finish();
-  },
-  toProtoMsg(message: SendEnabled): SendEnabledProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.SendEnabled",
-      value: SendEnabled.encode(message).finish()
-    };
-  }
-};
-function createBaseInput(): Input {
-  return {
-    address: "",
-    coins: []
-  };
-}
-export const Input = {
-  typeUrl: "/cosmos.bank.v1beta1.Input",
-  aminoType: "cosmos-sdk/Input",
-  encode(message: Input, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Input {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInput();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Input {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Input): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Input>): Input {
-    const message = createBaseInput();
-    message.address = object.address ?? "";
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: InputSDKType): Input {
-    return {
-      address: object?.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Input): InputSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: InputAmino): Input {
-    return {
-      address: object.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Input): InputAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: InputAminoMsg): Input {
-    return Input.fromAmino(object.value);
-  },
-  toAminoMsg(message: Input): InputAminoMsg {
-    return {
-      type: "cosmos-sdk/Input",
-      value: Input.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: InputProtoMsg): Input {
-    return Input.decode(message.value);
-  },
-  toProto(message: Input): Uint8Array {
-    return Input.encode(message).finish();
-  },
-  toProtoMsg(message: Input): InputProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Input",
-      value: Input.encode(message).finish()
-    };
-  }
-};
-function createBaseOutput(): Output {
-  return {
-    address: "",
-    coins: []
-  };
-}
-export const Output = {
-  typeUrl: "/cosmos.bank.v1beta1.Output",
-  aminoType: "cosmos-sdk/Output",
-  encode(message: Output, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Output {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseOutput();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Output {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Output): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Output>): Output {
-    const message = createBaseOutput();
-    message.address = object.address ?? "";
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: OutputSDKType): Output {
-    return {
-      address: object?.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Output): OutputSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: OutputAmino): Output {
-    return {
-      address: object.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Output): OutputAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: OutputAminoMsg): Output {
-    return Output.fromAmino(object.value);
-  },
-  toAminoMsg(message: Output): OutputAminoMsg {
-    return {
-      type: "cosmos-sdk/Output",
-      value: Output.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: OutputProtoMsg): Output {
-    return Output.decode(message.value);
-  },
-  toProto(message: Output): Uint8Array {
-    return Output.encode(message).finish();
-  },
-  toProtoMsg(message: Output): OutputProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Output",
-      value: Output.encode(message).finish()
-    };
-  }
-};
-function createBaseSupply(): Supply {
-  return {
-    total: []
-  };
-}
-export const Supply = {
-  typeUrl: "/cosmos.bank.v1beta1.Supply",
-  aminoType: "cosmos-sdk/Supply",
-  encode(message: Supply, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.total) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Supply {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSupply();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.total.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Supply {
-    return {
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Supply): unknown {
-    const obj: any = {};
-    if (message.total) {
-      obj.total = message.total.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Supply>): Supply {
-    const message = createBaseSupply();
-    message.total = object.total?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SupplySDKType): Supply {
-    return {
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Supply): SupplySDKType {
-    const obj: any = {};
-    if (message.total) {
-      obj.total = message.total.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SupplyAmino): Supply {
-    return {
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Supply): SupplyAmino {
-    const obj: any = {};
-    if (message.total) {
-      obj.total = message.total.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SupplyAminoMsg): Supply {
-    return Supply.fromAmino(object.value);
-  },
-  toAminoMsg(message: Supply): SupplyAminoMsg {
-    return {
-      type: "cosmos-sdk/Supply",
-      value: Supply.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SupplyProtoMsg): Supply {
-    return Supply.decode(message.value);
-  },
-  toProto(message: Supply): Uint8Array {
-    return Supply.encode(message).finish();
-  },
-  toProtoMsg(message: Supply): SupplyProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Supply",
-      value: Supply.encode(message).finish()
-    };
-  }
-};
-function createBaseDenomUnit(): DenomUnit {
-  return {
-    denom: "",
-    exponent: 0,
-    aliases: []
-  };
-}
-export const DenomUnit = {
-  typeUrl: "/cosmos.bank.v1beta1.DenomUnit",
-  aminoType: "cosmos-sdk/DenomUnit",
-  encode(message: DenomUnit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.exponent !== 0) {
-      writer.uint32(16).uint32(message.exponent);
-    }
-    for (const v of message.aliases) {
-      writer.uint32(26).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DenomUnit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDenomUnit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.exponent = reader.uint32();
-          break;
-        case 3:
-          message.aliases.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DenomUnit {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      exponent: isSet(object.exponent) ? Number(object.exponent) : 0,
-      aliases: Array.isArray(object?.aliases) ? object.aliases.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: DenomUnit): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.exponent !== undefined && (obj.exponent = Math.round(message.exponent));
-    if (message.aliases) {
-      obj.aliases = message.aliases.map(e => e);
-    } else {
-      obj.aliases = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DenomUnit>): DenomUnit {
-    const message = createBaseDenomUnit();
-    message.denom = object.denom ?? "";
-    message.exponent = object.exponent ?? 0;
-    message.aliases = object.aliases?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: DenomUnitSDKType): DenomUnit {
-    return {
-      denom: object?.denom,
-      exponent: object?.exponent,
-      aliases: Array.isArray(object?.aliases) ? object.aliases.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: DenomUnit): DenomUnitSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.exponent = message.exponent;
-    if (message.aliases) {
-      obj.aliases = message.aliases.map(e => e);
-    } else {
-      obj.aliases = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DenomUnitAmino): DenomUnit {
-    return {
-      denom: object.denom,
-      exponent: object.exponent,
-      aliases: Array.isArray(object?.aliases) ? object.aliases.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: DenomUnit): DenomUnitAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.exponent = message.exponent;
-    if (message.aliases) {
-      obj.aliases = message.aliases.map(e => e);
-    } else {
-      obj.aliases = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DenomUnitAminoMsg): DenomUnit {
-    return DenomUnit.fromAmino(object.value);
-  },
-  toAminoMsg(message: DenomUnit): DenomUnitAminoMsg {
-    return {
-      type: "cosmos-sdk/DenomUnit",
-      value: DenomUnit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DenomUnitProtoMsg): DenomUnit {
-    return DenomUnit.decode(message.value);
-  },
-  toProto(message: DenomUnit): Uint8Array {
-    return DenomUnit.encode(message).finish();
-  },
-  toProtoMsg(message: DenomUnit): DenomUnitProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.DenomUnit",
-      value: DenomUnit.encode(message).finish()
-    };
-  }
-};
-function createBaseMetadata(): Metadata {
-  return {
-    description: "",
-    denomUnits: [],
-    base: "",
-    display: "",
-    name: "",
-    symbol: "",
-    uri: "",
-    uriHash: ""
-  };
-}
-export const Metadata = {
-  typeUrl: "/cosmos.bank.v1beta1.Metadata",
-  aminoType: "cosmos-sdk/Metadata",
-  encode(message: Metadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.description !== "") {
-      writer.uint32(10).string(message.description);
-    }
-    for (const v of message.denomUnits) {
-      DenomUnit.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.base !== "") {
-      writer.uint32(26).string(message.base);
-    }
-    if (message.display !== "") {
-      writer.uint32(34).string(message.display);
-    }
-    if (message.name !== "") {
-      writer.uint32(42).string(message.name);
-    }
-    if (message.symbol !== "") {
-      writer.uint32(50).string(message.symbol);
-    }
-    if (message.uri !== "") {
-      writer.uint32(58).string(message.uri);
-    }
-    if (message.uriHash !== "") {
-      writer.uint32(66).string(message.uriHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Metadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.description = reader.string();
-          break;
-        case 2:
-          message.denomUnits.push(DenomUnit.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.base = reader.string();
-          break;
-        case 4:
-          message.display = reader.string();
-          break;
-        case 5:
-          message.name = reader.string();
-          break;
-        case 6:
-          message.symbol = reader.string();
-          break;
-        case 7:
-          message.uri = reader.string();
-          break;
-        case 8:
-          message.uriHash = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Metadata {
-    return {
-      description: isSet(object.description) ? String(object.description) : "",
-      denomUnits: Array.isArray(object?.denomUnits) ? object.denomUnits.map((e: any) => DenomUnit.fromJSON(e)) : [],
-      base: isSet(object.base) ? String(object.base) : "",
-      display: isSet(object.display) ? String(object.display) : "",
-      name: isSet(object.name) ? String(object.name) : "",
-      symbol: isSet(object.symbol) ? String(object.symbol) : "",
-      uri: isSet(object.uri) ? String(object.uri) : "",
-      uriHash: isSet(object.uriHash) ? String(object.uriHash) : ""
-    };
-  },
-  toJSON(message: Metadata): unknown {
-    const obj: any = {};
-    message.description !== undefined && (obj.description = message.description);
-    if (message.denomUnits) {
-      obj.denomUnits = message.denomUnits.map(e => e ? DenomUnit.toJSON(e) : undefined);
-    } else {
-      obj.denomUnits = [];
-    }
-    message.base !== undefined && (obj.base = message.base);
-    message.display !== undefined && (obj.display = message.display);
-    message.name !== undefined && (obj.name = message.name);
-    message.symbol !== undefined && (obj.symbol = message.symbol);
-    message.uri !== undefined && (obj.uri = message.uri);
-    message.uriHash !== undefined && (obj.uriHash = message.uriHash);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Metadata>): Metadata {
-    const message = createBaseMetadata();
-    message.description = object.description ?? "";
-    message.denomUnits = object.denomUnits?.map(e => DenomUnit.fromPartial(e)) || [];
-    message.base = object.base ?? "";
-    message.display = object.display ?? "";
-    message.name = object.name ?? "";
-    message.symbol = object.symbol ?? "";
-    message.uri = object.uri ?? "";
-    message.uriHash = object.uriHash ?? "";
-    return message;
-  },
-  fromSDK(object: MetadataSDKType): Metadata {
-    return {
-      description: object?.description,
-      denomUnits: Array.isArray(object?.denom_units) ? object.denom_units.map((e: any) => DenomUnit.fromSDK(e)) : [],
-      base: object?.base,
-      display: object?.display,
-      name: object?.name,
-      symbol: object?.symbol,
-      uri: object?.uri,
-      uriHash: object?.uri_hash
-    };
-  },
-  toSDK(message: Metadata): MetadataSDKType {
-    const obj: any = {};
-    obj.description = message.description;
-    if (message.denomUnits) {
-      obj.denom_units = message.denomUnits.map(e => e ? DenomUnit.toSDK(e) : undefined);
-    } else {
-      obj.denom_units = [];
-    }
-    obj.base = message.base;
-    obj.display = message.display;
-    obj.name = message.name;
-    obj.symbol = message.symbol;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    return obj;
-  },
-  fromAmino(object: MetadataAmino): Metadata {
-    return {
-      description: object.description,
-      denomUnits: Array.isArray(object?.denom_units) ? object.denom_units.map((e: any) => DenomUnit.fromAmino(e)) : [],
-      base: object.base,
-      display: object.display,
-      name: object.name,
-      symbol: object.symbol,
-      uri: object.uri,
-      uriHash: object.uri_hash
-    };
-  },
-  toAmino(message: Metadata): MetadataAmino {
-    const obj: any = {};
-    obj.description = message.description;
-    if (message.denomUnits) {
-      obj.denom_units = message.denomUnits.map(e => e ? DenomUnit.toAmino(e) : undefined);
-    } else {
-      obj.denom_units = [];
-    }
-    obj.base = message.base;
-    obj.display = message.display;
-    obj.name = message.name;
-    obj.symbol = message.symbol;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    return obj;
-  },
-  fromAminoMsg(object: MetadataAminoMsg): Metadata {
-    return Metadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: Metadata): MetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/Metadata",
-      value: Metadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MetadataProtoMsg): Metadata {
-    return Metadata.decode(message.value);
-  },
-  toProto(message: Metadata): Uint8Array {
-    return Metadata.encode(message).finish();
-  },
-  toProtoMsg(message: Metadata): MetadataProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Metadata",
-      value: Metadata.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/genesis.ts
deleted file mode 100644
index 51aa9f79..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/genesis.ts
+++ /dev/null
@@ -1,363 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType, Metadata, MetadataAmino, MetadataSDKType } from "./bank";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the bank module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of the module. */
-  params: Params | undefined;
-  /** balances is an array containing the balances of all the accounts. */
-  balances: Balance[];
-  /**
-   * supply represents the total supply. If it is left empty, then supply will be calculated based on the provided
-   * balances. Otherwise, it will be used to validate that the sum of the balances equals this amount.
-   */
-  supply: Coin[];
-  /** denom_metadata defines the metadata of the differents coins. */
-  denomMetadata: Metadata[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the bank module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-  /** balances is an array containing the balances of all the accounts. */
-  balances: BalanceAmino[];
-  /**
-   * supply represents the total supply. If it is left empty, then supply will be calculated based on the provided
-   * balances. Otherwise, it will be used to validate that the sum of the balances equals this amount.
-   */
-  supply: CoinAmino[];
-  /** denom_metadata defines the metadata of the differents coins. */
-  denom_metadata: MetadataAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the bank module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  balances: BalanceSDKType[];
-  supply: CoinSDKType[];
-  denom_metadata: MetadataSDKType[];
-}
-/**
- * Balance defines an account address and balance pair used in the bank module's
- * genesis state.
- */
-export interface Balance {
-  /** address is the address of the balance holder. */
-  address: string;
-  /** coins defines the different coins this balance holds. */
-  coins: Coin[];
-}
-export interface BalanceProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.Balance";
-  value: Uint8Array;
-}
-/**
- * Balance defines an account address and balance pair used in the bank module's
- * genesis state.
- */
-export interface BalanceAmino {
-  /** address is the address of the balance holder. */
-  address: string;
-  /** coins defines the different coins this balance holds. */
-  coins: CoinAmino[];
-}
-export interface BalanceAminoMsg {
-  type: "cosmos-sdk/Balance";
-  value: BalanceAmino;
-}
-/**
- * Balance defines an account address and balance pair used in the bank module's
- * genesis state.
- */
-export interface BalanceSDKType {
-  address: string;
-  coins: CoinSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    balances: [],
-    supply: [],
-    denomMetadata: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.bank.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.balances) {
-      Balance.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.supply) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.denomMetadata) {
-      Metadata.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.balances.push(Balance.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.supply.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.denomMetadata.push(Metadata.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Balance.fromJSON(e)) : [],
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromJSON(e)) : [],
-      denomMetadata: Array.isArray(object?.denomMetadata) ? object.denomMetadata.map((e: any) => Metadata.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Balance.toJSON(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    if (message.denomMetadata) {
-      obj.denomMetadata = message.denomMetadata.map(e => e ? Metadata.toJSON(e) : undefined);
-    } else {
-      obj.denomMetadata = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.balances = object.balances?.map(e => Balance.fromPartial(e)) || [];
-    message.supply = object.supply?.map(e => Coin.fromPartial(e)) || [];
-    message.denomMetadata = object.denomMetadata?.map(e => Metadata.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Balance.fromSDK(e)) : [],
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromSDK(e)) : [],
-      denomMetadata: Array.isArray(object?.denom_metadata) ? object.denom_metadata.map((e: any) => Metadata.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Balance.toSDK(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    if (message.denomMetadata) {
-      obj.denom_metadata = message.denomMetadata.map(e => e ? Metadata.toSDK(e) : undefined);
-    } else {
-      obj.denom_metadata = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Balance.fromAmino(e)) : [],
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromAmino(e)) : [],
-      denomMetadata: Array.isArray(object?.denom_metadata) ? object.denom_metadata.map((e: any) => Metadata.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Balance.toAmino(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    if (message.denomMetadata) {
-      obj.denom_metadata = message.denomMetadata.map(e => e ? Metadata.toAmino(e) : undefined);
-    } else {
-      obj.denom_metadata = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseBalance(): Balance {
-  return {
-    address: "",
-    coins: []
-  };
-}
-export const Balance = {
-  typeUrl: "/cosmos.bank.v1beta1.Balance",
-  aminoType: "cosmos-sdk/Balance",
-  encode(message: Balance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Balance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBalance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Balance {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Balance): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Balance>): Balance {
-    const message = createBaseBalance();
-    message.address = object.address ?? "";
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: BalanceSDKType): Balance {
-    return {
-      address: object?.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Balance): BalanceSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: BalanceAmino): Balance {
-    return {
-      address: object.address,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Balance): BalanceAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: BalanceAminoMsg): Balance {
-    return Balance.fromAmino(object.value);
-  },
-  toAminoMsg(message: Balance): BalanceAminoMsg {
-    return {
-      type: "cosmos-sdk/Balance",
-      value: Balance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BalanceProtoMsg): Balance {
-    return Balance.decode(message.value);
-  },
-  toProto(message: Balance): Uint8Array {
-    return Balance.encode(message).finish();
-  },
-  toProtoMsg(message: Balance): BalanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.Balance",
-      value: Balance.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index f93ca8be..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,358 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryBalanceRequest, QueryBalanceResponse, QueryAllBalancesRequest, QueryAllBalancesResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QueryTotalSupplyRequest, QueryTotalSupplyResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, QueryParamsRequest, QueryParamsResponse, QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Balance queries the balance of a single coin for a single account. */
-  balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
-  /** AllBalances queries the balance of all coins for a single account. */
-  allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
-  /**
-   * SpendableBalances queries the spenable balance of all coins for a single
-   * account.
-   */
-  spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
-  /** TotalSupply queries the total supply of all coins. */
-  totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
-  /** SupplyOf queries the supply of a single coin. */
-  supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
-  /** Params queries the parameters of x/bank module. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** DenomsMetadata queries the client metadata of a given coin denomination. */
-  denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
-  /**
-   * DenomsMetadata queries the client metadata for all registered coin
-   * denominations.
-   */
-  denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
-  /**
-   * DenomOwners queries for all account addresses that own a particular token
-   * denomination.
-   */
-  denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.balance = this.balance.bind(this);
-    this.allBalances = this.allBalances.bind(this);
-    this.spendableBalances = this.spendableBalances.bind(this);
-    this.totalSupply = this.totalSupply.bind(this);
-    this.supplyOf = this.supplyOf.bind(this);
-    this.params = this.params.bind(this);
-    this.denomMetadata = this.denomMetadata.bind(this);
-    this.denomsMetadata = this.denomsMetadata.bind(this);
-    this.denomOwners = this.denomOwners.bind(this);
-  }
-  balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse> {
-    const data = QueryBalanceRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Balance", data);
-    return promise.then(data => QueryBalanceResponse.decode(new BinaryReader(data)));
-  }
-  allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse> {
-    const data = QueryAllBalancesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "AllBalances", data);
-    return promise.then(data => QueryAllBalancesResponse.decode(new BinaryReader(data)));
-  }
-  spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse> {
-    const data = QuerySpendableBalancesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalances", data);
-    return promise.then(data => QuerySpendableBalancesResponse.decode(new BinaryReader(data)));
-  }
-  totalSupply(request: QueryTotalSupplyRequest = {
-    pagination: undefined
-  }): Promise<QueryTotalSupplyResponse> {
-    const data = QueryTotalSupplyRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "TotalSupply", data);
-    return promise.then(data => QueryTotalSupplyResponse.decode(new BinaryReader(data)));
-  }
-  supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse> {
-    const data = QuerySupplyOfRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SupplyOf", data);
-    return promise.then(data => QuerySupplyOfResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse> {
-    const data = QueryDenomMetadataRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomMetadata", data);
-    return promise.then(data => QueryDenomMetadataResponse.decode(new BinaryReader(data)));
-  }
-  denomsMetadata(request: QueryDenomsMetadataRequest = {
-    pagination: undefined
-  }): Promise<QueryDenomsMetadataResponse> {
-    const data = QueryDenomsMetadataRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomsMetadata", data);
-    return promise.then(data => QueryDenomsMetadataResponse.decode(new BinaryReader(data)));
-  }
-  denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse> {
-    const data = QueryDenomOwnersRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomOwners", data);
-    return promise.then(data => QueryDenomOwnersResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse> {
-      return queryService.balance(request);
-    },
-    allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse> {
-      return queryService.allBalances(request);
-    },
-    spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse> {
-      return queryService.spendableBalances(request);
-    },
-    totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse> {
-      return queryService.totalSupply(request);
-    },
-    supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse> {
-      return queryService.supplyOf(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse> {
-      return queryService.denomMetadata(request);
-    },
-    denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse> {
-      return queryService.denomsMetadata(request);
-    },
-    denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse> {
-      return queryService.denomOwners(request);
-    }
-  };
-};
-export interface UseBalanceQuery<TData> extends ReactQueryParams<QueryBalanceResponse, TData> {
-  request: QueryBalanceRequest;
-}
-export interface UseAllBalancesQuery<TData> extends ReactQueryParams<QueryAllBalancesResponse, TData> {
-  request: QueryAllBalancesRequest;
-}
-export interface UseSpendableBalancesQuery<TData> extends ReactQueryParams<QuerySpendableBalancesResponse, TData> {
-  request: QuerySpendableBalancesRequest;
-}
-export interface UseTotalSupplyQuery<TData> extends ReactQueryParams<QueryTotalSupplyResponse, TData> {
-  request?: QueryTotalSupplyRequest;
-}
-export interface UseSupplyOfQuery<TData> extends ReactQueryParams<QuerySupplyOfResponse, TData> {
-  request: QuerySupplyOfRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseDenomMetadataQuery<TData> extends ReactQueryParams<QueryDenomMetadataResponse, TData> {
-  request: QueryDenomMetadataRequest;
-}
-export interface UseDenomsMetadataQuery<TData> extends ReactQueryParams<QueryDenomsMetadataResponse, TData> {
-  request?: QueryDenomsMetadataRequest;
-}
-export interface UseDenomOwnersQuery<TData> extends ReactQueryParams<QueryDenomOwnersResponse, TData> {
-  request: QueryDenomOwnersRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useBalance = <TData = QueryBalanceResponse,>({
-    request,
-    options
-  }: UseBalanceQuery<TData>) => {
-    return useQuery<QueryBalanceResponse, Error, TData>(["balanceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.balance(request);
-    }, options);
-  };
-  const useAllBalances = <TData = QueryAllBalancesResponse,>({
-    request,
-    options
-  }: UseAllBalancesQuery<TData>) => {
-    return useQuery<QueryAllBalancesResponse, Error, TData>(["allBalancesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allBalances(request);
-    }, options);
-  };
-  const useSpendableBalances = <TData = QuerySpendableBalancesResponse,>({
-    request,
-    options
-  }: UseSpendableBalancesQuery<TData>) => {
-    return useQuery<QuerySpendableBalancesResponse, Error, TData>(["spendableBalancesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.spendableBalances(request);
-    }, options);
-  };
-  const useTotalSupply = <TData = QueryTotalSupplyResponse,>({
-    request,
-    options
-  }: UseTotalSupplyQuery<TData>) => {
-    return useQuery<QueryTotalSupplyResponse, Error, TData>(["totalSupplyQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalSupply(request);
-    }, options);
-  };
-  const useSupplyOf = <TData = QuerySupplyOfResponse,>({
-    request,
-    options
-  }: UseSupplyOfQuery<TData>) => {
-    return useQuery<QuerySupplyOfResponse, Error, TData>(["supplyOfQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.supplyOf(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useDenomMetadata = <TData = QueryDenomMetadataResponse,>({
-    request,
-    options
-  }: UseDenomMetadataQuery<TData>) => {
-    return useQuery<QueryDenomMetadataResponse, Error, TData>(["denomMetadataQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomMetadata(request);
-    }, options);
-  };
-  const useDenomsMetadata = <TData = QueryDenomsMetadataResponse,>({
-    request,
-    options
-  }: UseDenomsMetadataQuery<TData>) => {
-    return useQuery<QueryDenomsMetadataResponse, Error, TData>(["denomsMetadataQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomsMetadata(request);
-    }, options);
-  };
-  const useDenomOwners = <TData = QueryDenomOwnersResponse,>({
-    request,
-    options
-  }: UseDenomOwnersQuery<TData>) => {
-    return useQuery<QueryDenomOwnersResponse, Error, TData>(["denomOwnersQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomOwners(request);
-    }, options);
-  };
-  return {
-    /** Balance queries the balance of a single coin for a single account. */useBalance,
-    /** AllBalances queries the balance of all coins for a single account. */useAllBalances,
-    /**
-     * SpendableBalances queries the spenable balance of all coins for a single
-     * account.
-     */
-    useSpendableBalances,
-    /** TotalSupply queries the total supply of all coins. */useTotalSupply,
-    /** SupplyOf queries the supply of a single coin. */useSupplyOf,
-    /** Params queries the parameters of x/bank module. */useParams,
-    /** DenomsMetadata queries the client metadata of a given coin denomination. */useDenomMetadata,
-    /**
-     * DenomsMetadata queries the client metadata for all registered coin
-     * denominations.
-     */
-    useDenomsMetadata,
-    /**
-     * DenomOwners queries for all account addresses that own a particular token
-     * denomination.
-     */
-    useDenomOwners
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryBalanceStore {
-    store = new QueryStore<QueryBalanceRequest, QueryBalanceResponse>(queryService?.balance);
-    balance(request: QueryBalanceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllBalancesStore {
-    store = new QueryStore<QueryAllBalancesRequest, QueryAllBalancesResponse>(queryService?.allBalances);
-    allBalances(request: QueryAllBalancesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySpendableBalancesStore {
-    store = new QueryStore<QuerySpendableBalancesRequest, QuerySpendableBalancesResponse>(queryService?.spendableBalances);
-    spendableBalances(request: QuerySpendableBalancesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalSupplyStore {
-    store = new QueryStore<QueryTotalSupplyRequest, QueryTotalSupplyResponse>(queryService?.totalSupply);
-    totalSupply(request: QueryTotalSupplyRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySupplyOfStore {
-    store = new QueryStore<QuerySupplyOfRequest, QuerySupplyOfResponse>(queryService?.supplyOf);
-    supplyOf(request: QuerySupplyOfRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomMetadataStore {
-    store = new QueryStore<QueryDenomMetadataRequest, QueryDenomMetadataResponse>(queryService?.denomMetadata);
-    denomMetadata(request: QueryDenomMetadataRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomsMetadataStore {
-    store = new QueryStore<QueryDenomsMetadataRequest, QueryDenomsMetadataResponse>(queryService?.denomsMetadata);
-    denomsMetadata(request: QueryDenomsMetadataRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomOwnersStore {
-    store = new QueryStore<QueryDenomOwnersRequest, QueryDenomOwnersResponse>(queryService?.denomOwners);
-    denomOwners(request: QueryDenomOwnersRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Balance queries the balance of a single coin for a single account. */QueryBalanceStore,
-    /** AllBalances queries the balance of all coins for a single account. */QueryAllBalancesStore,
-    /**
-     * SpendableBalances queries the spenable balance of all coins for a single
-     * account.
-     */
-    QuerySpendableBalancesStore,
-    /** TotalSupply queries the total supply of all coins. */QueryTotalSupplyStore,
-    /** SupplyOf queries the supply of a single coin. */QuerySupplyOfStore,
-    /** Params queries the parameters of x/bank module. */QueryParamsStore,
-    /** DenomsMetadata queries the client metadata of a given coin denomination. */QueryDenomMetadataStore,
-    /**
-     * DenomsMetadata queries the client metadata for all registered coin
-     * denominations.
-     */
-    QueryDenomsMetadataStore,
-    /**
-     * DenomOwners queries for all account addresses that own a particular token
-     * denomination.
-     */
-    QueryDenomOwnersStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/query.ts
deleted file mode 100644
index 355173fe..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/query.ts
+++ /dev/null
@@ -1,2418 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Params, ParamsAmino, ParamsSDKType, Metadata, MetadataAmino, MetadataSDKType } from "./bank";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */
-export interface QueryBalanceRequest {
-  /** address is the address to query balances for. */
-  address: string;
-  /** denom is the coin denom to query balances for. */
-  denom: string;
-}
-export interface QueryBalanceRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryBalanceRequest";
-  value: Uint8Array;
-}
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */
-export interface QueryBalanceRequestAmino {
-  /** address is the address to query balances for. */
-  address: string;
-  /** denom is the coin denom to query balances for. */
-  denom: string;
-}
-export interface QueryBalanceRequestAminoMsg {
-  type: "cosmos-sdk/QueryBalanceRequest";
-  value: QueryBalanceRequestAmino;
-}
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */
-export interface QueryBalanceRequestSDKType {
-  address: string;
-  denom: string;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */
-export interface QueryBalanceResponse {
-  /** balance is the balance of the coin. */
-  balance: Coin | undefined;
-}
-export interface QueryBalanceResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryBalanceResponse";
-  value: Uint8Array;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */
-export interface QueryBalanceResponseAmino {
-  /** balance is the balance of the coin. */
-  balance?: CoinAmino | undefined;
-}
-export interface QueryBalanceResponseAminoMsg {
-  type: "cosmos-sdk/QueryBalanceResponse";
-  value: QueryBalanceResponseAmino;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */
-export interface QueryBalanceResponseSDKType {
-  balance: CoinSDKType | undefined;
-}
-/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */
-export interface QueryAllBalancesRequest {
-  /** address is the address to query balances for. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAllBalancesRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesRequest";
-  value: Uint8Array;
-}
-/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */
-export interface QueryAllBalancesRequestAmino {
-  /** address is the address to query balances for. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAllBalancesRequestAminoMsg {
-  type: "cosmos-sdk/QueryAllBalancesRequest";
-  value: QueryAllBalancesRequestAmino;
-}
-/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */
-export interface QueryAllBalancesRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC
- * method.
- */
-export interface QueryAllBalancesResponse {
-  /** balances is the balances of all the coins. */
-  balances: Coin[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAllBalancesResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC
- * method.
- */
-export interface QueryAllBalancesResponseAmino {
-  /** balances is the balances of all the coins. */
-  balances: CoinAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAllBalancesResponseAminoMsg {
-  type: "cosmos-sdk/QueryAllBalancesResponse";
-  value: QueryAllBalancesResponseAmino;
-}
-/**
- * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC
- * method.
- */
-export interface QueryAllBalancesResponseSDKType {
-  balances: CoinSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QuerySpendableBalancesRequest defines the gRPC request structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesRequest {
-  /** address is the address to query spendable balances for. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QuerySpendableBalancesRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySpendableBalancesRequest defines the gRPC request structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesRequestAmino {
-  /** address is the address to query spendable balances for. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QuerySpendableBalancesRequestAminoMsg {
-  type: "cosmos-sdk/QuerySpendableBalancesRequest";
-  value: QuerySpendableBalancesRequestAmino;
-}
-/**
- * QuerySpendableBalancesRequest defines the gRPC request structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QuerySpendableBalancesResponse defines the gRPC response structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesResponse {
-  /** balances is the spendable balances of all the coins. */
-  balances: Coin[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QuerySpendableBalancesResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySpendableBalancesResponse defines the gRPC response structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesResponseAmino {
-  /** balances is the spendable balances of all the coins. */
-  balances: CoinAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QuerySpendableBalancesResponseAminoMsg {
-  type: "cosmos-sdk/QuerySpendableBalancesResponse";
-  value: QuerySpendableBalancesResponseAmino;
-}
-/**
- * QuerySpendableBalancesResponse defines the gRPC response structure for querying
- * an account's spendable balances.
- */
-export interface QuerySpendableBalancesResponseSDKType {
-  balances: CoinSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC
- * method.
- */
-export interface QueryTotalSupplyRequest {
-  /**
-   * pagination defines an optional pagination for the request.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  pagination: PageRequest | undefined;
-}
-export interface QueryTotalSupplyRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyRequest";
-  value: Uint8Array;
-}
-/**
- * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC
- * method.
- */
-export interface QueryTotalSupplyRequestAmino {
-  /**
-   * pagination defines an optional pagination for the request.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryTotalSupplyRequestAminoMsg {
-  type: "cosmos-sdk/QueryTotalSupplyRequest";
-  value: QueryTotalSupplyRequestAmino;
-}
-/**
- * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC
- * method.
- */
-export interface QueryTotalSupplyRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC
- * method
- */
-export interface QueryTotalSupplyResponse {
-  /** supply is the supply of the coins */
-  supply: Coin[];
-  /**
-   * pagination defines the pagination in the response.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  pagination: PageResponse | undefined;
-}
-export interface QueryTotalSupplyResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyResponse";
-  value: Uint8Array;
-}
-/**
- * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC
- * method
- */
-export interface QueryTotalSupplyResponseAmino {
-  /** supply is the supply of the coins */
-  supply: CoinAmino[];
-  /**
-   * pagination defines the pagination in the response.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryTotalSupplyResponseAminoMsg {
-  type: "cosmos-sdk/QueryTotalSupplyResponse";
-  value: QueryTotalSupplyResponseAmino;
-}
-/**
- * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC
- * method
- */
-export interface QueryTotalSupplyResponseSDKType {
-  supply: CoinSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfRequest {
-  /** denom is the coin denom to query balances for. */
-  denom: string;
-}
-export interface QuerySupplyOfRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfRequest";
-  value: Uint8Array;
-}
-/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfRequestAmino {
-  /** denom is the coin denom to query balances for. */
-  denom: string;
-}
-export interface QuerySupplyOfRequestAminoMsg {
-  type: "cosmos-sdk/QuerySupplyOfRequest";
-  value: QuerySupplyOfRequestAmino;
-}
-/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfRequestSDKType {
-  denom: string;
-}
-/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfResponse {
-  /** amount is the supply of the coin. */
-  amount: Coin | undefined;
-}
-export interface QuerySupplyOfResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfResponse";
-  value: Uint8Array;
-}
-/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfResponseAmino {
-  /** amount is the supply of the coin. */
-  amount?: CoinAmino | undefined;
-}
-export interface QuerySupplyOfResponseAminoMsg {
-  type: "cosmos-sdk/QuerySupplyOfResponse";
-  value: QuerySupplyOfResponseAmino;
-}
-/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */
-export interface QuerySupplyOfResponseSDKType {
-  amount: CoinSDKType | undefined;
-}
-/** QueryParamsRequest defines the request type for querying x/bank parameters. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest defines the request type for querying x/bank parameters. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest defines the request type for querying x/bank parameters. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse defines the response type for querying x/bank parameters. */
-export interface QueryParamsResponse {
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse defines the response type for querying x/bank parameters. */
-export interface QueryParamsResponseAmino {
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse defines the response type for querying x/bank parameters. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */
-export interface QueryDenomsMetadataRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDenomsMetadataRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataRequest";
-  value: Uint8Array;
-}
-/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */
-export interface QueryDenomsMetadataRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDenomsMetadataRequestAminoMsg {
-  type: "cosmos-sdk/QueryDenomsMetadataRequest";
-  value: QueryDenomsMetadataRequestAmino;
-}
-/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */
-export interface QueryDenomsMetadataRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC
- * method.
- */
-export interface QueryDenomsMetadataResponse {
-  /** metadata provides the client information for all the registered tokens. */
-  metadatas: Metadata[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDenomsMetadataResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC
- * method.
- */
-export interface QueryDenomsMetadataResponseAmino {
-  /** metadata provides the client information for all the registered tokens. */
-  metadatas: MetadataAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDenomsMetadataResponseAminoMsg {
-  type: "cosmos-sdk/QueryDenomsMetadataResponse";
-  value: QueryDenomsMetadataResponseAmino;
-}
-/**
- * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC
- * method.
- */
-export interface QueryDenomsMetadataResponseSDKType {
-  metadatas: MetadataSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */
-export interface QueryDenomMetadataRequest {
-  /** denom is the coin denom to query the metadata for. */
-  denom: string;
-}
-export interface QueryDenomMetadataRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataRequest";
-  value: Uint8Array;
-}
-/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */
-export interface QueryDenomMetadataRequestAmino {
-  /** denom is the coin denom to query the metadata for. */
-  denom: string;
-}
-export interface QueryDenomMetadataRequestAminoMsg {
-  type: "cosmos-sdk/QueryDenomMetadataRequest";
-  value: QueryDenomMetadataRequestAmino;
-}
-/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */
-export interface QueryDenomMetadataRequestSDKType {
-  denom: string;
-}
-/**
- * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC
- * method.
- */
-export interface QueryDenomMetadataResponse {
-  /** metadata describes and provides all the client information for the requested token. */
-  metadata: Metadata | undefined;
-}
-export interface QueryDenomMetadataResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC
- * method.
- */
-export interface QueryDenomMetadataResponseAmino {
-  /** metadata describes and provides all the client information for the requested token. */
-  metadata?: MetadataAmino | undefined;
-}
-export interface QueryDenomMetadataResponseAminoMsg {
-  type: "cosmos-sdk/QueryDenomMetadataResponse";
-  value: QueryDenomMetadataResponseAmino;
-}
-/**
- * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC
- * method.
- */
-export interface QueryDenomMetadataResponseSDKType {
-  metadata: MetadataSDKType | undefined;
-}
-/**
- * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query,
- * which queries for a paginated set of all account holders of a particular
- * denomination.
- */
-export interface QueryDenomOwnersRequest {
-  /** denom defines the coin denomination to query all account holders for. */
-  denom: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDenomOwnersRequestProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query,
- * which queries for a paginated set of all account holders of a particular
- * denomination.
- */
-export interface QueryDenomOwnersRequestAmino {
-  /** denom defines the coin denomination to query all account holders for. */
-  denom: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDenomOwnersRequestAminoMsg {
-  type: "cosmos-sdk/QueryDenomOwnersRequest";
-  value: QueryDenomOwnersRequestAmino;
-}
-/**
- * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query,
- * which queries for a paginated set of all account holders of a particular
- * denomination.
- */
-export interface QueryDenomOwnersRequestSDKType {
-  denom: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * DenomOwner defines structure representing an account that owns or holds a
- * particular denominated token. It contains the account address and account
- * balance of the denominated token.
- */
-export interface DenomOwner {
-  /** address defines the address that owns a particular denomination. */
-  address: string;
-  /** balance is the balance of the denominated coin for an account. */
-  balance: Coin | undefined;
-}
-export interface DenomOwnerProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.DenomOwner";
-  value: Uint8Array;
-}
-/**
- * DenomOwner defines structure representing an account that owns or holds a
- * particular denominated token. It contains the account address and account
- * balance of the denominated token.
- */
-export interface DenomOwnerAmino {
-  /** address defines the address that owns a particular denomination. */
-  address: string;
-  /** balance is the balance of the denominated coin for an account. */
-  balance?: CoinAmino | undefined;
-}
-export interface DenomOwnerAminoMsg {
-  type: "cosmos-sdk/DenomOwner";
-  value: DenomOwnerAmino;
-}
-/**
- * DenomOwner defines structure representing an account that owns or holds a
- * particular denominated token. It contains the account address and account
- * balance of the denominated token.
- */
-export interface DenomOwnerSDKType {
-  address: string;
-  balance: CoinSDKType | undefined;
-}
-/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */
-export interface QueryDenomOwnersResponse {
-  denomOwners: DenomOwner[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDenomOwnersResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersResponse";
-  value: Uint8Array;
-}
-/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */
-export interface QueryDenomOwnersResponseAmino {
-  denom_owners: DenomOwnerAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDenomOwnersResponseAminoMsg {
-  type: "cosmos-sdk/QueryDenomOwnersResponse";
-  value: QueryDenomOwnersResponseAmino;
-}
-/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */
-export interface QueryDenomOwnersResponseSDKType {
-  denom_owners: DenomOwnerSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryBalanceRequest(): QueryBalanceRequest {
-  return {
-    address: "",
-    denom: ""
-  };
-}
-export const QueryBalanceRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryBalanceRequest",
-  aminoType: "cosmos-sdk/QueryBalanceRequest",
-  encode(message: QueryBalanceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBalanceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBalanceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryBalanceRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryBalanceRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryBalanceRequest>): QueryBalanceRequest {
-    const message = createBaseQueryBalanceRequest();
-    message.address = object.address ?? "";
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryBalanceRequestSDKType): QueryBalanceRequest {
-    return {
-      address: object?.address,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryBalanceRequest): QueryBalanceRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryBalanceRequestAmino): QueryBalanceRequest {
-    return {
-      address: object.address,
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryBalanceRequest): QueryBalanceRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryBalanceRequestAminoMsg): QueryBalanceRequest {
-    return QueryBalanceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBalanceRequest): QueryBalanceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryBalanceRequest",
-      value: QueryBalanceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBalanceRequestProtoMsg): QueryBalanceRequest {
-    return QueryBalanceRequest.decode(message.value);
-  },
-  toProto(message: QueryBalanceRequest): Uint8Array {
-    return QueryBalanceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBalanceRequest): QueryBalanceRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryBalanceRequest",
-      value: QueryBalanceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryBalanceResponse(): QueryBalanceResponse {
-  return {
-    balance: Coin.fromPartial({})
-  };
-}
-export const QueryBalanceResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryBalanceResponse",
-  aminoType: "cosmos-sdk/QueryBalanceResponse",
-  encode(message: QueryBalanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.balance !== undefined) {
-      Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBalanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBalanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.balance = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryBalanceResponse {
-    return {
-      balance: isSet(object.balance) ? Coin.fromJSON(object.balance) : undefined
-    };
-  },
-  toJSON(message: QueryBalanceResponse): unknown {
-    const obj: any = {};
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toJSON(message.balance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryBalanceResponse>): QueryBalanceResponse {
-    const message = createBaseQueryBalanceResponse();
-    message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryBalanceResponseSDKType): QueryBalanceResponse {
-    return {
-      balance: object.balance ? Coin.fromSDK(object.balance) : undefined
-    };
-  },
-  toSDK(message: QueryBalanceResponse): QueryBalanceResponseSDKType {
-    const obj: any = {};
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toSDK(message.balance) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryBalanceResponseAmino): QueryBalanceResponse {
-    return {
-      balance: object?.balance ? Coin.fromAmino(object.balance) : undefined
-    };
-  },
-  toAmino(message: QueryBalanceResponse): QueryBalanceResponseAmino {
-    const obj: any = {};
-    obj.balance = message.balance ? Coin.toAmino(message.balance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryBalanceResponseAminoMsg): QueryBalanceResponse {
-    return QueryBalanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBalanceResponse): QueryBalanceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryBalanceResponse",
-      value: QueryBalanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBalanceResponseProtoMsg): QueryBalanceResponse {
-    return QueryBalanceResponse.decode(message.value);
-  },
-  toProto(message: QueryBalanceResponse): Uint8Array {
-    return QueryBalanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBalanceResponse): QueryBalanceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryBalanceResponse",
-      value: QueryBalanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllBalancesRequest(): QueryAllBalancesRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAllBalancesRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesRequest",
-  aminoType: "cosmos-sdk/QueryAllBalancesRequest",
-  encode(message: QueryAllBalancesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllBalancesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllBalancesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllBalancesRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllBalancesRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllBalancesRequest>): QueryAllBalancesRequest {
-    const message = createBaseQueryAllBalancesRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllBalancesRequestSDKType): QueryAllBalancesRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllBalancesRequest): QueryAllBalancesRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllBalancesRequestAmino): QueryAllBalancesRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllBalancesRequest): QueryAllBalancesRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllBalancesRequestAminoMsg): QueryAllBalancesRequest {
-    return QueryAllBalancesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllBalancesRequest): QueryAllBalancesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllBalancesRequest",
-      value: QueryAllBalancesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllBalancesRequestProtoMsg): QueryAllBalancesRequest {
-    return QueryAllBalancesRequest.decode(message.value);
-  },
-  toProto(message: QueryAllBalancesRequest): Uint8Array {
-    return QueryAllBalancesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllBalancesRequest): QueryAllBalancesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesRequest",
-      value: QueryAllBalancesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllBalancesResponse(): QueryAllBalancesResponse {
-  return {
-    balances: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAllBalancesResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesResponse",
-  aminoType: "cosmos-sdk/QueryAllBalancesResponse",
-  encode(message: QueryAllBalancesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.balances) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllBalancesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllBalancesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.balances.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllBalancesResponse): unknown {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllBalancesResponse>): QueryAllBalancesResponse {
-    const message = createBaseQueryAllBalancesResponse();
-    message.balances = object.balances?.map(e => Coin.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllBalancesResponseSDKType): QueryAllBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllBalancesResponse): QueryAllBalancesResponseSDKType {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllBalancesResponseAmino): QueryAllBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllBalancesResponse): QueryAllBalancesResponseAmino {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllBalancesResponseAminoMsg): QueryAllBalancesResponse {
-    return QueryAllBalancesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllBalancesResponse): QueryAllBalancesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllBalancesResponse",
-      value: QueryAllBalancesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllBalancesResponseProtoMsg): QueryAllBalancesResponse {
-    return QueryAllBalancesResponse.decode(message.value);
-  },
-  toProto(message: QueryAllBalancesResponse): Uint8Array {
-    return QueryAllBalancesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllBalancesResponse): QueryAllBalancesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesResponse",
-      value: QueryAllBalancesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySpendableBalancesRequest(): QuerySpendableBalancesRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QuerySpendableBalancesRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesRequest",
-  aminoType: "cosmos-sdk/QuerySpendableBalancesRequest",
-  encode(message: QuerySpendableBalancesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpendableBalancesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpendableBalancesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpendableBalancesRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QuerySpendableBalancesRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpendableBalancesRequest>): QuerySpendableBalancesRequest {
-    const message = createBaseQuerySpendableBalancesRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySpendableBalancesRequestSDKType): QuerySpendableBalancesRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QuerySpendableBalancesRequest): QuerySpendableBalancesRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySpendableBalancesRequestAmino): QuerySpendableBalancesRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QuerySpendableBalancesRequest): QuerySpendableBalancesRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpendableBalancesRequestAminoMsg): QuerySpendableBalancesRequest {
-    return QuerySpendableBalancesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpendableBalancesRequest): QuerySpendableBalancesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySpendableBalancesRequest",
-      value: QuerySpendableBalancesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpendableBalancesRequestProtoMsg): QuerySpendableBalancesRequest {
-    return QuerySpendableBalancesRequest.decode(message.value);
-  },
-  toProto(message: QuerySpendableBalancesRequest): Uint8Array {
-    return QuerySpendableBalancesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpendableBalancesRequest): QuerySpendableBalancesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesRequest",
-      value: QuerySpendableBalancesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySpendableBalancesResponse(): QuerySpendableBalancesResponse {
-  return {
-    balances: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QuerySpendableBalancesResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesResponse",
-  aminoType: "cosmos-sdk/QuerySpendableBalancesResponse",
-  encode(message: QuerySpendableBalancesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.balances) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpendableBalancesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpendableBalancesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.balances.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpendableBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QuerySpendableBalancesResponse): unknown {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpendableBalancesResponse>): QuerySpendableBalancesResponse {
-    const message = createBaseQuerySpendableBalancesResponse();
-    message.balances = object.balances?.map(e => Coin.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySpendableBalancesResponseSDKType): QuerySpendableBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QuerySpendableBalancesResponse): QuerySpendableBalancesResponseSDKType {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySpendableBalancesResponseAmino): QuerySpendableBalancesResponse {
-    return {
-      balances: Array.isArray(object?.balances) ? object.balances.map((e: any) => Coin.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QuerySpendableBalancesResponse): QuerySpendableBalancesResponseAmino {
-    const obj: any = {};
-    if (message.balances) {
-      obj.balances = message.balances.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.balances = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpendableBalancesResponseAminoMsg): QuerySpendableBalancesResponse {
-    return QuerySpendableBalancesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpendableBalancesResponse): QuerySpendableBalancesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySpendableBalancesResponse",
-      value: QuerySpendableBalancesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpendableBalancesResponseProtoMsg): QuerySpendableBalancesResponse {
-    return QuerySpendableBalancesResponse.decode(message.value);
-  },
-  toProto(message: QuerySpendableBalancesResponse): Uint8Array {
-    return QuerySpendableBalancesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpendableBalancesResponse): QuerySpendableBalancesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesResponse",
-      value: QuerySpendableBalancesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalSupplyRequest(): QueryTotalSupplyRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryTotalSupplyRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyRequest",
-  aminoType: "cosmos-sdk/QueryTotalSupplyRequest",
-  encode(message: QueryTotalSupplyRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalSupplyRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalSupplyRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalSupplyRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryTotalSupplyRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalSupplyRequest>): QueryTotalSupplyRequest {
-    const message = createBaseQueryTotalSupplyRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTotalSupplyRequestSDKType): QueryTotalSupplyRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryTotalSupplyRequest): QueryTotalSupplyRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTotalSupplyRequestAmino): QueryTotalSupplyRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryTotalSupplyRequest): QueryTotalSupplyRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalSupplyRequestAminoMsg): QueryTotalSupplyRequest {
-    return QueryTotalSupplyRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalSupplyRequest): QueryTotalSupplyRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTotalSupplyRequest",
-      value: QueryTotalSupplyRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalSupplyRequestProtoMsg): QueryTotalSupplyRequest {
-    return QueryTotalSupplyRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalSupplyRequest): Uint8Array {
-    return QueryTotalSupplyRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalSupplyRequest): QueryTotalSupplyRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyRequest",
-      value: QueryTotalSupplyRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalSupplyResponse(): QueryTotalSupplyResponse {
-  return {
-    supply: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryTotalSupplyResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyResponse",
-  aminoType: "cosmos-sdk/QueryTotalSupplyResponse",
-  encode(message: QueryTotalSupplyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.supply) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalSupplyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalSupplyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.supply.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalSupplyResponse {
-    return {
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryTotalSupplyResponse): unknown {
-    const obj: any = {};
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalSupplyResponse>): QueryTotalSupplyResponse {
-    const message = createBaseQueryTotalSupplyResponse();
-    message.supply = object.supply?.map(e => Coin.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTotalSupplyResponseSDKType): QueryTotalSupplyResponse {
-    return {
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryTotalSupplyResponse): QueryTotalSupplyResponseSDKType {
-    const obj: any = {};
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTotalSupplyResponseAmino): QueryTotalSupplyResponse {
-    return {
-      supply: Array.isArray(object?.supply) ? object.supply.map((e: any) => Coin.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryTotalSupplyResponse): QueryTotalSupplyResponseAmino {
-    const obj: any = {};
-    if (message.supply) {
-      obj.supply = message.supply.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.supply = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalSupplyResponseAminoMsg): QueryTotalSupplyResponse {
-    return QueryTotalSupplyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalSupplyResponse): QueryTotalSupplyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTotalSupplyResponse",
-      value: QueryTotalSupplyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalSupplyResponseProtoMsg): QueryTotalSupplyResponse {
-    return QueryTotalSupplyResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalSupplyResponse): Uint8Array {
-    return QueryTotalSupplyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalSupplyResponse): QueryTotalSupplyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyResponse",
-      value: QueryTotalSupplyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySupplyOfRequest(): QuerySupplyOfRequest {
-  return {
-    denom: ""
-  };
-}
-export const QuerySupplyOfRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfRequest",
-  aminoType: "cosmos-sdk/QuerySupplyOfRequest",
-  encode(message: QuerySupplyOfRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySupplyOfRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySupplyOfRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySupplyOfRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QuerySupplyOfRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySupplyOfRequest>): QuerySupplyOfRequest {
-    const message = createBaseQuerySupplyOfRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySupplyOfRequestSDKType): QuerySupplyOfRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QuerySupplyOfRequest): QuerySupplyOfRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QuerySupplyOfRequestAmino): QuerySupplyOfRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QuerySupplyOfRequest): QuerySupplyOfRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySupplyOfRequestAminoMsg): QuerySupplyOfRequest {
-    return QuerySupplyOfRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySupplyOfRequest): QuerySupplyOfRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySupplyOfRequest",
-      value: QuerySupplyOfRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySupplyOfRequestProtoMsg): QuerySupplyOfRequest {
-    return QuerySupplyOfRequest.decode(message.value);
-  },
-  toProto(message: QuerySupplyOfRequest): Uint8Array {
-    return QuerySupplyOfRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySupplyOfRequest): QuerySupplyOfRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfRequest",
-      value: QuerySupplyOfRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySupplyOfResponse(): QuerySupplyOfResponse {
-  return {
-    amount: Coin.fromPartial({})
-  };
-}
-export const QuerySupplyOfResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfResponse",
-  aminoType: "cosmos-sdk/QuerySupplyOfResponse",
-  encode(message: QuerySupplyOfResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySupplyOfResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySupplyOfResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySupplyOfResponse {
-    return {
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: QuerySupplyOfResponse): unknown {
-    const obj: any = {};
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySupplyOfResponse>): QuerySupplyOfResponse {
-    const message = createBaseQuerySupplyOfResponse();
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySupplyOfResponseSDKType): QuerySupplyOfResponse {
-    return {
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: QuerySupplyOfResponse): QuerySupplyOfResponseSDKType {
-    const obj: any = {};
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySupplyOfResponseAmino): QuerySupplyOfResponse {
-    return {
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: QuerySupplyOfResponse): QuerySupplyOfResponseAmino {
-    const obj: any = {};
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySupplyOfResponseAminoMsg): QuerySupplyOfResponse {
-    return QuerySupplyOfResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySupplyOfResponse): QuerySupplyOfResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySupplyOfResponse",
-      value: QuerySupplyOfResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySupplyOfResponseProtoMsg): QuerySupplyOfResponse {
-    return QuerySupplyOfResponse.decode(message.value);
-  },
-  toProto(message: QuerySupplyOfResponse): Uint8Array {
-    return QuerySupplyOfResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySupplyOfResponse): QuerySupplyOfResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfResponse",
-      value: QuerySupplyOfResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomsMetadataRequest(): QueryDenomsMetadataRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDenomsMetadataRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataRequest",
-  aminoType: "cosmos-sdk/QueryDenomsMetadataRequest",
-  encode(message: QueryDenomsMetadataRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomsMetadataRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomsMetadataRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomsMetadataRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomsMetadataRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomsMetadataRequest>): QueryDenomsMetadataRequest {
-    const message = createBaseQueryDenomsMetadataRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomsMetadataRequestSDKType): QueryDenomsMetadataRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomsMetadataRequest): QueryDenomsMetadataRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomsMetadataRequestAmino): QueryDenomsMetadataRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomsMetadataRequest): QueryDenomsMetadataRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomsMetadataRequestAminoMsg): QueryDenomsMetadataRequest {
-    return QueryDenomsMetadataRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomsMetadataRequest): QueryDenomsMetadataRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomsMetadataRequest",
-      value: QueryDenomsMetadataRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomsMetadataRequestProtoMsg): QueryDenomsMetadataRequest {
-    return QueryDenomsMetadataRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomsMetadataRequest): Uint8Array {
-    return QueryDenomsMetadataRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomsMetadataRequest): QueryDenomsMetadataRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataRequest",
-      value: QueryDenomsMetadataRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomsMetadataResponse(): QueryDenomsMetadataResponse {
-  return {
-    metadatas: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDenomsMetadataResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataResponse",
-  aminoType: "cosmos-sdk/QueryDenomsMetadataResponse",
-  encode(message: QueryDenomsMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.metadatas) {
-      Metadata.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomsMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomsMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.metadatas.push(Metadata.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomsMetadataResponse {
-    return {
-      metadatas: Array.isArray(object?.metadatas) ? object.metadatas.map((e: any) => Metadata.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomsMetadataResponse): unknown {
-    const obj: any = {};
-    if (message.metadatas) {
-      obj.metadatas = message.metadatas.map(e => e ? Metadata.toJSON(e) : undefined);
-    } else {
-      obj.metadatas = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomsMetadataResponse>): QueryDenomsMetadataResponse {
-    const message = createBaseQueryDenomsMetadataResponse();
-    message.metadatas = object.metadatas?.map(e => Metadata.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomsMetadataResponseSDKType): QueryDenomsMetadataResponse {
-    return {
-      metadatas: Array.isArray(object?.metadatas) ? object.metadatas.map((e: any) => Metadata.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomsMetadataResponse): QueryDenomsMetadataResponseSDKType {
-    const obj: any = {};
-    if (message.metadatas) {
-      obj.metadatas = message.metadatas.map(e => e ? Metadata.toSDK(e) : undefined);
-    } else {
-      obj.metadatas = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomsMetadataResponseAmino): QueryDenomsMetadataResponse {
-    return {
-      metadatas: Array.isArray(object?.metadatas) ? object.metadatas.map((e: any) => Metadata.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomsMetadataResponse): QueryDenomsMetadataResponseAmino {
-    const obj: any = {};
-    if (message.metadatas) {
-      obj.metadatas = message.metadatas.map(e => e ? Metadata.toAmino(e) : undefined);
-    } else {
-      obj.metadatas = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomsMetadataResponseAminoMsg): QueryDenomsMetadataResponse {
-    return QueryDenomsMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomsMetadataResponse): QueryDenomsMetadataResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomsMetadataResponse",
-      value: QueryDenomsMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomsMetadataResponseProtoMsg): QueryDenomsMetadataResponse {
-    return QueryDenomsMetadataResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomsMetadataResponse): Uint8Array {
-    return QueryDenomsMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomsMetadataResponse): QueryDenomsMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataResponse",
-      value: QueryDenomsMetadataResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomMetadataRequest(): QueryDenomMetadataRequest {
-  return {
-    denom: ""
-  };
-}
-export const QueryDenomMetadataRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataRequest",
-  aminoType: "cosmos-sdk/QueryDenomMetadataRequest",
-  encode(message: QueryDenomMetadataRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomMetadataRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomMetadataRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomMetadataRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryDenomMetadataRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomMetadataRequest>): QueryDenomMetadataRequest {
-    const message = createBaseQueryDenomMetadataRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomMetadataRequestSDKType): QueryDenomMetadataRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryDenomMetadataRequest): QueryDenomMetadataRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryDenomMetadataRequestAmino): QueryDenomMetadataRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryDenomMetadataRequest): QueryDenomMetadataRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomMetadataRequestAminoMsg): QueryDenomMetadataRequest {
-    return QueryDenomMetadataRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomMetadataRequest): QueryDenomMetadataRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomMetadataRequest",
-      value: QueryDenomMetadataRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomMetadataRequestProtoMsg): QueryDenomMetadataRequest {
-    return QueryDenomMetadataRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomMetadataRequest): Uint8Array {
-    return QueryDenomMetadataRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomMetadataRequest): QueryDenomMetadataRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataRequest",
-      value: QueryDenomMetadataRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomMetadataResponse(): QueryDenomMetadataResponse {
-  return {
-    metadata: Metadata.fromPartial({})
-  };
-}
-export const QueryDenomMetadataResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataResponse",
-  aminoType: "cosmos-sdk/QueryDenomMetadataResponse",
-  encode(message: QueryDenomMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.metadata !== undefined) {
-      Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.metadata = Metadata.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomMetadataResponse {
-    return {
-      metadata: isSet(object.metadata) ? Metadata.fromJSON(object.metadata) : undefined
-    };
-  },
-  toJSON(message: QueryDenomMetadataResponse): unknown {
-    const obj: any = {};
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toJSON(message.metadata) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomMetadataResponse>): QueryDenomMetadataResponse {
-    const message = createBaseQueryDenomMetadataResponse();
-    message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomMetadataResponseSDKType): QueryDenomMetadataResponse {
-    return {
-      metadata: object.metadata ? Metadata.fromSDK(object.metadata) : undefined
-    };
-  },
-  toSDK(message: QueryDenomMetadataResponse): QueryDenomMetadataResponseSDKType {
-    const obj: any = {};
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toSDK(message.metadata) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomMetadataResponseAmino): QueryDenomMetadataResponse {
-    return {
-      metadata: object?.metadata ? Metadata.fromAmino(object.metadata) : undefined
-    };
-  },
-  toAmino(message: QueryDenomMetadataResponse): QueryDenomMetadataResponseAmino {
-    const obj: any = {};
-    obj.metadata = message.metadata ? Metadata.toAmino(message.metadata) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomMetadataResponseAminoMsg): QueryDenomMetadataResponse {
-    return QueryDenomMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomMetadataResponse): QueryDenomMetadataResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomMetadataResponse",
-      value: QueryDenomMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomMetadataResponseProtoMsg): QueryDenomMetadataResponse {
-    return QueryDenomMetadataResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomMetadataResponse): Uint8Array {
-    return QueryDenomMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomMetadataResponse): QueryDenomMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataResponse",
-      value: QueryDenomMetadataResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomOwnersRequest(): QueryDenomOwnersRequest {
-  return {
-    denom: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDenomOwnersRequest = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersRequest",
-  aminoType: "cosmos-sdk/QueryDenomOwnersRequest",
-  encode(message: QueryDenomOwnersRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomOwnersRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomOwnersRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomOwnersRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomOwnersRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomOwnersRequest>): QueryDenomOwnersRequest {
-    const message = createBaseQueryDenomOwnersRequest();
-    message.denom = object.denom ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomOwnersRequestSDKType): QueryDenomOwnersRequest {
-    return {
-      denom: object?.denom,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomOwnersRequest): QueryDenomOwnersRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomOwnersRequestAmino): QueryDenomOwnersRequest {
-    return {
-      denom: object.denom,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomOwnersRequest): QueryDenomOwnersRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomOwnersRequestAminoMsg): QueryDenomOwnersRequest {
-    return QueryDenomOwnersRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomOwnersRequest): QueryDenomOwnersRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomOwnersRequest",
-      value: QueryDenomOwnersRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomOwnersRequestProtoMsg): QueryDenomOwnersRequest {
-    return QueryDenomOwnersRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomOwnersRequest): Uint8Array {
-    return QueryDenomOwnersRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomOwnersRequest): QueryDenomOwnersRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersRequest",
-      value: QueryDenomOwnersRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseDenomOwner(): DenomOwner {
-  return {
-    address: "",
-    balance: Coin.fromPartial({})
-  };
-}
-export const DenomOwner = {
-  typeUrl: "/cosmos.bank.v1beta1.DenomOwner",
-  aminoType: "cosmos-sdk/DenomOwner",
-  encode(message: DenomOwner, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.balance !== undefined) {
-      Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DenomOwner {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDenomOwner();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.balance = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DenomOwner {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      balance: isSet(object.balance) ? Coin.fromJSON(object.balance) : undefined
-    };
-  },
-  toJSON(message: DenomOwner): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toJSON(message.balance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DenomOwner>): DenomOwner {
-    const message = createBaseDenomOwner();
-    message.address = object.address ?? "";
-    message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined;
-    return message;
-  },
-  fromSDK(object: DenomOwnerSDKType): DenomOwner {
-    return {
-      address: object?.address,
-      balance: object.balance ? Coin.fromSDK(object.balance) : undefined
-    };
-  },
-  toSDK(message: DenomOwner): DenomOwnerSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toSDK(message.balance) : undefined);
-    return obj;
-  },
-  fromAmino(object: DenomOwnerAmino): DenomOwner {
-    return {
-      address: object.address,
-      balance: object?.balance ? Coin.fromAmino(object.balance) : undefined
-    };
-  },
-  toAmino(message: DenomOwner): DenomOwnerAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.balance = message.balance ? Coin.toAmino(message.balance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DenomOwnerAminoMsg): DenomOwner {
-    return DenomOwner.fromAmino(object.value);
-  },
-  toAminoMsg(message: DenomOwner): DenomOwnerAminoMsg {
-    return {
-      type: "cosmos-sdk/DenomOwner",
-      value: DenomOwner.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DenomOwnerProtoMsg): DenomOwner {
-    return DenomOwner.decode(message.value);
-  },
-  toProto(message: DenomOwner): Uint8Array {
-    return DenomOwner.encode(message).finish();
-  },
-  toProtoMsg(message: DenomOwner): DenomOwnerProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.DenomOwner",
-      value: DenomOwner.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomOwnersResponse(): QueryDenomOwnersResponse {
-  return {
-    denomOwners: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDenomOwnersResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersResponse",
-  aminoType: "cosmos-sdk/QueryDenomOwnersResponse",
-  encode(message: QueryDenomOwnersResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.denomOwners) {
-      DenomOwner.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomOwnersResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomOwnersResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denomOwners.push(DenomOwner.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomOwnersResponse {
-    return {
-      denomOwners: Array.isArray(object?.denomOwners) ? object.denomOwners.map((e: any) => DenomOwner.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomOwnersResponse): unknown {
-    const obj: any = {};
-    if (message.denomOwners) {
-      obj.denomOwners = message.denomOwners.map(e => e ? DenomOwner.toJSON(e) : undefined);
-    } else {
-      obj.denomOwners = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomOwnersResponse>): QueryDenomOwnersResponse {
-    const message = createBaseQueryDenomOwnersResponse();
-    message.denomOwners = object.denomOwners?.map(e => DenomOwner.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomOwnersResponseSDKType): QueryDenomOwnersResponse {
-    return {
-      denomOwners: Array.isArray(object?.denom_owners) ? object.denom_owners.map((e: any) => DenomOwner.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomOwnersResponse): QueryDenomOwnersResponseSDKType {
-    const obj: any = {};
-    if (message.denomOwners) {
-      obj.denom_owners = message.denomOwners.map(e => e ? DenomOwner.toSDK(e) : undefined);
-    } else {
-      obj.denom_owners = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomOwnersResponseAmino): QueryDenomOwnersResponse {
-    return {
-      denomOwners: Array.isArray(object?.denom_owners) ? object.denom_owners.map((e: any) => DenomOwner.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomOwnersResponse): QueryDenomOwnersResponseAmino {
-    const obj: any = {};
-    if (message.denomOwners) {
-      obj.denom_owners = message.denomOwners.map(e => e ? DenomOwner.toAmino(e) : undefined);
-    } else {
-      obj.denom_owners = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomOwnersResponseAminoMsg): QueryDenomOwnersResponse {
-    return QueryDenomOwnersResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomOwnersResponse): QueryDenomOwnersResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomOwnersResponse",
-      value: QueryDenomOwnersResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomOwnersResponseProtoMsg): QueryDenomOwnersResponse {
-    return QueryDenomOwnersResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomOwnersResponse): Uint8Array {
-    return QueryDenomOwnersResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomOwnersResponse): QueryDenomOwnersResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersResponse",
-      value: QueryDenomOwnersResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.amino.ts
deleted file mode 100644
index 1aa9a243..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MsgSend, MsgMultiSend } from "./tx";
-export const AminoConverter = {
-  "/cosmos.bank.v1beta1.MsgSend": {
-    aminoType: "cosmos-sdk/MsgSend",
-    toAmino: MsgSend.toAmino,
-    fromAmino: MsgSend.fromAmino
-  },
-  "/cosmos.bank.v1beta1.MsgMultiSend": {
-    aminoType: "cosmos-sdk/MsgMultiSend",
-    toAmino: MsgMultiSend.toAmino,
-    fromAmino: MsgMultiSend.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.registry.ts
deleted file mode 100644
index b39b85d4..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSend, MsgMultiSend } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.bank.v1beta1.MsgSend", MsgSend], ["/cosmos.bank.v1beta1.MsgMultiSend", MsgMultiSend]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-        value: MsgSend.encode(value).finish()
-      };
-    },
-    multiSend(value: MsgMultiSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-        value: MsgMultiSend.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-        value
-      };
-    },
-    multiSend(value: MsgMultiSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-        value
-      };
-    }
-  },
-  toJSON: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-        value: MsgSend.toJSON(value)
-      };
-    },
-    multiSend(value: MsgMultiSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-        value: MsgMultiSend.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    send(value: any) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-        value: MsgSend.fromJSON(value)
-      };
-    },
-    multiSend(value: any) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-        value: MsgMultiSend.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-        value: MsgSend.fromPartial(value)
-      };
-    },
-    multiSend(value: MsgMultiSend) {
-      return {
-        typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-        value: MsgMultiSend.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 370da8f4..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSend, MsgSendResponse, MsgMultiSend, MsgMultiSendResponse } from "./tx";
-/** Msg defines the bank Msg service. */
-export interface Msg {
-  /** Send defines a method for sending coins from one account to another account. */
-  send(request: MsgSend): Promise<MsgSendResponse>;
-  /** MultiSend defines a method for sending coins from some accounts to other accounts. */
-  multiSend(request: MsgMultiSend): Promise<MsgMultiSendResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.send = this.send.bind(this);
-    this.multiSend = this.multiSend.bind(this);
-  }
-  send(request: MsgSend): Promise<MsgSendResponse> {
-    const data = MsgSend.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "Send", data);
-    return promise.then(data => MsgSendResponse.decode(new BinaryReader(data)));
-  }
-  multiSend(request: MsgMultiSend): Promise<MsgMultiSendResponse> {
-    const data = MsgMultiSend.encode(request).finish();
-    const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "MultiSend", data);
-    return promise.then(data => MsgMultiSendResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.ts
deleted file mode 100644
index 51ddb08f..00000000
--- a/examples/injective/src/codegen/cosmos/bank/v1beta1/tx.ts
+++ /dev/null
@@ -1,475 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Input, InputAmino, InputSDKType, Output, OutputAmino, OutputSDKType } from "./bank";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** MsgSend represents a message to send coins from one account to another. */
-export interface MsgSend {
-  fromAddress: string;
-  toAddress: string;
-  amount: Coin[];
-}
-export interface MsgSendProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.MsgSend";
-  value: Uint8Array;
-}
-/** MsgSend represents a message to send coins from one account to another. */
-export interface MsgSendAmino {
-  from_address: string;
-  to_address: string;
-  amount: CoinAmino[];
-}
-export interface MsgSendAminoMsg {
-  type: "cosmos-sdk/MsgSend";
-  value: MsgSendAmino;
-}
-/** MsgSend represents a message to send coins from one account to another. */
-export interface MsgSendSDKType {
-  from_address: string;
-  to_address: string;
-  amount: CoinSDKType[];
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponse {}
-export interface MsgSendResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.MsgSendResponse";
-  value: Uint8Array;
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponseAmino {}
-export interface MsgSendResponseAminoMsg {
-  type: "cosmos-sdk/MsgSendResponse";
-  value: MsgSendResponseAmino;
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponseSDKType {}
-/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */
-export interface MsgMultiSend {
-  inputs: Input[];
-  outputs: Output[];
-}
-export interface MsgMultiSendProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend";
-  value: Uint8Array;
-}
-/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */
-export interface MsgMultiSendAmino {
-  inputs: InputAmino[];
-  outputs: OutputAmino[];
-}
-export interface MsgMultiSendAminoMsg {
-  type: "cosmos-sdk/MsgMultiSend";
-  value: MsgMultiSendAmino;
-}
-/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */
-export interface MsgMultiSendSDKType {
-  inputs: InputSDKType[];
-  outputs: OutputSDKType[];
-}
-/** MsgMultiSendResponse defines the Msg/MultiSend response type. */
-export interface MsgMultiSendResponse {}
-export interface MsgMultiSendResponseProtoMsg {
-  typeUrl: "/cosmos.bank.v1beta1.MsgMultiSendResponse";
-  value: Uint8Array;
-}
-/** MsgMultiSendResponse defines the Msg/MultiSend response type. */
-export interface MsgMultiSendResponseAmino {}
-export interface MsgMultiSendResponseAminoMsg {
-  type: "cosmos-sdk/MsgMultiSendResponse";
-  value: MsgMultiSendResponseAmino;
-}
-/** MsgMultiSendResponse defines the Msg/MultiSend response type. */
-export interface MsgMultiSendResponseSDKType {}
-function createBaseMsgSend(): MsgSend {
-  return {
-    fromAddress: "",
-    toAddress: "",
-    amount: []
-  };
-}
-export const MsgSend = {
-  typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-  aminoType: "cosmos-sdk/MsgSend",
-  encode(message: MsgSend, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fromAddress !== "") {
-      writer.uint32(10).string(message.fromAddress);
-    }
-    if (message.toAddress !== "") {
-      writer.uint32(18).string(message.toAddress);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSend {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSend();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fromAddress = reader.string();
-          break;
-        case 2:
-          message.toAddress = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSend {
-    return {
-      fromAddress: isSet(object.fromAddress) ? String(object.fromAddress) : "",
-      toAddress: isSet(object.toAddress) ? String(object.toAddress) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgSend): unknown {
-    const obj: any = {};
-    message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);
-    message.toAddress !== undefined && (obj.toAddress = message.toAddress);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSend>): MsgSend {
-    const message = createBaseMsgSend();
-    message.fromAddress = object.fromAddress ?? "";
-    message.toAddress = object.toAddress ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgSendSDKType): MsgSend {
-    return {
-      fromAddress: object?.from_address,
-      toAddress: object?.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgSend): MsgSendSDKType {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgSendAmino): MsgSend {
-    return {
-      fromAddress: object.from_address,
-      toAddress: object.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgSend): MsgSendAmino {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgSendAminoMsg): MsgSend {
-    return MsgSend.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSend): MsgSendAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSend",
-      value: MsgSend.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSendProtoMsg): MsgSend {
-    return MsgSend.decode(message.value);
-  },
-  toProto(message: MsgSend): Uint8Array {
-    return MsgSend.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSend): MsgSendProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.MsgSend",
-      value: MsgSend.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSendResponse(): MsgSendResponse {
-  return {};
-}
-export const MsgSendResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.MsgSendResponse",
-  aminoType: "cosmos-sdk/MsgSendResponse",
-  encode(_: MsgSendResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSendResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSendResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSendResponse {
-    return {};
-  },
-  toJSON(_: MsgSendResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSendResponse>): MsgSendResponse {
-    const message = createBaseMsgSendResponse();
-    return message;
-  },
-  fromSDK(_: MsgSendResponseSDKType): MsgSendResponse {
-    return {};
-  },
-  toSDK(_: MsgSendResponse): MsgSendResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSendResponseAmino): MsgSendResponse {
-    return {};
-  },
-  toAmino(_: MsgSendResponse): MsgSendResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSendResponseAminoMsg): MsgSendResponse {
-    return MsgSendResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSendResponse): MsgSendResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSendResponse",
-      value: MsgSendResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSendResponseProtoMsg): MsgSendResponse {
-    return MsgSendResponse.decode(message.value);
-  },
-  toProto(message: MsgSendResponse): Uint8Array {
-    return MsgSendResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSendResponse): MsgSendResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.MsgSendResponse",
-      value: MsgSendResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMultiSend(): MsgMultiSend {
-  return {
-    inputs: [],
-    outputs: []
-  };
-}
-export const MsgMultiSend = {
-  typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-  aminoType: "cosmos-sdk/MsgMultiSend",
-  encode(message: MsgMultiSend, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.inputs) {
-      Input.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.outputs) {
-      Output.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMultiSend {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMultiSend();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.inputs.push(Input.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.outputs.push(Output.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgMultiSend {
-    return {
-      inputs: Array.isArray(object?.inputs) ? object.inputs.map((e: any) => Input.fromJSON(e)) : [],
-      outputs: Array.isArray(object?.outputs) ? object.outputs.map((e: any) => Output.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgMultiSend): unknown {
-    const obj: any = {};
-    if (message.inputs) {
-      obj.inputs = message.inputs.map(e => e ? Input.toJSON(e) : undefined);
-    } else {
-      obj.inputs = [];
-    }
-    if (message.outputs) {
-      obj.outputs = message.outputs.map(e => e ? Output.toJSON(e) : undefined);
-    } else {
-      obj.outputs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgMultiSend>): MsgMultiSend {
-    const message = createBaseMsgMultiSend();
-    message.inputs = object.inputs?.map(e => Input.fromPartial(e)) || [];
-    message.outputs = object.outputs?.map(e => Output.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgMultiSendSDKType): MsgMultiSend {
-    return {
-      inputs: Array.isArray(object?.inputs) ? object.inputs.map((e: any) => Input.fromSDK(e)) : [],
-      outputs: Array.isArray(object?.outputs) ? object.outputs.map((e: any) => Output.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgMultiSend): MsgMultiSendSDKType {
-    const obj: any = {};
-    if (message.inputs) {
-      obj.inputs = message.inputs.map(e => e ? Input.toSDK(e) : undefined);
-    } else {
-      obj.inputs = [];
-    }
-    if (message.outputs) {
-      obj.outputs = message.outputs.map(e => e ? Output.toSDK(e) : undefined);
-    } else {
-      obj.outputs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgMultiSendAmino): MsgMultiSend {
-    return {
-      inputs: Array.isArray(object?.inputs) ? object.inputs.map((e: any) => Input.fromAmino(e)) : [],
-      outputs: Array.isArray(object?.outputs) ? object.outputs.map((e: any) => Output.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgMultiSend): MsgMultiSendAmino {
-    const obj: any = {};
-    if (message.inputs) {
-      obj.inputs = message.inputs.map(e => e ? Input.toAmino(e) : undefined);
-    } else {
-      obj.inputs = [];
-    }
-    if (message.outputs) {
-      obj.outputs = message.outputs.map(e => e ? Output.toAmino(e) : undefined);
-    } else {
-      obj.outputs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgMultiSendAminoMsg): MsgMultiSend {
-    return MsgMultiSend.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMultiSend): MsgMultiSendAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgMultiSend",
-      value: MsgMultiSend.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMultiSendProtoMsg): MsgMultiSend {
-    return MsgMultiSend.decode(message.value);
-  },
-  toProto(message: MsgMultiSend): Uint8Array {
-    return MsgMultiSend.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMultiSend): MsgMultiSendProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend",
-      value: MsgMultiSend.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMultiSendResponse(): MsgMultiSendResponse {
-  return {};
-}
-export const MsgMultiSendResponse = {
-  typeUrl: "/cosmos.bank.v1beta1.MsgMultiSendResponse",
-  aminoType: "cosmos-sdk/MsgMultiSendResponse",
-  encode(_: MsgMultiSendResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMultiSendResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMultiSendResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgMultiSendResponse {
-    return {};
-  },
-  toJSON(_: MsgMultiSendResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgMultiSendResponse>): MsgMultiSendResponse {
-    const message = createBaseMsgMultiSendResponse();
-    return message;
-  },
-  fromSDK(_: MsgMultiSendResponseSDKType): MsgMultiSendResponse {
-    return {};
-  },
-  toSDK(_: MsgMultiSendResponse): MsgMultiSendResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgMultiSendResponseAmino): MsgMultiSendResponse {
-    return {};
-  },
-  toAmino(_: MsgMultiSendResponse): MsgMultiSendResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgMultiSendResponseAminoMsg): MsgMultiSendResponse {
-    return MsgMultiSendResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMultiSendResponse): MsgMultiSendResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgMultiSendResponse",
-      value: MsgMultiSendResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMultiSendResponseProtoMsg): MsgMultiSendResponse {
-    return MsgMultiSendResponse.decode(message.value);
-  },
-  toProto(message: MsgMultiSendResponse): Uint8Array {
-    return MsgMultiSendResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMultiSendResponse): MsgMultiSendResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.bank.v1beta1.MsgMultiSendResponse",
-      value: MsgMultiSendResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/abci/v1beta1/abci.ts b/examples/injective/src/codegen/cosmos/base/abci/v1beta1/abci.ts
deleted file mode 100644
index d9fa5a21..00000000
--- a/examples/injective/src/codegen/cosmos/base/abci/v1beta1/abci.ts
+++ /dev/null
@@ -1,1853 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { Event, EventAmino, EventSDKType } from "../../../../tendermint/abci/types";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * TxResponse defines a structure containing relevant tx data and metadata. The
- * tags are stringified and the log is JSON decoded.
- */
-export interface TxResponse {
-  /** The block height */
-  height: bigint;
-  /** The transaction hash. */
-  txhash: string;
-  /** Namespace for the Code */
-  codespace: string;
-  /** Response code. */
-  code: number;
-  /** Result bytes, if any. */
-  data: string;
-  /**
-   * The output of the application's logger (raw string). May be
-   * non-deterministic.
-   */
-  rawLog: string;
-  /** The output of the application's logger (typed). May be non-deterministic. */
-  logs: ABCIMessageLog[];
-  /** Additional information. May be non-deterministic. */
-  info: string;
-  /** Amount of gas requested for transaction. */
-  gasWanted: bigint;
-  /** Amount of gas consumed by transaction. */
-  gasUsed: bigint;
-  /** The request transaction bytes. */
-  tx: Any | undefined;
-  /**
-   * Time of the previous block. For heights > 1, it's the weighted median of
-   * the timestamps of the valid votes in the block.LastCommit. For height == 1,
-   * it's genesis time.
-   */
-  timestamp: string;
-  /**
-   * Events defines all the events emitted by processing a transaction. Note,
-   * these events include those emitted by processing all the messages and those
-   * emitted from the ante handler. Whereas Logs contains the events, with
-   * additional metadata, emitted only by processing the messages.
-   * 
-   * Since: cosmos-sdk 0.42.11, 0.44.5, 0.45
-   */
-  events: Event[];
-}
-export interface TxResponseProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.TxResponse";
-  value: Uint8Array;
-}
-/**
- * TxResponse defines a structure containing relevant tx data and metadata. The
- * tags are stringified and the log is JSON decoded.
- */
-export interface TxResponseAmino {
-  /** The block height */
-  height: string;
-  /** The transaction hash. */
-  txhash: string;
-  /** Namespace for the Code */
-  codespace: string;
-  /** Response code. */
-  code: number;
-  /** Result bytes, if any. */
-  data: string;
-  /**
-   * The output of the application's logger (raw string). May be
-   * non-deterministic.
-   */
-  raw_log: string;
-  /** The output of the application's logger (typed). May be non-deterministic. */
-  logs: ABCIMessageLogAmino[];
-  /** Additional information. May be non-deterministic. */
-  info: string;
-  /** Amount of gas requested for transaction. */
-  gas_wanted: string;
-  /** Amount of gas consumed by transaction. */
-  gas_used: string;
-  /** The request transaction bytes. */
-  tx?: AnyAmino | undefined;
-  /**
-   * Time of the previous block. For heights > 1, it's the weighted median of
-   * the timestamps of the valid votes in the block.LastCommit. For height == 1,
-   * it's genesis time.
-   */
-  timestamp: string;
-  /**
-   * Events defines all the events emitted by processing a transaction. Note,
-   * these events include those emitted by processing all the messages and those
-   * emitted from the ante handler. Whereas Logs contains the events, with
-   * additional metadata, emitted only by processing the messages.
-   * 
-   * Since: cosmos-sdk 0.42.11, 0.44.5, 0.45
-   */
-  events: EventAmino[];
-}
-export interface TxResponseAminoMsg {
-  type: "cosmos-sdk/TxResponse";
-  value: TxResponseAmino;
-}
-/**
- * TxResponse defines a structure containing relevant tx data and metadata. The
- * tags are stringified and the log is JSON decoded.
- */
-export interface TxResponseSDKType {
-  height: bigint;
-  txhash: string;
-  codespace: string;
-  code: number;
-  data: string;
-  raw_log: string;
-  logs: ABCIMessageLogSDKType[];
-  info: string;
-  gas_wanted: bigint;
-  gas_used: bigint;
-  tx: AnySDKType | undefined;
-  timestamp: string;
-  events: EventSDKType[];
-}
-/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */
-export interface ABCIMessageLog {
-  msgIndex: number;
-  log: string;
-  /**
-   * Events contains a slice of Event objects that were emitted during some
-   * execution.
-   */
-  events: StringEvent[];
-}
-export interface ABCIMessageLogProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.ABCIMessageLog";
-  value: Uint8Array;
-}
-/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */
-export interface ABCIMessageLogAmino {
-  msg_index: number;
-  log: string;
-  /**
-   * Events contains a slice of Event objects that were emitted during some
-   * execution.
-   */
-  events: StringEventAmino[];
-}
-export interface ABCIMessageLogAminoMsg {
-  type: "cosmos-sdk/ABCIMessageLog";
-  value: ABCIMessageLogAmino;
-}
-/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */
-export interface ABCIMessageLogSDKType {
-  msg_index: number;
-  log: string;
-  events: StringEventSDKType[];
-}
-/**
- * StringEvent defines en Event object wrapper where all the attributes
- * contain key/value pairs that are strings instead of raw bytes.
- */
-export interface StringEvent {
-  type: string;
-  attributes: Attribute[];
-}
-export interface StringEventProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.StringEvent";
-  value: Uint8Array;
-}
-/**
- * StringEvent defines en Event object wrapper where all the attributes
- * contain key/value pairs that are strings instead of raw bytes.
- */
-export interface StringEventAmino {
-  type: string;
-  attributes: AttributeAmino[];
-}
-export interface StringEventAminoMsg {
-  type: "cosmos-sdk/StringEvent";
-  value: StringEventAmino;
-}
-/**
- * StringEvent defines en Event object wrapper where all the attributes
- * contain key/value pairs that are strings instead of raw bytes.
- */
-export interface StringEventSDKType {
-  type: string;
-  attributes: AttributeSDKType[];
-}
-/**
- * Attribute defines an attribute wrapper where the key and value are
- * strings instead of raw bytes.
- */
-export interface Attribute {
-  key: string;
-  value: string;
-}
-export interface AttributeProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.Attribute";
-  value: Uint8Array;
-}
-/**
- * Attribute defines an attribute wrapper where the key and value are
- * strings instead of raw bytes.
- */
-export interface AttributeAmino {
-  key: string;
-  value: string;
-}
-export interface AttributeAminoMsg {
-  type: "cosmos-sdk/Attribute";
-  value: AttributeAmino;
-}
-/**
- * Attribute defines an attribute wrapper where the key and value are
- * strings instead of raw bytes.
- */
-export interface AttributeSDKType {
-  key: string;
-  value: string;
-}
-/** GasInfo defines tx execution gas context. */
-export interface GasInfo {
-  /** GasWanted is the maximum units of work we allow this tx to perform. */
-  gasWanted: bigint;
-  /** GasUsed is the amount of gas actually consumed. */
-  gasUsed: bigint;
-}
-export interface GasInfoProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.GasInfo";
-  value: Uint8Array;
-}
-/** GasInfo defines tx execution gas context. */
-export interface GasInfoAmino {
-  /** GasWanted is the maximum units of work we allow this tx to perform. */
-  gas_wanted: string;
-  /** GasUsed is the amount of gas actually consumed. */
-  gas_used: string;
-}
-export interface GasInfoAminoMsg {
-  type: "cosmos-sdk/GasInfo";
-  value: GasInfoAmino;
-}
-/** GasInfo defines tx execution gas context. */
-export interface GasInfoSDKType {
-  gas_wanted: bigint;
-  gas_used: bigint;
-}
-/** Result is the union of ResponseFormat and ResponseCheckTx. */
-export interface Result {
-  /**
-   * Data is any data returned from message or handler execution. It MUST be
-   * length prefixed in order to separate data from multiple message executions.
-   * Deprecated. This field is still populated, but prefer msg_response instead
-   * because it also contains the Msg response typeURL.
-   */
-  /** @deprecated */
-  data: Uint8Array;
-  /** Log contains the log information from message or handler execution. */
-  log: string;
-  /**
-   * Events contains a slice of Event objects that were emitted during message
-   * or handler execution.
-   */
-  events: Event[];
-  /**
-   * msg_responses contains the Msg handler responses type packed in Anys.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  msgResponses: Any[];
-}
-export interface ResultProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.Result";
-  value: Uint8Array;
-}
-/** Result is the union of ResponseFormat and ResponseCheckTx. */
-export interface ResultAmino {
-  /**
-   * Data is any data returned from message or handler execution. It MUST be
-   * length prefixed in order to separate data from multiple message executions.
-   * Deprecated. This field is still populated, but prefer msg_response instead
-   * because it also contains the Msg response typeURL.
-   */
-  /** @deprecated */
-  data: Uint8Array;
-  /** Log contains the log information from message or handler execution. */
-  log: string;
-  /**
-   * Events contains a slice of Event objects that were emitted during message
-   * or handler execution.
-   */
-  events: EventAmino[];
-  /**
-   * msg_responses contains the Msg handler responses type packed in Anys.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  msg_responses: AnyAmino[];
-}
-export interface ResultAminoMsg {
-  type: "cosmos-sdk/Result";
-  value: ResultAmino;
-}
-/** Result is the union of ResponseFormat and ResponseCheckTx. */
-export interface ResultSDKType {
-  /** @deprecated */
-  data: Uint8Array;
-  log: string;
-  events: EventSDKType[];
-  msg_responses: AnySDKType[];
-}
-/**
- * SimulationResponse defines the response generated when a transaction is
- * successfully simulated.
- */
-export interface SimulationResponse {
-  gasInfo: GasInfo | undefined;
-  result: Result | undefined;
-}
-export interface SimulationResponseProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.SimulationResponse";
-  value: Uint8Array;
-}
-/**
- * SimulationResponse defines the response generated when a transaction is
- * successfully simulated.
- */
-export interface SimulationResponseAmino {
-  gas_info?: GasInfoAmino | undefined;
-  result?: ResultAmino | undefined;
-}
-export interface SimulationResponseAminoMsg {
-  type: "cosmos-sdk/SimulationResponse";
-  value: SimulationResponseAmino;
-}
-/**
- * SimulationResponse defines the response generated when a transaction is
- * successfully simulated.
- */
-export interface SimulationResponseSDKType {
-  gas_info: GasInfoSDKType | undefined;
-  result: ResultSDKType | undefined;
-}
-/**
- * MsgData defines the data returned in a Result object during message
- * execution.
- */
-/** @deprecated */
-export interface MsgData {
-  msgType: string;
-  data: Uint8Array;
-}
-export interface MsgDataProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.MsgData";
-  value: Uint8Array;
-}
-/**
- * MsgData defines the data returned in a Result object during message
- * execution.
- */
-/** @deprecated */
-export interface MsgDataAmino {
-  msg_type: string;
-  data: Uint8Array;
-}
-export interface MsgDataAminoMsg {
-  type: "cosmos-sdk/MsgData";
-  value: MsgDataAmino;
-}
-/**
- * MsgData defines the data returned in a Result object during message
- * execution.
- */
-/** @deprecated */
-export interface MsgDataSDKType {
-  msg_type: string;
-  data: Uint8Array;
-}
-/**
- * TxMsgData defines a list of MsgData. A transaction will have a MsgData object
- * for each message.
- */
-export interface TxMsgData {
-  /** data field is deprecated and not populated. */
-  /** @deprecated */
-  data: MsgData[];
-  /**
-   * msg_responses contains the Msg handler responses packed into Anys.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  msgResponses: Any[];
-}
-export interface TxMsgDataProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.TxMsgData";
-  value: Uint8Array;
-}
-/**
- * TxMsgData defines a list of MsgData. A transaction will have a MsgData object
- * for each message.
- */
-export interface TxMsgDataAmino {
-  /** data field is deprecated and not populated. */
-  /** @deprecated */
-  data: MsgDataAmino[];
-  /**
-   * msg_responses contains the Msg handler responses packed into Anys.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  msg_responses: AnyAmino[];
-}
-export interface TxMsgDataAminoMsg {
-  type: "cosmos-sdk/TxMsgData";
-  value: TxMsgDataAmino;
-}
-/**
- * TxMsgData defines a list of MsgData. A transaction will have a MsgData object
- * for each message.
- */
-export interface TxMsgDataSDKType {
-  /** @deprecated */
-  data: MsgDataSDKType[];
-  msg_responses: AnySDKType[];
-}
-/** SearchTxsResult defines a structure for querying txs pageable */
-export interface SearchTxsResult {
-  /** Count of all txs */
-  totalCount: bigint;
-  /** Count of txs in current page */
-  count: bigint;
-  /** Index of current page, start from 1 */
-  pageNumber: bigint;
-  /** Count of total pages */
-  pageTotal: bigint;
-  /** Max count txs per page */
-  limit: bigint;
-  /** List of txs in current page */
-  txs: TxResponse[];
-}
-export interface SearchTxsResultProtoMsg {
-  typeUrl: "/cosmos.base.abci.v1beta1.SearchTxsResult";
-  value: Uint8Array;
-}
-/** SearchTxsResult defines a structure for querying txs pageable */
-export interface SearchTxsResultAmino {
-  /** Count of all txs */
-  total_count: string;
-  /** Count of txs in current page */
-  count: string;
-  /** Index of current page, start from 1 */
-  page_number: string;
-  /** Count of total pages */
-  page_total: string;
-  /** Max count txs per page */
-  limit: string;
-  /** List of txs in current page */
-  txs: TxResponseAmino[];
-}
-export interface SearchTxsResultAminoMsg {
-  type: "cosmos-sdk/SearchTxsResult";
-  value: SearchTxsResultAmino;
-}
-/** SearchTxsResult defines a structure for querying txs pageable */
-export interface SearchTxsResultSDKType {
-  total_count: bigint;
-  count: bigint;
-  page_number: bigint;
-  page_total: bigint;
-  limit: bigint;
-  txs: TxResponseSDKType[];
-}
-function createBaseTxResponse(): TxResponse {
-  return {
-    height: BigInt(0),
-    txhash: "",
-    codespace: "",
-    code: 0,
-    data: "",
-    rawLog: "",
-    logs: [],
-    info: "",
-    gasWanted: BigInt(0),
-    gasUsed: BigInt(0),
-    tx: Any.fromPartial({}),
-    timestamp: "",
-    events: []
-  };
-}
-export const TxResponse = {
-  typeUrl: "/cosmos.base.abci.v1beta1.TxResponse",
-  aminoType: "cosmos-sdk/TxResponse",
-  encode(message: TxResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.txhash !== "") {
-      writer.uint32(18).string(message.txhash);
-    }
-    if (message.codespace !== "") {
-      writer.uint32(26).string(message.codespace);
-    }
-    if (message.code !== 0) {
-      writer.uint32(32).uint32(message.code);
-    }
-    if (message.data !== "") {
-      writer.uint32(42).string(message.data);
-    }
-    if (message.rawLog !== "") {
-      writer.uint32(50).string(message.rawLog);
-    }
-    for (const v of message.logs) {
-      ABCIMessageLog.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.info !== "") {
-      writer.uint32(66).string(message.info);
-    }
-    if (message.gasWanted !== BigInt(0)) {
-      writer.uint32(72).int64(message.gasWanted);
-    }
-    if (message.gasUsed !== BigInt(0)) {
-      writer.uint32(80).int64(message.gasUsed);
-    }
-    if (message.tx !== undefined) {
-      Any.encode(message.tx, writer.uint32(90).fork()).ldelim();
-    }
-    if (message.timestamp !== "") {
-      writer.uint32(98).string(message.timestamp);
-    }
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(106).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.txhash = reader.string();
-          break;
-        case 3:
-          message.codespace = reader.string();
-          break;
-        case 4:
-          message.code = reader.uint32();
-          break;
-        case 5:
-          message.data = reader.string();
-          break;
-        case 6:
-          message.rawLog = reader.string();
-          break;
-        case 7:
-          message.logs.push(ABCIMessageLog.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.info = reader.string();
-          break;
-        case 9:
-          message.gasWanted = reader.int64();
-          break;
-        case 10:
-          message.gasUsed = reader.int64();
-          break;
-        case 11:
-          message.tx = Any.decode(reader, reader.uint32());
-          break;
-        case 12:
-          message.timestamp = reader.string();
-          break;
-        case 13:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxResponse {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      txhash: isSet(object.txhash) ? String(object.txhash) : "",
-      codespace: isSet(object.codespace) ? String(object.codespace) : "",
-      code: isSet(object.code) ? Number(object.code) : 0,
-      data: isSet(object.data) ? String(object.data) : "",
-      rawLog: isSet(object.rawLog) ? String(object.rawLog) : "",
-      logs: Array.isArray(object?.logs) ? object.logs.map((e: any) => ABCIMessageLog.fromJSON(e)) : [],
-      info: isSet(object.info) ? String(object.info) : "",
-      gasWanted: isSet(object.gasWanted) ? BigInt(object.gasWanted.toString()) : BigInt(0),
-      gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed.toString()) : BigInt(0),
-      tx: isSet(object.tx) ? Any.fromJSON(object.tx) : undefined,
-      timestamp: isSet(object.timestamp) ? String(object.timestamp) : "",
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: TxResponse): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.txhash !== undefined && (obj.txhash = message.txhash);
-    message.codespace !== undefined && (obj.codespace = message.codespace);
-    message.code !== undefined && (obj.code = Math.round(message.code));
-    message.data !== undefined && (obj.data = message.data);
-    message.rawLog !== undefined && (obj.rawLog = message.rawLog);
-    if (message.logs) {
-      obj.logs = message.logs.map(e => e ? ABCIMessageLog.toJSON(e) : undefined);
-    } else {
-      obj.logs = [];
-    }
-    message.info !== undefined && (obj.info = message.info);
-    message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());
-    message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());
-    message.tx !== undefined && (obj.tx = message.tx ? Any.toJSON(message.tx) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp);
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxResponse>): TxResponse {
-    const message = createBaseTxResponse();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.txhash = object.txhash ?? "";
-    message.codespace = object.codespace ?? "";
-    message.code = object.code ?? 0;
-    message.data = object.data ?? "";
-    message.rawLog = object.rawLog ?? "";
-    message.logs = object.logs?.map(e => ABCIMessageLog.fromPartial(e)) || [];
-    message.info = object.info ?? "";
-    message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? BigInt(object.gasWanted.toString()) : BigInt(0);
-    message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? BigInt(object.gasUsed.toString()) : BigInt(0);
-    message.tx = object.tx !== undefined && object.tx !== null ? Any.fromPartial(object.tx) : undefined;
-    message.timestamp = object.timestamp ?? "";
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: TxResponseSDKType): TxResponse {
-    return {
-      height: object?.height,
-      txhash: object?.txhash,
-      codespace: object?.codespace,
-      code: object?.code,
-      data: object?.data,
-      rawLog: object?.raw_log,
-      logs: Array.isArray(object?.logs) ? object.logs.map((e: any) => ABCIMessageLog.fromSDK(e)) : [],
-      info: object?.info,
-      gasWanted: object?.gas_wanted,
-      gasUsed: object?.gas_used,
-      tx: object.tx ? Any.fromSDK(object.tx) : undefined,
-      timestamp: object?.timestamp,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: TxResponse): TxResponseSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.txhash = message.txhash;
-    obj.codespace = message.codespace;
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.raw_log = message.rawLog;
-    if (message.logs) {
-      obj.logs = message.logs.map(e => e ? ABCIMessageLog.toSDK(e) : undefined);
-    } else {
-      obj.logs = [];
-    }
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted;
-    obj.gas_used = message.gasUsed;
-    message.tx !== undefined && (obj.tx = message.tx ? Any.toSDK(message.tx) : undefined);
-    obj.timestamp = message.timestamp;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxResponseAmino): TxResponse {
-    return {
-      height: BigInt(object.height),
-      txhash: object.txhash,
-      codespace: object.codespace,
-      code: object.code,
-      data: object.data,
-      rawLog: object.raw_log,
-      logs: Array.isArray(object?.logs) ? object.logs.map((e: any) => ABCIMessageLog.fromAmino(e)) : [],
-      info: object.info,
-      gasWanted: BigInt(object.gas_wanted),
-      gasUsed: BigInt(object.gas_used),
-      tx: object?.tx ? Any.fromAmino(object.tx) : undefined,
-      timestamp: object.timestamp,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: TxResponse): TxResponseAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.txhash = message.txhash;
-    obj.codespace = message.codespace;
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.raw_log = message.rawLog;
-    if (message.logs) {
-      obj.logs = message.logs.map(e => e ? ABCIMessageLog.toAmino(e) : undefined);
-    } else {
-      obj.logs = [];
-    }
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted ? message.gasWanted.toString() : undefined;
-    obj.gas_used = message.gasUsed ? message.gasUsed.toString() : undefined;
-    obj.tx = message.tx ? Any.toAmino(message.tx) : undefined;
-    obj.timestamp = message.timestamp;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxResponseAminoMsg): TxResponse {
-    return TxResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: TxResponse): TxResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/TxResponse",
-      value: TxResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxResponseProtoMsg): TxResponse {
-    return TxResponse.decode(message.value);
-  },
-  toProto(message: TxResponse): Uint8Array {
-    return TxResponse.encode(message).finish();
-  },
-  toProtoMsg(message: TxResponse): TxResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.TxResponse",
-      value: TxResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseABCIMessageLog(): ABCIMessageLog {
-  return {
-    msgIndex: 0,
-    log: "",
-    events: []
-  };
-}
-export const ABCIMessageLog = {
-  typeUrl: "/cosmos.base.abci.v1beta1.ABCIMessageLog",
-  aminoType: "cosmos-sdk/ABCIMessageLog",
-  encode(message: ABCIMessageLog, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msgIndex !== 0) {
-      writer.uint32(8).uint32(message.msgIndex);
-    }
-    if (message.log !== "") {
-      writer.uint32(18).string(message.log);
-    }
-    for (const v of message.events) {
-      StringEvent.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ABCIMessageLog {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseABCIMessageLog();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.msgIndex = reader.uint32();
-          break;
-        case 2:
-          message.log = reader.string();
-          break;
-        case 3:
-          message.events.push(StringEvent.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ABCIMessageLog {
-    return {
-      msgIndex: isSet(object.msgIndex) ? Number(object.msgIndex) : 0,
-      log: isSet(object.log) ? String(object.log) : "",
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => StringEvent.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ABCIMessageLog): unknown {
-    const obj: any = {};
-    message.msgIndex !== undefined && (obj.msgIndex = Math.round(message.msgIndex));
-    message.log !== undefined && (obj.log = message.log);
-    if (message.events) {
-      obj.events = message.events.map(e => e ? StringEvent.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ABCIMessageLog>): ABCIMessageLog {
-    const message = createBaseABCIMessageLog();
-    message.msgIndex = object.msgIndex ?? 0;
-    message.log = object.log ?? "";
-    message.events = object.events?.map(e => StringEvent.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ABCIMessageLogSDKType): ABCIMessageLog {
-    return {
-      msgIndex: object?.msg_index,
-      log: object?.log,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => StringEvent.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ABCIMessageLog): ABCIMessageLogSDKType {
-    const obj: any = {};
-    obj.msg_index = message.msgIndex;
-    obj.log = message.log;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? StringEvent.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ABCIMessageLogAmino): ABCIMessageLog {
-    return {
-      msgIndex: object.msg_index,
-      log: object.log,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => StringEvent.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ABCIMessageLog): ABCIMessageLogAmino {
-    const obj: any = {};
-    obj.msg_index = message.msgIndex;
-    obj.log = message.log;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? StringEvent.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ABCIMessageLogAminoMsg): ABCIMessageLog {
-    return ABCIMessageLog.fromAmino(object.value);
-  },
-  toAminoMsg(message: ABCIMessageLog): ABCIMessageLogAminoMsg {
-    return {
-      type: "cosmos-sdk/ABCIMessageLog",
-      value: ABCIMessageLog.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ABCIMessageLogProtoMsg): ABCIMessageLog {
-    return ABCIMessageLog.decode(message.value);
-  },
-  toProto(message: ABCIMessageLog): Uint8Array {
-    return ABCIMessageLog.encode(message).finish();
-  },
-  toProtoMsg(message: ABCIMessageLog): ABCIMessageLogProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.ABCIMessageLog",
-      value: ABCIMessageLog.encode(message).finish()
-    };
-  }
-};
-function createBaseStringEvent(): StringEvent {
-  return {
-    type: "",
-    attributes: []
-  };
-}
-export const StringEvent = {
-  typeUrl: "/cosmos.base.abci.v1beta1.StringEvent",
-  aminoType: "cosmos-sdk/StringEvent",
-  encode(message: StringEvent, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== "") {
-      writer.uint32(10).string(message.type);
-    }
-    for (const v of message.attributes) {
-      Attribute.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StringEvent {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStringEvent();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = reader.string();
-          break;
-        case 2:
-          message.attributes.push(Attribute.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StringEvent {
-    return {
-      type: isSet(object.type) ? String(object.type) : "",
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => Attribute.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: StringEvent): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = message.type);
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? Attribute.toJSON(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StringEvent>): StringEvent {
-    const message = createBaseStringEvent();
-    message.type = object.type ?? "";
-    message.attributes = object.attributes?.map(e => Attribute.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: StringEventSDKType): StringEvent {
-    return {
-      type: object?.type,
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => Attribute.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: StringEvent): StringEventSDKType {
-    const obj: any = {};
-    obj.type = message.type;
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? Attribute.toSDK(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: StringEventAmino): StringEvent {
-    return {
-      type: object.type,
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => Attribute.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: StringEvent): StringEventAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? Attribute.toAmino(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: StringEventAminoMsg): StringEvent {
-    return StringEvent.fromAmino(object.value);
-  },
-  toAminoMsg(message: StringEvent): StringEventAminoMsg {
-    return {
-      type: "cosmos-sdk/StringEvent",
-      value: StringEvent.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StringEventProtoMsg): StringEvent {
-    return StringEvent.decode(message.value);
-  },
-  toProto(message: StringEvent): Uint8Array {
-    return StringEvent.encode(message).finish();
-  },
-  toProtoMsg(message: StringEvent): StringEventProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.StringEvent",
-      value: StringEvent.encode(message).finish()
-    };
-  }
-};
-function createBaseAttribute(): Attribute {
-  return {
-    key: "",
-    value: ""
-  };
-}
-export const Attribute = {
-  typeUrl: "/cosmos.base.abci.v1beta1.Attribute",
-  aminoType: "cosmos-sdk/Attribute",
-  encode(message: Attribute, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key !== "") {
-      writer.uint32(10).string(message.key);
-    }
-    if (message.value !== "") {
-      writer.uint32(18).string(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Attribute {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAttribute();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.string();
-          break;
-        case 2:
-          message.value = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Attribute {
-    return {
-      key: isSet(object.key) ? String(object.key) : "",
-      value: isSet(object.value) ? String(object.value) : ""
-    };
-  },
-  toJSON(message: Attribute): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = message.key);
-    message.value !== undefined && (obj.value = message.value);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Attribute>): Attribute {
-    const message = createBaseAttribute();
-    message.key = object.key ?? "";
-    message.value = object.value ?? "";
-    return message;
-  },
-  fromSDK(object: AttributeSDKType): Attribute {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: Attribute): AttributeSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: AttributeAmino): Attribute {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: Attribute): AttributeAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: AttributeAminoMsg): Attribute {
-    return Attribute.fromAmino(object.value);
-  },
-  toAminoMsg(message: Attribute): AttributeAminoMsg {
-    return {
-      type: "cosmos-sdk/Attribute",
-      value: Attribute.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AttributeProtoMsg): Attribute {
-    return Attribute.decode(message.value);
-  },
-  toProto(message: Attribute): Uint8Array {
-    return Attribute.encode(message).finish();
-  },
-  toProtoMsg(message: Attribute): AttributeProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.Attribute",
-      value: Attribute.encode(message).finish()
-    };
-  }
-};
-function createBaseGasInfo(): GasInfo {
-  return {
-    gasWanted: BigInt(0),
-    gasUsed: BigInt(0)
-  };
-}
-export const GasInfo = {
-  typeUrl: "/cosmos.base.abci.v1beta1.GasInfo",
-  aminoType: "cosmos-sdk/GasInfo",
-  encode(message: GasInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gasWanted !== BigInt(0)) {
-      writer.uint32(8).uint64(message.gasWanted);
-    }
-    if (message.gasUsed !== BigInt(0)) {
-      writer.uint32(16).uint64(message.gasUsed);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GasInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGasInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gasWanted = reader.uint64();
-          break;
-        case 2:
-          message.gasUsed = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GasInfo {
-    return {
-      gasWanted: isSet(object.gasWanted) ? BigInt(object.gasWanted.toString()) : BigInt(0),
-      gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GasInfo): unknown {
-    const obj: any = {};
-    message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());
-    message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GasInfo>): GasInfo {
-    const message = createBaseGasInfo();
-    message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? BigInt(object.gasWanted.toString()) : BigInt(0);
-    message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? BigInt(object.gasUsed.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GasInfoSDKType): GasInfo {
-    return {
-      gasWanted: object?.gas_wanted,
-      gasUsed: object?.gas_used
-    };
-  },
-  toSDK(message: GasInfo): GasInfoSDKType {
-    const obj: any = {};
-    obj.gas_wanted = message.gasWanted;
-    obj.gas_used = message.gasUsed;
-    return obj;
-  },
-  fromAmino(object: GasInfoAmino): GasInfo {
-    return {
-      gasWanted: BigInt(object.gas_wanted),
-      gasUsed: BigInt(object.gas_used)
-    };
-  },
-  toAmino(message: GasInfo): GasInfoAmino {
-    const obj: any = {};
-    obj.gas_wanted = message.gasWanted ? message.gasWanted.toString() : undefined;
-    obj.gas_used = message.gasUsed ? message.gasUsed.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GasInfoAminoMsg): GasInfo {
-    return GasInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: GasInfo): GasInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/GasInfo",
-      value: GasInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GasInfoProtoMsg): GasInfo {
-    return GasInfo.decode(message.value);
-  },
-  toProto(message: GasInfo): Uint8Array {
-    return GasInfo.encode(message).finish();
-  },
-  toProtoMsg(message: GasInfo): GasInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.GasInfo",
-      value: GasInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseResult(): Result {
-  return {
-    data: new Uint8Array(),
-    log: "",
-    events: [],
-    msgResponses: []
-  };
-}
-export const Result = {
-  typeUrl: "/cosmos.base.abci.v1beta1.Result",
-  aminoType: "cosmos-sdk/Result",
-  encode(message: Result, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    if (message.log !== "") {
-      writer.uint32(18).string(message.log);
-    }
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.msgResponses) {
-      Any.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Result {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        case 2:
-          message.log = reader.string();
-          break;
-        case 3:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.msgResponses.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Result {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      log: isSet(object.log) ? String(object.log) : "",
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [],
-      msgResponses: Array.isArray(object?.msgResponses) ? object.msgResponses.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Result): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.log !== undefined && (obj.log = message.log);
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    if (message.msgResponses) {
-      obj.msgResponses = message.msgResponses.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.msgResponses = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Result>): Result {
-    const message = createBaseResult();
-    message.data = object.data ?? new Uint8Array();
-    message.log = object.log ?? "";
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    message.msgResponses = object.msgResponses?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ResultSDKType): Result {
-    return {
-      data: object?.data,
-      log: object?.log,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : [],
-      msgResponses: Array.isArray(object?.msg_responses) ? object.msg_responses.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Result): ResultSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.log = message.log;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    if (message.msgResponses) {
-      obj.msg_responses = message.msgResponses.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.msg_responses = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ResultAmino): Result {
-    return {
-      data: object.data,
-      log: object.log,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : [],
-      msgResponses: Array.isArray(object?.msg_responses) ? object.msg_responses.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Result): ResultAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.log = message.log;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    if (message.msgResponses) {
-      obj.msg_responses = message.msgResponses.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.msg_responses = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ResultAminoMsg): Result {
-    return Result.fromAmino(object.value);
-  },
-  toAminoMsg(message: Result): ResultAminoMsg {
-    return {
-      type: "cosmos-sdk/Result",
-      value: Result.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ResultProtoMsg): Result {
-    return Result.decode(message.value);
-  },
-  toProto(message: Result): Uint8Array {
-    return Result.encode(message).finish();
-  },
-  toProtoMsg(message: Result): ResultProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.Result",
-      value: Result.encode(message).finish()
-    };
-  }
-};
-function createBaseSimulationResponse(): SimulationResponse {
-  return {
-    gasInfo: GasInfo.fromPartial({}),
-    result: Result.fromPartial({})
-  };
-}
-export const SimulationResponse = {
-  typeUrl: "/cosmos.base.abci.v1beta1.SimulationResponse",
-  aminoType: "cosmos-sdk/SimulationResponse",
-  encode(message: SimulationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gasInfo !== undefined) {
-      GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.result !== undefined) {
-      Result.encode(message.result, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SimulationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSimulationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gasInfo = GasInfo.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.result = Result.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SimulationResponse {
-    return {
-      gasInfo: isSet(object.gasInfo) ? GasInfo.fromJSON(object.gasInfo) : undefined,
-      result: isSet(object.result) ? Result.fromJSON(object.result) : undefined
-    };
-  },
-  toJSON(message: SimulationResponse): unknown {
-    const obj: any = {};
-    message.gasInfo !== undefined && (obj.gasInfo = message.gasInfo ? GasInfo.toJSON(message.gasInfo) : undefined);
-    message.result !== undefined && (obj.result = message.result ? Result.toJSON(message.result) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SimulationResponse>): SimulationResponse {
-    const message = createBaseSimulationResponse();
-    message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? GasInfo.fromPartial(object.gasInfo) : undefined;
-    message.result = object.result !== undefined && object.result !== null ? Result.fromPartial(object.result) : undefined;
-    return message;
-  },
-  fromSDK(object: SimulationResponseSDKType): SimulationResponse {
-    return {
-      gasInfo: object.gas_info ? GasInfo.fromSDK(object.gas_info) : undefined,
-      result: object.result ? Result.fromSDK(object.result) : undefined
-    };
-  },
-  toSDK(message: SimulationResponse): SimulationResponseSDKType {
-    const obj: any = {};
-    message.gasInfo !== undefined && (obj.gas_info = message.gasInfo ? GasInfo.toSDK(message.gasInfo) : undefined);
-    message.result !== undefined && (obj.result = message.result ? Result.toSDK(message.result) : undefined);
-    return obj;
-  },
-  fromAmino(object: SimulationResponseAmino): SimulationResponse {
-    return {
-      gasInfo: object?.gas_info ? GasInfo.fromAmino(object.gas_info) : undefined,
-      result: object?.result ? Result.fromAmino(object.result) : undefined
-    };
-  },
-  toAmino(message: SimulationResponse): SimulationResponseAmino {
-    const obj: any = {};
-    obj.gas_info = message.gasInfo ? GasInfo.toAmino(message.gasInfo) : undefined;
-    obj.result = message.result ? Result.toAmino(message.result) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SimulationResponseAminoMsg): SimulationResponse {
-    return SimulationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SimulationResponse): SimulationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/SimulationResponse",
-      value: SimulationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SimulationResponseProtoMsg): SimulationResponse {
-    return SimulationResponse.decode(message.value);
-  },
-  toProto(message: SimulationResponse): Uint8Array {
-    return SimulationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SimulationResponse): SimulationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.SimulationResponse",
-      value: SimulationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgData(): MsgData {
-  return {
-    msgType: "",
-    data: new Uint8Array()
-  };
-}
-export const MsgData = {
-  typeUrl: "/cosmos.base.abci.v1beta1.MsgData",
-  aminoType: "cosmos-sdk/MsgData",
-  encode(message: MsgData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msgType !== "") {
-      writer.uint32(10).string(message.msgType);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.msgType = reader.string();
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgData {
-    return {
-      msgType: isSet(object.msgType) ? String(object.msgType) : "",
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgData): unknown {
-    const obj: any = {};
-    message.msgType !== undefined && (obj.msgType = message.msgType);
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgData>): MsgData {
-    const message = createBaseMsgData();
-    message.msgType = object.msgType ?? "";
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgDataSDKType): MsgData {
-    return {
-      msgType: object?.msg_type,
-      data: object?.data
-    };
-  },
-  toSDK(message: MsgData): MsgDataSDKType {
-    const obj: any = {};
-    obj.msg_type = message.msgType;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: MsgDataAmino): MsgData {
-    return {
-      msgType: object.msg_type,
-      data: object.data
-    };
-  },
-  toAmino(message: MsgData): MsgDataAmino {
-    const obj: any = {};
-    obj.msg_type = message.msgType;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: MsgDataAminoMsg): MsgData {
-    return MsgData.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgData): MsgDataAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgData",
-      value: MsgData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDataProtoMsg): MsgData {
-    return MsgData.decode(message.value);
-  },
-  toProto(message: MsgData): Uint8Array {
-    return MsgData.encode(message).finish();
-  },
-  toProtoMsg(message: MsgData): MsgDataProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.MsgData",
-      value: MsgData.encode(message).finish()
-    };
-  }
-};
-function createBaseTxMsgData(): TxMsgData {
-  return {
-    data: [],
-    msgResponses: []
-  };
-}
-export const TxMsgData = {
-  typeUrl: "/cosmos.base.abci.v1beta1.TxMsgData",
-  aminoType: "cosmos-sdk/TxMsgData",
-  encode(message: TxMsgData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      MsgData.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.msgResponses) {
-      Any.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxMsgData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxMsgData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(MsgData.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.msgResponses.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxMsgData {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => MsgData.fromJSON(e)) : [],
-      msgResponses: Array.isArray(object?.msgResponses) ? object.msgResponses.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: TxMsgData): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? MsgData.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    if (message.msgResponses) {
-      obj.msgResponses = message.msgResponses.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.msgResponses = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxMsgData>): TxMsgData {
-    const message = createBaseTxMsgData();
-    message.data = object.data?.map(e => MsgData.fromPartial(e)) || [];
-    message.msgResponses = object.msgResponses?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: TxMsgDataSDKType): TxMsgData {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => MsgData.fromSDK(e)) : [],
-      msgResponses: Array.isArray(object?.msg_responses) ? object.msg_responses.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: TxMsgData): TxMsgDataSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? MsgData.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    if (message.msgResponses) {
-      obj.msg_responses = message.msgResponses.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.msg_responses = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxMsgDataAmino): TxMsgData {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => MsgData.fromAmino(e)) : [],
-      msgResponses: Array.isArray(object?.msg_responses) ? object.msg_responses.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: TxMsgData): TxMsgDataAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? MsgData.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    if (message.msgResponses) {
-      obj.msg_responses = message.msgResponses.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.msg_responses = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxMsgDataAminoMsg): TxMsgData {
-    return TxMsgData.fromAmino(object.value);
-  },
-  toAminoMsg(message: TxMsgData): TxMsgDataAminoMsg {
-    return {
-      type: "cosmos-sdk/TxMsgData",
-      value: TxMsgData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxMsgDataProtoMsg): TxMsgData {
-    return TxMsgData.decode(message.value);
-  },
-  toProto(message: TxMsgData): Uint8Array {
-    return TxMsgData.encode(message).finish();
-  },
-  toProtoMsg(message: TxMsgData): TxMsgDataProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.TxMsgData",
-      value: TxMsgData.encode(message).finish()
-    };
-  }
-};
-function createBaseSearchTxsResult(): SearchTxsResult {
-  return {
-    totalCount: BigInt(0),
-    count: BigInt(0),
-    pageNumber: BigInt(0),
-    pageTotal: BigInt(0),
-    limit: BigInt(0),
-    txs: []
-  };
-}
-export const SearchTxsResult = {
-  typeUrl: "/cosmos.base.abci.v1beta1.SearchTxsResult",
-  aminoType: "cosmos-sdk/SearchTxsResult",
-  encode(message: SearchTxsResult, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.totalCount !== BigInt(0)) {
-      writer.uint32(8).uint64(message.totalCount);
-    }
-    if (message.count !== BigInt(0)) {
-      writer.uint32(16).uint64(message.count);
-    }
-    if (message.pageNumber !== BigInt(0)) {
-      writer.uint32(24).uint64(message.pageNumber);
-    }
-    if (message.pageTotal !== BigInt(0)) {
-      writer.uint32(32).uint64(message.pageTotal);
-    }
-    if (message.limit !== BigInt(0)) {
-      writer.uint32(40).uint64(message.limit);
-    }
-    for (const v of message.txs) {
-      TxResponse.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SearchTxsResult {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSearchTxsResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.totalCount = reader.uint64();
-          break;
-        case 2:
-          message.count = reader.uint64();
-          break;
-        case 3:
-          message.pageNumber = reader.uint64();
-          break;
-        case 4:
-          message.pageTotal = reader.uint64();
-          break;
-        case 5:
-          message.limit = reader.uint64();
-          break;
-        case 6:
-          message.txs.push(TxResponse.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SearchTxsResult {
-    return {
-      totalCount: isSet(object.totalCount) ? BigInt(object.totalCount.toString()) : BigInt(0),
-      count: isSet(object.count) ? BigInt(object.count.toString()) : BigInt(0),
-      pageNumber: isSet(object.pageNumber) ? BigInt(object.pageNumber.toString()) : BigInt(0),
-      pageTotal: isSet(object.pageTotal) ? BigInt(object.pageTotal.toString()) : BigInt(0),
-      limit: isSet(object.limit) ? BigInt(object.limit.toString()) : BigInt(0),
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => TxResponse.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SearchTxsResult): unknown {
-    const obj: any = {};
-    message.totalCount !== undefined && (obj.totalCount = (message.totalCount || BigInt(0)).toString());
-    message.count !== undefined && (obj.count = (message.count || BigInt(0)).toString());
-    message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || BigInt(0)).toString());
-    message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || BigInt(0)).toString());
-    message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? TxResponse.toJSON(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SearchTxsResult>): SearchTxsResult {
-    const message = createBaseSearchTxsResult();
-    message.totalCount = object.totalCount !== undefined && object.totalCount !== null ? BigInt(object.totalCount.toString()) : BigInt(0);
-    message.count = object.count !== undefined && object.count !== null ? BigInt(object.count.toString()) : BigInt(0);
-    message.pageNumber = object.pageNumber !== undefined && object.pageNumber !== null ? BigInt(object.pageNumber.toString()) : BigInt(0);
-    message.pageTotal = object.pageTotal !== undefined && object.pageTotal !== null ? BigInt(object.pageTotal.toString()) : BigInt(0);
-    message.limit = object.limit !== undefined && object.limit !== null ? BigInt(object.limit.toString()) : BigInt(0);
-    message.txs = object.txs?.map(e => TxResponse.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SearchTxsResultSDKType): SearchTxsResult {
-    return {
-      totalCount: object?.total_count,
-      count: object?.count,
-      pageNumber: object?.page_number,
-      pageTotal: object?.page_total,
-      limit: object?.limit,
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => TxResponse.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SearchTxsResult): SearchTxsResultSDKType {
-    const obj: any = {};
-    obj.total_count = message.totalCount;
-    obj.count = message.count;
-    obj.page_number = message.pageNumber;
-    obj.page_total = message.pageTotal;
-    obj.limit = message.limit;
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? TxResponse.toSDK(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SearchTxsResultAmino): SearchTxsResult {
-    return {
-      totalCount: BigInt(object.total_count),
-      count: BigInt(object.count),
-      pageNumber: BigInt(object.page_number),
-      pageTotal: BigInt(object.page_total),
-      limit: BigInt(object.limit),
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => TxResponse.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SearchTxsResult): SearchTxsResultAmino {
-    const obj: any = {};
-    obj.total_count = message.totalCount ? message.totalCount.toString() : undefined;
-    obj.count = message.count ? message.count.toString() : undefined;
-    obj.page_number = message.pageNumber ? message.pageNumber.toString() : undefined;
-    obj.page_total = message.pageTotal ? message.pageTotal.toString() : undefined;
-    obj.limit = message.limit ? message.limit.toString() : undefined;
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? TxResponse.toAmino(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SearchTxsResultAminoMsg): SearchTxsResult {
-    return SearchTxsResult.fromAmino(object.value);
-  },
-  toAminoMsg(message: SearchTxsResult): SearchTxsResultAminoMsg {
-    return {
-      type: "cosmos-sdk/SearchTxsResult",
-      value: SearchTxsResult.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SearchTxsResultProtoMsg): SearchTxsResult {
-    return SearchTxsResult.decode(message.value);
-  },
-  toProto(message: SearchTxsResult): Uint8Array {
-    return SearchTxsResult.encode(message).finish();
-  },
-  toProtoMsg(message: SearchTxsResult): SearchTxsResultProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.abci.v1beta1.SearchTxsResult",
-      value: SearchTxsResult.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/kv/v1beta1/kv.ts b/examples/injective/src/codegen/cosmos/base/kv/v1beta1/kv.ts
deleted file mode 100644
index c745bc07..00000000
--- a/examples/injective/src/codegen/cosmos/base/kv/v1beta1/kv.ts
+++ /dev/null
@@ -1,247 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/** Pairs defines a repeated slice of Pair objects. */
-export interface Pairs {
-  pairs: Pair[];
-}
-export interface PairsProtoMsg {
-  typeUrl: "/cosmos.base.kv.v1beta1.Pairs";
-  value: Uint8Array;
-}
-/** Pairs defines a repeated slice of Pair objects. */
-export interface PairsAmino {
-  pairs: PairAmino[];
-}
-export interface PairsAminoMsg {
-  type: "cosmos-sdk/Pairs";
-  value: PairsAmino;
-}
-/** Pairs defines a repeated slice of Pair objects. */
-export interface PairsSDKType {
-  pairs: PairSDKType[];
-}
-/** Pair defines a key/value bytes tuple. */
-export interface Pair {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface PairProtoMsg {
-  typeUrl: "/cosmos.base.kv.v1beta1.Pair";
-  value: Uint8Array;
-}
-/** Pair defines a key/value bytes tuple. */
-export interface PairAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface PairAminoMsg {
-  type: "cosmos-sdk/Pair";
-  value: PairAmino;
-}
-/** Pair defines a key/value bytes tuple. */
-export interface PairSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-function createBasePairs(): Pairs {
-  return {
-    pairs: []
-  };
-}
-export const Pairs = {
-  typeUrl: "/cosmos.base.kv.v1beta1.Pairs",
-  aminoType: "cosmos-sdk/Pairs",
-  encode(message: Pairs, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pairs) {
-      Pair.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Pairs {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePairs();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pairs.push(Pair.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Pairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => Pair.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Pairs): unknown {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? Pair.toJSON(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Pairs>): Pairs {
-    const message = createBasePairs();
-    message.pairs = object.pairs?.map(e => Pair.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: PairsSDKType): Pairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => Pair.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Pairs): PairsSDKType {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? Pair.toSDK(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PairsAmino): Pairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => Pair.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Pairs): PairsAmino {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? Pair.toAmino(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PairsAminoMsg): Pairs {
-    return Pairs.fromAmino(object.value);
-  },
-  toAminoMsg(message: Pairs): PairsAminoMsg {
-    return {
-      type: "cosmos-sdk/Pairs",
-      value: Pairs.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PairsProtoMsg): Pairs {
-    return Pairs.decode(message.value);
-  },
-  toProto(message: Pairs): Uint8Array {
-    return Pairs.encode(message).finish();
-  },
-  toProtoMsg(message: Pairs): PairsProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.kv.v1beta1.Pairs",
-      value: Pairs.encode(message).finish()
-    };
-  }
-};
-function createBasePair(): Pair {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array()
-  };
-}
-export const Pair = {
-  typeUrl: "/cosmos.base.kv.v1beta1.Pair",
-  aminoType: "cosmos-sdk/Pair",
-  encode(message: Pair, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Pair {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePair();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Pair {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: Pair): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Pair>): Pair {
-    const message = createBasePair();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PairSDKType): Pair {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: Pair): PairSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: PairAmino): Pair {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: Pair): PairAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: PairAminoMsg): Pair {
-    return Pair.fromAmino(object.value);
-  },
-  toAminoMsg(message: Pair): PairAminoMsg {
-    return {
-      type: "cosmos-sdk/Pair",
-      value: Pair.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PairProtoMsg): Pair {
-    return Pair.decode(message.value);
-  },
-  toProto(message: Pair): Uint8Array {
-    return Pair.encode(message).finish();
-  },
-  toProtoMsg(message: Pair): PairProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.kv.v1beta1.Pair",
-      value: Pair.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/query/v1beta1/pagination.ts b/examples/injective/src/codegen/cosmos/base/query/v1beta1/pagination.ts
deleted file mode 100644
index 92a269bc..00000000
--- a/examples/injective/src/codegen/cosmos/base/query/v1beta1/pagination.ts
+++ /dev/null
@@ -1,419 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../../helpers";
-/**
- * PageRequest is to be embedded in gRPC request messages for efficient
- * pagination. Ex:
- * 
- *  message SomeRequest {
- *          Foo some_parameter = 1;
- *          PageRequest pagination = 2;
- *  }
- */
-export interface PageRequest {
-  /**
-   * key is a value returned in PageResponse.next_key to begin
-   * querying the next page most efficiently. Only one of offset or key
-   * should be set.
-   */
-  key: Uint8Array;
-  /**
-   * offset is a numeric offset that can be used when key is unavailable.
-   * It is less efficient than using key. Only one of offset or key should
-   * be set.
-   */
-  offset: bigint;
-  /**
-   * limit is the total number of results to be returned in the result page.
-   * If left empty it will default to a value to be set by each app.
-   */
-  limit: bigint;
-  /**
-   * count_total is set to true  to indicate that the result set should include
-   * a count of the total number of items available for pagination in UIs.
-   * count_total is only respected when offset is used. It is ignored when key
-   * is set.
-   */
-  countTotal: boolean;
-  /**
-   * reverse is set to true if results are to be returned in the descending order.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  reverse: boolean;
-}
-export interface PageRequestProtoMsg {
-  typeUrl: "/cosmos.base.query.v1beta1.PageRequest";
-  value: Uint8Array;
-}
-/**
- * PageRequest is to be embedded in gRPC request messages for efficient
- * pagination. Ex:
- * 
- *  message SomeRequest {
- *          Foo some_parameter = 1;
- *          PageRequest pagination = 2;
- *  }
- */
-export interface PageRequestAmino {
-  /**
-   * key is a value returned in PageResponse.next_key to begin
-   * querying the next page most efficiently. Only one of offset or key
-   * should be set.
-   */
-  key: Uint8Array;
-  /**
-   * offset is a numeric offset that can be used when key is unavailable.
-   * It is less efficient than using key. Only one of offset or key should
-   * be set.
-   */
-  offset: string;
-  /**
-   * limit is the total number of results to be returned in the result page.
-   * If left empty it will default to a value to be set by each app.
-   */
-  limit: string;
-  /**
-   * count_total is set to true  to indicate that the result set should include
-   * a count of the total number of items available for pagination in UIs.
-   * count_total is only respected when offset is used. It is ignored when key
-   * is set.
-   */
-  count_total: boolean;
-  /**
-   * reverse is set to true if results are to be returned in the descending order.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  reverse: boolean;
-}
-export interface PageRequestAminoMsg {
-  type: "cosmos-sdk/PageRequest";
-  value: PageRequestAmino;
-}
-/**
- * PageRequest is to be embedded in gRPC request messages for efficient
- * pagination. Ex:
- * 
- *  message SomeRequest {
- *          Foo some_parameter = 1;
- *          PageRequest pagination = 2;
- *  }
- */
-export interface PageRequestSDKType {
-  key: Uint8Array;
-  offset: bigint;
-  limit: bigint;
-  count_total: boolean;
-  reverse: boolean;
-}
-/**
- * PageResponse is to be embedded in gRPC response messages where the
- * corresponding request message has used PageRequest.
- * 
- *  message SomeResponse {
- *          repeated Bar results = 1;
- *          PageResponse page = 2;
- *  }
- */
-export interface PageResponse {
-  /**
-   * next_key is the key to be passed to PageRequest.key to
-   * query the next page most efficiently. It will be empty if
-   * there are no more results.
-   */
-  nextKey: Uint8Array;
-  /**
-   * total is total number of results available if PageRequest.count_total
-   * was set, its value is undefined otherwise
-   */
-  total: bigint;
-}
-export interface PageResponseProtoMsg {
-  typeUrl: "/cosmos.base.query.v1beta1.PageResponse";
-  value: Uint8Array;
-}
-/**
- * PageResponse is to be embedded in gRPC response messages where the
- * corresponding request message has used PageRequest.
- * 
- *  message SomeResponse {
- *          repeated Bar results = 1;
- *          PageResponse page = 2;
- *  }
- */
-export interface PageResponseAmino {
-  /**
-   * next_key is the key to be passed to PageRequest.key to
-   * query the next page most efficiently. It will be empty if
-   * there are no more results.
-   */
-  next_key: Uint8Array;
-  /**
-   * total is total number of results available if PageRequest.count_total
-   * was set, its value is undefined otherwise
-   */
-  total: string;
-}
-export interface PageResponseAminoMsg {
-  type: "cosmos-sdk/PageResponse";
-  value: PageResponseAmino;
-}
-/**
- * PageResponse is to be embedded in gRPC response messages where the
- * corresponding request message has used PageRequest.
- * 
- *  message SomeResponse {
- *          repeated Bar results = 1;
- *          PageResponse page = 2;
- *  }
- */
-export interface PageResponseSDKType {
-  next_key: Uint8Array;
-  total: bigint;
-}
-function createBasePageRequest(): PageRequest {
-  return {
-    key: new Uint8Array(),
-    offset: BigInt(0),
-    limit: BigInt(0),
-    countTotal: false,
-    reverse: false
-  };
-}
-export const PageRequest = {
-  typeUrl: "/cosmos.base.query.v1beta1.PageRequest",
-  aminoType: "cosmos-sdk/PageRequest",
-  encode(message: PageRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.offset !== BigInt(0)) {
-      writer.uint32(16).uint64(message.offset);
-    }
-    if (message.limit !== BigInt(0)) {
-      writer.uint32(24).uint64(message.limit);
-    }
-    if (message.countTotal === true) {
-      writer.uint32(32).bool(message.countTotal);
-    }
-    if (message.reverse === true) {
-      writer.uint32(40).bool(message.reverse);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PageRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePageRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.offset = reader.uint64();
-          break;
-        case 3:
-          message.limit = reader.uint64();
-          break;
-        case 4:
-          message.countTotal = reader.bool();
-          break;
-        case 5:
-          message.reverse = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PageRequest {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      offset: isSet(object.offset) ? BigInt(object.offset.toString()) : BigInt(0),
-      limit: isSet(object.limit) ? BigInt(object.limit.toString()) : BigInt(0),
-      countTotal: isSet(object.countTotal) ? Boolean(object.countTotal) : false,
-      reverse: isSet(object.reverse) ? Boolean(object.reverse) : false
-    };
-  },
-  toJSON(message: PageRequest): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.offset !== undefined && (obj.offset = (message.offset || BigInt(0)).toString());
-    message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());
-    message.countTotal !== undefined && (obj.countTotal = message.countTotal);
-    message.reverse !== undefined && (obj.reverse = message.reverse);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PageRequest>): PageRequest {
-    const message = createBasePageRequest();
-    message.key = object.key ?? new Uint8Array();
-    message.offset = object.offset !== undefined && object.offset !== null ? BigInt(object.offset.toString()) : BigInt(0);
-    message.limit = object.limit !== undefined && object.limit !== null ? BigInt(object.limit.toString()) : BigInt(0);
-    message.countTotal = object.countTotal ?? false;
-    message.reverse = object.reverse ?? false;
-    return message;
-  },
-  fromSDK(object: PageRequestSDKType): PageRequest {
-    return {
-      key: object?.key,
-      offset: object?.offset,
-      limit: object?.limit,
-      countTotal: object?.count_total,
-      reverse: object?.reverse
-    };
-  },
-  toSDK(message: PageRequest): PageRequestSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.offset = message.offset;
-    obj.limit = message.limit;
-    obj.count_total = message.countTotal;
-    obj.reverse = message.reverse;
-    return obj;
-  },
-  fromAmino(object: PageRequestAmino): PageRequest {
-    return {
-      key: object.key,
-      offset: BigInt(object.offset),
-      limit: BigInt(object.limit),
-      countTotal: object.count_total,
-      reverse: object.reverse
-    };
-  },
-  toAmino(message: PageRequest): PageRequestAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.offset = message.offset ? message.offset.toString() : undefined;
-    obj.limit = message.limit ? message.limit.toString() : undefined;
-    obj.count_total = message.countTotal;
-    obj.reverse = message.reverse;
-    return obj;
-  },
-  fromAminoMsg(object: PageRequestAminoMsg): PageRequest {
-    return PageRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: PageRequest): PageRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/PageRequest",
-      value: PageRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PageRequestProtoMsg): PageRequest {
-    return PageRequest.decode(message.value);
-  },
-  toProto(message: PageRequest): Uint8Array {
-    return PageRequest.encode(message).finish();
-  },
-  toProtoMsg(message: PageRequest): PageRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.query.v1beta1.PageRequest",
-      value: PageRequest.encode(message).finish()
-    };
-  }
-};
-function createBasePageResponse(): PageResponse {
-  return {
-    nextKey: new Uint8Array(),
-    total: BigInt(0)
-  };
-}
-export const PageResponse = {
-  typeUrl: "/cosmos.base.query.v1beta1.PageResponse",
-  aminoType: "cosmos-sdk/PageResponse",
-  encode(message: PageResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.nextKey.length !== 0) {
-      writer.uint32(10).bytes(message.nextKey);
-    }
-    if (message.total !== BigInt(0)) {
-      writer.uint32(16).uint64(message.total);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PageResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePageResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.nextKey = reader.bytes();
-          break;
-        case 2:
-          message.total = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PageResponse {
-    return {
-      nextKey: isSet(object.nextKey) ? bytesFromBase64(object.nextKey) : new Uint8Array(),
-      total: isSet(object.total) ? BigInt(object.total.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: PageResponse): unknown {
-    const obj: any = {};
-    message.nextKey !== undefined && (obj.nextKey = base64FromBytes(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));
-    message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PageResponse>): PageResponse {
-    const message = createBasePageResponse();
-    message.nextKey = object.nextKey ?? new Uint8Array();
-    message.total = object.total !== undefined && object.total !== null ? BigInt(object.total.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: PageResponseSDKType): PageResponse {
-    return {
-      nextKey: object?.next_key,
-      total: object?.total
-    };
-  },
-  toSDK(message: PageResponse): PageResponseSDKType {
-    const obj: any = {};
-    obj.next_key = message.nextKey;
-    obj.total = message.total;
-    return obj;
-  },
-  fromAmino(object: PageResponseAmino): PageResponse {
-    return {
-      nextKey: object.next_key,
-      total: BigInt(object.total)
-    };
-  },
-  toAmino(message: PageResponse): PageResponseAmino {
-    const obj: any = {};
-    obj.next_key = message.nextKey;
-    obj.total = message.total ? message.total.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PageResponseAminoMsg): PageResponse {
-    return PageResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: PageResponse): PageResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/PageResponse",
-      value: PageResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PageResponseProtoMsg): PageResponse {
-    return PageResponse.decode(message.value);
-  },
-  toProto(message: PageResponse): Uint8Array {
-    return PageResponse.encode(message).finish();
-  },
-  toProtoMsg(message: PageResponse): PageResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.query.v1beta1.PageResponse",
-      value: PageResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/reflection/v1beta1/reflection.ts b/examples/injective/src/codegen/cosmos/base/reflection/v1beta1/reflection.ts
deleted file mode 100644
index 88dcae84..00000000
--- a/examples/injective/src/codegen/cosmos/base/reflection/v1beta1/reflection.ts
+++ /dev/null
@@ -1,456 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { DeepPartial, isSet } from "../../../../helpers";
-/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesRequest {}
-export interface ListAllInterfacesRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesRequest";
-  value: Uint8Array;
-}
-/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesRequestAmino {}
-export interface ListAllInterfacesRequestAminoMsg {
-  type: "cosmos-sdk/ListAllInterfacesRequest";
-  value: ListAllInterfacesRequestAmino;
-}
-/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesRequestSDKType {}
-/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesResponse {
-  /** interface_names is an array of all the registered interfaces. */
-  interfaceNames: string[];
-}
-export interface ListAllInterfacesResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesResponse";
-  value: Uint8Array;
-}
-/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesResponseAmino {
-  /** interface_names is an array of all the registered interfaces. */
-  interface_names: string[];
-}
-export interface ListAllInterfacesResponseAminoMsg {
-  type: "cosmos-sdk/ListAllInterfacesResponse";
-  value: ListAllInterfacesResponseAmino;
-}
-/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */
-export interface ListAllInterfacesResponseSDKType {
-  interface_names: string[];
-}
-/**
- * ListImplementationsRequest is the request type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsRequest {
-  /** interface_name defines the interface to query the implementations for. */
-  interfaceName: string;
-}
-export interface ListImplementationsRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsRequest";
-  value: Uint8Array;
-}
-/**
- * ListImplementationsRequest is the request type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsRequestAmino {
-  /** interface_name defines the interface to query the implementations for. */
-  interface_name: string;
-}
-export interface ListImplementationsRequestAminoMsg {
-  type: "cosmos-sdk/ListImplementationsRequest";
-  value: ListImplementationsRequestAmino;
-}
-/**
- * ListImplementationsRequest is the request type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsRequestSDKType {
-  interface_name: string;
-}
-/**
- * ListImplementationsResponse is the response type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsResponse {
-  implementationMessageNames: string[];
-}
-export interface ListImplementationsResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsResponse";
-  value: Uint8Array;
-}
-/**
- * ListImplementationsResponse is the response type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsResponseAmino {
-  implementation_message_names: string[];
-}
-export interface ListImplementationsResponseAminoMsg {
-  type: "cosmos-sdk/ListImplementationsResponse";
-  value: ListImplementationsResponseAmino;
-}
-/**
- * ListImplementationsResponse is the response type of the ListImplementations
- * RPC.
- */
-export interface ListImplementationsResponseSDKType {
-  implementation_message_names: string[];
-}
-function createBaseListAllInterfacesRequest(): ListAllInterfacesRequest {
-  return {};
-}
-export const ListAllInterfacesRequest = {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesRequest",
-  aminoType: "cosmos-sdk/ListAllInterfacesRequest",
-  encode(_: ListAllInterfacesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ListAllInterfacesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseListAllInterfacesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ListAllInterfacesRequest {
-    return {};
-  },
-  toJSON(_: ListAllInterfacesRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ListAllInterfacesRequest>): ListAllInterfacesRequest {
-    const message = createBaseListAllInterfacesRequest();
-    return message;
-  },
-  fromSDK(_: ListAllInterfacesRequestSDKType): ListAllInterfacesRequest {
-    return {};
-  },
-  toSDK(_: ListAllInterfacesRequest): ListAllInterfacesRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ListAllInterfacesRequestAmino): ListAllInterfacesRequest {
-    return {};
-  },
-  toAmino(_: ListAllInterfacesRequest): ListAllInterfacesRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ListAllInterfacesRequestAminoMsg): ListAllInterfacesRequest {
-    return ListAllInterfacesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ListAllInterfacesRequest): ListAllInterfacesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/ListAllInterfacesRequest",
-      value: ListAllInterfacesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ListAllInterfacesRequestProtoMsg): ListAllInterfacesRequest {
-    return ListAllInterfacesRequest.decode(message.value);
-  },
-  toProto(message: ListAllInterfacesRequest): Uint8Array {
-    return ListAllInterfacesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ListAllInterfacesRequest): ListAllInterfacesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesRequest",
-      value: ListAllInterfacesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseListAllInterfacesResponse(): ListAllInterfacesResponse {
-  return {
-    interfaceNames: []
-  };
-}
-export const ListAllInterfacesResponse = {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesResponse",
-  aminoType: "cosmos-sdk/ListAllInterfacesResponse",
-  encode(message: ListAllInterfacesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.interfaceNames) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ListAllInterfacesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseListAllInterfacesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.interfaceNames.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ListAllInterfacesResponse {
-    return {
-      interfaceNames: Array.isArray(object?.interfaceNames) ? object.interfaceNames.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ListAllInterfacesResponse): unknown {
-    const obj: any = {};
-    if (message.interfaceNames) {
-      obj.interfaceNames = message.interfaceNames.map(e => e);
-    } else {
-      obj.interfaceNames = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ListAllInterfacesResponse>): ListAllInterfacesResponse {
-    const message = createBaseListAllInterfacesResponse();
-    message.interfaceNames = object.interfaceNames?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ListAllInterfacesResponseSDKType): ListAllInterfacesResponse {
-    return {
-      interfaceNames: Array.isArray(object?.interface_names) ? object.interface_names.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ListAllInterfacesResponse): ListAllInterfacesResponseSDKType {
-    const obj: any = {};
-    if (message.interfaceNames) {
-      obj.interface_names = message.interfaceNames.map(e => e);
-    } else {
-      obj.interface_names = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ListAllInterfacesResponseAmino): ListAllInterfacesResponse {
-    return {
-      interfaceNames: Array.isArray(object?.interface_names) ? object.interface_names.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ListAllInterfacesResponse): ListAllInterfacesResponseAmino {
-    const obj: any = {};
-    if (message.interfaceNames) {
-      obj.interface_names = message.interfaceNames.map(e => e);
-    } else {
-      obj.interface_names = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ListAllInterfacesResponseAminoMsg): ListAllInterfacesResponse {
-    return ListAllInterfacesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ListAllInterfacesResponse): ListAllInterfacesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/ListAllInterfacesResponse",
-      value: ListAllInterfacesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ListAllInterfacesResponseProtoMsg): ListAllInterfacesResponse {
-    return ListAllInterfacesResponse.decode(message.value);
-  },
-  toProto(message: ListAllInterfacesResponse): Uint8Array {
-    return ListAllInterfacesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ListAllInterfacesResponse): ListAllInterfacesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v1beta1.ListAllInterfacesResponse",
-      value: ListAllInterfacesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseListImplementationsRequest(): ListImplementationsRequest {
-  return {
-    interfaceName: ""
-  };
-}
-export const ListImplementationsRequest = {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsRequest",
-  aminoType: "cosmos-sdk/ListImplementationsRequest",
-  encode(message: ListImplementationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.interfaceName !== "") {
-      writer.uint32(10).string(message.interfaceName);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ListImplementationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseListImplementationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.interfaceName = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ListImplementationsRequest {
-    return {
-      interfaceName: isSet(object.interfaceName) ? String(object.interfaceName) : ""
-    };
-  },
-  toJSON(message: ListImplementationsRequest): unknown {
-    const obj: any = {};
-    message.interfaceName !== undefined && (obj.interfaceName = message.interfaceName);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ListImplementationsRequest>): ListImplementationsRequest {
-    const message = createBaseListImplementationsRequest();
-    message.interfaceName = object.interfaceName ?? "";
-    return message;
-  },
-  fromSDK(object: ListImplementationsRequestSDKType): ListImplementationsRequest {
-    return {
-      interfaceName: object?.interface_name
-    };
-  },
-  toSDK(message: ListImplementationsRequest): ListImplementationsRequestSDKType {
-    const obj: any = {};
-    obj.interface_name = message.interfaceName;
-    return obj;
-  },
-  fromAmino(object: ListImplementationsRequestAmino): ListImplementationsRequest {
-    return {
-      interfaceName: object.interface_name
-    };
-  },
-  toAmino(message: ListImplementationsRequest): ListImplementationsRequestAmino {
-    const obj: any = {};
-    obj.interface_name = message.interfaceName;
-    return obj;
-  },
-  fromAminoMsg(object: ListImplementationsRequestAminoMsg): ListImplementationsRequest {
-    return ListImplementationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ListImplementationsRequest): ListImplementationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/ListImplementationsRequest",
-      value: ListImplementationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ListImplementationsRequestProtoMsg): ListImplementationsRequest {
-    return ListImplementationsRequest.decode(message.value);
-  },
-  toProto(message: ListImplementationsRequest): Uint8Array {
-    return ListImplementationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ListImplementationsRequest): ListImplementationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsRequest",
-      value: ListImplementationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseListImplementationsResponse(): ListImplementationsResponse {
-  return {
-    implementationMessageNames: []
-  };
-}
-export const ListImplementationsResponse = {
-  typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsResponse",
-  aminoType: "cosmos-sdk/ListImplementationsResponse",
-  encode(message: ListImplementationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.implementationMessageNames) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ListImplementationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseListImplementationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.implementationMessageNames.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ListImplementationsResponse {
-    return {
-      implementationMessageNames: Array.isArray(object?.implementationMessageNames) ? object.implementationMessageNames.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ListImplementationsResponse): unknown {
-    const obj: any = {};
-    if (message.implementationMessageNames) {
-      obj.implementationMessageNames = message.implementationMessageNames.map(e => e);
-    } else {
-      obj.implementationMessageNames = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ListImplementationsResponse>): ListImplementationsResponse {
-    const message = createBaseListImplementationsResponse();
-    message.implementationMessageNames = object.implementationMessageNames?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ListImplementationsResponseSDKType): ListImplementationsResponse {
-    return {
-      implementationMessageNames: Array.isArray(object?.implementation_message_names) ? object.implementation_message_names.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ListImplementationsResponse): ListImplementationsResponseSDKType {
-    const obj: any = {};
-    if (message.implementationMessageNames) {
-      obj.implementation_message_names = message.implementationMessageNames.map(e => e);
-    } else {
-      obj.implementation_message_names = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ListImplementationsResponseAmino): ListImplementationsResponse {
-    return {
-      implementationMessageNames: Array.isArray(object?.implementation_message_names) ? object.implementation_message_names.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ListImplementationsResponse): ListImplementationsResponseAmino {
-    const obj: any = {};
-    if (message.implementationMessageNames) {
-      obj.implementation_message_names = message.implementationMessageNames.map(e => e);
-    } else {
-      obj.implementation_message_names = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ListImplementationsResponseAminoMsg): ListImplementationsResponse {
-    return ListImplementationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ListImplementationsResponse): ListImplementationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/ListImplementationsResponse",
-      value: ListImplementationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ListImplementationsResponseProtoMsg): ListImplementationsResponse {
-    return ListImplementationsResponse.decode(message.value);
-  },
-  toProto(message: ListImplementationsResponse): Uint8Array {
-    return ListImplementationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ListImplementationsResponse): ListImplementationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v1beta1.ListImplementationsResponse",
-      value: ListImplementationsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/reflection/v2alpha1/reflection.ts b/examples/injective/src/codegen/cosmos/base/reflection/v2alpha1/reflection.ts
deleted file mode 100644
index 463c4030..00000000
--- a/examples/injective/src/codegen/cosmos/base/reflection/v2alpha1/reflection.ts
+++ /dev/null
@@ -1,3188 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** AppDescriptor describes a cosmos-sdk based application */
-export interface AppDescriptor {
-  /**
-   * AuthnDescriptor provides information on how to authenticate transactions on the application
-   * NOTE: experimental and subject to change in future releases.
-   */
-  authn: AuthnDescriptor | undefined;
-  /** chain provides the chain descriptor */
-  chain: ChainDescriptor | undefined;
-  /** codec provides metadata information regarding codec related types */
-  codec: CodecDescriptor | undefined;
-  /** configuration provides metadata information regarding the sdk.Config type */
-  configuration: ConfigurationDescriptor | undefined;
-  /** query_services provides metadata information regarding the available queriable endpoints */
-  queryServices: QueryServicesDescriptor | undefined;
-  /** tx provides metadata information regarding how to send transactions to the given application */
-  tx: TxDescriptor | undefined;
-}
-export interface AppDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.AppDescriptor";
-  value: Uint8Array;
-}
-/** AppDescriptor describes a cosmos-sdk based application */
-export interface AppDescriptorAmino {
-  /**
-   * AuthnDescriptor provides information on how to authenticate transactions on the application
-   * NOTE: experimental and subject to change in future releases.
-   */
-  authn?: AuthnDescriptorAmino | undefined;
-  /** chain provides the chain descriptor */
-  chain?: ChainDescriptorAmino | undefined;
-  /** codec provides metadata information regarding codec related types */
-  codec?: CodecDescriptorAmino | undefined;
-  /** configuration provides metadata information regarding the sdk.Config type */
-  configuration?: ConfigurationDescriptorAmino | undefined;
-  /** query_services provides metadata information regarding the available queriable endpoints */
-  query_services?: QueryServicesDescriptorAmino | undefined;
-  /** tx provides metadata information regarding how to send transactions to the given application */
-  tx?: TxDescriptorAmino | undefined;
-}
-export interface AppDescriptorAminoMsg {
-  type: "cosmos-sdk/AppDescriptor";
-  value: AppDescriptorAmino;
-}
-/** AppDescriptor describes a cosmos-sdk based application */
-export interface AppDescriptorSDKType {
-  authn: AuthnDescriptorSDKType | undefined;
-  chain: ChainDescriptorSDKType | undefined;
-  codec: CodecDescriptorSDKType | undefined;
-  configuration: ConfigurationDescriptorSDKType | undefined;
-  query_services: QueryServicesDescriptorSDKType | undefined;
-  tx: TxDescriptorSDKType | undefined;
-}
-/** TxDescriptor describes the accepted transaction type */
-export interface TxDescriptor {
-  /**
-   * fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type)
-   * it is not meant to support polymorphism of transaction types, it is supposed to be used by
-   * reflection clients to understand if they can handle a specific transaction type in an application.
-   */
-  fullname: string;
-  /** msgs lists the accepted application messages (sdk.Msg) */
-  msgs: MsgDescriptor[];
-}
-export interface TxDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.TxDescriptor";
-  value: Uint8Array;
-}
-/** TxDescriptor describes the accepted transaction type */
-export interface TxDescriptorAmino {
-  /**
-   * fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type)
-   * it is not meant to support polymorphism of transaction types, it is supposed to be used by
-   * reflection clients to understand if they can handle a specific transaction type in an application.
-   */
-  fullname: string;
-  /** msgs lists the accepted application messages (sdk.Msg) */
-  msgs: MsgDescriptorAmino[];
-}
-export interface TxDescriptorAminoMsg {
-  type: "cosmos-sdk/TxDescriptor";
-  value: TxDescriptorAmino;
-}
-/** TxDescriptor describes the accepted transaction type */
-export interface TxDescriptorSDKType {
-  fullname: string;
-  msgs: MsgDescriptorSDKType[];
-}
-/**
- * AuthnDescriptor provides information on how to sign transactions without relying
- * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures
- */
-export interface AuthnDescriptor {
-  /** sign_modes defines the supported signature algorithm */
-  signModes: SigningModeDescriptor[];
-}
-export interface AuthnDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.AuthnDescriptor";
-  value: Uint8Array;
-}
-/**
- * AuthnDescriptor provides information on how to sign transactions without relying
- * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures
- */
-export interface AuthnDescriptorAmino {
-  /** sign_modes defines the supported signature algorithm */
-  sign_modes: SigningModeDescriptorAmino[];
-}
-export interface AuthnDescriptorAminoMsg {
-  type: "cosmos-sdk/AuthnDescriptor";
-  value: AuthnDescriptorAmino;
-}
-/**
- * AuthnDescriptor provides information on how to sign transactions without relying
- * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures
- */
-export interface AuthnDescriptorSDKType {
-  sign_modes: SigningModeDescriptorSDKType[];
-}
-/**
- * SigningModeDescriptor provides information on a signing flow of the application
- * NOTE(fdymylja): here we could go as far as providing an entire flow on how
- * to sign a message given a SigningModeDescriptor, but it's better to think about
- * this another time
- */
-export interface SigningModeDescriptor {
-  /** name defines the unique name of the signing mode */
-  name: string;
-  /** number is the unique int32 identifier for the sign_mode enum */
-  number: number;
-  /**
-   * authn_info_provider_method_fullname defines the fullname of the method to call to get
-   * the metadata required to authenticate using the provided sign_modes
-   */
-  authnInfoProviderMethodFullname: string;
-}
-export interface SigningModeDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.SigningModeDescriptor";
-  value: Uint8Array;
-}
-/**
- * SigningModeDescriptor provides information on a signing flow of the application
- * NOTE(fdymylja): here we could go as far as providing an entire flow on how
- * to sign a message given a SigningModeDescriptor, but it's better to think about
- * this another time
- */
-export interface SigningModeDescriptorAmino {
-  /** name defines the unique name of the signing mode */
-  name: string;
-  /** number is the unique int32 identifier for the sign_mode enum */
-  number: number;
-  /**
-   * authn_info_provider_method_fullname defines the fullname of the method to call to get
-   * the metadata required to authenticate using the provided sign_modes
-   */
-  authn_info_provider_method_fullname: string;
-}
-export interface SigningModeDescriptorAminoMsg {
-  type: "cosmos-sdk/SigningModeDescriptor";
-  value: SigningModeDescriptorAmino;
-}
-/**
- * SigningModeDescriptor provides information on a signing flow of the application
- * NOTE(fdymylja): here we could go as far as providing an entire flow on how
- * to sign a message given a SigningModeDescriptor, but it's better to think about
- * this another time
- */
-export interface SigningModeDescriptorSDKType {
-  name: string;
-  number: number;
-  authn_info_provider_method_fullname: string;
-}
-/** ChainDescriptor describes chain information of the application */
-export interface ChainDescriptor {
-  /** id is the chain id */
-  id: string;
-}
-export interface ChainDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.ChainDescriptor";
-  value: Uint8Array;
-}
-/** ChainDescriptor describes chain information of the application */
-export interface ChainDescriptorAmino {
-  /** id is the chain id */
-  id: string;
-}
-export interface ChainDescriptorAminoMsg {
-  type: "cosmos-sdk/ChainDescriptor";
-  value: ChainDescriptorAmino;
-}
-/** ChainDescriptor describes chain information of the application */
-export interface ChainDescriptorSDKType {
-  id: string;
-}
-/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */
-export interface CodecDescriptor {
-  /** interfaces is a list of the registerted interfaces descriptors */
-  interfaces: InterfaceDescriptor[];
-}
-export interface CodecDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.CodecDescriptor";
-  value: Uint8Array;
-}
-/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */
-export interface CodecDescriptorAmino {
-  /** interfaces is a list of the registerted interfaces descriptors */
-  interfaces: InterfaceDescriptorAmino[];
-}
-export interface CodecDescriptorAminoMsg {
-  type: "cosmos-sdk/CodecDescriptor";
-  value: CodecDescriptorAmino;
-}
-/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */
-export interface CodecDescriptorSDKType {
-  interfaces: InterfaceDescriptorSDKType[];
-}
-/** InterfaceDescriptor describes the implementation of an interface */
-export interface InterfaceDescriptor {
-  /** fullname is the name of the interface */
-  fullname: string;
-  /**
-   * interface_accepting_messages contains information regarding the proto messages which contain the interface as
-   * google.protobuf.Any field
-   */
-  interfaceAcceptingMessages: InterfaceAcceptingMessageDescriptor[];
-  /** interface_implementers is a list of the descriptors of the interface implementers */
-  interfaceImplementers: InterfaceImplementerDescriptor[];
-}
-export interface InterfaceDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceDescriptor";
-  value: Uint8Array;
-}
-/** InterfaceDescriptor describes the implementation of an interface */
-export interface InterfaceDescriptorAmino {
-  /** fullname is the name of the interface */
-  fullname: string;
-  /**
-   * interface_accepting_messages contains information regarding the proto messages which contain the interface as
-   * google.protobuf.Any field
-   */
-  interface_accepting_messages: InterfaceAcceptingMessageDescriptorAmino[];
-  /** interface_implementers is a list of the descriptors of the interface implementers */
-  interface_implementers: InterfaceImplementerDescriptorAmino[];
-}
-export interface InterfaceDescriptorAminoMsg {
-  type: "cosmos-sdk/InterfaceDescriptor";
-  value: InterfaceDescriptorAmino;
-}
-/** InterfaceDescriptor describes the implementation of an interface */
-export interface InterfaceDescriptorSDKType {
-  fullname: string;
-  interface_accepting_messages: InterfaceAcceptingMessageDescriptorSDKType[];
-  interface_implementers: InterfaceImplementerDescriptorSDKType[];
-}
-/** InterfaceImplementerDescriptor describes an interface implementer */
-export interface InterfaceImplementerDescriptor {
-  /** fullname is the protobuf queryable name of the interface implementer */
-  fullname: string;
-  /**
-   * type_url defines the type URL used when marshalling the type as any
-   * this is required so we can provide type safe google.protobuf.Any marshalling and
-   * unmarshalling, making sure that we don't accept just 'any' type
-   * in our interface fields
-   */
-  typeUrl: string;
-}
-export interface InterfaceImplementerDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceImplementerDescriptor";
-  value: Uint8Array;
-}
-/** InterfaceImplementerDescriptor describes an interface implementer */
-export interface InterfaceImplementerDescriptorAmino {
-  /** fullname is the protobuf queryable name of the interface implementer */
-  fullname: string;
-  /**
-   * type_url defines the type URL used when marshalling the type as any
-   * this is required so we can provide type safe google.protobuf.Any marshalling and
-   * unmarshalling, making sure that we don't accept just 'any' type
-   * in our interface fields
-   */
-  type_url: string;
-}
-export interface InterfaceImplementerDescriptorAminoMsg {
-  type: "cosmos-sdk/InterfaceImplementerDescriptor";
-  value: InterfaceImplementerDescriptorAmino;
-}
-/** InterfaceImplementerDescriptor describes an interface implementer */
-export interface InterfaceImplementerDescriptorSDKType {
-  fullname: string;
-  type_url: string;
-}
-/**
- * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains
- * an interface represented as a google.protobuf.Any
- */
-export interface InterfaceAcceptingMessageDescriptor {
-  /** fullname is the protobuf fullname of the type containing the interface */
-  fullname: string;
-  /**
-   * field_descriptor_names is a list of the protobuf name (not fullname) of the field
-   * which contains the interface as google.protobuf.Any (the interface is the same, but
-   * it can be in multiple fields of the same proto message)
-   */
-  fieldDescriptorNames: string[];
-}
-export interface InterfaceAcceptingMessageDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceAcceptingMessageDescriptor";
-  value: Uint8Array;
-}
-/**
- * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains
- * an interface represented as a google.protobuf.Any
- */
-export interface InterfaceAcceptingMessageDescriptorAmino {
-  /** fullname is the protobuf fullname of the type containing the interface */
-  fullname: string;
-  /**
-   * field_descriptor_names is a list of the protobuf name (not fullname) of the field
-   * which contains the interface as google.protobuf.Any (the interface is the same, but
-   * it can be in multiple fields of the same proto message)
-   */
-  field_descriptor_names: string[];
-}
-export interface InterfaceAcceptingMessageDescriptorAminoMsg {
-  type: "cosmos-sdk/InterfaceAcceptingMessageDescriptor";
-  value: InterfaceAcceptingMessageDescriptorAmino;
-}
-/**
- * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains
- * an interface represented as a google.protobuf.Any
- */
-export interface InterfaceAcceptingMessageDescriptorSDKType {
-  fullname: string;
-  field_descriptor_names: string[];
-}
-/** ConfigurationDescriptor contains metadata information on the sdk.Config */
-export interface ConfigurationDescriptor {
-  /** bech32_account_address_prefix is the account address prefix */
-  bech32AccountAddressPrefix: string;
-}
-export interface ConfigurationDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.ConfigurationDescriptor";
-  value: Uint8Array;
-}
-/** ConfigurationDescriptor contains metadata information on the sdk.Config */
-export interface ConfigurationDescriptorAmino {
-  /** bech32_account_address_prefix is the account address prefix */
-  bech32_account_address_prefix: string;
-}
-export interface ConfigurationDescriptorAminoMsg {
-  type: "cosmos-sdk/ConfigurationDescriptor";
-  value: ConfigurationDescriptorAmino;
-}
-/** ConfigurationDescriptor contains metadata information on the sdk.Config */
-export interface ConfigurationDescriptorSDKType {
-  bech32_account_address_prefix: string;
-}
-/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */
-export interface MsgDescriptor {
-  /** msg_type_url contains the TypeURL of a sdk.Msg. */
-  msgTypeUrl: string;
-}
-export interface MsgDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.MsgDescriptor";
-  value: Uint8Array;
-}
-/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */
-export interface MsgDescriptorAmino {
-  /** msg_type_url contains the TypeURL of a sdk.Msg. */
-  msg_type_url: string;
-}
-export interface MsgDescriptorAminoMsg {
-  type: "cosmos-sdk/MsgDescriptor";
-  value: MsgDescriptorAmino;
-}
-/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */
-export interface MsgDescriptorSDKType {
-  msg_type_url: string;
-}
-/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorRequest {}
-export interface GetAuthnDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorRequestAmino {}
-export interface GetAuthnDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetAuthnDescriptorRequest";
-  value: GetAuthnDescriptorRequestAmino;
-}
-/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorRequestSDKType {}
-/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorResponse {
-  /** authn describes how to authenticate to the application when sending transactions */
-  authn: AuthnDescriptor | undefined;
-}
-export interface GetAuthnDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorResponseAmino {
-  /** authn describes how to authenticate to the application when sending transactions */
-  authn?: AuthnDescriptorAmino | undefined;
-}
-export interface GetAuthnDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetAuthnDescriptorResponse";
-  value: GetAuthnDescriptorResponseAmino;
-}
-/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */
-export interface GetAuthnDescriptorResponseSDKType {
-  authn: AuthnDescriptorSDKType | undefined;
-}
-/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */
-export interface GetChainDescriptorRequest {}
-export interface GetChainDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */
-export interface GetChainDescriptorRequestAmino {}
-export interface GetChainDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetChainDescriptorRequest";
-  value: GetChainDescriptorRequestAmino;
-}
-/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */
-export interface GetChainDescriptorRequestSDKType {}
-/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */
-export interface GetChainDescriptorResponse {
-  /** chain describes application chain information */
-  chain: ChainDescriptor | undefined;
-}
-export interface GetChainDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */
-export interface GetChainDescriptorResponseAmino {
-  /** chain describes application chain information */
-  chain?: ChainDescriptorAmino | undefined;
-}
-export interface GetChainDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetChainDescriptorResponse";
-  value: GetChainDescriptorResponseAmino;
-}
-/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */
-export interface GetChainDescriptorResponseSDKType {
-  chain: ChainDescriptorSDKType | undefined;
-}
-/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorRequest {}
-export interface GetCodecDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorRequestAmino {}
-export interface GetCodecDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetCodecDescriptorRequest";
-  value: GetCodecDescriptorRequestAmino;
-}
-/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorRequestSDKType {}
-/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorResponse {
-  /** codec describes the application codec such as registered interfaces and implementations */
-  codec: CodecDescriptor | undefined;
-}
-export interface GetCodecDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorResponseAmino {
-  /** codec describes the application codec such as registered interfaces and implementations */
-  codec?: CodecDescriptorAmino | undefined;
-}
-export interface GetCodecDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetCodecDescriptorResponse";
-  value: GetCodecDescriptorResponseAmino;
-}
-/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */
-export interface GetCodecDescriptorResponseSDKType {
-  codec: CodecDescriptorSDKType | undefined;
-}
-/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorRequest {}
-export interface GetConfigurationDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorRequestAmino {}
-export interface GetConfigurationDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetConfigurationDescriptorRequest";
-  value: GetConfigurationDescriptorRequestAmino;
-}
-/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorRequestSDKType {}
-/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorResponse {
-  /** config describes the application's sdk.Config */
-  config: ConfigurationDescriptor | undefined;
-}
-export interface GetConfigurationDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorResponseAmino {
-  /** config describes the application's sdk.Config */
-  config?: ConfigurationDescriptorAmino | undefined;
-}
-export interface GetConfigurationDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetConfigurationDescriptorResponse";
-  value: GetConfigurationDescriptorResponseAmino;
-}
-/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */
-export interface GetConfigurationDescriptorResponseSDKType {
-  config: ConfigurationDescriptorSDKType | undefined;
-}
-/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorRequest {}
-export interface GetQueryServicesDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorRequestAmino {}
-export interface GetQueryServicesDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetQueryServicesDescriptorRequest";
-  value: GetQueryServicesDescriptorRequestAmino;
-}
-/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorRequestSDKType {}
-/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorResponse {
-  /** queries provides information on the available queryable services */
-  queries: QueryServicesDescriptor | undefined;
-}
-export interface GetQueryServicesDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorResponseAmino {
-  /** queries provides information on the available queryable services */
-  queries?: QueryServicesDescriptorAmino | undefined;
-}
-export interface GetQueryServicesDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetQueryServicesDescriptorResponse";
-  value: GetQueryServicesDescriptorResponseAmino;
-}
-/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */
-export interface GetQueryServicesDescriptorResponseSDKType {
-  queries: QueryServicesDescriptorSDKType | undefined;
-}
-/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */
-export interface GetTxDescriptorRequest {}
-export interface GetTxDescriptorRequestProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorRequest";
-  value: Uint8Array;
-}
-/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */
-export interface GetTxDescriptorRequestAmino {}
-export interface GetTxDescriptorRequestAminoMsg {
-  type: "cosmos-sdk/GetTxDescriptorRequest";
-  value: GetTxDescriptorRequestAmino;
-}
-/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */
-export interface GetTxDescriptorRequestSDKType {}
-/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */
-export interface GetTxDescriptorResponse {
-  /**
-   * tx provides information on msgs that can be forwarded to the application
-   * alongside the accepted transaction protobuf type
-   */
-  tx: TxDescriptor | undefined;
-}
-export interface GetTxDescriptorResponseProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorResponse";
-  value: Uint8Array;
-}
-/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */
-export interface GetTxDescriptorResponseAmino {
-  /**
-   * tx provides information on msgs that can be forwarded to the application
-   * alongside the accepted transaction protobuf type
-   */
-  tx?: TxDescriptorAmino | undefined;
-}
-export interface GetTxDescriptorResponseAminoMsg {
-  type: "cosmos-sdk/GetTxDescriptorResponse";
-  value: GetTxDescriptorResponseAmino;
-}
-/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */
-export interface GetTxDescriptorResponseSDKType {
-  tx: TxDescriptorSDKType | undefined;
-}
-/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */
-export interface QueryServicesDescriptor {
-  /** query_services is a list of cosmos-sdk QueryServiceDescriptor */
-  queryServices: QueryServiceDescriptor[];
-}
-export interface QueryServicesDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServicesDescriptor";
-  value: Uint8Array;
-}
-/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */
-export interface QueryServicesDescriptorAmino {
-  /** query_services is a list of cosmos-sdk QueryServiceDescriptor */
-  query_services: QueryServiceDescriptorAmino[];
-}
-export interface QueryServicesDescriptorAminoMsg {
-  type: "cosmos-sdk/QueryServicesDescriptor";
-  value: QueryServicesDescriptorAmino;
-}
-/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */
-export interface QueryServicesDescriptorSDKType {
-  query_services: QueryServiceDescriptorSDKType[];
-}
-/** QueryServiceDescriptor describes a cosmos-sdk queryable service */
-export interface QueryServiceDescriptor {
-  /** fullname is the protobuf fullname of the service descriptor */
-  fullname: string;
-  /** is_module describes if this service is actually exposed by an application's module */
-  isModule: boolean;
-  /** methods provides a list of query service methods */
-  methods: QueryMethodDescriptor[];
-}
-export interface QueryServiceDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServiceDescriptor";
-  value: Uint8Array;
-}
-/** QueryServiceDescriptor describes a cosmos-sdk queryable service */
-export interface QueryServiceDescriptorAmino {
-  /** fullname is the protobuf fullname of the service descriptor */
-  fullname: string;
-  /** is_module describes if this service is actually exposed by an application's module */
-  is_module: boolean;
-  /** methods provides a list of query service methods */
-  methods: QueryMethodDescriptorAmino[];
-}
-export interface QueryServiceDescriptorAminoMsg {
-  type: "cosmos-sdk/QueryServiceDescriptor";
-  value: QueryServiceDescriptorAmino;
-}
-/** QueryServiceDescriptor describes a cosmos-sdk queryable service */
-export interface QueryServiceDescriptorSDKType {
-  fullname: string;
-  is_module: boolean;
-  methods: QueryMethodDescriptorSDKType[];
-}
-/**
- * QueryMethodDescriptor describes a queryable method of a query service
- * no other info is provided beside method name and tendermint queryable path
- * because it would be redundant with the grpc reflection service
- */
-export interface QueryMethodDescriptor {
-  /** name is the protobuf name (not fullname) of the method */
-  name: string;
-  /**
-   * full_query_path is the path that can be used to query
-   * this method via tendermint abci.Query
-   */
-  fullQueryPath: string;
-}
-export interface QueryMethodDescriptorProtoMsg {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryMethodDescriptor";
-  value: Uint8Array;
-}
-/**
- * QueryMethodDescriptor describes a queryable method of a query service
- * no other info is provided beside method name and tendermint queryable path
- * because it would be redundant with the grpc reflection service
- */
-export interface QueryMethodDescriptorAmino {
-  /** name is the protobuf name (not fullname) of the method */
-  name: string;
-  /**
-   * full_query_path is the path that can be used to query
-   * this method via tendermint abci.Query
-   */
-  full_query_path: string;
-}
-export interface QueryMethodDescriptorAminoMsg {
-  type: "cosmos-sdk/QueryMethodDescriptor";
-  value: QueryMethodDescriptorAmino;
-}
-/**
- * QueryMethodDescriptor describes a queryable method of a query service
- * no other info is provided beside method name and tendermint queryable path
- * because it would be redundant with the grpc reflection service
- */
-export interface QueryMethodDescriptorSDKType {
-  name: string;
-  full_query_path: string;
-}
-function createBaseAppDescriptor(): AppDescriptor {
-  return {
-    authn: AuthnDescriptor.fromPartial({}),
-    chain: ChainDescriptor.fromPartial({}),
-    codec: CodecDescriptor.fromPartial({}),
-    configuration: ConfigurationDescriptor.fromPartial({}),
-    queryServices: QueryServicesDescriptor.fromPartial({}),
-    tx: TxDescriptor.fromPartial({})
-  };
-}
-export const AppDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.AppDescriptor",
-  aminoType: "cosmos-sdk/AppDescriptor",
-  encode(message: AppDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authn !== undefined) {
-      AuthnDescriptor.encode(message.authn, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.chain !== undefined) {
-      ChainDescriptor.encode(message.chain, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.codec !== undefined) {
-      CodecDescriptor.encode(message.codec, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.configuration !== undefined) {
-      ConfigurationDescriptor.encode(message.configuration, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.queryServices !== undefined) {
-      QueryServicesDescriptor.encode(message.queryServices, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.tx !== undefined) {
-      TxDescriptor.encode(message.tx, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AppDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAppDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authn = AuthnDescriptor.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.chain = ChainDescriptor.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.codec = CodecDescriptor.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.configuration = ConfigurationDescriptor.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.queryServices = QueryServicesDescriptor.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.tx = TxDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AppDescriptor {
-    return {
-      authn: isSet(object.authn) ? AuthnDescriptor.fromJSON(object.authn) : undefined,
-      chain: isSet(object.chain) ? ChainDescriptor.fromJSON(object.chain) : undefined,
-      codec: isSet(object.codec) ? CodecDescriptor.fromJSON(object.codec) : undefined,
-      configuration: isSet(object.configuration) ? ConfigurationDescriptor.fromJSON(object.configuration) : undefined,
-      queryServices: isSet(object.queryServices) ? QueryServicesDescriptor.fromJSON(object.queryServices) : undefined,
-      tx: isSet(object.tx) ? TxDescriptor.fromJSON(object.tx) : undefined
-    };
-  },
-  toJSON(message: AppDescriptor): unknown {
-    const obj: any = {};
-    message.authn !== undefined && (obj.authn = message.authn ? AuthnDescriptor.toJSON(message.authn) : undefined);
-    message.chain !== undefined && (obj.chain = message.chain ? ChainDescriptor.toJSON(message.chain) : undefined);
-    message.codec !== undefined && (obj.codec = message.codec ? CodecDescriptor.toJSON(message.codec) : undefined);
-    message.configuration !== undefined && (obj.configuration = message.configuration ? ConfigurationDescriptor.toJSON(message.configuration) : undefined);
-    message.queryServices !== undefined && (obj.queryServices = message.queryServices ? QueryServicesDescriptor.toJSON(message.queryServices) : undefined);
-    message.tx !== undefined && (obj.tx = message.tx ? TxDescriptor.toJSON(message.tx) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AppDescriptor>): AppDescriptor {
-    const message = createBaseAppDescriptor();
-    message.authn = object.authn !== undefined && object.authn !== null ? AuthnDescriptor.fromPartial(object.authn) : undefined;
-    message.chain = object.chain !== undefined && object.chain !== null ? ChainDescriptor.fromPartial(object.chain) : undefined;
-    message.codec = object.codec !== undefined && object.codec !== null ? CodecDescriptor.fromPartial(object.codec) : undefined;
-    message.configuration = object.configuration !== undefined && object.configuration !== null ? ConfigurationDescriptor.fromPartial(object.configuration) : undefined;
-    message.queryServices = object.queryServices !== undefined && object.queryServices !== null ? QueryServicesDescriptor.fromPartial(object.queryServices) : undefined;
-    message.tx = object.tx !== undefined && object.tx !== null ? TxDescriptor.fromPartial(object.tx) : undefined;
-    return message;
-  },
-  fromSDK(object: AppDescriptorSDKType): AppDescriptor {
-    return {
-      authn: object.authn ? AuthnDescriptor.fromSDK(object.authn) : undefined,
-      chain: object.chain ? ChainDescriptor.fromSDK(object.chain) : undefined,
-      codec: object.codec ? CodecDescriptor.fromSDK(object.codec) : undefined,
-      configuration: object.configuration ? ConfigurationDescriptor.fromSDK(object.configuration) : undefined,
-      queryServices: object.query_services ? QueryServicesDescriptor.fromSDK(object.query_services) : undefined,
-      tx: object.tx ? TxDescriptor.fromSDK(object.tx) : undefined
-    };
-  },
-  toSDK(message: AppDescriptor): AppDescriptorSDKType {
-    const obj: any = {};
-    message.authn !== undefined && (obj.authn = message.authn ? AuthnDescriptor.toSDK(message.authn) : undefined);
-    message.chain !== undefined && (obj.chain = message.chain ? ChainDescriptor.toSDK(message.chain) : undefined);
-    message.codec !== undefined && (obj.codec = message.codec ? CodecDescriptor.toSDK(message.codec) : undefined);
-    message.configuration !== undefined && (obj.configuration = message.configuration ? ConfigurationDescriptor.toSDK(message.configuration) : undefined);
-    message.queryServices !== undefined && (obj.query_services = message.queryServices ? QueryServicesDescriptor.toSDK(message.queryServices) : undefined);
-    message.tx !== undefined && (obj.tx = message.tx ? TxDescriptor.toSDK(message.tx) : undefined);
-    return obj;
-  },
-  fromAmino(object: AppDescriptorAmino): AppDescriptor {
-    return {
-      authn: object?.authn ? AuthnDescriptor.fromAmino(object.authn) : undefined,
-      chain: object?.chain ? ChainDescriptor.fromAmino(object.chain) : undefined,
-      codec: object?.codec ? CodecDescriptor.fromAmino(object.codec) : undefined,
-      configuration: object?.configuration ? ConfigurationDescriptor.fromAmino(object.configuration) : undefined,
-      queryServices: object?.query_services ? QueryServicesDescriptor.fromAmino(object.query_services) : undefined,
-      tx: object?.tx ? TxDescriptor.fromAmino(object.tx) : undefined
-    };
-  },
-  toAmino(message: AppDescriptor): AppDescriptorAmino {
-    const obj: any = {};
-    obj.authn = message.authn ? AuthnDescriptor.toAmino(message.authn) : undefined;
-    obj.chain = message.chain ? ChainDescriptor.toAmino(message.chain) : undefined;
-    obj.codec = message.codec ? CodecDescriptor.toAmino(message.codec) : undefined;
-    obj.configuration = message.configuration ? ConfigurationDescriptor.toAmino(message.configuration) : undefined;
-    obj.query_services = message.queryServices ? QueryServicesDescriptor.toAmino(message.queryServices) : undefined;
-    obj.tx = message.tx ? TxDescriptor.toAmino(message.tx) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AppDescriptorAminoMsg): AppDescriptor {
-    return AppDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: AppDescriptor): AppDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/AppDescriptor",
-      value: AppDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AppDescriptorProtoMsg): AppDescriptor {
-    return AppDescriptor.decode(message.value);
-  },
-  toProto(message: AppDescriptor): Uint8Array {
-    return AppDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: AppDescriptor): AppDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.AppDescriptor",
-      value: AppDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseTxDescriptor(): TxDescriptor {
-  return {
-    fullname: "",
-    msgs: []
-  };
-}
-export const TxDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.TxDescriptor",
-  aminoType: "cosmos-sdk/TxDescriptor",
-  encode(message: TxDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fullname !== "") {
-      writer.uint32(10).string(message.fullname);
-    }
-    for (const v of message.msgs) {
-      MsgDescriptor.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fullname = reader.string();
-          break;
-        case 2:
-          message.msgs.push(MsgDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxDescriptor {
-    return {
-      fullname: isSet(object.fullname) ? String(object.fullname) : "",
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => MsgDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: TxDescriptor): unknown {
-    const obj: any = {};
-    message.fullname !== undefined && (obj.fullname = message.fullname);
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? MsgDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxDescriptor>): TxDescriptor {
-    const message = createBaseTxDescriptor();
-    message.fullname = object.fullname ?? "";
-    message.msgs = object.msgs?.map(e => MsgDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: TxDescriptorSDKType): TxDescriptor {
-    return {
-      fullname: object?.fullname,
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => MsgDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: TxDescriptor): TxDescriptorSDKType {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? MsgDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxDescriptorAmino): TxDescriptor {
-    return {
-      fullname: object.fullname,
-      msgs: Array.isArray(object?.msgs) ? object.msgs.map((e: any) => MsgDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: TxDescriptor): TxDescriptorAmino {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.msgs) {
-      obj.msgs = message.msgs.map(e => e ? MsgDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.msgs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxDescriptorAminoMsg): TxDescriptor {
-    return TxDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: TxDescriptor): TxDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/TxDescriptor",
-      value: TxDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxDescriptorProtoMsg): TxDescriptor {
-    return TxDescriptor.decode(message.value);
-  },
-  toProto(message: TxDescriptor): Uint8Array {
-    return TxDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: TxDescriptor): TxDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.TxDescriptor",
-      value: TxDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseAuthnDescriptor(): AuthnDescriptor {
-  return {
-    signModes: []
-  };
-}
-export const AuthnDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.AuthnDescriptor",
-  aminoType: "cosmos-sdk/AuthnDescriptor",
-  encode(message: AuthnDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.signModes) {
-      SigningModeDescriptor.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AuthnDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAuthnDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signModes.push(SigningModeDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AuthnDescriptor {
-    return {
-      signModes: Array.isArray(object?.signModes) ? object.signModes.map((e: any) => SigningModeDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AuthnDescriptor): unknown {
-    const obj: any = {};
-    if (message.signModes) {
-      obj.signModes = message.signModes.map(e => e ? SigningModeDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.signModes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AuthnDescriptor>): AuthnDescriptor {
-    const message = createBaseAuthnDescriptor();
-    message.signModes = object.signModes?.map(e => SigningModeDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AuthnDescriptorSDKType): AuthnDescriptor {
-    return {
-      signModes: Array.isArray(object?.sign_modes) ? object.sign_modes.map((e: any) => SigningModeDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AuthnDescriptor): AuthnDescriptorSDKType {
-    const obj: any = {};
-    if (message.signModes) {
-      obj.sign_modes = message.signModes.map(e => e ? SigningModeDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.sign_modes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AuthnDescriptorAmino): AuthnDescriptor {
-    return {
-      signModes: Array.isArray(object?.sign_modes) ? object.sign_modes.map((e: any) => SigningModeDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AuthnDescriptor): AuthnDescriptorAmino {
-    const obj: any = {};
-    if (message.signModes) {
-      obj.sign_modes = message.signModes.map(e => e ? SigningModeDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.sign_modes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AuthnDescriptorAminoMsg): AuthnDescriptor {
-    return AuthnDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: AuthnDescriptor): AuthnDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/AuthnDescriptor",
-      value: AuthnDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AuthnDescriptorProtoMsg): AuthnDescriptor {
-    return AuthnDescriptor.decode(message.value);
-  },
-  toProto(message: AuthnDescriptor): Uint8Array {
-    return AuthnDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: AuthnDescriptor): AuthnDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.AuthnDescriptor",
-      value: AuthnDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseSigningModeDescriptor(): SigningModeDescriptor {
-  return {
-    name: "",
-    number: 0,
-    authnInfoProviderMethodFullname: ""
-  };
-}
-export const SigningModeDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.SigningModeDescriptor",
-  aminoType: "cosmos-sdk/SigningModeDescriptor",
-  encode(message: SigningModeDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.number !== 0) {
-      writer.uint32(16).int32(message.number);
-    }
-    if (message.authnInfoProviderMethodFullname !== "") {
-      writer.uint32(26).string(message.authnInfoProviderMethodFullname);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SigningModeDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSigningModeDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.number = reader.int32();
-          break;
-        case 3:
-          message.authnInfoProviderMethodFullname = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SigningModeDescriptor {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      number: isSet(object.number) ? Number(object.number) : 0,
-      authnInfoProviderMethodFullname: isSet(object.authnInfoProviderMethodFullname) ? String(object.authnInfoProviderMethodFullname) : ""
-    };
-  },
-  toJSON(message: SigningModeDescriptor): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.number !== undefined && (obj.number = Math.round(message.number));
-    message.authnInfoProviderMethodFullname !== undefined && (obj.authnInfoProviderMethodFullname = message.authnInfoProviderMethodFullname);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SigningModeDescriptor>): SigningModeDescriptor {
-    const message = createBaseSigningModeDescriptor();
-    message.name = object.name ?? "";
-    message.number = object.number ?? 0;
-    message.authnInfoProviderMethodFullname = object.authnInfoProviderMethodFullname ?? "";
-    return message;
-  },
-  fromSDK(object: SigningModeDescriptorSDKType): SigningModeDescriptor {
-    return {
-      name: object?.name,
-      number: object?.number,
-      authnInfoProviderMethodFullname: object?.authn_info_provider_method_fullname
-    };
-  },
-  toSDK(message: SigningModeDescriptor): SigningModeDescriptorSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    obj.authn_info_provider_method_fullname = message.authnInfoProviderMethodFullname;
-    return obj;
-  },
-  fromAmino(object: SigningModeDescriptorAmino): SigningModeDescriptor {
-    return {
-      name: object.name,
-      number: object.number,
-      authnInfoProviderMethodFullname: object.authn_info_provider_method_fullname
-    };
-  },
-  toAmino(message: SigningModeDescriptor): SigningModeDescriptorAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    obj.authn_info_provider_method_fullname = message.authnInfoProviderMethodFullname;
-    return obj;
-  },
-  fromAminoMsg(object: SigningModeDescriptorAminoMsg): SigningModeDescriptor {
-    return SigningModeDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: SigningModeDescriptor): SigningModeDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/SigningModeDescriptor",
-      value: SigningModeDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SigningModeDescriptorProtoMsg): SigningModeDescriptor {
-    return SigningModeDescriptor.decode(message.value);
-  },
-  toProto(message: SigningModeDescriptor): Uint8Array {
-    return SigningModeDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: SigningModeDescriptor): SigningModeDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.SigningModeDescriptor",
-      value: SigningModeDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseChainDescriptor(): ChainDescriptor {
-  return {
-    id: ""
-  };
-}
-export const ChainDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.ChainDescriptor",
-  aminoType: "cosmos-sdk/ChainDescriptor",
-  encode(message: ChainDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== "") {
-      writer.uint32(10).string(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ChainDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseChainDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ChainDescriptor {
-    return {
-      id: isSet(object.id) ? String(object.id) : ""
-    };
-  },
-  toJSON(message: ChainDescriptor): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = message.id);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ChainDescriptor>): ChainDescriptor {
-    const message = createBaseChainDescriptor();
-    message.id = object.id ?? "";
-    return message;
-  },
-  fromSDK(object: ChainDescriptorSDKType): ChainDescriptor {
-    return {
-      id: object?.id
-    };
-  },
-  toSDK(message: ChainDescriptor): ChainDescriptorSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: ChainDescriptorAmino): ChainDescriptor {
-    return {
-      id: object.id
-    };
-  },
-  toAmino(message: ChainDescriptor): ChainDescriptorAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    return obj;
-  },
-  fromAminoMsg(object: ChainDescriptorAminoMsg): ChainDescriptor {
-    return ChainDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: ChainDescriptor): ChainDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/ChainDescriptor",
-      value: ChainDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ChainDescriptorProtoMsg): ChainDescriptor {
-    return ChainDescriptor.decode(message.value);
-  },
-  toProto(message: ChainDescriptor): Uint8Array {
-    return ChainDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: ChainDescriptor): ChainDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.ChainDescriptor",
-      value: ChainDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseCodecDescriptor(): CodecDescriptor {
-  return {
-    interfaces: []
-  };
-}
-export const CodecDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.CodecDescriptor",
-  aminoType: "cosmos-sdk/CodecDescriptor",
-  encode(message: CodecDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.interfaces) {
-      InterfaceDescriptor.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CodecDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCodecDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.interfaces.push(InterfaceDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CodecDescriptor {
-    return {
-      interfaces: Array.isArray(object?.interfaces) ? object.interfaces.map((e: any) => InterfaceDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: CodecDescriptor): unknown {
-    const obj: any = {};
-    if (message.interfaces) {
-      obj.interfaces = message.interfaces.map(e => e ? InterfaceDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.interfaces = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CodecDescriptor>): CodecDescriptor {
-    const message = createBaseCodecDescriptor();
-    message.interfaces = object.interfaces?.map(e => InterfaceDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CodecDescriptorSDKType): CodecDescriptor {
-    return {
-      interfaces: Array.isArray(object?.interfaces) ? object.interfaces.map((e: any) => InterfaceDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: CodecDescriptor): CodecDescriptorSDKType {
-    const obj: any = {};
-    if (message.interfaces) {
-      obj.interfaces = message.interfaces.map(e => e ? InterfaceDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.interfaces = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CodecDescriptorAmino): CodecDescriptor {
-    return {
-      interfaces: Array.isArray(object?.interfaces) ? object.interfaces.map((e: any) => InterfaceDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: CodecDescriptor): CodecDescriptorAmino {
-    const obj: any = {};
-    if (message.interfaces) {
-      obj.interfaces = message.interfaces.map(e => e ? InterfaceDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.interfaces = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CodecDescriptorAminoMsg): CodecDescriptor {
-    return CodecDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: CodecDescriptor): CodecDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/CodecDescriptor",
-      value: CodecDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CodecDescriptorProtoMsg): CodecDescriptor {
-    return CodecDescriptor.decode(message.value);
-  },
-  toProto(message: CodecDescriptor): Uint8Array {
-    return CodecDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: CodecDescriptor): CodecDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.CodecDescriptor",
-      value: CodecDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseInterfaceDescriptor(): InterfaceDescriptor {
-  return {
-    fullname: "",
-    interfaceAcceptingMessages: [],
-    interfaceImplementers: []
-  };
-}
-export const InterfaceDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceDescriptor",
-  aminoType: "cosmos-sdk/InterfaceDescriptor",
-  encode(message: InterfaceDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fullname !== "") {
-      writer.uint32(10).string(message.fullname);
-    }
-    for (const v of message.interfaceAcceptingMessages) {
-      InterfaceAcceptingMessageDescriptor.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.interfaceImplementers) {
-      InterfaceImplementerDescriptor.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InterfaceDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInterfaceDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fullname = reader.string();
-          break;
-        case 2:
-          message.interfaceAcceptingMessages.push(InterfaceAcceptingMessageDescriptor.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.interfaceImplementers.push(InterfaceImplementerDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InterfaceDescriptor {
-    return {
-      fullname: isSet(object.fullname) ? String(object.fullname) : "",
-      interfaceAcceptingMessages: Array.isArray(object?.interfaceAcceptingMessages) ? object.interfaceAcceptingMessages.map((e: any) => InterfaceAcceptingMessageDescriptor.fromJSON(e)) : [],
-      interfaceImplementers: Array.isArray(object?.interfaceImplementers) ? object.interfaceImplementers.map((e: any) => InterfaceImplementerDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: InterfaceDescriptor): unknown {
-    const obj: any = {};
-    message.fullname !== undefined && (obj.fullname = message.fullname);
-    if (message.interfaceAcceptingMessages) {
-      obj.interfaceAcceptingMessages = message.interfaceAcceptingMessages.map(e => e ? InterfaceAcceptingMessageDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.interfaceAcceptingMessages = [];
-    }
-    if (message.interfaceImplementers) {
-      obj.interfaceImplementers = message.interfaceImplementers.map(e => e ? InterfaceImplementerDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.interfaceImplementers = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InterfaceDescriptor>): InterfaceDescriptor {
-    const message = createBaseInterfaceDescriptor();
-    message.fullname = object.fullname ?? "";
-    message.interfaceAcceptingMessages = object.interfaceAcceptingMessages?.map(e => InterfaceAcceptingMessageDescriptor.fromPartial(e)) || [];
-    message.interfaceImplementers = object.interfaceImplementers?.map(e => InterfaceImplementerDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: InterfaceDescriptorSDKType): InterfaceDescriptor {
-    return {
-      fullname: object?.fullname,
-      interfaceAcceptingMessages: Array.isArray(object?.interface_accepting_messages) ? object.interface_accepting_messages.map((e: any) => InterfaceAcceptingMessageDescriptor.fromSDK(e)) : [],
-      interfaceImplementers: Array.isArray(object?.interface_implementers) ? object.interface_implementers.map((e: any) => InterfaceImplementerDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: InterfaceDescriptor): InterfaceDescriptorSDKType {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.interfaceAcceptingMessages) {
-      obj.interface_accepting_messages = message.interfaceAcceptingMessages.map(e => e ? InterfaceAcceptingMessageDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.interface_accepting_messages = [];
-    }
-    if (message.interfaceImplementers) {
-      obj.interface_implementers = message.interfaceImplementers.map(e => e ? InterfaceImplementerDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.interface_implementers = [];
-    }
-    return obj;
-  },
-  fromAmino(object: InterfaceDescriptorAmino): InterfaceDescriptor {
-    return {
-      fullname: object.fullname,
-      interfaceAcceptingMessages: Array.isArray(object?.interface_accepting_messages) ? object.interface_accepting_messages.map((e: any) => InterfaceAcceptingMessageDescriptor.fromAmino(e)) : [],
-      interfaceImplementers: Array.isArray(object?.interface_implementers) ? object.interface_implementers.map((e: any) => InterfaceImplementerDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: InterfaceDescriptor): InterfaceDescriptorAmino {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.interfaceAcceptingMessages) {
-      obj.interface_accepting_messages = message.interfaceAcceptingMessages.map(e => e ? InterfaceAcceptingMessageDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.interface_accepting_messages = [];
-    }
-    if (message.interfaceImplementers) {
-      obj.interface_implementers = message.interfaceImplementers.map(e => e ? InterfaceImplementerDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.interface_implementers = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: InterfaceDescriptorAminoMsg): InterfaceDescriptor {
-    return InterfaceDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: InterfaceDescriptor): InterfaceDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/InterfaceDescriptor",
-      value: InterfaceDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: InterfaceDescriptorProtoMsg): InterfaceDescriptor {
-    return InterfaceDescriptor.decode(message.value);
-  },
-  toProto(message: InterfaceDescriptor): Uint8Array {
-    return InterfaceDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: InterfaceDescriptor): InterfaceDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceDescriptor",
-      value: InterfaceDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseInterfaceImplementerDescriptor(): InterfaceImplementerDescriptor {
-  return {
-    fullname: "",
-    typeUrl: ""
-  };
-}
-export const InterfaceImplementerDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceImplementerDescriptor",
-  aminoType: "cosmos-sdk/InterfaceImplementerDescriptor",
-  encode(message: InterfaceImplementerDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fullname !== "") {
-      writer.uint32(10).string(message.fullname);
-    }
-    if (message.typeUrl !== "") {
-      writer.uint32(18).string(message.typeUrl);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InterfaceImplementerDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInterfaceImplementerDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fullname = reader.string();
-          break;
-        case 2:
-          message.typeUrl = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InterfaceImplementerDescriptor {
-    return {
-      fullname: isSet(object.fullname) ? String(object.fullname) : "",
-      typeUrl: isSet(object.typeUrl) ? String(object.typeUrl) : ""
-    };
-  },
-  toJSON(message: InterfaceImplementerDescriptor): unknown {
-    const obj: any = {};
-    message.fullname !== undefined && (obj.fullname = message.fullname);
-    message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InterfaceImplementerDescriptor>): InterfaceImplementerDescriptor {
-    const message = createBaseInterfaceImplementerDescriptor();
-    message.fullname = object.fullname ?? "";
-    message.typeUrl = object.typeUrl ?? "";
-    return message;
-  },
-  fromSDK(object: InterfaceImplementerDescriptorSDKType): InterfaceImplementerDescriptor {
-    return {
-      fullname: object?.fullname,
-      typeUrl: object?.type_url
-    };
-  },
-  toSDK(message: InterfaceImplementerDescriptor): InterfaceImplementerDescriptorSDKType {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    obj.type_url = message.typeUrl;
-    return obj;
-  },
-  fromAmino(object: InterfaceImplementerDescriptorAmino): InterfaceImplementerDescriptor {
-    return {
-      fullname: object.fullname,
-      typeUrl: object.type_url
-    };
-  },
-  toAmino(message: InterfaceImplementerDescriptor): InterfaceImplementerDescriptorAmino {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    obj.type_url = message.typeUrl;
-    return obj;
-  },
-  fromAminoMsg(object: InterfaceImplementerDescriptorAminoMsg): InterfaceImplementerDescriptor {
-    return InterfaceImplementerDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: InterfaceImplementerDescriptor): InterfaceImplementerDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/InterfaceImplementerDescriptor",
-      value: InterfaceImplementerDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: InterfaceImplementerDescriptorProtoMsg): InterfaceImplementerDescriptor {
-    return InterfaceImplementerDescriptor.decode(message.value);
-  },
-  toProto(message: InterfaceImplementerDescriptor): Uint8Array {
-    return InterfaceImplementerDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: InterfaceImplementerDescriptor): InterfaceImplementerDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceImplementerDescriptor",
-      value: InterfaceImplementerDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseInterfaceAcceptingMessageDescriptor(): InterfaceAcceptingMessageDescriptor {
-  return {
-    fullname: "",
-    fieldDescriptorNames: []
-  };
-}
-export const InterfaceAcceptingMessageDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceAcceptingMessageDescriptor",
-  aminoType: "cosmos-sdk/InterfaceAcceptingMessageDescriptor",
-  encode(message: InterfaceAcceptingMessageDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fullname !== "") {
-      writer.uint32(10).string(message.fullname);
-    }
-    for (const v of message.fieldDescriptorNames) {
-      writer.uint32(18).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InterfaceAcceptingMessageDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInterfaceAcceptingMessageDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fullname = reader.string();
-          break;
-        case 2:
-          message.fieldDescriptorNames.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InterfaceAcceptingMessageDescriptor {
-    return {
-      fullname: isSet(object.fullname) ? String(object.fullname) : "",
-      fieldDescriptorNames: Array.isArray(object?.fieldDescriptorNames) ? object.fieldDescriptorNames.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: InterfaceAcceptingMessageDescriptor): unknown {
-    const obj: any = {};
-    message.fullname !== undefined && (obj.fullname = message.fullname);
-    if (message.fieldDescriptorNames) {
-      obj.fieldDescriptorNames = message.fieldDescriptorNames.map(e => e);
-    } else {
-      obj.fieldDescriptorNames = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InterfaceAcceptingMessageDescriptor>): InterfaceAcceptingMessageDescriptor {
-    const message = createBaseInterfaceAcceptingMessageDescriptor();
-    message.fullname = object.fullname ?? "";
-    message.fieldDescriptorNames = object.fieldDescriptorNames?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: InterfaceAcceptingMessageDescriptorSDKType): InterfaceAcceptingMessageDescriptor {
-    return {
-      fullname: object?.fullname,
-      fieldDescriptorNames: Array.isArray(object?.field_descriptor_names) ? object.field_descriptor_names.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: InterfaceAcceptingMessageDescriptor): InterfaceAcceptingMessageDescriptorSDKType {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.fieldDescriptorNames) {
-      obj.field_descriptor_names = message.fieldDescriptorNames.map(e => e);
-    } else {
-      obj.field_descriptor_names = [];
-    }
-    return obj;
-  },
-  fromAmino(object: InterfaceAcceptingMessageDescriptorAmino): InterfaceAcceptingMessageDescriptor {
-    return {
-      fullname: object.fullname,
-      fieldDescriptorNames: Array.isArray(object?.field_descriptor_names) ? object.field_descriptor_names.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: InterfaceAcceptingMessageDescriptor): InterfaceAcceptingMessageDescriptorAmino {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    if (message.fieldDescriptorNames) {
-      obj.field_descriptor_names = message.fieldDescriptorNames.map(e => e);
-    } else {
-      obj.field_descriptor_names = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: InterfaceAcceptingMessageDescriptorAminoMsg): InterfaceAcceptingMessageDescriptor {
-    return InterfaceAcceptingMessageDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: InterfaceAcceptingMessageDescriptor): InterfaceAcceptingMessageDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/InterfaceAcceptingMessageDescriptor",
-      value: InterfaceAcceptingMessageDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: InterfaceAcceptingMessageDescriptorProtoMsg): InterfaceAcceptingMessageDescriptor {
-    return InterfaceAcceptingMessageDescriptor.decode(message.value);
-  },
-  toProto(message: InterfaceAcceptingMessageDescriptor): Uint8Array {
-    return InterfaceAcceptingMessageDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: InterfaceAcceptingMessageDescriptor): InterfaceAcceptingMessageDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.InterfaceAcceptingMessageDescriptor",
-      value: InterfaceAcceptingMessageDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseConfigurationDescriptor(): ConfigurationDescriptor {
-  return {
-    bech32AccountAddressPrefix: ""
-  };
-}
-export const ConfigurationDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.ConfigurationDescriptor",
-  aminoType: "cosmos-sdk/ConfigurationDescriptor",
-  encode(message: ConfigurationDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bech32AccountAddressPrefix !== "") {
-      writer.uint32(10).string(message.bech32AccountAddressPrefix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConfigurationDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConfigurationDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bech32AccountAddressPrefix = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConfigurationDescriptor {
-    return {
-      bech32AccountAddressPrefix: isSet(object.bech32AccountAddressPrefix) ? String(object.bech32AccountAddressPrefix) : ""
-    };
-  },
-  toJSON(message: ConfigurationDescriptor): unknown {
-    const obj: any = {};
-    message.bech32AccountAddressPrefix !== undefined && (obj.bech32AccountAddressPrefix = message.bech32AccountAddressPrefix);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConfigurationDescriptor>): ConfigurationDescriptor {
-    const message = createBaseConfigurationDescriptor();
-    message.bech32AccountAddressPrefix = object.bech32AccountAddressPrefix ?? "";
-    return message;
-  },
-  fromSDK(object: ConfigurationDescriptorSDKType): ConfigurationDescriptor {
-    return {
-      bech32AccountAddressPrefix: object?.bech32_account_address_prefix
-    };
-  },
-  toSDK(message: ConfigurationDescriptor): ConfigurationDescriptorSDKType {
-    const obj: any = {};
-    obj.bech32_account_address_prefix = message.bech32AccountAddressPrefix;
-    return obj;
-  },
-  fromAmino(object: ConfigurationDescriptorAmino): ConfigurationDescriptor {
-    return {
-      bech32AccountAddressPrefix: object.bech32_account_address_prefix
-    };
-  },
-  toAmino(message: ConfigurationDescriptor): ConfigurationDescriptorAmino {
-    const obj: any = {};
-    obj.bech32_account_address_prefix = message.bech32AccountAddressPrefix;
-    return obj;
-  },
-  fromAminoMsg(object: ConfigurationDescriptorAminoMsg): ConfigurationDescriptor {
-    return ConfigurationDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConfigurationDescriptor): ConfigurationDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/ConfigurationDescriptor",
-      value: ConfigurationDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConfigurationDescriptorProtoMsg): ConfigurationDescriptor {
-    return ConfigurationDescriptor.decode(message.value);
-  },
-  toProto(message: ConfigurationDescriptor): Uint8Array {
-    return ConfigurationDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: ConfigurationDescriptor): ConfigurationDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.ConfigurationDescriptor",
-      value: ConfigurationDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDescriptor(): MsgDescriptor {
-  return {
-    msgTypeUrl: ""
-  };
-}
-export const MsgDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.MsgDescriptor",
-  aminoType: "cosmos-sdk/MsgDescriptor",
-  encode(message: MsgDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.msgTypeUrl !== "") {
-      writer.uint32(10).string(message.msgTypeUrl);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.msgTypeUrl = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgDescriptor {
-    return {
-      msgTypeUrl: isSet(object.msgTypeUrl) ? String(object.msgTypeUrl) : ""
-    };
-  },
-  toJSON(message: MsgDescriptor): unknown {
-    const obj: any = {};
-    message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgDescriptor>): MsgDescriptor {
-    const message = createBaseMsgDescriptor();
-    message.msgTypeUrl = object.msgTypeUrl ?? "";
-    return message;
-  },
-  fromSDK(object: MsgDescriptorSDKType): MsgDescriptor {
-    return {
-      msgTypeUrl: object?.msg_type_url
-    };
-  },
-  toSDK(message: MsgDescriptor): MsgDescriptorSDKType {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    return obj;
-  },
-  fromAmino(object: MsgDescriptorAmino): MsgDescriptor {
-    return {
-      msgTypeUrl: object.msg_type_url
-    };
-  },
-  toAmino(message: MsgDescriptor): MsgDescriptorAmino {
-    const obj: any = {};
-    obj.msg_type_url = message.msgTypeUrl;
-    return obj;
-  },
-  fromAminoMsg(object: MsgDescriptorAminoMsg): MsgDescriptor {
-    return MsgDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDescriptor): MsgDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgDescriptor",
-      value: MsgDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDescriptorProtoMsg): MsgDescriptor {
-    return MsgDescriptor.decode(message.value);
-  },
-  toProto(message: MsgDescriptor): Uint8Array {
-    return MsgDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDescriptor): MsgDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.MsgDescriptor",
-      value: MsgDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseGetAuthnDescriptorRequest(): GetAuthnDescriptorRequest {
-  return {};
-}
-export const GetAuthnDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorRequest",
-  aminoType: "cosmos-sdk/GetAuthnDescriptorRequest",
-  encode(_: GetAuthnDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetAuthnDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetAuthnDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetAuthnDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetAuthnDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetAuthnDescriptorRequest>): GetAuthnDescriptorRequest {
-    const message = createBaseGetAuthnDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetAuthnDescriptorRequestSDKType): GetAuthnDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetAuthnDescriptorRequest): GetAuthnDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetAuthnDescriptorRequestAmino): GetAuthnDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetAuthnDescriptorRequest): GetAuthnDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetAuthnDescriptorRequestAminoMsg): GetAuthnDescriptorRequest {
-    return GetAuthnDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetAuthnDescriptorRequest): GetAuthnDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetAuthnDescriptorRequest",
-      value: GetAuthnDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetAuthnDescriptorRequestProtoMsg): GetAuthnDescriptorRequest {
-    return GetAuthnDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetAuthnDescriptorRequest): Uint8Array {
-    return GetAuthnDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetAuthnDescriptorRequest): GetAuthnDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorRequest",
-      value: GetAuthnDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetAuthnDescriptorResponse(): GetAuthnDescriptorResponse {
-  return {
-    authn: AuthnDescriptor.fromPartial({})
-  };
-}
-export const GetAuthnDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorResponse",
-  aminoType: "cosmos-sdk/GetAuthnDescriptorResponse",
-  encode(message: GetAuthnDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authn !== undefined) {
-      AuthnDescriptor.encode(message.authn, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetAuthnDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetAuthnDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authn = AuthnDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetAuthnDescriptorResponse {
-    return {
-      authn: isSet(object.authn) ? AuthnDescriptor.fromJSON(object.authn) : undefined
-    };
-  },
-  toJSON(message: GetAuthnDescriptorResponse): unknown {
-    const obj: any = {};
-    message.authn !== undefined && (obj.authn = message.authn ? AuthnDescriptor.toJSON(message.authn) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetAuthnDescriptorResponse>): GetAuthnDescriptorResponse {
-    const message = createBaseGetAuthnDescriptorResponse();
-    message.authn = object.authn !== undefined && object.authn !== null ? AuthnDescriptor.fromPartial(object.authn) : undefined;
-    return message;
-  },
-  fromSDK(object: GetAuthnDescriptorResponseSDKType): GetAuthnDescriptorResponse {
-    return {
-      authn: object.authn ? AuthnDescriptor.fromSDK(object.authn) : undefined
-    };
-  },
-  toSDK(message: GetAuthnDescriptorResponse): GetAuthnDescriptorResponseSDKType {
-    const obj: any = {};
-    message.authn !== undefined && (obj.authn = message.authn ? AuthnDescriptor.toSDK(message.authn) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetAuthnDescriptorResponseAmino): GetAuthnDescriptorResponse {
-    return {
-      authn: object?.authn ? AuthnDescriptor.fromAmino(object.authn) : undefined
-    };
-  },
-  toAmino(message: GetAuthnDescriptorResponse): GetAuthnDescriptorResponseAmino {
-    const obj: any = {};
-    obj.authn = message.authn ? AuthnDescriptor.toAmino(message.authn) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetAuthnDescriptorResponseAminoMsg): GetAuthnDescriptorResponse {
-    return GetAuthnDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetAuthnDescriptorResponse): GetAuthnDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetAuthnDescriptorResponse",
-      value: GetAuthnDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetAuthnDescriptorResponseProtoMsg): GetAuthnDescriptorResponse {
-    return GetAuthnDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetAuthnDescriptorResponse): Uint8Array {
-    return GetAuthnDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetAuthnDescriptorResponse): GetAuthnDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetAuthnDescriptorResponse",
-      value: GetAuthnDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetChainDescriptorRequest(): GetChainDescriptorRequest {
-  return {};
-}
-export const GetChainDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorRequest",
-  aminoType: "cosmos-sdk/GetChainDescriptorRequest",
-  encode(_: GetChainDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetChainDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetChainDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetChainDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetChainDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetChainDescriptorRequest>): GetChainDescriptorRequest {
-    const message = createBaseGetChainDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetChainDescriptorRequestSDKType): GetChainDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetChainDescriptorRequest): GetChainDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetChainDescriptorRequestAmino): GetChainDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetChainDescriptorRequest): GetChainDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetChainDescriptorRequestAminoMsg): GetChainDescriptorRequest {
-    return GetChainDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetChainDescriptorRequest): GetChainDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetChainDescriptorRequest",
-      value: GetChainDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetChainDescriptorRequestProtoMsg): GetChainDescriptorRequest {
-    return GetChainDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetChainDescriptorRequest): Uint8Array {
-    return GetChainDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetChainDescriptorRequest): GetChainDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorRequest",
-      value: GetChainDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetChainDescriptorResponse(): GetChainDescriptorResponse {
-  return {
-    chain: ChainDescriptor.fromPartial({})
-  };
-}
-export const GetChainDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorResponse",
-  aminoType: "cosmos-sdk/GetChainDescriptorResponse",
-  encode(message: GetChainDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.chain !== undefined) {
-      ChainDescriptor.encode(message.chain, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetChainDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetChainDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.chain = ChainDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetChainDescriptorResponse {
-    return {
-      chain: isSet(object.chain) ? ChainDescriptor.fromJSON(object.chain) : undefined
-    };
-  },
-  toJSON(message: GetChainDescriptorResponse): unknown {
-    const obj: any = {};
-    message.chain !== undefined && (obj.chain = message.chain ? ChainDescriptor.toJSON(message.chain) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetChainDescriptorResponse>): GetChainDescriptorResponse {
-    const message = createBaseGetChainDescriptorResponse();
-    message.chain = object.chain !== undefined && object.chain !== null ? ChainDescriptor.fromPartial(object.chain) : undefined;
-    return message;
-  },
-  fromSDK(object: GetChainDescriptorResponseSDKType): GetChainDescriptorResponse {
-    return {
-      chain: object.chain ? ChainDescriptor.fromSDK(object.chain) : undefined
-    };
-  },
-  toSDK(message: GetChainDescriptorResponse): GetChainDescriptorResponseSDKType {
-    const obj: any = {};
-    message.chain !== undefined && (obj.chain = message.chain ? ChainDescriptor.toSDK(message.chain) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetChainDescriptorResponseAmino): GetChainDescriptorResponse {
-    return {
-      chain: object?.chain ? ChainDescriptor.fromAmino(object.chain) : undefined
-    };
-  },
-  toAmino(message: GetChainDescriptorResponse): GetChainDescriptorResponseAmino {
-    const obj: any = {};
-    obj.chain = message.chain ? ChainDescriptor.toAmino(message.chain) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetChainDescriptorResponseAminoMsg): GetChainDescriptorResponse {
-    return GetChainDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetChainDescriptorResponse): GetChainDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetChainDescriptorResponse",
-      value: GetChainDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetChainDescriptorResponseProtoMsg): GetChainDescriptorResponse {
-    return GetChainDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetChainDescriptorResponse): Uint8Array {
-    return GetChainDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetChainDescriptorResponse): GetChainDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetChainDescriptorResponse",
-      value: GetChainDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetCodecDescriptorRequest(): GetCodecDescriptorRequest {
-  return {};
-}
-export const GetCodecDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorRequest",
-  aminoType: "cosmos-sdk/GetCodecDescriptorRequest",
-  encode(_: GetCodecDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetCodecDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetCodecDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetCodecDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetCodecDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetCodecDescriptorRequest>): GetCodecDescriptorRequest {
-    const message = createBaseGetCodecDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetCodecDescriptorRequestSDKType): GetCodecDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetCodecDescriptorRequest): GetCodecDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetCodecDescriptorRequestAmino): GetCodecDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetCodecDescriptorRequest): GetCodecDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetCodecDescriptorRequestAminoMsg): GetCodecDescriptorRequest {
-    return GetCodecDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetCodecDescriptorRequest): GetCodecDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetCodecDescriptorRequest",
-      value: GetCodecDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetCodecDescriptorRequestProtoMsg): GetCodecDescriptorRequest {
-    return GetCodecDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetCodecDescriptorRequest): Uint8Array {
-    return GetCodecDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetCodecDescriptorRequest): GetCodecDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorRequest",
-      value: GetCodecDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetCodecDescriptorResponse(): GetCodecDescriptorResponse {
-  return {
-    codec: CodecDescriptor.fromPartial({})
-  };
-}
-export const GetCodecDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorResponse",
-  aminoType: "cosmos-sdk/GetCodecDescriptorResponse",
-  encode(message: GetCodecDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codec !== undefined) {
-      CodecDescriptor.encode(message.codec, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetCodecDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetCodecDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codec = CodecDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetCodecDescriptorResponse {
-    return {
-      codec: isSet(object.codec) ? CodecDescriptor.fromJSON(object.codec) : undefined
-    };
-  },
-  toJSON(message: GetCodecDescriptorResponse): unknown {
-    const obj: any = {};
-    message.codec !== undefined && (obj.codec = message.codec ? CodecDescriptor.toJSON(message.codec) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetCodecDescriptorResponse>): GetCodecDescriptorResponse {
-    const message = createBaseGetCodecDescriptorResponse();
-    message.codec = object.codec !== undefined && object.codec !== null ? CodecDescriptor.fromPartial(object.codec) : undefined;
-    return message;
-  },
-  fromSDK(object: GetCodecDescriptorResponseSDKType): GetCodecDescriptorResponse {
-    return {
-      codec: object.codec ? CodecDescriptor.fromSDK(object.codec) : undefined
-    };
-  },
-  toSDK(message: GetCodecDescriptorResponse): GetCodecDescriptorResponseSDKType {
-    const obj: any = {};
-    message.codec !== undefined && (obj.codec = message.codec ? CodecDescriptor.toSDK(message.codec) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetCodecDescriptorResponseAmino): GetCodecDescriptorResponse {
-    return {
-      codec: object?.codec ? CodecDescriptor.fromAmino(object.codec) : undefined
-    };
-  },
-  toAmino(message: GetCodecDescriptorResponse): GetCodecDescriptorResponseAmino {
-    const obj: any = {};
-    obj.codec = message.codec ? CodecDescriptor.toAmino(message.codec) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetCodecDescriptorResponseAminoMsg): GetCodecDescriptorResponse {
-    return GetCodecDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetCodecDescriptorResponse): GetCodecDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetCodecDescriptorResponse",
-      value: GetCodecDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetCodecDescriptorResponseProtoMsg): GetCodecDescriptorResponse {
-    return GetCodecDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetCodecDescriptorResponse): Uint8Array {
-    return GetCodecDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetCodecDescriptorResponse): GetCodecDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetCodecDescriptorResponse",
-      value: GetCodecDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetConfigurationDescriptorRequest(): GetConfigurationDescriptorRequest {
-  return {};
-}
-export const GetConfigurationDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorRequest",
-  aminoType: "cosmos-sdk/GetConfigurationDescriptorRequest",
-  encode(_: GetConfigurationDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetConfigurationDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetConfigurationDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetConfigurationDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetConfigurationDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetConfigurationDescriptorRequest>): GetConfigurationDescriptorRequest {
-    const message = createBaseGetConfigurationDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetConfigurationDescriptorRequestSDKType): GetConfigurationDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetConfigurationDescriptorRequest): GetConfigurationDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetConfigurationDescriptorRequestAmino): GetConfigurationDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetConfigurationDescriptorRequest): GetConfigurationDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetConfigurationDescriptorRequestAminoMsg): GetConfigurationDescriptorRequest {
-    return GetConfigurationDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetConfigurationDescriptorRequest): GetConfigurationDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetConfigurationDescriptorRequest",
-      value: GetConfigurationDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetConfigurationDescriptorRequestProtoMsg): GetConfigurationDescriptorRequest {
-    return GetConfigurationDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetConfigurationDescriptorRequest): Uint8Array {
-    return GetConfigurationDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetConfigurationDescriptorRequest): GetConfigurationDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorRequest",
-      value: GetConfigurationDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetConfigurationDescriptorResponse(): GetConfigurationDescriptorResponse {
-  return {
-    config: ConfigurationDescriptor.fromPartial({})
-  };
-}
-export const GetConfigurationDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorResponse",
-  aminoType: "cosmos-sdk/GetConfigurationDescriptorResponse",
-  encode(message: GetConfigurationDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.config !== undefined) {
-      ConfigurationDescriptor.encode(message.config, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetConfigurationDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetConfigurationDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.config = ConfigurationDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetConfigurationDescriptorResponse {
-    return {
-      config: isSet(object.config) ? ConfigurationDescriptor.fromJSON(object.config) : undefined
-    };
-  },
-  toJSON(message: GetConfigurationDescriptorResponse): unknown {
-    const obj: any = {};
-    message.config !== undefined && (obj.config = message.config ? ConfigurationDescriptor.toJSON(message.config) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetConfigurationDescriptorResponse>): GetConfigurationDescriptorResponse {
-    const message = createBaseGetConfigurationDescriptorResponse();
-    message.config = object.config !== undefined && object.config !== null ? ConfigurationDescriptor.fromPartial(object.config) : undefined;
-    return message;
-  },
-  fromSDK(object: GetConfigurationDescriptorResponseSDKType): GetConfigurationDescriptorResponse {
-    return {
-      config: object.config ? ConfigurationDescriptor.fromSDK(object.config) : undefined
-    };
-  },
-  toSDK(message: GetConfigurationDescriptorResponse): GetConfigurationDescriptorResponseSDKType {
-    const obj: any = {};
-    message.config !== undefined && (obj.config = message.config ? ConfigurationDescriptor.toSDK(message.config) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetConfigurationDescriptorResponseAmino): GetConfigurationDescriptorResponse {
-    return {
-      config: object?.config ? ConfigurationDescriptor.fromAmino(object.config) : undefined
-    };
-  },
-  toAmino(message: GetConfigurationDescriptorResponse): GetConfigurationDescriptorResponseAmino {
-    const obj: any = {};
-    obj.config = message.config ? ConfigurationDescriptor.toAmino(message.config) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetConfigurationDescriptorResponseAminoMsg): GetConfigurationDescriptorResponse {
-    return GetConfigurationDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetConfigurationDescriptorResponse): GetConfigurationDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetConfigurationDescriptorResponse",
-      value: GetConfigurationDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetConfigurationDescriptorResponseProtoMsg): GetConfigurationDescriptorResponse {
-    return GetConfigurationDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetConfigurationDescriptorResponse): Uint8Array {
-    return GetConfigurationDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetConfigurationDescriptorResponse): GetConfigurationDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetConfigurationDescriptorResponse",
-      value: GetConfigurationDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetQueryServicesDescriptorRequest(): GetQueryServicesDescriptorRequest {
-  return {};
-}
-export const GetQueryServicesDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorRequest",
-  aminoType: "cosmos-sdk/GetQueryServicesDescriptorRequest",
-  encode(_: GetQueryServicesDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetQueryServicesDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetQueryServicesDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetQueryServicesDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetQueryServicesDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetQueryServicesDescriptorRequest>): GetQueryServicesDescriptorRequest {
-    const message = createBaseGetQueryServicesDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetQueryServicesDescriptorRequestSDKType): GetQueryServicesDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetQueryServicesDescriptorRequest): GetQueryServicesDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetQueryServicesDescriptorRequestAmino): GetQueryServicesDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetQueryServicesDescriptorRequest): GetQueryServicesDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetQueryServicesDescriptorRequestAminoMsg): GetQueryServicesDescriptorRequest {
-    return GetQueryServicesDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetQueryServicesDescriptorRequest): GetQueryServicesDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetQueryServicesDescriptorRequest",
-      value: GetQueryServicesDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetQueryServicesDescriptorRequestProtoMsg): GetQueryServicesDescriptorRequest {
-    return GetQueryServicesDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetQueryServicesDescriptorRequest): Uint8Array {
-    return GetQueryServicesDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetQueryServicesDescriptorRequest): GetQueryServicesDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorRequest",
-      value: GetQueryServicesDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetQueryServicesDescriptorResponse(): GetQueryServicesDescriptorResponse {
-  return {
-    queries: QueryServicesDescriptor.fromPartial({})
-  };
-}
-export const GetQueryServicesDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorResponse",
-  aminoType: "cosmos-sdk/GetQueryServicesDescriptorResponse",
-  encode(message: GetQueryServicesDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.queries !== undefined) {
-      QueryServicesDescriptor.encode(message.queries, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetQueryServicesDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetQueryServicesDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.queries = QueryServicesDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetQueryServicesDescriptorResponse {
-    return {
-      queries: isSet(object.queries) ? QueryServicesDescriptor.fromJSON(object.queries) : undefined
-    };
-  },
-  toJSON(message: GetQueryServicesDescriptorResponse): unknown {
-    const obj: any = {};
-    message.queries !== undefined && (obj.queries = message.queries ? QueryServicesDescriptor.toJSON(message.queries) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetQueryServicesDescriptorResponse>): GetQueryServicesDescriptorResponse {
-    const message = createBaseGetQueryServicesDescriptorResponse();
-    message.queries = object.queries !== undefined && object.queries !== null ? QueryServicesDescriptor.fromPartial(object.queries) : undefined;
-    return message;
-  },
-  fromSDK(object: GetQueryServicesDescriptorResponseSDKType): GetQueryServicesDescriptorResponse {
-    return {
-      queries: object.queries ? QueryServicesDescriptor.fromSDK(object.queries) : undefined
-    };
-  },
-  toSDK(message: GetQueryServicesDescriptorResponse): GetQueryServicesDescriptorResponseSDKType {
-    const obj: any = {};
-    message.queries !== undefined && (obj.queries = message.queries ? QueryServicesDescriptor.toSDK(message.queries) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetQueryServicesDescriptorResponseAmino): GetQueryServicesDescriptorResponse {
-    return {
-      queries: object?.queries ? QueryServicesDescriptor.fromAmino(object.queries) : undefined
-    };
-  },
-  toAmino(message: GetQueryServicesDescriptorResponse): GetQueryServicesDescriptorResponseAmino {
-    const obj: any = {};
-    obj.queries = message.queries ? QueryServicesDescriptor.toAmino(message.queries) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetQueryServicesDescriptorResponseAminoMsg): GetQueryServicesDescriptorResponse {
-    return GetQueryServicesDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetQueryServicesDescriptorResponse): GetQueryServicesDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetQueryServicesDescriptorResponse",
-      value: GetQueryServicesDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetQueryServicesDescriptorResponseProtoMsg): GetQueryServicesDescriptorResponse {
-    return GetQueryServicesDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetQueryServicesDescriptorResponse): Uint8Array {
-    return GetQueryServicesDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetQueryServicesDescriptorResponse): GetQueryServicesDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetQueryServicesDescriptorResponse",
-      value: GetQueryServicesDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetTxDescriptorRequest(): GetTxDescriptorRequest {
-  return {};
-}
-export const GetTxDescriptorRequest = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorRequest",
-  aminoType: "cosmos-sdk/GetTxDescriptorRequest",
-  encode(_: GetTxDescriptorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxDescriptorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxDescriptorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetTxDescriptorRequest {
-    return {};
-  },
-  toJSON(_: GetTxDescriptorRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetTxDescriptorRequest>): GetTxDescriptorRequest {
-    const message = createBaseGetTxDescriptorRequest();
-    return message;
-  },
-  fromSDK(_: GetTxDescriptorRequestSDKType): GetTxDescriptorRequest {
-    return {};
-  },
-  toSDK(_: GetTxDescriptorRequest): GetTxDescriptorRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetTxDescriptorRequestAmino): GetTxDescriptorRequest {
-    return {};
-  },
-  toAmino(_: GetTxDescriptorRequest): GetTxDescriptorRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetTxDescriptorRequestAminoMsg): GetTxDescriptorRequest {
-    return GetTxDescriptorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxDescriptorRequest): GetTxDescriptorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxDescriptorRequest",
-      value: GetTxDescriptorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxDescriptorRequestProtoMsg): GetTxDescriptorRequest {
-    return GetTxDescriptorRequest.decode(message.value);
-  },
-  toProto(message: GetTxDescriptorRequest): Uint8Array {
-    return GetTxDescriptorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxDescriptorRequest): GetTxDescriptorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorRequest",
-      value: GetTxDescriptorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetTxDescriptorResponse(): GetTxDescriptorResponse {
-  return {
-    tx: TxDescriptor.fromPartial({})
-  };
-}
-export const GetTxDescriptorResponse = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorResponse",
-  aminoType: "cosmos-sdk/GetTxDescriptorResponse",
-  encode(message: GetTxDescriptorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tx !== undefined) {
-      TxDescriptor.encode(message.tx, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxDescriptorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxDescriptorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tx = TxDescriptor.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetTxDescriptorResponse {
-    return {
-      tx: isSet(object.tx) ? TxDescriptor.fromJSON(object.tx) : undefined
-    };
-  },
-  toJSON(message: GetTxDescriptorResponse): unknown {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? TxDescriptor.toJSON(message.tx) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetTxDescriptorResponse>): GetTxDescriptorResponse {
-    const message = createBaseGetTxDescriptorResponse();
-    message.tx = object.tx !== undefined && object.tx !== null ? TxDescriptor.fromPartial(object.tx) : undefined;
-    return message;
-  },
-  fromSDK(object: GetTxDescriptorResponseSDKType): GetTxDescriptorResponse {
-    return {
-      tx: object.tx ? TxDescriptor.fromSDK(object.tx) : undefined
-    };
-  },
-  toSDK(message: GetTxDescriptorResponse): GetTxDescriptorResponseSDKType {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? TxDescriptor.toSDK(message.tx) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetTxDescriptorResponseAmino): GetTxDescriptorResponse {
-    return {
-      tx: object?.tx ? TxDescriptor.fromAmino(object.tx) : undefined
-    };
-  },
-  toAmino(message: GetTxDescriptorResponse): GetTxDescriptorResponseAmino {
-    const obj: any = {};
-    obj.tx = message.tx ? TxDescriptor.toAmino(message.tx) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetTxDescriptorResponseAminoMsg): GetTxDescriptorResponse {
-    return GetTxDescriptorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxDescriptorResponse): GetTxDescriptorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxDescriptorResponse",
-      value: GetTxDescriptorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxDescriptorResponseProtoMsg): GetTxDescriptorResponse {
-    return GetTxDescriptorResponse.decode(message.value);
-  },
-  toProto(message: GetTxDescriptorResponse): Uint8Array {
-    return GetTxDescriptorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxDescriptorResponse): GetTxDescriptorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.GetTxDescriptorResponse",
-      value: GetTxDescriptorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryServicesDescriptor(): QueryServicesDescriptor {
-  return {
-    queryServices: []
-  };
-}
-export const QueryServicesDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServicesDescriptor",
-  aminoType: "cosmos-sdk/QueryServicesDescriptor",
-  encode(message: QueryServicesDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.queryServices) {
-      QueryServiceDescriptor.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryServicesDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryServicesDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.queryServices.push(QueryServiceDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryServicesDescriptor {
-    return {
-      queryServices: Array.isArray(object?.queryServices) ? object.queryServices.map((e: any) => QueryServiceDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryServicesDescriptor): unknown {
-    const obj: any = {};
-    if (message.queryServices) {
-      obj.queryServices = message.queryServices.map(e => e ? QueryServiceDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.queryServices = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryServicesDescriptor>): QueryServicesDescriptor {
-    const message = createBaseQueryServicesDescriptor();
-    message.queryServices = object.queryServices?.map(e => QueryServiceDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryServicesDescriptorSDKType): QueryServicesDescriptor {
-    return {
-      queryServices: Array.isArray(object?.query_services) ? object.query_services.map((e: any) => QueryServiceDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryServicesDescriptor): QueryServicesDescriptorSDKType {
-    const obj: any = {};
-    if (message.queryServices) {
-      obj.query_services = message.queryServices.map(e => e ? QueryServiceDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.query_services = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryServicesDescriptorAmino): QueryServicesDescriptor {
-    return {
-      queryServices: Array.isArray(object?.query_services) ? object.query_services.map((e: any) => QueryServiceDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryServicesDescriptor): QueryServicesDescriptorAmino {
-    const obj: any = {};
-    if (message.queryServices) {
-      obj.query_services = message.queryServices.map(e => e ? QueryServiceDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.query_services = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryServicesDescriptorAminoMsg): QueryServicesDescriptor {
-    return QueryServicesDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryServicesDescriptor): QueryServicesDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryServicesDescriptor",
-      value: QueryServicesDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryServicesDescriptorProtoMsg): QueryServicesDescriptor {
-    return QueryServicesDescriptor.decode(message.value);
-  },
-  toProto(message: QueryServicesDescriptor): Uint8Array {
-    return QueryServicesDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: QueryServicesDescriptor): QueryServicesDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServicesDescriptor",
-      value: QueryServicesDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryServiceDescriptor(): QueryServiceDescriptor {
-  return {
-    fullname: "",
-    isModule: false,
-    methods: []
-  };
-}
-export const QueryServiceDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServiceDescriptor",
-  aminoType: "cosmos-sdk/QueryServiceDescriptor",
-  encode(message: QueryServiceDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fullname !== "") {
-      writer.uint32(10).string(message.fullname);
-    }
-    if (message.isModule === true) {
-      writer.uint32(16).bool(message.isModule);
-    }
-    for (const v of message.methods) {
-      QueryMethodDescriptor.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryServiceDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryServiceDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fullname = reader.string();
-          break;
-        case 2:
-          message.isModule = reader.bool();
-          break;
-        case 3:
-          message.methods.push(QueryMethodDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryServiceDescriptor {
-    return {
-      fullname: isSet(object.fullname) ? String(object.fullname) : "",
-      isModule: isSet(object.isModule) ? Boolean(object.isModule) : false,
-      methods: Array.isArray(object?.methods) ? object.methods.map((e: any) => QueryMethodDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryServiceDescriptor): unknown {
-    const obj: any = {};
-    message.fullname !== undefined && (obj.fullname = message.fullname);
-    message.isModule !== undefined && (obj.isModule = message.isModule);
-    if (message.methods) {
-      obj.methods = message.methods.map(e => e ? QueryMethodDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.methods = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryServiceDescriptor>): QueryServiceDescriptor {
-    const message = createBaseQueryServiceDescriptor();
-    message.fullname = object.fullname ?? "";
-    message.isModule = object.isModule ?? false;
-    message.methods = object.methods?.map(e => QueryMethodDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryServiceDescriptorSDKType): QueryServiceDescriptor {
-    return {
-      fullname: object?.fullname,
-      isModule: object?.is_module,
-      methods: Array.isArray(object?.methods) ? object.methods.map((e: any) => QueryMethodDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryServiceDescriptor): QueryServiceDescriptorSDKType {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    obj.is_module = message.isModule;
-    if (message.methods) {
-      obj.methods = message.methods.map(e => e ? QueryMethodDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.methods = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryServiceDescriptorAmino): QueryServiceDescriptor {
-    return {
-      fullname: object.fullname,
-      isModule: object.is_module,
-      methods: Array.isArray(object?.methods) ? object.methods.map((e: any) => QueryMethodDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryServiceDescriptor): QueryServiceDescriptorAmino {
-    const obj: any = {};
-    obj.fullname = message.fullname;
-    obj.is_module = message.isModule;
-    if (message.methods) {
-      obj.methods = message.methods.map(e => e ? QueryMethodDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.methods = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryServiceDescriptorAminoMsg): QueryServiceDescriptor {
-    return QueryServiceDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryServiceDescriptor): QueryServiceDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryServiceDescriptor",
-      value: QueryServiceDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryServiceDescriptorProtoMsg): QueryServiceDescriptor {
-    return QueryServiceDescriptor.decode(message.value);
-  },
-  toProto(message: QueryServiceDescriptor): Uint8Array {
-    return QueryServiceDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: QueryServiceDescriptor): QueryServiceDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.QueryServiceDescriptor",
-      value: QueryServiceDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryMethodDescriptor(): QueryMethodDescriptor {
-  return {
-    name: "",
-    fullQueryPath: ""
-  };
-}
-export const QueryMethodDescriptor = {
-  typeUrl: "/cosmos.base.reflection.v2alpha1.QueryMethodDescriptor",
-  aminoType: "cosmos-sdk/QueryMethodDescriptor",
-  encode(message: QueryMethodDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.fullQueryPath !== "") {
-      writer.uint32(18).string(message.fullQueryPath);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryMethodDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryMethodDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.fullQueryPath = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryMethodDescriptor {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      fullQueryPath: isSet(object.fullQueryPath) ? String(object.fullQueryPath) : ""
-    };
-  },
-  toJSON(message: QueryMethodDescriptor): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.fullQueryPath !== undefined && (obj.fullQueryPath = message.fullQueryPath);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryMethodDescriptor>): QueryMethodDescriptor {
-    const message = createBaseQueryMethodDescriptor();
-    message.name = object.name ?? "";
-    message.fullQueryPath = object.fullQueryPath ?? "";
-    return message;
-  },
-  fromSDK(object: QueryMethodDescriptorSDKType): QueryMethodDescriptor {
-    return {
-      name: object?.name,
-      fullQueryPath: object?.full_query_path
-    };
-  },
-  toSDK(message: QueryMethodDescriptor): QueryMethodDescriptorSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.full_query_path = message.fullQueryPath;
-    return obj;
-  },
-  fromAmino(object: QueryMethodDescriptorAmino): QueryMethodDescriptor {
-    return {
-      name: object.name,
-      fullQueryPath: object.full_query_path
-    };
-  },
-  toAmino(message: QueryMethodDescriptor): QueryMethodDescriptorAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.full_query_path = message.fullQueryPath;
-    return obj;
-  },
-  fromAminoMsg(object: QueryMethodDescriptorAminoMsg): QueryMethodDescriptor {
-    return QueryMethodDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryMethodDescriptor): QueryMethodDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryMethodDescriptor",
-      value: QueryMethodDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryMethodDescriptorProtoMsg): QueryMethodDescriptor {
-    return QueryMethodDescriptor.decode(message.value);
-  },
-  toProto(message: QueryMethodDescriptor): Uint8Array {
-    return QueryMethodDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: QueryMethodDescriptor): QueryMethodDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.reflection.v2alpha1.QueryMethodDescriptor",
-      value: QueryMethodDescriptor.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/snapshots/v1beta1/snapshot.ts b/examples/injective/src/codegen/cosmos/base/snapshots/v1beta1/snapshot.ts
deleted file mode 100644
index 0d340164..00000000
--- a/examples/injective/src/codegen/cosmos/base/snapshots/v1beta1/snapshot.ts
+++ /dev/null
@@ -1,1242 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../../helpers";
-/** Snapshot contains Tendermint state sync snapshot info. */
-export interface Snapshot {
-  height: bigint;
-  format: number;
-  chunks: number;
-  hash: Uint8Array;
-  metadata: Metadata | undefined;
-}
-export interface SnapshotProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.Snapshot";
-  value: Uint8Array;
-}
-/** Snapshot contains Tendermint state sync snapshot info. */
-export interface SnapshotAmino {
-  height: string;
-  format: number;
-  chunks: number;
-  hash: Uint8Array;
-  metadata?: MetadataAmino | undefined;
-}
-export interface SnapshotAminoMsg {
-  type: "cosmos-sdk/Snapshot";
-  value: SnapshotAmino;
-}
-/** Snapshot contains Tendermint state sync snapshot info. */
-export interface SnapshotSDKType {
-  height: bigint;
-  format: number;
-  chunks: number;
-  hash: Uint8Array;
-  metadata: MetadataSDKType | undefined;
-}
-/** Metadata contains SDK-specific snapshot metadata. */
-export interface Metadata {
-  /** SHA-256 chunk hashes */
-  chunkHashes: Uint8Array[];
-}
-export interface MetadataProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.Metadata";
-  value: Uint8Array;
-}
-/** Metadata contains SDK-specific snapshot metadata. */
-export interface MetadataAmino {
-  /** SHA-256 chunk hashes */
-  chunk_hashes: Uint8Array[];
-}
-export interface MetadataAminoMsg {
-  type: "cosmos-sdk/Metadata";
-  value: MetadataAmino;
-}
-/** Metadata contains SDK-specific snapshot metadata. */
-export interface MetadataSDKType {
-  chunk_hashes: Uint8Array[];
-}
-/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */
-export interface SnapshotItem {
-  store?: SnapshotStoreItem | undefined;
-  iavl?: SnapshotIAVLItem | undefined;
-  extension?: SnapshotExtensionMeta | undefined;
-  extensionPayload?: SnapshotExtensionPayload | undefined;
-  kv?: SnapshotKVItem | undefined;
-  schema?: SnapshotSchema | undefined;
-}
-export interface SnapshotItemProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotItem";
-  value: Uint8Array;
-}
-/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */
-export interface SnapshotItemAmino {
-  store?: SnapshotStoreItemAmino | undefined;
-  iavl?: SnapshotIAVLItemAmino | undefined;
-  extension?: SnapshotExtensionMetaAmino | undefined;
-  extension_payload?: SnapshotExtensionPayloadAmino | undefined;
-  kv?: SnapshotKVItemAmino | undefined;
-  schema?: SnapshotSchemaAmino | undefined;
-}
-export interface SnapshotItemAminoMsg {
-  type: "cosmos-sdk/SnapshotItem";
-  value: SnapshotItemAmino;
-}
-/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */
-export interface SnapshotItemSDKType {
-  store?: SnapshotStoreItemSDKType | undefined;
-  iavl?: SnapshotIAVLItemSDKType | undefined;
-  extension?: SnapshotExtensionMetaSDKType | undefined;
-  extension_payload?: SnapshotExtensionPayloadSDKType | undefined;
-  kv?: SnapshotKVItemSDKType | undefined;
-  schema?: SnapshotSchemaSDKType | undefined;
-}
-/** SnapshotStoreItem contains metadata about a snapshotted store. */
-export interface SnapshotStoreItem {
-  name: string;
-}
-export interface SnapshotStoreItemProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotStoreItem";
-  value: Uint8Array;
-}
-/** SnapshotStoreItem contains metadata about a snapshotted store. */
-export interface SnapshotStoreItemAmino {
-  name: string;
-}
-export interface SnapshotStoreItemAminoMsg {
-  type: "cosmos-sdk/SnapshotStoreItem";
-  value: SnapshotStoreItemAmino;
-}
-/** SnapshotStoreItem contains metadata about a snapshotted store. */
-export interface SnapshotStoreItemSDKType {
-  name: string;
-}
-/** SnapshotIAVLItem is an exported IAVL node. */
-export interface SnapshotIAVLItem {
-  key: Uint8Array;
-  value: Uint8Array;
-  /** version is block height */
-  version: bigint;
-  /** height is depth of the tree. */
-  height: number;
-}
-export interface SnapshotIAVLItemProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotIAVLItem";
-  value: Uint8Array;
-}
-/** SnapshotIAVLItem is an exported IAVL node. */
-export interface SnapshotIAVLItemAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-  /** version is block height */
-  version: string;
-  /** height is depth of the tree. */
-  height: number;
-}
-export interface SnapshotIAVLItemAminoMsg {
-  type: "cosmos-sdk/SnapshotIAVLItem";
-  value: SnapshotIAVLItemAmino;
-}
-/** SnapshotIAVLItem is an exported IAVL node. */
-export interface SnapshotIAVLItemSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-  version: bigint;
-  height: number;
-}
-/** SnapshotExtensionMeta contains metadata about an external snapshotter. */
-export interface SnapshotExtensionMeta {
-  name: string;
-  format: number;
-}
-export interface SnapshotExtensionMetaProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionMeta";
-  value: Uint8Array;
-}
-/** SnapshotExtensionMeta contains metadata about an external snapshotter. */
-export interface SnapshotExtensionMetaAmino {
-  name: string;
-  format: number;
-}
-export interface SnapshotExtensionMetaAminoMsg {
-  type: "cosmos-sdk/SnapshotExtensionMeta";
-  value: SnapshotExtensionMetaAmino;
-}
-/** SnapshotExtensionMeta contains metadata about an external snapshotter. */
-export interface SnapshotExtensionMetaSDKType {
-  name: string;
-  format: number;
-}
-/** SnapshotExtensionPayload contains payloads of an external snapshotter. */
-export interface SnapshotExtensionPayload {
-  payload: Uint8Array;
-}
-export interface SnapshotExtensionPayloadProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionPayload";
-  value: Uint8Array;
-}
-/** SnapshotExtensionPayload contains payloads of an external snapshotter. */
-export interface SnapshotExtensionPayloadAmino {
-  payload: Uint8Array;
-}
-export interface SnapshotExtensionPayloadAminoMsg {
-  type: "cosmos-sdk/SnapshotExtensionPayload";
-  value: SnapshotExtensionPayloadAmino;
-}
-/** SnapshotExtensionPayload contains payloads of an external snapshotter. */
-export interface SnapshotExtensionPayloadSDKType {
-  payload: Uint8Array;
-}
-/** SnapshotKVItem is an exported Key/Value Pair */
-export interface SnapshotKVItem {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface SnapshotKVItemProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotKVItem";
-  value: Uint8Array;
-}
-/** SnapshotKVItem is an exported Key/Value Pair */
-export interface SnapshotKVItemAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface SnapshotKVItemAminoMsg {
-  type: "cosmos-sdk/SnapshotKVItem";
-  value: SnapshotKVItemAmino;
-}
-/** SnapshotKVItem is an exported Key/Value Pair */
-export interface SnapshotKVItemSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-/** SnapshotSchema is an exported schema of smt store */
-export interface SnapshotSchema {
-  keys: Uint8Array[];
-}
-export interface SnapshotSchemaProtoMsg {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotSchema";
-  value: Uint8Array;
-}
-/** SnapshotSchema is an exported schema of smt store */
-export interface SnapshotSchemaAmino {
-  keys: Uint8Array[];
-}
-export interface SnapshotSchemaAminoMsg {
-  type: "cosmos-sdk/SnapshotSchema";
-  value: SnapshotSchemaAmino;
-}
-/** SnapshotSchema is an exported schema of smt store */
-export interface SnapshotSchemaSDKType {
-  keys: Uint8Array[];
-}
-function createBaseSnapshot(): Snapshot {
-  return {
-    height: BigInt(0),
-    format: 0,
-    chunks: 0,
-    hash: new Uint8Array(),
-    metadata: Metadata.fromPartial({})
-  };
-}
-export const Snapshot = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.Snapshot",
-  aminoType: "cosmos-sdk/Snapshot",
-  encode(message: Snapshot, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).uint64(message.height);
-    }
-    if (message.format !== 0) {
-      writer.uint32(16).uint32(message.format);
-    }
-    if (message.chunks !== 0) {
-      writer.uint32(24).uint32(message.chunks);
-    }
-    if (message.hash.length !== 0) {
-      writer.uint32(34).bytes(message.hash);
-    }
-    if (message.metadata !== undefined) {
-      Metadata.encode(message.metadata, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Snapshot {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshot();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.uint64();
-          break;
-        case 2:
-          message.format = reader.uint32();
-          break;
-        case 3:
-          message.chunks = reader.uint32();
-          break;
-        case 4:
-          message.hash = reader.bytes();
-          break;
-        case 5:
-          message.metadata = Metadata.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Snapshot {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      format: isSet(object.format) ? Number(object.format) : 0,
-      chunks: isSet(object.chunks) ? Number(object.chunks) : 0,
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(),
-      metadata: isSet(object.metadata) ? Metadata.fromJSON(object.metadata) : undefined
-    };
-  },
-  toJSON(message: Snapshot): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.format !== undefined && (obj.format = Math.round(message.format));
-    message.chunks !== undefined && (obj.chunks = Math.round(message.chunks));
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toJSON(message.metadata) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Snapshot>): Snapshot {
-    const message = createBaseSnapshot();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.format = object.format ?? 0;
-    message.chunks = object.chunks ?? 0;
-    message.hash = object.hash ?? new Uint8Array();
-    message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined;
-    return message;
-  },
-  fromSDK(object: SnapshotSDKType): Snapshot {
-    return {
-      height: object?.height,
-      format: object?.format,
-      chunks: object?.chunks,
-      hash: object?.hash,
-      metadata: object.metadata ? Metadata.fromSDK(object.metadata) : undefined
-    };
-  },
-  toSDK(message: Snapshot): SnapshotSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.format = message.format;
-    obj.chunks = message.chunks;
-    obj.hash = message.hash;
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toSDK(message.metadata) : undefined);
-    return obj;
-  },
-  fromAmino(object: SnapshotAmino): Snapshot {
-    return {
-      height: BigInt(object.height),
-      format: object.format,
-      chunks: object.chunks,
-      hash: object.hash,
-      metadata: object?.metadata ? Metadata.fromAmino(object.metadata) : undefined
-    };
-  },
-  toAmino(message: Snapshot): SnapshotAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.format = message.format;
-    obj.chunks = message.chunks;
-    obj.hash = message.hash;
-    obj.metadata = message.metadata ? Metadata.toAmino(message.metadata) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotAminoMsg): Snapshot {
-    return Snapshot.fromAmino(object.value);
-  },
-  toAminoMsg(message: Snapshot): SnapshotAminoMsg {
-    return {
-      type: "cosmos-sdk/Snapshot",
-      value: Snapshot.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotProtoMsg): Snapshot {
-    return Snapshot.decode(message.value);
-  },
-  toProto(message: Snapshot): Uint8Array {
-    return Snapshot.encode(message).finish();
-  },
-  toProtoMsg(message: Snapshot): SnapshotProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.Snapshot",
-      value: Snapshot.encode(message).finish()
-    };
-  }
-};
-function createBaseMetadata(): Metadata {
-  return {
-    chunkHashes: []
-  };
-}
-export const Metadata = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.Metadata",
-  aminoType: "cosmos-sdk/Metadata",
-  encode(message: Metadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.chunkHashes) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Metadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.chunkHashes.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Metadata {
-    return {
-      chunkHashes: Array.isArray(object?.chunkHashes) ? object.chunkHashes.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: Metadata): unknown {
-    const obj: any = {};
-    if (message.chunkHashes) {
-      obj.chunkHashes = message.chunkHashes.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.chunkHashes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Metadata>): Metadata {
-    const message = createBaseMetadata();
-    message.chunkHashes = object.chunkHashes?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: MetadataSDKType): Metadata {
-    return {
-      chunkHashes: Array.isArray(object?.chunk_hashes) ? object.chunk_hashes.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Metadata): MetadataSDKType {
-    const obj: any = {};
-    if (message.chunkHashes) {
-      obj.chunk_hashes = message.chunkHashes.map(e => e);
-    } else {
-      obj.chunk_hashes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MetadataAmino): Metadata {
-    return {
-      chunkHashes: Array.isArray(object?.chunk_hashes) ? object.chunk_hashes.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Metadata): MetadataAmino {
-    const obj: any = {};
-    if (message.chunkHashes) {
-      obj.chunk_hashes = message.chunkHashes.map(e => e);
-    } else {
-      obj.chunk_hashes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MetadataAminoMsg): Metadata {
-    return Metadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: Metadata): MetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/Metadata",
-      value: Metadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MetadataProtoMsg): Metadata {
-    return Metadata.decode(message.value);
-  },
-  toProto(message: Metadata): Uint8Array {
-    return Metadata.encode(message).finish();
-  },
-  toProtoMsg(message: Metadata): MetadataProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.Metadata",
-      value: Metadata.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotItem(): SnapshotItem {
-  return {
-    store: undefined,
-    iavl: undefined,
-    extension: undefined,
-    extensionPayload: undefined,
-    kv: undefined,
-    schema: undefined
-  };
-}
-export const SnapshotItem = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotItem",
-  aminoType: "cosmos-sdk/SnapshotItem",
-  encode(message: SnapshotItem, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.store !== undefined) {
-      SnapshotStoreItem.encode(message.store, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.iavl !== undefined) {
-      SnapshotIAVLItem.encode(message.iavl, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.extension !== undefined) {
-      SnapshotExtensionMeta.encode(message.extension, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.extensionPayload !== undefined) {
-      SnapshotExtensionPayload.encode(message.extensionPayload, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.kv !== undefined) {
-      SnapshotKVItem.encode(message.kv, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.schema !== undefined) {
-      SnapshotSchema.encode(message.schema, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotItem {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotItem();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.store = SnapshotStoreItem.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.iavl = SnapshotIAVLItem.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.extension = SnapshotExtensionMeta.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.extensionPayload = SnapshotExtensionPayload.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.kv = SnapshotKVItem.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.schema = SnapshotSchema.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotItem {
-    return {
-      store: isSet(object.store) ? SnapshotStoreItem.fromJSON(object.store) : undefined,
-      iavl: isSet(object.iavl) ? SnapshotIAVLItem.fromJSON(object.iavl) : undefined,
-      extension: isSet(object.extension) ? SnapshotExtensionMeta.fromJSON(object.extension) : undefined,
-      extensionPayload: isSet(object.extensionPayload) ? SnapshotExtensionPayload.fromJSON(object.extensionPayload) : undefined,
-      kv: isSet(object.kv) ? SnapshotKVItem.fromJSON(object.kv) : undefined,
-      schema: isSet(object.schema) ? SnapshotSchema.fromJSON(object.schema) : undefined
-    };
-  },
-  toJSON(message: SnapshotItem): unknown {
-    const obj: any = {};
-    message.store !== undefined && (obj.store = message.store ? SnapshotStoreItem.toJSON(message.store) : undefined);
-    message.iavl !== undefined && (obj.iavl = message.iavl ? SnapshotIAVLItem.toJSON(message.iavl) : undefined);
-    message.extension !== undefined && (obj.extension = message.extension ? SnapshotExtensionMeta.toJSON(message.extension) : undefined);
-    message.extensionPayload !== undefined && (obj.extensionPayload = message.extensionPayload ? SnapshotExtensionPayload.toJSON(message.extensionPayload) : undefined);
-    message.kv !== undefined && (obj.kv = message.kv ? SnapshotKVItem.toJSON(message.kv) : undefined);
-    message.schema !== undefined && (obj.schema = message.schema ? SnapshotSchema.toJSON(message.schema) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotItem>): SnapshotItem {
-    const message = createBaseSnapshotItem();
-    message.store = object.store !== undefined && object.store !== null ? SnapshotStoreItem.fromPartial(object.store) : undefined;
-    message.iavl = object.iavl !== undefined && object.iavl !== null ? SnapshotIAVLItem.fromPartial(object.iavl) : undefined;
-    message.extension = object.extension !== undefined && object.extension !== null ? SnapshotExtensionMeta.fromPartial(object.extension) : undefined;
-    message.extensionPayload = object.extensionPayload !== undefined && object.extensionPayload !== null ? SnapshotExtensionPayload.fromPartial(object.extensionPayload) : undefined;
-    message.kv = object.kv !== undefined && object.kv !== null ? SnapshotKVItem.fromPartial(object.kv) : undefined;
-    message.schema = object.schema !== undefined && object.schema !== null ? SnapshotSchema.fromPartial(object.schema) : undefined;
-    return message;
-  },
-  fromSDK(object: SnapshotItemSDKType): SnapshotItem {
-    return {
-      store: object.store ? SnapshotStoreItem.fromSDK(object.store) : undefined,
-      iavl: object.iavl ? SnapshotIAVLItem.fromSDK(object.iavl) : undefined,
-      extension: object.extension ? SnapshotExtensionMeta.fromSDK(object.extension) : undefined,
-      extensionPayload: object.extension_payload ? SnapshotExtensionPayload.fromSDK(object.extension_payload) : undefined,
-      kv: object.kv ? SnapshotKVItem.fromSDK(object.kv) : undefined,
-      schema: object.schema ? SnapshotSchema.fromSDK(object.schema) : undefined
-    };
-  },
-  toSDK(message: SnapshotItem): SnapshotItemSDKType {
-    const obj: any = {};
-    message.store !== undefined && (obj.store = message.store ? SnapshotStoreItem.toSDK(message.store) : undefined);
-    message.iavl !== undefined && (obj.iavl = message.iavl ? SnapshotIAVLItem.toSDK(message.iavl) : undefined);
-    message.extension !== undefined && (obj.extension = message.extension ? SnapshotExtensionMeta.toSDK(message.extension) : undefined);
-    message.extensionPayload !== undefined && (obj.extension_payload = message.extensionPayload ? SnapshotExtensionPayload.toSDK(message.extensionPayload) : undefined);
-    message.kv !== undefined && (obj.kv = message.kv ? SnapshotKVItem.toSDK(message.kv) : undefined);
-    message.schema !== undefined && (obj.schema = message.schema ? SnapshotSchema.toSDK(message.schema) : undefined);
-    return obj;
-  },
-  fromAmino(object: SnapshotItemAmino): SnapshotItem {
-    return {
-      store: object?.store ? SnapshotStoreItem.fromAmino(object.store) : undefined,
-      iavl: object?.iavl ? SnapshotIAVLItem.fromAmino(object.iavl) : undefined,
-      extension: object?.extension ? SnapshotExtensionMeta.fromAmino(object.extension) : undefined,
-      extensionPayload: object?.extension_payload ? SnapshotExtensionPayload.fromAmino(object.extension_payload) : undefined,
-      kv: object?.kv ? SnapshotKVItem.fromAmino(object.kv) : undefined,
-      schema: object?.schema ? SnapshotSchema.fromAmino(object.schema) : undefined
-    };
-  },
-  toAmino(message: SnapshotItem): SnapshotItemAmino {
-    const obj: any = {};
-    obj.store = message.store ? SnapshotStoreItem.toAmino(message.store) : undefined;
-    obj.iavl = message.iavl ? SnapshotIAVLItem.toAmino(message.iavl) : undefined;
-    obj.extension = message.extension ? SnapshotExtensionMeta.toAmino(message.extension) : undefined;
-    obj.extension_payload = message.extensionPayload ? SnapshotExtensionPayload.toAmino(message.extensionPayload) : undefined;
-    obj.kv = message.kv ? SnapshotKVItem.toAmino(message.kv) : undefined;
-    obj.schema = message.schema ? SnapshotSchema.toAmino(message.schema) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotItemAminoMsg): SnapshotItem {
-    return SnapshotItem.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotItem): SnapshotItemAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotItem",
-      value: SnapshotItem.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotItemProtoMsg): SnapshotItem {
-    return SnapshotItem.decode(message.value);
-  },
-  toProto(message: SnapshotItem): Uint8Array {
-    return SnapshotItem.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotItem): SnapshotItemProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotItem",
-      value: SnapshotItem.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotStoreItem(): SnapshotStoreItem {
-  return {
-    name: ""
-  };
-}
-export const SnapshotStoreItem = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotStoreItem",
-  aminoType: "cosmos-sdk/SnapshotStoreItem",
-  encode(message: SnapshotStoreItem, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotStoreItem {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotStoreItem();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotStoreItem {
-    return {
-      name: isSet(object.name) ? String(object.name) : ""
-    };
-  },
-  toJSON(message: SnapshotStoreItem): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotStoreItem>): SnapshotStoreItem {
-    const message = createBaseSnapshotStoreItem();
-    message.name = object.name ?? "";
-    return message;
-  },
-  fromSDK(object: SnapshotStoreItemSDKType): SnapshotStoreItem {
-    return {
-      name: object?.name
-    };
-  },
-  toSDK(message: SnapshotStoreItem): SnapshotStoreItemSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    return obj;
-  },
-  fromAmino(object: SnapshotStoreItemAmino): SnapshotStoreItem {
-    return {
-      name: object.name
-    };
-  },
-  toAmino(message: SnapshotStoreItem): SnapshotStoreItemAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotStoreItemAminoMsg): SnapshotStoreItem {
-    return SnapshotStoreItem.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotStoreItem): SnapshotStoreItemAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotStoreItem",
-      value: SnapshotStoreItem.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotStoreItemProtoMsg): SnapshotStoreItem {
-    return SnapshotStoreItem.decode(message.value);
-  },
-  toProto(message: SnapshotStoreItem): Uint8Array {
-    return SnapshotStoreItem.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotStoreItem): SnapshotStoreItemProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotStoreItem",
-      value: SnapshotStoreItem.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotIAVLItem(): SnapshotIAVLItem {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array(),
-    version: BigInt(0),
-    height: 0
-  };
-}
-export const SnapshotIAVLItem = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotIAVLItem",
-  aminoType: "cosmos-sdk/SnapshotIAVLItem",
-  encode(message: SnapshotIAVLItem, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    if (message.version !== BigInt(0)) {
-      writer.uint32(24).int64(message.version);
-    }
-    if (message.height !== 0) {
-      writer.uint32(32).int32(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotIAVLItem {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotIAVLItem();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        case 3:
-          message.version = reader.int64();
-          break;
-        case 4:
-          message.height = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotIAVLItem {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(),
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0),
-      height: isSet(object.height) ? Number(object.height) : 0
-    };
-  },
-  toJSON(message: SnapshotIAVLItem): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    message.height !== undefined && (obj.height = Math.round(message.height));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotIAVLItem>): SnapshotIAVLItem {
-    const message = createBaseSnapshotIAVLItem();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    message.height = object.height ?? 0;
-    return message;
-  },
-  fromSDK(object: SnapshotIAVLItemSDKType): SnapshotIAVLItem {
-    return {
-      key: object?.key,
-      value: object?.value,
-      version: object?.version,
-      height: object?.height
-    };
-  },
-  toSDK(message: SnapshotIAVLItem): SnapshotIAVLItemSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.version = message.version;
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: SnapshotIAVLItemAmino): SnapshotIAVLItem {
-    return {
-      key: object.key,
-      value: object.value,
-      version: BigInt(object.version),
-      height: object.height
-    };
-  },
-  toAmino(message: SnapshotIAVLItem): SnapshotIAVLItemAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.version = message.version ? message.version.toString() : undefined;
-    obj.height = message.height;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotIAVLItemAminoMsg): SnapshotIAVLItem {
-    return SnapshotIAVLItem.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotIAVLItem): SnapshotIAVLItemAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotIAVLItem",
-      value: SnapshotIAVLItem.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotIAVLItemProtoMsg): SnapshotIAVLItem {
-    return SnapshotIAVLItem.decode(message.value);
-  },
-  toProto(message: SnapshotIAVLItem): Uint8Array {
-    return SnapshotIAVLItem.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotIAVLItem): SnapshotIAVLItemProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotIAVLItem",
-      value: SnapshotIAVLItem.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotExtensionMeta(): SnapshotExtensionMeta {
-  return {
-    name: "",
-    format: 0
-  };
-}
-export const SnapshotExtensionMeta = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionMeta",
-  aminoType: "cosmos-sdk/SnapshotExtensionMeta",
-  encode(message: SnapshotExtensionMeta, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.format !== 0) {
-      writer.uint32(16).uint32(message.format);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotExtensionMeta {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotExtensionMeta();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.format = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotExtensionMeta {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      format: isSet(object.format) ? Number(object.format) : 0
-    };
-  },
-  toJSON(message: SnapshotExtensionMeta): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.format !== undefined && (obj.format = Math.round(message.format));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotExtensionMeta>): SnapshotExtensionMeta {
-    const message = createBaseSnapshotExtensionMeta();
-    message.name = object.name ?? "";
-    message.format = object.format ?? 0;
-    return message;
-  },
-  fromSDK(object: SnapshotExtensionMetaSDKType): SnapshotExtensionMeta {
-    return {
-      name: object?.name,
-      format: object?.format
-    };
-  },
-  toSDK(message: SnapshotExtensionMeta): SnapshotExtensionMetaSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.format = message.format;
-    return obj;
-  },
-  fromAmino(object: SnapshotExtensionMetaAmino): SnapshotExtensionMeta {
-    return {
-      name: object.name,
-      format: object.format
-    };
-  },
-  toAmino(message: SnapshotExtensionMeta): SnapshotExtensionMetaAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.format = message.format;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotExtensionMetaAminoMsg): SnapshotExtensionMeta {
-    return SnapshotExtensionMeta.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotExtensionMeta): SnapshotExtensionMetaAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotExtensionMeta",
-      value: SnapshotExtensionMeta.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotExtensionMetaProtoMsg): SnapshotExtensionMeta {
-    return SnapshotExtensionMeta.decode(message.value);
-  },
-  toProto(message: SnapshotExtensionMeta): Uint8Array {
-    return SnapshotExtensionMeta.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotExtensionMeta): SnapshotExtensionMetaProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionMeta",
-      value: SnapshotExtensionMeta.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotExtensionPayload(): SnapshotExtensionPayload {
-  return {
-    payload: new Uint8Array()
-  };
-}
-export const SnapshotExtensionPayload = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionPayload",
-  aminoType: "cosmos-sdk/SnapshotExtensionPayload",
-  encode(message: SnapshotExtensionPayload, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.payload.length !== 0) {
-      writer.uint32(10).bytes(message.payload);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotExtensionPayload {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotExtensionPayload();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.payload = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotExtensionPayload {
-    return {
-      payload: isSet(object.payload) ? bytesFromBase64(object.payload) : new Uint8Array()
-    };
-  },
-  toJSON(message: SnapshotExtensionPayload): unknown {
-    const obj: any = {};
-    message.payload !== undefined && (obj.payload = base64FromBytes(message.payload !== undefined ? message.payload : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotExtensionPayload>): SnapshotExtensionPayload {
-    const message = createBaseSnapshotExtensionPayload();
-    message.payload = object.payload ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SnapshotExtensionPayloadSDKType): SnapshotExtensionPayload {
-    return {
-      payload: object?.payload
-    };
-  },
-  toSDK(message: SnapshotExtensionPayload): SnapshotExtensionPayloadSDKType {
-    const obj: any = {};
-    obj.payload = message.payload;
-    return obj;
-  },
-  fromAmino(object: SnapshotExtensionPayloadAmino): SnapshotExtensionPayload {
-    return {
-      payload: object.payload
-    };
-  },
-  toAmino(message: SnapshotExtensionPayload): SnapshotExtensionPayloadAmino {
-    const obj: any = {};
-    obj.payload = message.payload;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotExtensionPayloadAminoMsg): SnapshotExtensionPayload {
-    return SnapshotExtensionPayload.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotExtensionPayload): SnapshotExtensionPayloadAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotExtensionPayload",
-      value: SnapshotExtensionPayload.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotExtensionPayloadProtoMsg): SnapshotExtensionPayload {
-    return SnapshotExtensionPayload.decode(message.value);
-  },
-  toProto(message: SnapshotExtensionPayload): Uint8Array {
-    return SnapshotExtensionPayload.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotExtensionPayload): SnapshotExtensionPayloadProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotExtensionPayload",
-      value: SnapshotExtensionPayload.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotKVItem(): SnapshotKVItem {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array()
-  };
-}
-export const SnapshotKVItem = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotKVItem",
-  aminoType: "cosmos-sdk/SnapshotKVItem",
-  encode(message: SnapshotKVItem, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotKVItem {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotKVItem();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotKVItem {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: SnapshotKVItem): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotKVItem>): SnapshotKVItem {
-    const message = createBaseSnapshotKVItem();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SnapshotKVItemSDKType): SnapshotKVItem {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: SnapshotKVItem): SnapshotKVItemSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: SnapshotKVItemAmino): SnapshotKVItem {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: SnapshotKVItem): SnapshotKVItemAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotKVItemAminoMsg): SnapshotKVItem {
-    return SnapshotKVItem.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotKVItem): SnapshotKVItemAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotKVItem",
-      value: SnapshotKVItem.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotKVItemProtoMsg): SnapshotKVItem {
-    return SnapshotKVItem.decode(message.value);
-  },
-  toProto(message: SnapshotKVItem): Uint8Array {
-    return SnapshotKVItem.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotKVItem): SnapshotKVItemProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotKVItem",
-      value: SnapshotKVItem.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshotSchema(): SnapshotSchema {
-  return {
-    keys: []
-  };
-}
-export const SnapshotSchema = {
-  typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotSchema",
-  aminoType: "cosmos-sdk/SnapshotSchema",
-  encode(message: SnapshotSchema, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.keys) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SnapshotSchema {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshotSchema();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.keys.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SnapshotSchema {
-    return {
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: SnapshotSchema): unknown {
-    const obj: any = {};
-    if (message.keys) {
-      obj.keys = message.keys.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SnapshotSchema>): SnapshotSchema {
-    const message = createBaseSnapshotSchema();
-    message.keys = object.keys?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: SnapshotSchemaSDKType): SnapshotSchema {
-    return {
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: SnapshotSchema): SnapshotSchemaSDKType {
-    const obj: any = {};
-    if (message.keys) {
-      obj.keys = message.keys.map(e => e);
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SnapshotSchemaAmino): SnapshotSchema {
-    return {
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: SnapshotSchema): SnapshotSchemaAmino {
-    const obj: any = {};
-    if (message.keys) {
-      obj.keys = message.keys.map(e => e);
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotSchemaAminoMsg): SnapshotSchema {
-    return SnapshotSchema.fromAmino(object.value);
-  },
-  toAminoMsg(message: SnapshotSchema): SnapshotSchemaAminoMsg {
-    return {
-      type: "cosmos-sdk/SnapshotSchema",
-      value: SnapshotSchema.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SnapshotSchemaProtoMsg): SnapshotSchema {
-    return SnapshotSchema.decode(message.value);
-  },
-  toProto(message: SnapshotSchema): Uint8Array {
-    return SnapshotSchema.encode(message).finish();
-  },
-  toProtoMsg(message: SnapshotSchema): SnapshotSchemaProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.snapshots.v1beta1.SnapshotSchema",
-      value: SnapshotSchema.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/store/v1beta1/commit_info.ts b/examples/injective/src/codegen/cosmos/base/store/v1beta1/commit_info.ts
deleted file mode 100644
index 935c1b00..00000000
--- a/examples/injective/src/codegen/cosmos/base/store/v1beta1/commit_info.ts
+++ /dev/null
@@ -1,416 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * CommitInfo defines commit information used by the multi-store when committing
- * a version/height.
- */
-export interface CommitInfo {
-  version: bigint;
-  storeInfos: StoreInfo[];
-}
-export interface CommitInfoProtoMsg {
-  typeUrl: "/cosmos.base.store.v1beta1.CommitInfo";
-  value: Uint8Array;
-}
-/**
- * CommitInfo defines commit information used by the multi-store when committing
- * a version/height.
- */
-export interface CommitInfoAmino {
-  version: string;
-  store_infos: StoreInfoAmino[];
-}
-export interface CommitInfoAminoMsg {
-  type: "cosmos-sdk/CommitInfo";
-  value: CommitInfoAmino;
-}
-/**
- * CommitInfo defines commit information used by the multi-store when committing
- * a version/height.
- */
-export interface CommitInfoSDKType {
-  version: bigint;
-  store_infos: StoreInfoSDKType[];
-}
-/**
- * StoreInfo defines store-specific commit information. It contains a reference
- * between a store name and the commit ID.
- */
-export interface StoreInfo {
-  name: string;
-  commitId: CommitID | undefined;
-}
-export interface StoreInfoProtoMsg {
-  typeUrl: "/cosmos.base.store.v1beta1.StoreInfo";
-  value: Uint8Array;
-}
-/**
- * StoreInfo defines store-specific commit information. It contains a reference
- * between a store name and the commit ID.
- */
-export interface StoreInfoAmino {
-  name: string;
-  commit_id?: CommitIDAmino | undefined;
-}
-export interface StoreInfoAminoMsg {
-  type: "cosmos-sdk/StoreInfo";
-  value: StoreInfoAmino;
-}
-/**
- * StoreInfo defines store-specific commit information. It contains a reference
- * between a store name and the commit ID.
- */
-export interface StoreInfoSDKType {
-  name: string;
-  commit_id: CommitIDSDKType | undefined;
-}
-/**
- * CommitID defines the committment information when a specific store is
- * committed.
- */
-export interface CommitID {
-  version: bigint;
-  hash: Uint8Array;
-}
-export interface CommitIDProtoMsg {
-  typeUrl: "/cosmos.base.store.v1beta1.CommitID";
-  value: Uint8Array;
-}
-/**
- * CommitID defines the committment information when a specific store is
- * committed.
- */
-export interface CommitIDAmino {
-  version: string;
-  hash: Uint8Array;
-}
-export interface CommitIDAminoMsg {
-  type: "cosmos-sdk/CommitID";
-  value: CommitIDAmino;
-}
-/**
- * CommitID defines the committment information when a specific store is
- * committed.
- */
-export interface CommitIDSDKType {
-  version: bigint;
-  hash: Uint8Array;
-}
-function createBaseCommitInfo(): CommitInfo {
-  return {
-    version: BigInt(0),
-    storeInfos: []
-  };
-}
-export const CommitInfo = {
-  typeUrl: "/cosmos.base.store.v1beta1.CommitInfo",
-  aminoType: "cosmos-sdk/CommitInfo",
-  encode(message: CommitInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.version !== BigInt(0)) {
-      writer.uint32(8).int64(message.version);
-    }
-    for (const v of message.storeInfos) {
-      StoreInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommitInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommitInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.version = reader.int64();
-          break;
-        case 2:
-          message.storeInfos.push(StoreInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommitInfo {
-    return {
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0),
-      storeInfos: Array.isArray(object?.storeInfos) ? object.storeInfos.map((e: any) => StoreInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: CommitInfo): unknown {
-    const obj: any = {};
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    if (message.storeInfos) {
-      obj.storeInfos = message.storeInfos.map(e => e ? StoreInfo.toJSON(e) : undefined);
-    } else {
-      obj.storeInfos = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommitInfo>): CommitInfo {
-    const message = createBaseCommitInfo();
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    message.storeInfos = object.storeInfos?.map(e => StoreInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CommitInfoSDKType): CommitInfo {
-    return {
-      version: object?.version,
-      storeInfos: Array.isArray(object?.store_infos) ? object.store_infos.map((e: any) => StoreInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: CommitInfo): CommitInfoSDKType {
-    const obj: any = {};
-    obj.version = message.version;
-    if (message.storeInfos) {
-      obj.store_infos = message.storeInfos.map(e => e ? StoreInfo.toSDK(e) : undefined);
-    } else {
-      obj.store_infos = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CommitInfoAmino): CommitInfo {
-    return {
-      version: BigInt(object.version),
-      storeInfos: Array.isArray(object?.store_infos) ? object.store_infos.map((e: any) => StoreInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: CommitInfo): CommitInfoAmino {
-    const obj: any = {};
-    obj.version = message.version ? message.version.toString() : undefined;
-    if (message.storeInfos) {
-      obj.store_infos = message.storeInfos.map(e => e ? StoreInfo.toAmino(e) : undefined);
-    } else {
-      obj.store_infos = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CommitInfoAminoMsg): CommitInfo {
-    return CommitInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: CommitInfo): CommitInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/CommitInfo",
-      value: CommitInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommitInfoProtoMsg): CommitInfo {
-    return CommitInfo.decode(message.value);
-  },
-  toProto(message: CommitInfo): Uint8Array {
-    return CommitInfo.encode(message).finish();
-  },
-  toProtoMsg(message: CommitInfo): CommitInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.store.v1beta1.CommitInfo",
-      value: CommitInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseStoreInfo(): StoreInfo {
-  return {
-    name: "",
-    commitId: CommitID.fromPartial({})
-  };
-}
-export const StoreInfo = {
-  typeUrl: "/cosmos.base.store.v1beta1.StoreInfo",
-  aminoType: "cosmos-sdk/StoreInfo",
-  encode(message: StoreInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.commitId !== undefined) {
-      CommitID.encode(message.commitId, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StoreInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStoreInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.commitId = CommitID.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StoreInfo {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      commitId: isSet(object.commitId) ? CommitID.fromJSON(object.commitId) : undefined
-    };
-  },
-  toJSON(message: StoreInfo): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.commitId !== undefined && (obj.commitId = message.commitId ? CommitID.toJSON(message.commitId) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StoreInfo>): StoreInfo {
-    const message = createBaseStoreInfo();
-    message.name = object.name ?? "";
-    message.commitId = object.commitId !== undefined && object.commitId !== null ? CommitID.fromPartial(object.commitId) : undefined;
-    return message;
-  },
-  fromSDK(object: StoreInfoSDKType): StoreInfo {
-    return {
-      name: object?.name,
-      commitId: object.commit_id ? CommitID.fromSDK(object.commit_id) : undefined
-    };
-  },
-  toSDK(message: StoreInfo): StoreInfoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    message.commitId !== undefined && (obj.commit_id = message.commitId ? CommitID.toSDK(message.commitId) : undefined);
-    return obj;
-  },
-  fromAmino(object: StoreInfoAmino): StoreInfo {
-    return {
-      name: object.name,
-      commitId: object?.commit_id ? CommitID.fromAmino(object.commit_id) : undefined
-    };
-  },
-  toAmino(message: StoreInfo): StoreInfoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.commit_id = message.commitId ? CommitID.toAmino(message.commitId) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: StoreInfoAminoMsg): StoreInfo {
-    return StoreInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: StoreInfo): StoreInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/StoreInfo",
-      value: StoreInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StoreInfoProtoMsg): StoreInfo {
-    return StoreInfo.decode(message.value);
-  },
-  toProto(message: StoreInfo): Uint8Array {
-    return StoreInfo.encode(message).finish();
-  },
-  toProtoMsg(message: StoreInfo): StoreInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.store.v1beta1.StoreInfo",
-      value: StoreInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseCommitID(): CommitID {
-  return {
-    version: BigInt(0),
-    hash: new Uint8Array()
-  };
-}
-export const CommitID = {
-  typeUrl: "/cosmos.base.store.v1beta1.CommitID",
-  aminoType: "cosmos-sdk/CommitID",
-  encode(message: CommitID, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.version !== BigInt(0)) {
-      writer.uint32(8).int64(message.version);
-    }
-    if (message.hash.length !== 0) {
-      writer.uint32(18).bytes(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommitID {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommitID();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.version = reader.int64();
-          break;
-        case 2:
-          message.hash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommitID {
-    return {
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0),
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array()
-    };
-  },
-  toJSON(message: CommitID): unknown {
-    const obj: any = {};
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommitID>): CommitID {
-    const message = createBaseCommitID();
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    message.hash = object.hash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: CommitIDSDKType): CommitID {
-    return {
-      version: object?.version,
-      hash: object?.hash
-    };
-  },
-  toSDK(message: CommitID): CommitIDSDKType {
-    const obj: any = {};
-    obj.version = message.version;
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: CommitIDAmino): CommitID {
-    return {
-      version: BigInt(object.version),
-      hash: object.hash
-    };
-  },
-  toAmino(message: CommitID): CommitIDAmino {
-    const obj: any = {};
-    obj.version = message.version ? message.version.toString() : undefined;
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: CommitIDAminoMsg): CommitID {
-    return CommitID.fromAmino(object.value);
-  },
-  toAminoMsg(message: CommitID): CommitIDAminoMsg {
-    return {
-      type: "cosmos-sdk/CommitID",
-      value: CommitID.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommitIDProtoMsg): CommitID {
-    return CommitID.decode(message.value);
-  },
-  toProto(message: CommitID): Uint8Array {
-    return CommitID.encode(message).finish();
-  },
-  toProtoMsg(message: CommitID): CommitIDProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.store.v1beta1.CommitID",
-      value: CommitID.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/store/v1beta1/listening.ts b/examples/injective/src/codegen/cosmos/base/store/v1beta1/listening.ts
deleted file mode 100644
index 1aa651a9..00000000
--- a/examples/injective/src/codegen/cosmos/base/store/v1beta1/listening.ts
+++ /dev/null
@@ -1,183 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../../helpers";
-/**
- * StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes)
- * It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and
- * Deletes
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StoreKVPair {
-  /** the store key for the KVStore this pair originates from */
-  storeKey: string;
-  /** true indicates a delete operation, false indicates a set operation */
-  delete: boolean;
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface StoreKVPairProtoMsg {
-  typeUrl: "/cosmos.base.store.v1beta1.StoreKVPair";
-  value: Uint8Array;
-}
-/**
- * StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes)
- * It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and
- * Deletes
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StoreKVPairAmino {
-  /** the store key for the KVStore this pair originates from */
-  store_key: string;
-  /** true indicates a delete operation, false indicates a set operation */
-  delete: boolean;
-  key: Uint8Array;
-  value: Uint8Array;
-}
-export interface StoreKVPairAminoMsg {
-  type: "cosmos-sdk/StoreKVPair";
-  value: StoreKVPairAmino;
-}
-/**
- * StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes)
- * It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and
- * Deletes
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StoreKVPairSDKType {
-  store_key: string;
-  delete: boolean;
-  key: Uint8Array;
-  value: Uint8Array;
-}
-function createBaseStoreKVPair(): StoreKVPair {
-  return {
-    storeKey: "",
-    delete: false,
-    key: new Uint8Array(),
-    value: new Uint8Array()
-  };
-}
-export const StoreKVPair = {
-  typeUrl: "/cosmos.base.store.v1beta1.StoreKVPair",
-  aminoType: "cosmos-sdk/StoreKVPair",
-  encode(message: StoreKVPair, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.storeKey !== "") {
-      writer.uint32(10).string(message.storeKey);
-    }
-    if (message.delete === true) {
-      writer.uint32(16).bool(message.delete);
-    }
-    if (message.key.length !== 0) {
-      writer.uint32(26).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(34).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StoreKVPair {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStoreKVPair();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.storeKey = reader.string();
-          break;
-        case 2:
-          message.delete = reader.bool();
-          break;
-        case 3:
-          message.key = reader.bytes();
-          break;
-        case 4:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StoreKVPair {
-    return {
-      storeKey: isSet(object.storeKey) ? String(object.storeKey) : "",
-      delete: isSet(object.delete) ? Boolean(object.delete) : false,
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: StoreKVPair): unknown {
-    const obj: any = {};
-    message.storeKey !== undefined && (obj.storeKey = message.storeKey);
-    message.delete !== undefined && (obj.delete = message.delete);
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StoreKVPair>): StoreKVPair {
-    const message = createBaseStoreKVPair();
-    message.storeKey = object.storeKey ?? "";
-    message.delete = object.delete ?? false;
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: StoreKVPairSDKType): StoreKVPair {
-    return {
-      storeKey: object?.store_key,
-      delete: object?.delete,
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: StoreKVPair): StoreKVPairSDKType {
-    const obj: any = {};
-    obj.store_key = message.storeKey;
-    obj.delete = message.delete;
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: StoreKVPairAmino): StoreKVPair {
-    return {
-      storeKey: object.store_key,
-      delete: object.delete,
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: StoreKVPair): StoreKVPairAmino {
-    const obj: any = {};
-    obj.store_key = message.storeKey;
-    obj.delete = message.delete;
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: StoreKVPairAminoMsg): StoreKVPair {
-    return StoreKVPair.fromAmino(object.value);
-  },
-  toAminoMsg(message: StoreKVPair): StoreKVPairAminoMsg {
-    return {
-      type: "cosmos-sdk/StoreKVPair",
-      value: StoreKVPair.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StoreKVPairProtoMsg): StoreKVPair {
-    return StoreKVPair.decode(message.value);
-  },
-  toProto(message: StoreKVPair): Uint8Array {
-    return StoreKVPair.encode(message).finish();
-  },
-  toProtoMsg(message: StoreKVPair): StoreKVPairProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.store.v1beta1.StoreKVPair",
-      value: StoreKVPair.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts b/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts
deleted file mode 100644
index 3eebc66c..00000000
--- a/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts
+++ /dev/null
@@ -1,230 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { GetNodeInfoRequest, GetNodeInfoResponse, GetSyncingRequest, GetSyncingResponse, GetLatestBlockRequest, GetLatestBlockResponse, GetBlockByHeightRequest, GetBlockByHeightResponse, GetLatestValidatorSetRequest, GetLatestValidatorSetResponse, GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponse } from "./query";
-/** Service defines the gRPC querier service for tendermint queries. */
-export interface Service {
-  /** GetNodeInfo queries the current node info. */
-  getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
-  /** GetSyncing queries node syncing. */
-  getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
-  /** GetLatestBlock returns the latest block. */
-  getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
-  /** GetBlockByHeight queries block for given height. */
-  getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
-  /** GetLatestValidatorSet queries latest validator-set. */
-  getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
-  /** GetValidatorSetByHeight queries validator-set at a given height. */
-  getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
-}
-export class ServiceClientImpl implements Service {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.getNodeInfo = this.getNodeInfo.bind(this);
-    this.getSyncing = this.getSyncing.bind(this);
-    this.getLatestBlock = this.getLatestBlock.bind(this);
-    this.getBlockByHeight = this.getBlockByHeight.bind(this);
-    this.getLatestValidatorSet = this.getLatestValidatorSet.bind(this);
-    this.getValidatorSetByHeight = this.getValidatorSetByHeight.bind(this);
-  }
-  getNodeInfo(request: GetNodeInfoRequest = {}): Promise<GetNodeInfoResponse> {
-    const data = GetNodeInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetNodeInfo", data);
-    return promise.then(data => GetNodeInfoResponse.decode(new BinaryReader(data)));
-  }
-  getSyncing(request: GetSyncingRequest = {}): Promise<GetSyncingResponse> {
-    const data = GetSyncingRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetSyncing", data);
-    return promise.then(data => GetSyncingResponse.decode(new BinaryReader(data)));
-  }
-  getLatestBlock(request: GetLatestBlockRequest = {}): Promise<GetLatestBlockResponse> {
-    const data = GetLatestBlockRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetLatestBlock", data);
-    return promise.then(data => GetLatestBlockResponse.decode(new BinaryReader(data)));
-  }
-  getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse> {
-    const data = GetBlockByHeightRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetBlockByHeight", data);
-    return promise.then(data => GetBlockByHeightResponse.decode(new BinaryReader(data)));
-  }
-  getLatestValidatorSet(request: GetLatestValidatorSetRequest = {
-    pagination: undefined
-  }): Promise<GetLatestValidatorSetResponse> {
-    const data = GetLatestValidatorSetRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetLatestValidatorSet", data);
-    return promise.then(data => GetLatestValidatorSetResponse.decode(new BinaryReader(data)));
-  }
-  getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse> {
-    const data = GetValidatorSetByHeightRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetValidatorSetByHeight", data);
-    return promise.then(data => GetValidatorSetByHeightResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new ServiceClientImpl(rpc);
-  return {
-    getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse> {
-      return queryService.getNodeInfo(request);
-    },
-    getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse> {
-      return queryService.getSyncing(request);
-    },
-    getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse> {
-      return queryService.getLatestBlock(request);
-    },
-    getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse> {
-      return queryService.getBlockByHeight(request);
-    },
-    getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse> {
-      return queryService.getLatestValidatorSet(request);
-    },
-    getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse> {
-      return queryService.getValidatorSetByHeight(request);
-    }
-  };
-};
-export interface UseGetNodeInfoQuery<TData> extends ReactQueryParams<GetNodeInfoResponse, TData> {
-  request?: GetNodeInfoRequest;
-}
-export interface UseGetSyncingQuery<TData> extends ReactQueryParams<GetSyncingResponse, TData> {
-  request?: GetSyncingRequest;
-}
-export interface UseGetLatestBlockQuery<TData> extends ReactQueryParams<GetLatestBlockResponse, TData> {
-  request?: GetLatestBlockRequest;
-}
-export interface UseGetBlockByHeightQuery<TData> extends ReactQueryParams<GetBlockByHeightResponse, TData> {
-  request: GetBlockByHeightRequest;
-}
-export interface UseGetLatestValidatorSetQuery<TData> extends ReactQueryParams<GetLatestValidatorSetResponse, TData> {
-  request?: GetLatestValidatorSetRequest;
-}
-export interface UseGetValidatorSetByHeightQuery<TData> extends ReactQueryParams<GetValidatorSetByHeightResponse, TData> {
-  request: GetValidatorSetByHeightRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, ServiceClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): ServiceClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new ServiceClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useGetNodeInfo = <TData = GetNodeInfoResponse,>({
-    request,
-    options
-  }: UseGetNodeInfoQuery<TData>) => {
-    return useQuery<GetNodeInfoResponse, Error, TData>(["getNodeInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getNodeInfo(request);
-    }, options);
-  };
-  const useGetSyncing = <TData = GetSyncingResponse,>({
-    request,
-    options
-  }: UseGetSyncingQuery<TData>) => {
-    return useQuery<GetSyncingResponse, Error, TData>(["getSyncingQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getSyncing(request);
-    }, options);
-  };
-  const useGetLatestBlock = <TData = GetLatestBlockResponse,>({
-    request,
-    options
-  }: UseGetLatestBlockQuery<TData>) => {
-    return useQuery<GetLatestBlockResponse, Error, TData>(["getLatestBlockQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getLatestBlock(request);
-    }, options);
-  };
-  const useGetBlockByHeight = <TData = GetBlockByHeightResponse,>({
-    request,
-    options
-  }: UseGetBlockByHeightQuery<TData>) => {
-    return useQuery<GetBlockByHeightResponse, Error, TData>(["getBlockByHeightQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getBlockByHeight(request);
-    }, options);
-  };
-  const useGetLatestValidatorSet = <TData = GetLatestValidatorSetResponse,>({
-    request,
-    options
-  }: UseGetLatestValidatorSetQuery<TData>) => {
-    return useQuery<GetLatestValidatorSetResponse, Error, TData>(["getLatestValidatorSetQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getLatestValidatorSet(request);
-    }, options);
-  };
-  const useGetValidatorSetByHeight = <TData = GetValidatorSetByHeightResponse,>({
-    request,
-    options
-  }: UseGetValidatorSetByHeightQuery<TData>) => {
-    return useQuery<GetValidatorSetByHeightResponse, Error, TData>(["getValidatorSetByHeightQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getValidatorSetByHeight(request);
-    }, options);
-  };
-  return {
-    /** GetNodeInfo queries the current node info. */useGetNodeInfo,
-    /** GetSyncing queries node syncing. */useGetSyncing,
-    /** GetLatestBlock returns the latest block. */useGetLatestBlock,
-    /** GetBlockByHeight queries block for given height. */useGetBlockByHeight,
-    /** GetLatestValidatorSet queries latest validator-set. */useGetLatestValidatorSet,
-    /** GetValidatorSetByHeight queries validator-set at a given height. */useGetValidatorSetByHeight
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryGetNodeInfoStore {
-    store = new QueryStore<GetNodeInfoRequest, GetNodeInfoResponse>(queryService?.getNodeInfo);
-    getNodeInfo(request: GetNodeInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetSyncingStore {
-    store = new QueryStore<GetSyncingRequest, GetSyncingResponse>(queryService?.getSyncing);
-    getSyncing(request: GetSyncingRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetLatestBlockStore {
-    store = new QueryStore<GetLatestBlockRequest, GetLatestBlockResponse>(queryService?.getLatestBlock);
-    getLatestBlock(request: GetLatestBlockRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetBlockByHeightStore {
-    store = new QueryStore<GetBlockByHeightRequest, GetBlockByHeightResponse>(queryService?.getBlockByHeight);
-    getBlockByHeight(request: GetBlockByHeightRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetLatestValidatorSetStore {
-    store = new QueryStore<GetLatestValidatorSetRequest, GetLatestValidatorSetResponse>(queryService?.getLatestValidatorSet);
-    getLatestValidatorSet(request: GetLatestValidatorSetRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetValidatorSetByHeightStore {
-    store = new QueryStore<GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponse>(queryService?.getValidatorSetByHeight);
-    getValidatorSetByHeight(request: GetValidatorSetByHeightRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** GetNodeInfo queries the current node info. */QueryGetNodeInfoStore,
-    /** GetSyncing queries node syncing. */QueryGetSyncingStore,
-    /** GetLatestBlock returns the latest block. */QueryGetLatestBlockStore,
-    /** GetBlockByHeight queries block for given height. */QueryGetBlockByHeightStore,
-    /** GetLatestValidatorSet queries latest validator-set. */QueryGetLatestValidatorSetStore,
-    /** GetValidatorSetByHeight queries validator-set at a given height. */QueryGetValidatorSetByHeightStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.ts
deleted file mode 100644
index 743c0698..00000000
--- a/examples/injective/src/codegen/cosmos/base/tendermint/v1beta1/query.ts
+++ /dev/null
@@ -1,1947 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../query/v1beta1/pagination";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BlockID, BlockIDAmino, BlockIDSDKType } from "../../../../tendermint/types/types";
-import { Block, BlockAmino, BlockSDKType } from "../../../../tendermint/types/block";
-import { NodeInfo, NodeInfoAmino, NodeInfoSDKType } from "../../../../tendermint/p2p/types";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightRequest {
-  height: bigint;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface GetValidatorSetByHeightRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightRequest";
-  value: Uint8Array;
-}
-/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightRequestAmino {
-  height: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface GetValidatorSetByHeightRequestAminoMsg {
-  type: "cosmos-sdk/GetValidatorSetByHeightRequest";
-  value: GetValidatorSetByHeightRequestAmino;
-}
-/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightRequestSDKType {
-  height: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightResponse {
-  blockHeight: bigint;
-  validators: Validator[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface GetValidatorSetByHeightResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse";
-  value: Uint8Array;
-}
-/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightResponseAmino {
-  block_height: string;
-  validators: ValidatorAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface GetValidatorSetByHeightResponseAminoMsg {
-  type: "cosmos-sdk/GetValidatorSetByHeightResponse";
-  value: GetValidatorSetByHeightResponseAmino;
-}
-/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetValidatorSetByHeightResponseSDKType {
-  block_height: bigint;
-  validators: ValidatorSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetRequest {
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface GetLatestValidatorSetRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetRequest";
-  value: Uint8Array;
-}
-/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetRequestAmino {
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface GetLatestValidatorSetRequestAminoMsg {
-  type: "cosmos-sdk/GetLatestValidatorSetRequest";
-  value: GetLatestValidatorSetRequestAmino;
-}
-/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetResponse {
-  blockHeight: bigint;
-  validators: Validator[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface GetLatestValidatorSetResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse";
-  value: Uint8Array;
-}
-/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetResponseAmino {
-  block_height: string;
-  validators: ValidatorAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface GetLatestValidatorSetResponseAminoMsg {
-  type: "cosmos-sdk/GetLatestValidatorSetResponse";
-  value: GetLatestValidatorSetResponseAmino;
-}
-/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */
-export interface GetLatestValidatorSetResponseSDKType {
-  block_height: bigint;
-  validators: ValidatorSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** Validator is the type for the validator-set. */
-export interface Validator {
-  address: string;
-  pubKey: Any | undefined;
-  votingPower: bigint;
-  proposerPriority: bigint;
-}
-export interface ValidatorProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.Validator";
-  value: Uint8Array;
-}
-/** Validator is the type for the validator-set. */
-export interface ValidatorAmino {
-  address: string;
-  pub_key?: AnyAmino | undefined;
-  voting_power: string;
-  proposer_priority: string;
-}
-export interface ValidatorAminoMsg {
-  type: "cosmos-sdk/Validator";
-  value: ValidatorAmino;
-}
-/** Validator is the type for the validator-set. */
-export interface ValidatorSDKType {
-  address: string;
-  pub_key: AnySDKType | undefined;
-  voting_power: bigint;
-  proposer_priority: bigint;
-}
-/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightRequest {
-  height: bigint;
-}
-export interface GetBlockByHeightRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightRequest";
-  value: Uint8Array;
-}
-/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightRequestAmino {
-  height: string;
-}
-export interface GetBlockByHeightRequestAminoMsg {
-  type: "cosmos-sdk/GetBlockByHeightRequest";
-  value: GetBlockByHeightRequestAmino;
-}
-/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightRequestSDKType {
-  height: bigint;
-}
-/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightResponse {
-  blockId: BlockID | undefined;
-  block: Block | undefined;
-}
-export interface GetBlockByHeightResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse";
-  value: Uint8Array;
-}
-/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightResponseAmino {
-  block_id?: BlockIDAmino | undefined;
-  block?: BlockAmino | undefined;
-}
-export interface GetBlockByHeightResponseAminoMsg {
-  type: "cosmos-sdk/GetBlockByHeightResponse";
-  value: GetBlockByHeightResponseAmino;
-}
-/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */
-export interface GetBlockByHeightResponseSDKType {
-  block_id: BlockIDSDKType | undefined;
-  block: BlockSDKType | undefined;
-}
-/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockRequest {}
-export interface GetLatestBlockRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockRequest";
-  value: Uint8Array;
-}
-/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockRequestAmino {}
-export interface GetLatestBlockRequestAminoMsg {
-  type: "cosmos-sdk/GetLatestBlockRequest";
-  value: GetLatestBlockRequestAmino;
-}
-/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockRequestSDKType {}
-/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockResponse {
-  blockId: BlockID | undefined;
-  block: Block | undefined;
-}
-export interface GetLatestBlockResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockResponse";
-  value: Uint8Array;
-}
-/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockResponseAmino {
-  block_id?: BlockIDAmino | undefined;
-  block?: BlockAmino | undefined;
-}
-export interface GetLatestBlockResponseAminoMsg {
-  type: "cosmos-sdk/GetLatestBlockResponse";
-  value: GetLatestBlockResponseAmino;
-}
-/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */
-export interface GetLatestBlockResponseSDKType {
-  block_id: BlockIDSDKType | undefined;
-  block: BlockSDKType | undefined;
-}
-/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */
-export interface GetSyncingRequest {}
-export interface GetSyncingRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingRequest";
-  value: Uint8Array;
-}
-/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */
-export interface GetSyncingRequestAmino {}
-export interface GetSyncingRequestAminoMsg {
-  type: "cosmos-sdk/GetSyncingRequest";
-  value: GetSyncingRequestAmino;
-}
-/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */
-export interface GetSyncingRequestSDKType {}
-/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */
-export interface GetSyncingResponse {
-  syncing: boolean;
-}
-export interface GetSyncingResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingResponse";
-  value: Uint8Array;
-}
-/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */
-export interface GetSyncingResponseAmino {
-  syncing: boolean;
-}
-export interface GetSyncingResponseAminoMsg {
-  type: "cosmos-sdk/GetSyncingResponse";
-  value: GetSyncingResponseAmino;
-}
-/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */
-export interface GetSyncingResponseSDKType {
-  syncing: boolean;
-}
-/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoRequest {}
-export interface GetNodeInfoRequestProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoRequest";
-  value: Uint8Array;
-}
-/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoRequestAmino {}
-export interface GetNodeInfoRequestAminoMsg {
-  type: "cosmos-sdk/GetNodeInfoRequest";
-  value: GetNodeInfoRequestAmino;
-}
-/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoRequestSDKType {}
-/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoResponse {
-  nodeInfo: NodeInfo | undefined;
-  applicationVersion: VersionInfo | undefined;
-}
-export interface GetNodeInfoResponseProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoResponse";
-  value: Uint8Array;
-}
-/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoResponseAmino {
-  node_info?: NodeInfoAmino | undefined;
-  application_version?: VersionInfoAmino | undefined;
-}
-export interface GetNodeInfoResponseAminoMsg {
-  type: "cosmos-sdk/GetNodeInfoResponse";
-  value: GetNodeInfoResponseAmino;
-}
-/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */
-export interface GetNodeInfoResponseSDKType {
-  node_info: NodeInfoSDKType | undefined;
-  application_version: VersionInfoSDKType | undefined;
-}
-/** VersionInfo is the type for the GetNodeInfoResponse message. */
-export interface VersionInfo {
-  name: string;
-  appName: string;
-  version: string;
-  gitCommit: string;
-  buildTags: string;
-  goVersion: string;
-  buildDeps: Module[];
-  /** Since: cosmos-sdk 0.43 */
-  cosmosSdkVersion: string;
-}
-export interface VersionInfoProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.VersionInfo";
-  value: Uint8Array;
-}
-/** VersionInfo is the type for the GetNodeInfoResponse message. */
-export interface VersionInfoAmino {
-  name: string;
-  app_name: string;
-  version: string;
-  git_commit: string;
-  build_tags: string;
-  go_version: string;
-  build_deps: ModuleAmino[];
-  /** Since: cosmos-sdk 0.43 */
-  cosmos_sdk_version: string;
-}
-export interface VersionInfoAminoMsg {
-  type: "cosmos-sdk/VersionInfo";
-  value: VersionInfoAmino;
-}
-/** VersionInfo is the type for the GetNodeInfoResponse message. */
-export interface VersionInfoSDKType {
-  name: string;
-  app_name: string;
-  version: string;
-  git_commit: string;
-  build_tags: string;
-  go_version: string;
-  build_deps: ModuleSDKType[];
-  cosmos_sdk_version: string;
-}
-/** Module is the type for VersionInfo */
-export interface Module {
-  /** module path */
-  path: string;
-  /** module version */
-  version: string;
-  /** checksum */
-  sum: string;
-}
-export interface ModuleProtoMsg {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.Module";
-  value: Uint8Array;
-}
-/** Module is the type for VersionInfo */
-export interface ModuleAmino {
-  /** module path */
-  path: string;
-  /** module version */
-  version: string;
-  /** checksum */
-  sum: string;
-}
-export interface ModuleAminoMsg {
-  type: "cosmos-sdk/Module";
-  value: ModuleAmino;
-}
-/** Module is the type for VersionInfo */
-export interface ModuleSDKType {
-  path: string;
-  version: string;
-  sum: string;
-}
-function createBaseGetValidatorSetByHeightRequest(): GetValidatorSetByHeightRequest {
-  return {
-    height: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const GetValidatorSetByHeightRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightRequest",
-  aminoType: "cosmos-sdk/GetValidatorSetByHeightRequest",
-  encode(message: GetValidatorSetByHeightRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetValidatorSetByHeightRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetValidatorSetByHeightRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetValidatorSetByHeightRequest {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetValidatorSetByHeightRequest): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetValidatorSetByHeightRequest>): GetValidatorSetByHeightRequest {
-    const message = createBaseGetValidatorSetByHeightRequest();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetValidatorSetByHeightRequestSDKType): GetValidatorSetByHeightRequest {
-    return {
-      height: object?.height,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetValidatorSetByHeightRequest): GetValidatorSetByHeightRequestSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetValidatorSetByHeightRequestAmino): GetValidatorSetByHeightRequest {
-    return {
-      height: BigInt(object.height),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetValidatorSetByHeightRequest): GetValidatorSetByHeightRequestAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetValidatorSetByHeightRequestAminoMsg): GetValidatorSetByHeightRequest {
-    return GetValidatorSetByHeightRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetValidatorSetByHeightRequest): GetValidatorSetByHeightRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetValidatorSetByHeightRequest",
-      value: GetValidatorSetByHeightRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetValidatorSetByHeightRequestProtoMsg): GetValidatorSetByHeightRequest {
-    return GetValidatorSetByHeightRequest.decode(message.value);
-  },
-  toProto(message: GetValidatorSetByHeightRequest): Uint8Array {
-    return GetValidatorSetByHeightRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetValidatorSetByHeightRequest): GetValidatorSetByHeightRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightRequest",
-      value: GetValidatorSetByHeightRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetValidatorSetByHeightResponse(): GetValidatorSetByHeightResponse {
-  return {
-    blockHeight: BigInt(0),
-    validators: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const GetValidatorSetByHeightResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse",
-  aminoType: "cosmos-sdk/GetValidatorSetByHeightResponse",
-  encode(message: GetValidatorSetByHeightResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockHeight !== BigInt(0)) {
-      writer.uint32(8).int64(message.blockHeight);
-    }
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetValidatorSetByHeightResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetValidatorSetByHeightResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockHeight = reader.int64();
-          break;
-        case 2:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetValidatorSetByHeightResponse {
-    return {
-      blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight.toString()) : BigInt(0),
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetValidatorSetByHeightResponse): unknown {
-    const obj: any = {};
-    message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || BigInt(0)).toString());
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetValidatorSetByHeightResponse>): GetValidatorSetByHeightResponse {
-    const message = createBaseGetValidatorSetByHeightResponse();
-    message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? BigInt(object.blockHeight.toString()) : BigInt(0);
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetValidatorSetByHeightResponseSDKType): GetValidatorSetByHeightResponse {
-    return {
-      blockHeight: object?.block_height,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetValidatorSetByHeightResponse): GetValidatorSetByHeightResponseSDKType {
-    const obj: any = {};
-    obj.block_height = message.blockHeight;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetValidatorSetByHeightResponseAmino): GetValidatorSetByHeightResponse {
-    return {
-      blockHeight: BigInt(object.block_height),
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetValidatorSetByHeightResponse): GetValidatorSetByHeightResponseAmino {
-    const obj: any = {};
-    obj.block_height = message.blockHeight ? message.blockHeight.toString() : undefined;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetValidatorSetByHeightResponseAminoMsg): GetValidatorSetByHeightResponse {
-    return GetValidatorSetByHeightResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetValidatorSetByHeightResponse): GetValidatorSetByHeightResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetValidatorSetByHeightResponse",
-      value: GetValidatorSetByHeightResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetValidatorSetByHeightResponseProtoMsg): GetValidatorSetByHeightResponse {
-    return GetValidatorSetByHeightResponse.decode(message.value);
-  },
-  toProto(message: GetValidatorSetByHeightResponse): Uint8Array {
-    return GetValidatorSetByHeightResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetValidatorSetByHeightResponse): GetValidatorSetByHeightResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse",
-      value: GetValidatorSetByHeightResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetLatestValidatorSetRequest(): GetLatestValidatorSetRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const GetLatestValidatorSetRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetRequest",
-  aminoType: "cosmos-sdk/GetLatestValidatorSetRequest",
-  encode(message: GetLatestValidatorSetRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetLatestValidatorSetRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetLatestValidatorSetRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetLatestValidatorSetRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetLatestValidatorSetRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetLatestValidatorSetRequest>): GetLatestValidatorSetRequest {
-    const message = createBaseGetLatestValidatorSetRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetLatestValidatorSetRequestSDKType): GetLatestValidatorSetRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetLatestValidatorSetRequest): GetLatestValidatorSetRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetLatestValidatorSetRequestAmino): GetLatestValidatorSetRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetLatestValidatorSetRequest): GetLatestValidatorSetRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetLatestValidatorSetRequestAminoMsg): GetLatestValidatorSetRequest {
-    return GetLatestValidatorSetRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetLatestValidatorSetRequest): GetLatestValidatorSetRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetLatestValidatorSetRequest",
-      value: GetLatestValidatorSetRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetLatestValidatorSetRequestProtoMsg): GetLatestValidatorSetRequest {
-    return GetLatestValidatorSetRequest.decode(message.value);
-  },
-  toProto(message: GetLatestValidatorSetRequest): Uint8Array {
-    return GetLatestValidatorSetRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetLatestValidatorSetRequest): GetLatestValidatorSetRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetRequest",
-      value: GetLatestValidatorSetRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetLatestValidatorSetResponse(): GetLatestValidatorSetResponse {
-  return {
-    blockHeight: BigInt(0),
-    validators: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const GetLatestValidatorSetResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse",
-  aminoType: "cosmos-sdk/GetLatestValidatorSetResponse",
-  encode(message: GetLatestValidatorSetResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockHeight !== BigInt(0)) {
-      writer.uint32(8).int64(message.blockHeight);
-    }
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetLatestValidatorSetResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetLatestValidatorSetResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockHeight = reader.int64();
-          break;
-        case 2:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetLatestValidatorSetResponse {
-    return {
-      blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight.toString()) : BigInt(0),
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetLatestValidatorSetResponse): unknown {
-    const obj: any = {};
-    message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || BigInt(0)).toString());
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetLatestValidatorSetResponse>): GetLatestValidatorSetResponse {
-    const message = createBaseGetLatestValidatorSetResponse();
-    message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? BigInt(object.blockHeight.toString()) : BigInt(0);
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetLatestValidatorSetResponseSDKType): GetLatestValidatorSetResponse {
-    return {
-      blockHeight: object?.block_height,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetLatestValidatorSetResponse): GetLatestValidatorSetResponseSDKType {
-    const obj: any = {};
-    obj.block_height = message.blockHeight;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetLatestValidatorSetResponseAmino): GetLatestValidatorSetResponse {
-    return {
-      blockHeight: BigInt(object.block_height),
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetLatestValidatorSetResponse): GetLatestValidatorSetResponseAmino {
-    const obj: any = {};
-    obj.block_height = message.blockHeight ? message.blockHeight.toString() : undefined;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetLatestValidatorSetResponseAminoMsg): GetLatestValidatorSetResponse {
-    return GetLatestValidatorSetResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetLatestValidatorSetResponse): GetLatestValidatorSetResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetLatestValidatorSetResponse",
-      value: GetLatestValidatorSetResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetLatestValidatorSetResponseProtoMsg): GetLatestValidatorSetResponse {
-    return GetLatestValidatorSetResponse.decode(message.value);
-  },
-  toProto(message: GetLatestValidatorSetResponse): Uint8Array {
-    return GetLatestValidatorSetResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetLatestValidatorSetResponse): GetLatestValidatorSetResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse",
-      value: GetLatestValidatorSetResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseValidator(): Validator {
-  return {
-    address: "",
-    pubKey: Any.fromPartial({}),
-    votingPower: BigInt(0),
-    proposerPriority: BigInt(0)
-  };
-}
-export const Validator = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.Validator",
-  aminoType: "cosmos-sdk/Validator",
-  encode(message: Validator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pubKey !== undefined) {
-      Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.votingPower !== BigInt(0)) {
-      writer.uint32(24).int64(message.votingPower);
-    }
-    if (message.proposerPriority !== BigInt(0)) {
-      writer.uint32(32).int64(message.proposerPriority);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Validator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pubKey = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.votingPower = reader.int64();
-          break;
-        case 4:
-          message.proposerPriority = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Validator {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pubKey: isSet(object.pubKey) ? Any.fromJSON(object.pubKey) : undefined,
-      votingPower: isSet(object.votingPower) ? BigInt(object.votingPower.toString()) : BigInt(0),
-      proposerPriority: isSet(object.proposerPriority) ? BigInt(object.proposerPriority.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Validator): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? Any.toJSON(message.pubKey) : undefined);
-    message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());
-    message.proposerPriority !== undefined && (obj.proposerPriority = (message.proposerPriority || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Validator>): Validator {
-    const message = createBaseValidator();
-    message.address = object.address ?? "";
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined;
-    message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? BigInt(object.votingPower.toString()) : BigInt(0);
-    message.proposerPriority = object.proposerPriority !== undefined && object.proposerPriority !== null ? BigInt(object.proposerPriority.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorSDKType): Validator {
-    return {
-      address: object?.address,
-      pubKey: object.pub_key ? Any.fromSDK(object.pub_key) : undefined,
-      votingPower: object?.voting_power,
-      proposerPriority: object?.proposer_priority
-    };
-  },
-  toSDK(message: Validator): ValidatorSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? Any.toSDK(message.pubKey) : undefined);
-    obj.voting_power = message.votingPower;
-    obj.proposer_priority = message.proposerPriority;
-    return obj;
-  },
-  fromAmino(object: ValidatorAmino): Validator {
-    return {
-      address: object.address,
-      pubKey: object?.pub_key ? Any.fromAmino(object.pub_key) : undefined,
-      votingPower: BigInt(object.voting_power),
-      proposerPriority: BigInt(object.proposer_priority)
-    };
-  },
-  toAmino(message: Validator): ValidatorAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pub_key = message.pubKey ? Any.toAmino(message.pubKey) : undefined;
-    obj.voting_power = message.votingPower ? message.votingPower.toString() : undefined;
-    obj.proposer_priority = message.proposerPriority ? message.proposerPriority.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAminoMsg): Validator {
-    return Validator.fromAmino(object.value);
-  },
-  toAminoMsg(message: Validator): ValidatorAminoMsg {
-    return {
-      type: "cosmos-sdk/Validator",
-      value: Validator.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorProtoMsg): Validator {
-    return Validator.decode(message.value);
-  },
-  toProto(message: Validator): Uint8Array {
-    return Validator.encode(message).finish();
-  },
-  toProtoMsg(message: Validator): ValidatorProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.Validator",
-      value: Validator.encode(message).finish()
-    };
-  }
-};
-function createBaseGetBlockByHeightRequest(): GetBlockByHeightRequest {
-  return {
-    height: BigInt(0)
-  };
-}
-export const GetBlockByHeightRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightRequest",
-  aminoType: "cosmos-sdk/GetBlockByHeightRequest",
-  encode(message: GetBlockByHeightRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetBlockByHeightRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetBlockByHeightRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetBlockByHeightRequest {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GetBlockByHeightRequest): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetBlockByHeightRequest>): GetBlockByHeightRequest {
-    const message = createBaseGetBlockByHeightRequest();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GetBlockByHeightRequestSDKType): GetBlockByHeightRequest {
-    return {
-      height: object?.height
-    };
-  },
-  toSDK(message: GetBlockByHeightRequest): GetBlockByHeightRequestSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: GetBlockByHeightRequestAmino): GetBlockByHeightRequest {
-    return {
-      height: BigInt(object.height)
-    };
-  },
-  toAmino(message: GetBlockByHeightRequest): GetBlockByHeightRequestAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetBlockByHeightRequestAminoMsg): GetBlockByHeightRequest {
-    return GetBlockByHeightRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetBlockByHeightRequest): GetBlockByHeightRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetBlockByHeightRequest",
-      value: GetBlockByHeightRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetBlockByHeightRequestProtoMsg): GetBlockByHeightRequest {
-    return GetBlockByHeightRequest.decode(message.value);
-  },
-  toProto(message: GetBlockByHeightRequest): Uint8Array {
-    return GetBlockByHeightRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetBlockByHeightRequest): GetBlockByHeightRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightRequest",
-      value: GetBlockByHeightRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetBlockByHeightResponse(): GetBlockByHeightResponse {
-  return {
-    blockId: BlockID.fromPartial({}),
-    block: Block.fromPartial({})
-  };
-}
-export const GetBlockByHeightResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse",
-  aminoType: "cosmos-sdk/GetBlockByHeightResponse",
-  encode(message: GetBlockByHeightResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.block !== undefined) {
-      Block.encode(message.block, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetBlockByHeightResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetBlockByHeightResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.block = Block.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetBlockByHeightResponse {
-    return {
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      block: isSet(object.block) ? Block.fromJSON(object.block) : undefined
-    };
-  },
-  toJSON(message: GetBlockByHeightResponse): unknown {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toJSON(message.block) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetBlockByHeightResponse>): GetBlockByHeightResponse {
-    const message = createBaseGetBlockByHeightResponse();
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined;
-    return message;
-  },
-  fromSDK(object: GetBlockByHeightResponseSDKType): GetBlockByHeightResponse {
-    return {
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      block: object.block ? Block.fromSDK(object.block) : undefined
-    };
-  },
-  toSDK(message: GetBlockByHeightResponse): GetBlockByHeightResponseSDKType {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toSDK(message.block) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetBlockByHeightResponseAmino): GetBlockByHeightResponse {
-    return {
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      block: object?.block ? Block.fromAmino(object.block) : undefined
-    };
-  },
-  toAmino(message: GetBlockByHeightResponse): GetBlockByHeightResponseAmino {
-    const obj: any = {};
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.block = message.block ? Block.toAmino(message.block) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetBlockByHeightResponseAminoMsg): GetBlockByHeightResponse {
-    return GetBlockByHeightResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetBlockByHeightResponse): GetBlockByHeightResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetBlockByHeightResponse",
-      value: GetBlockByHeightResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetBlockByHeightResponseProtoMsg): GetBlockByHeightResponse {
-    return GetBlockByHeightResponse.decode(message.value);
-  },
-  toProto(message: GetBlockByHeightResponse): Uint8Array {
-    return GetBlockByHeightResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetBlockByHeightResponse): GetBlockByHeightResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse",
-      value: GetBlockByHeightResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetLatestBlockRequest(): GetLatestBlockRequest {
-  return {};
-}
-export const GetLatestBlockRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockRequest",
-  aminoType: "cosmos-sdk/GetLatestBlockRequest",
-  encode(_: GetLatestBlockRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetLatestBlockRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetLatestBlockRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetLatestBlockRequest {
-    return {};
-  },
-  toJSON(_: GetLatestBlockRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetLatestBlockRequest>): GetLatestBlockRequest {
-    const message = createBaseGetLatestBlockRequest();
-    return message;
-  },
-  fromSDK(_: GetLatestBlockRequestSDKType): GetLatestBlockRequest {
-    return {};
-  },
-  toSDK(_: GetLatestBlockRequest): GetLatestBlockRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetLatestBlockRequestAmino): GetLatestBlockRequest {
-    return {};
-  },
-  toAmino(_: GetLatestBlockRequest): GetLatestBlockRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetLatestBlockRequestAminoMsg): GetLatestBlockRequest {
-    return GetLatestBlockRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetLatestBlockRequest): GetLatestBlockRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetLatestBlockRequest",
-      value: GetLatestBlockRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetLatestBlockRequestProtoMsg): GetLatestBlockRequest {
-    return GetLatestBlockRequest.decode(message.value);
-  },
-  toProto(message: GetLatestBlockRequest): Uint8Array {
-    return GetLatestBlockRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetLatestBlockRequest): GetLatestBlockRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockRequest",
-      value: GetLatestBlockRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetLatestBlockResponse(): GetLatestBlockResponse {
-  return {
-    blockId: BlockID.fromPartial({}),
-    block: Block.fromPartial({})
-  };
-}
-export const GetLatestBlockResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockResponse",
-  aminoType: "cosmos-sdk/GetLatestBlockResponse",
-  encode(message: GetLatestBlockResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.block !== undefined) {
-      Block.encode(message.block, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetLatestBlockResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetLatestBlockResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.block = Block.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetLatestBlockResponse {
-    return {
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      block: isSet(object.block) ? Block.fromJSON(object.block) : undefined
-    };
-  },
-  toJSON(message: GetLatestBlockResponse): unknown {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toJSON(message.block) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetLatestBlockResponse>): GetLatestBlockResponse {
-    const message = createBaseGetLatestBlockResponse();
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined;
-    return message;
-  },
-  fromSDK(object: GetLatestBlockResponseSDKType): GetLatestBlockResponse {
-    return {
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      block: object.block ? Block.fromSDK(object.block) : undefined
-    };
-  },
-  toSDK(message: GetLatestBlockResponse): GetLatestBlockResponseSDKType {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toSDK(message.block) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetLatestBlockResponseAmino): GetLatestBlockResponse {
-    return {
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      block: object?.block ? Block.fromAmino(object.block) : undefined
-    };
-  },
-  toAmino(message: GetLatestBlockResponse): GetLatestBlockResponseAmino {
-    const obj: any = {};
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.block = message.block ? Block.toAmino(message.block) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetLatestBlockResponseAminoMsg): GetLatestBlockResponse {
-    return GetLatestBlockResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetLatestBlockResponse): GetLatestBlockResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetLatestBlockResponse",
-      value: GetLatestBlockResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetLatestBlockResponseProtoMsg): GetLatestBlockResponse {
-    return GetLatestBlockResponse.decode(message.value);
-  },
-  toProto(message: GetLatestBlockResponse): Uint8Array {
-    return GetLatestBlockResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetLatestBlockResponse): GetLatestBlockResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetLatestBlockResponse",
-      value: GetLatestBlockResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetSyncingRequest(): GetSyncingRequest {
-  return {};
-}
-export const GetSyncingRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingRequest",
-  aminoType: "cosmos-sdk/GetSyncingRequest",
-  encode(_: GetSyncingRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetSyncingRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetSyncingRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetSyncingRequest {
-    return {};
-  },
-  toJSON(_: GetSyncingRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetSyncingRequest>): GetSyncingRequest {
-    const message = createBaseGetSyncingRequest();
-    return message;
-  },
-  fromSDK(_: GetSyncingRequestSDKType): GetSyncingRequest {
-    return {};
-  },
-  toSDK(_: GetSyncingRequest): GetSyncingRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetSyncingRequestAmino): GetSyncingRequest {
-    return {};
-  },
-  toAmino(_: GetSyncingRequest): GetSyncingRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetSyncingRequestAminoMsg): GetSyncingRequest {
-    return GetSyncingRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetSyncingRequest): GetSyncingRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetSyncingRequest",
-      value: GetSyncingRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetSyncingRequestProtoMsg): GetSyncingRequest {
-    return GetSyncingRequest.decode(message.value);
-  },
-  toProto(message: GetSyncingRequest): Uint8Array {
-    return GetSyncingRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetSyncingRequest): GetSyncingRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingRequest",
-      value: GetSyncingRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetSyncingResponse(): GetSyncingResponse {
-  return {
-    syncing: false
-  };
-}
-export const GetSyncingResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingResponse",
-  aminoType: "cosmos-sdk/GetSyncingResponse",
-  encode(message: GetSyncingResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.syncing === true) {
-      writer.uint32(8).bool(message.syncing);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetSyncingResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetSyncingResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.syncing = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetSyncingResponse {
-    return {
-      syncing: isSet(object.syncing) ? Boolean(object.syncing) : false
-    };
-  },
-  toJSON(message: GetSyncingResponse): unknown {
-    const obj: any = {};
-    message.syncing !== undefined && (obj.syncing = message.syncing);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetSyncingResponse>): GetSyncingResponse {
-    const message = createBaseGetSyncingResponse();
-    message.syncing = object.syncing ?? false;
-    return message;
-  },
-  fromSDK(object: GetSyncingResponseSDKType): GetSyncingResponse {
-    return {
-      syncing: object?.syncing
-    };
-  },
-  toSDK(message: GetSyncingResponse): GetSyncingResponseSDKType {
-    const obj: any = {};
-    obj.syncing = message.syncing;
-    return obj;
-  },
-  fromAmino(object: GetSyncingResponseAmino): GetSyncingResponse {
-    return {
-      syncing: object.syncing
-    };
-  },
-  toAmino(message: GetSyncingResponse): GetSyncingResponseAmino {
-    const obj: any = {};
-    obj.syncing = message.syncing;
-    return obj;
-  },
-  fromAminoMsg(object: GetSyncingResponseAminoMsg): GetSyncingResponse {
-    return GetSyncingResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetSyncingResponse): GetSyncingResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetSyncingResponse",
-      value: GetSyncingResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetSyncingResponseProtoMsg): GetSyncingResponse {
-    return GetSyncingResponse.decode(message.value);
-  },
-  toProto(message: GetSyncingResponse): Uint8Array {
-    return GetSyncingResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetSyncingResponse): GetSyncingResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetSyncingResponse",
-      value: GetSyncingResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetNodeInfoRequest(): GetNodeInfoRequest {
-  return {};
-}
-export const GetNodeInfoRequest = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoRequest",
-  aminoType: "cosmos-sdk/GetNodeInfoRequest",
-  encode(_: GetNodeInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetNodeInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetNodeInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): GetNodeInfoRequest {
-    return {};
-  },
-  toJSON(_: GetNodeInfoRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<GetNodeInfoRequest>): GetNodeInfoRequest {
-    const message = createBaseGetNodeInfoRequest();
-    return message;
-  },
-  fromSDK(_: GetNodeInfoRequestSDKType): GetNodeInfoRequest {
-    return {};
-  },
-  toSDK(_: GetNodeInfoRequest): GetNodeInfoRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: GetNodeInfoRequestAmino): GetNodeInfoRequest {
-    return {};
-  },
-  toAmino(_: GetNodeInfoRequest): GetNodeInfoRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: GetNodeInfoRequestAminoMsg): GetNodeInfoRequest {
-    return GetNodeInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetNodeInfoRequest): GetNodeInfoRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetNodeInfoRequest",
-      value: GetNodeInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetNodeInfoRequestProtoMsg): GetNodeInfoRequest {
-    return GetNodeInfoRequest.decode(message.value);
-  },
-  toProto(message: GetNodeInfoRequest): Uint8Array {
-    return GetNodeInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetNodeInfoRequest): GetNodeInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoRequest",
-      value: GetNodeInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetNodeInfoResponse(): GetNodeInfoResponse {
-  return {
-    nodeInfo: NodeInfo.fromPartial({}),
-    applicationVersion: VersionInfo.fromPartial({})
-  };
-}
-export const GetNodeInfoResponse = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoResponse",
-  aminoType: "cosmos-sdk/GetNodeInfoResponse",
-  encode(message: GetNodeInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.nodeInfo !== undefined) {
-      NodeInfo.encode(message.nodeInfo, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.applicationVersion !== undefined) {
-      VersionInfo.encode(message.applicationVersion, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetNodeInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetNodeInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.nodeInfo = NodeInfo.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.applicationVersion = VersionInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetNodeInfoResponse {
-    return {
-      nodeInfo: isSet(object.nodeInfo) ? NodeInfo.fromJSON(object.nodeInfo) : undefined,
-      applicationVersion: isSet(object.applicationVersion) ? VersionInfo.fromJSON(object.applicationVersion) : undefined
-    };
-  },
-  toJSON(message: GetNodeInfoResponse): unknown {
-    const obj: any = {};
-    message.nodeInfo !== undefined && (obj.nodeInfo = message.nodeInfo ? NodeInfo.toJSON(message.nodeInfo) : undefined);
-    message.applicationVersion !== undefined && (obj.applicationVersion = message.applicationVersion ? VersionInfo.toJSON(message.applicationVersion) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetNodeInfoResponse>): GetNodeInfoResponse {
-    const message = createBaseGetNodeInfoResponse();
-    message.nodeInfo = object.nodeInfo !== undefined && object.nodeInfo !== null ? NodeInfo.fromPartial(object.nodeInfo) : undefined;
-    message.applicationVersion = object.applicationVersion !== undefined && object.applicationVersion !== null ? VersionInfo.fromPartial(object.applicationVersion) : undefined;
-    return message;
-  },
-  fromSDK(object: GetNodeInfoResponseSDKType): GetNodeInfoResponse {
-    return {
-      nodeInfo: object.node_info ? NodeInfo.fromSDK(object.node_info) : undefined,
-      applicationVersion: object.application_version ? VersionInfo.fromSDK(object.application_version) : undefined
-    };
-  },
-  toSDK(message: GetNodeInfoResponse): GetNodeInfoResponseSDKType {
-    const obj: any = {};
-    message.nodeInfo !== undefined && (obj.node_info = message.nodeInfo ? NodeInfo.toSDK(message.nodeInfo) : undefined);
-    message.applicationVersion !== undefined && (obj.application_version = message.applicationVersion ? VersionInfo.toSDK(message.applicationVersion) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetNodeInfoResponseAmino): GetNodeInfoResponse {
-    return {
-      nodeInfo: object?.node_info ? NodeInfo.fromAmino(object.node_info) : undefined,
-      applicationVersion: object?.application_version ? VersionInfo.fromAmino(object.application_version) : undefined
-    };
-  },
-  toAmino(message: GetNodeInfoResponse): GetNodeInfoResponseAmino {
-    const obj: any = {};
-    obj.node_info = message.nodeInfo ? NodeInfo.toAmino(message.nodeInfo) : undefined;
-    obj.application_version = message.applicationVersion ? VersionInfo.toAmino(message.applicationVersion) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetNodeInfoResponseAminoMsg): GetNodeInfoResponse {
-    return GetNodeInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetNodeInfoResponse): GetNodeInfoResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetNodeInfoResponse",
-      value: GetNodeInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetNodeInfoResponseProtoMsg): GetNodeInfoResponse {
-    return GetNodeInfoResponse.decode(message.value);
-  },
-  toProto(message: GetNodeInfoResponse): Uint8Array {
-    return GetNodeInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetNodeInfoResponse): GetNodeInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.GetNodeInfoResponse",
-      value: GetNodeInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseVersionInfo(): VersionInfo {
-  return {
-    name: "",
-    appName: "",
-    version: "",
-    gitCommit: "",
-    buildTags: "",
-    goVersion: "",
-    buildDeps: [],
-    cosmosSdkVersion: ""
-  };
-}
-export const VersionInfo = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.VersionInfo",
-  aminoType: "cosmos-sdk/VersionInfo",
-  encode(message: VersionInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.appName !== "") {
-      writer.uint32(18).string(message.appName);
-    }
-    if (message.version !== "") {
-      writer.uint32(26).string(message.version);
-    }
-    if (message.gitCommit !== "") {
-      writer.uint32(34).string(message.gitCommit);
-    }
-    if (message.buildTags !== "") {
-      writer.uint32(42).string(message.buildTags);
-    }
-    if (message.goVersion !== "") {
-      writer.uint32(50).string(message.goVersion);
-    }
-    for (const v of message.buildDeps) {
-      Module.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.cosmosSdkVersion !== "") {
-      writer.uint32(66).string(message.cosmosSdkVersion);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): VersionInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVersionInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.appName = reader.string();
-          break;
-        case 3:
-          message.version = reader.string();
-          break;
-        case 4:
-          message.gitCommit = reader.string();
-          break;
-        case 5:
-          message.buildTags = reader.string();
-          break;
-        case 6:
-          message.goVersion = reader.string();
-          break;
-        case 7:
-          message.buildDeps.push(Module.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.cosmosSdkVersion = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): VersionInfo {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      appName: isSet(object.appName) ? String(object.appName) : "",
-      version: isSet(object.version) ? String(object.version) : "",
-      gitCommit: isSet(object.gitCommit) ? String(object.gitCommit) : "",
-      buildTags: isSet(object.buildTags) ? String(object.buildTags) : "",
-      goVersion: isSet(object.goVersion) ? String(object.goVersion) : "",
-      buildDeps: Array.isArray(object?.buildDeps) ? object.buildDeps.map((e: any) => Module.fromJSON(e)) : [],
-      cosmosSdkVersion: isSet(object.cosmosSdkVersion) ? String(object.cosmosSdkVersion) : ""
-    };
-  },
-  toJSON(message: VersionInfo): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.appName !== undefined && (obj.appName = message.appName);
-    message.version !== undefined && (obj.version = message.version);
-    message.gitCommit !== undefined && (obj.gitCommit = message.gitCommit);
-    message.buildTags !== undefined && (obj.buildTags = message.buildTags);
-    message.goVersion !== undefined && (obj.goVersion = message.goVersion);
-    if (message.buildDeps) {
-      obj.buildDeps = message.buildDeps.map(e => e ? Module.toJSON(e) : undefined);
-    } else {
-      obj.buildDeps = [];
-    }
-    message.cosmosSdkVersion !== undefined && (obj.cosmosSdkVersion = message.cosmosSdkVersion);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<VersionInfo>): VersionInfo {
-    const message = createBaseVersionInfo();
-    message.name = object.name ?? "";
-    message.appName = object.appName ?? "";
-    message.version = object.version ?? "";
-    message.gitCommit = object.gitCommit ?? "";
-    message.buildTags = object.buildTags ?? "";
-    message.goVersion = object.goVersion ?? "";
-    message.buildDeps = object.buildDeps?.map(e => Module.fromPartial(e)) || [];
-    message.cosmosSdkVersion = object.cosmosSdkVersion ?? "";
-    return message;
-  },
-  fromSDK(object: VersionInfoSDKType): VersionInfo {
-    return {
-      name: object?.name,
-      appName: object?.app_name,
-      version: object?.version,
-      gitCommit: object?.git_commit,
-      buildTags: object?.build_tags,
-      goVersion: object?.go_version,
-      buildDeps: Array.isArray(object?.build_deps) ? object.build_deps.map((e: any) => Module.fromSDK(e)) : [],
-      cosmosSdkVersion: object?.cosmos_sdk_version
-    };
-  },
-  toSDK(message: VersionInfo): VersionInfoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.app_name = message.appName;
-    obj.version = message.version;
-    obj.git_commit = message.gitCommit;
-    obj.build_tags = message.buildTags;
-    obj.go_version = message.goVersion;
-    if (message.buildDeps) {
-      obj.build_deps = message.buildDeps.map(e => e ? Module.toSDK(e) : undefined);
-    } else {
-      obj.build_deps = [];
-    }
-    obj.cosmos_sdk_version = message.cosmosSdkVersion;
-    return obj;
-  },
-  fromAmino(object: VersionInfoAmino): VersionInfo {
-    return {
-      name: object.name,
-      appName: object.app_name,
-      version: object.version,
-      gitCommit: object.git_commit,
-      buildTags: object.build_tags,
-      goVersion: object.go_version,
-      buildDeps: Array.isArray(object?.build_deps) ? object.build_deps.map((e: any) => Module.fromAmino(e)) : [],
-      cosmosSdkVersion: object.cosmos_sdk_version
-    };
-  },
-  toAmino(message: VersionInfo): VersionInfoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.app_name = message.appName;
-    obj.version = message.version;
-    obj.git_commit = message.gitCommit;
-    obj.build_tags = message.buildTags;
-    obj.go_version = message.goVersion;
-    if (message.buildDeps) {
-      obj.build_deps = message.buildDeps.map(e => e ? Module.toAmino(e) : undefined);
-    } else {
-      obj.build_deps = [];
-    }
-    obj.cosmos_sdk_version = message.cosmosSdkVersion;
-    return obj;
-  },
-  fromAminoMsg(object: VersionInfoAminoMsg): VersionInfo {
-    return VersionInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: VersionInfo): VersionInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/VersionInfo",
-      value: VersionInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VersionInfoProtoMsg): VersionInfo {
-    return VersionInfo.decode(message.value);
-  },
-  toProto(message: VersionInfo): Uint8Array {
-    return VersionInfo.encode(message).finish();
-  },
-  toProtoMsg(message: VersionInfo): VersionInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.VersionInfo",
-      value: VersionInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseModule(): Module {
-  return {
-    path: "",
-    version: "",
-    sum: ""
-  };
-}
-export const Module = {
-  typeUrl: "/cosmos.base.tendermint.v1beta1.Module",
-  aminoType: "cosmos-sdk/Module",
-  encode(message: Module, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path !== "") {
-      writer.uint32(10).string(message.path);
-    }
-    if (message.version !== "") {
-      writer.uint32(18).string(message.version);
-    }
-    if (message.sum !== "") {
-      writer.uint32(26).string(message.sum);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Module {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModule();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.string();
-          break;
-        case 2:
-          message.version = reader.string();
-          break;
-        case 3:
-          message.sum = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Module {
-    return {
-      path: isSet(object.path) ? String(object.path) : "",
-      version: isSet(object.version) ? String(object.version) : "",
-      sum: isSet(object.sum) ? String(object.sum) : ""
-    };
-  },
-  toJSON(message: Module): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = message.path);
-    message.version !== undefined && (obj.version = message.version);
-    message.sum !== undefined && (obj.sum = message.sum);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Module>): Module {
-    const message = createBaseModule();
-    message.path = object.path ?? "";
-    message.version = object.version ?? "";
-    message.sum = object.sum ?? "";
-    return message;
-  },
-  fromSDK(object: ModuleSDKType): Module {
-    return {
-      path: object?.path,
-      version: object?.version,
-      sum: object?.sum
-    };
-  },
-  toSDK(message: Module): ModuleSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.version = message.version;
-    obj.sum = message.sum;
-    return obj;
-  },
-  fromAmino(object: ModuleAmino): Module {
-    return {
-      path: object.path,
-      version: object.version,
-      sum: object.sum
-    };
-  },
-  toAmino(message: Module): ModuleAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.version = message.version;
-    obj.sum = message.sum;
-    return obj;
-  },
-  fromAminoMsg(object: ModuleAminoMsg): Module {
-    return Module.fromAmino(object.value);
-  },
-  toAminoMsg(message: Module): ModuleAminoMsg {
-    return {
-      type: "cosmos-sdk/Module",
-      value: Module.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleProtoMsg): Module {
-    return Module.decode(message.value);
-  },
-  toProto(message: Module): Uint8Array {
-    return Module.encode(message).finish();
-  },
-  toProtoMsg(message: Module): ModuleProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.tendermint.v1beta1.Module",
-      value: Module.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/base/v1beta1/coin.ts b/examples/injective/src/codegen/cosmos/base/v1beta1/coin.ts
deleted file mode 100644
index 8c060ace..00000000
--- a/examples/injective/src/codegen/cosmos/base/v1beta1/coin.ts
+++ /dev/null
@@ -1,498 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * Coin defines a token with a denomination and an amount.
- * 
- * NOTE: The amount field is an Int which implements the custom method
- * signatures required by gogoproto.
- */
-export interface Coin {
-  denom: string;
-  amount: string;
-}
-export interface CoinProtoMsg {
-  typeUrl: "/cosmos.base.v1beta1.Coin";
-  value: Uint8Array;
-}
-/**
- * Coin defines a token with a denomination and an amount.
- * 
- * NOTE: The amount field is an Int which implements the custom method
- * signatures required by gogoproto.
- */
-export interface CoinAmino {
-  denom: string;
-  amount: string;
-}
-export interface CoinAminoMsg {
-  type: "cosmos-sdk/Coin";
-  value: CoinAmino;
-}
-/**
- * Coin defines a token with a denomination and an amount.
- * 
- * NOTE: The amount field is an Int which implements the custom method
- * signatures required by gogoproto.
- */
-export interface CoinSDKType {
-  denom: string;
-  amount: string;
-}
-/**
- * DecCoin defines a token with a denomination and a decimal amount.
- * 
- * NOTE: The amount field is an Dec which implements the custom method
- * signatures required by gogoproto.
- */
-export interface DecCoin {
-  denom: string;
-  amount: string;
-}
-export interface DecCoinProtoMsg {
-  typeUrl: "/cosmos.base.v1beta1.DecCoin";
-  value: Uint8Array;
-}
-/**
- * DecCoin defines a token with a denomination and a decimal amount.
- * 
- * NOTE: The amount field is an Dec which implements the custom method
- * signatures required by gogoproto.
- */
-export interface DecCoinAmino {
-  denom: string;
-  amount: string;
-}
-export interface DecCoinAminoMsg {
-  type: "cosmos-sdk/DecCoin";
-  value: DecCoinAmino;
-}
-/**
- * DecCoin defines a token with a denomination and a decimal amount.
- * 
- * NOTE: The amount field is an Dec which implements the custom method
- * signatures required by gogoproto.
- */
-export interface DecCoinSDKType {
-  denom: string;
-  amount: string;
-}
-/** IntProto defines a Protobuf wrapper around an Int object. */
-export interface IntProto {
-  int: string;
-}
-export interface IntProtoProtoMsg {
-  typeUrl: "/cosmos.base.v1beta1.IntProto";
-  value: Uint8Array;
-}
-/** IntProto defines a Protobuf wrapper around an Int object. */
-export interface IntProtoAmino {
-  int: string;
-}
-export interface IntProtoAminoMsg {
-  type: "cosmos-sdk/IntProto";
-  value: IntProtoAmino;
-}
-/** IntProto defines a Protobuf wrapper around an Int object. */
-export interface IntProtoSDKType {
-  int: string;
-}
-/** DecProto defines a Protobuf wrapper around a Dec object. */
-export interface DecProto {
-  dec: string;
-}
-export interface DecProtoProtoMsg {
-  typeUrl: "/cosmos.base.v1beta1.DecProto";
-  value: Uint8Array;
-}
-/** DecProto defines a Protobuf wrapper around a Dec object. */
-export interface DecProtoAmino {
-  dec: string;
-}
-export interface DecProtoAminoMsg {
-  type: "cosmos-sdk/DecProto";
-  value: DecProtoAmino;
-}
-/** DecProto defines a Protobuf wrapper around a Dec object. */
-export interface DecProtoSDKType {
-  dec: string;
-}
-function createBaseCoin(): Coin {
-  return {
-    denom: "",
-    amount: ""
-  };
-}
-export const Coin = {
-  typeUrl: "/cosmos.base.v1beta1.Coin",
-  aminoType: "cosmos-sdk/Coin",
-  encode(message: Coin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.amount !== "") {
-      writer.uint32(18).string(message.amount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Coin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCoin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.amount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Coin {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      amount: isSet(object.amount) ? String(object.amount) : ""
-    };
-  },
-  toJSON(message: Coin): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.amount !== undefined && (obj.amount = message.amount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Coin>): Coin {
-    const message = createBaseCoin();
-    message.denom = object.denom ?? "";
-    message.amount = object.amount ?? "";
-    return message;
-  },
-  fromSDK(object: CoinSDKType): Coin {
-    return {
-      denom: object?.denom,
-      amount: object?.amount
-    };
-  },
-  toSDK(message: Coin): CoinSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAmino(object: CoinAmino): Coin {
-    return {
-      denom: object.denom,
-      amount: object.amount
-    };
-  },
-  toAmino(message: Coin): CoinAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAminoMsg(object: CoinAminoMsg): Coin {
-    return Coin.fromAmino(object.value);
-  },
-  toAminoMsg(message: Coin): CoinAminoMsg {
-    return {
-      type: "cosmos-sdk/Coin",
-      value: Coin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CoinProtoMsg): Coin {
-    return Coin.decode(message.value);
-  },
-  toProto(message: Coin): Uint8Array {
-    return Coin.encode(message).finish();
-  },
-  toProtoMsg(message: Coin): CoinProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.v1beta1.Coin",
-      value: Coin.encode(message).finish()
-    };
-  }
-};
-function createBaseDecCoin(): DecCoin {
-  return {
-    denom: "",
-    amount: ""
-  };
-}
-export const DecCoin = {
-  typeUrl: "/cosmos.base.v1beta1.DecCoin",
-  aminoType: "cosmos-sdk/DecCoin",
-  encode(message: DecCoin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.amount !== "") {
-      writer.uint32(18).string(message.amount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DecCoin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDecCoin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.amount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DecCoin {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      amount: isSet(object.amount) ? String(object.amount) : ""
-    };
-  },
-  toJSON(message: DecCoin): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.amount !== undefined && (obj.amount = message.amount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DecCoin>): DecCoin {
-    const message = createBaseDecCoin();
-    message.denom = object.denom ?? "";
-    message.amount = object.amount ?? "";
-    return message;
-  },
-  fromSDK(object: DecCoinSDKType): DecCoin {
-    return {
-      denom: object?.denom,
-      amount: object?.amount
-    };
-  },
-  toSDK(message: DecCoin): DecCoinSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAmino(object: DecCoinAmino): DecCoin {
-    return {
-      denom: object.denom,
-      amount: object.amount
-    };
-  },
-  toAmino(message: DecCoin): DecCoinAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAminoMsg(object: DecCoinAminoMsg): DecCoin {
-    return DecCoin.fromAmino(object.value);
-  },
-  toAminoMsg(message: DecCoin): DecCoinAminoMsg {
-    return {
-      type: "cosmos-sdk/DecCoin",
-      value: DecCoin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DecCoinProtoMsg): DecCoin {
-    return DecCoin.decode(message.value);
-  },
-  toProto(message: DecCoin): Uint8Array {
-    return DecCoin.encode(message).finish();
-  },
-  toProtoMsg(message: DecCoin): DecCoinProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.v1beta1.DecCoin",
-      value: DecCoin.encode(message).finish()
-    };
-  }
-};
-function createBaseIntProto(): IntProto {
-  return {
-    int: ""
-  };
-}
-export const IntProto = {
-  typeUrl: "/cosmos.base.v1beta1.IntProto",
-  aminoType: "cosmos-sdk/IntProto",
-  encode(message: IntProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.int !== "") {
-      writer.uint32(10).string(message.int);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IntProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIntProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.int = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IntProto {
-    return {
-      int: isSet(object.int) ? String(object.int) : ""
-    };
-  },
-  toJSON(message: IntProto): unknown {
-    const obj: any = {};
-    message.int !== undefined && (obj.int = message.int);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IntProto>): IntProto {
-    const message = createBaseIntProto();
-    message.int = object.int ?? "";
-    return message;
-  },
-  fromSDK(object: IntProtoSDKType): IntProto {
-    return {
-      int: object?.int
-    };
-  },
-  toSDK(message: IntProto): IntProtoSDKType {
-    const obj: any = {};
-    obj.int = message.int;
-    return obj;
-  },
-  fromAmino(object: IntProtoAmino): IntProto {
-    return {
-      int: object.int
-    };
-  },
-  toAmino(message: IntProto): IntProtoAmino {
-    const obj: any = {};
-    obj.int = message.int;
-    return obj;
-  },
-  fromAminoMsg(object: IntProtoAminoMsg): IntProto {
-    return IntProto.fromAmino(object.value);
-  },
-  toAminoMsg(message: IntProto): IntProtoAminoMsg {
-    return {
-      type: "cosmos-sdk/IntProto",
-      value: IntProto.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IntProtoProtoMsg): IntProto {
-    return IntProto.decode(message.value);
-  },
-  toProto(message: IntProto): Uint8Array {
-    return IntProto.encode(message).finish();
-  },
-  toProtoMsg(message: IntProto): IntProtoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.v1beta1.IntProto",
-      value: IntProto.encode(message).finish()
-    };
-  }
-};
-function createBaseDecProto(): DecProto {
-  return {
-    dec: ""
-  };
-}
-export const DecProto = {
-  typeUrl: "/cosmos.base.v1beta1.DecProto",
-  aminoType: "cosmos-sdk/DecProto",
-  encode(message: DecProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.dec !== "") {
-      writer.uint32(10).string(message.dec);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DecProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDecProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.dec = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DecProto {
-    return {
-      dec: isSet(object.dec) ? String(object.dec) : ""
-    };
-  },
-  toJSON(message: DecProto): unknown {
-    const obj: any = {};
-    message.dec !== undefined && (obj.dec = message.dec);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DecProto>): DecProto {
-    const message = createBaseDecProto();
-    message.dec = object.dec ?? "";
-    return message;
-  },
-  fromSDK(object: DecProtoSDKType): DecProto {
-    return {
-      dec: object?.dec
-    };
-  },
-  toSDK(message: DecProto): DecProtoSDKType {
-    const obj: any = {};
-    obj.dec = message.dec;
-    return obj;
-  },
-  fromAmino(object: DecProtoAmino): DecProto {
-    return {
-      dec: object.dec
-    };
-  },
-  toAmino(message: DecProto): DecProtoAmino {
-    const obj: any = {};
-    obj.dec = message.dec;
-    return obj;
-  },
-  fromAminoMsg(object: DecProtoAminoMsg): DecProto {
-    return DecProto.fromAmino(object.value);
-  },
-  toAminoMsg(message: DecProto): DecProtoAminoMsg {
-    return {
-      type: "cosmos-sdk/DecProto",
-      value: DecProto.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DecProtoProtoMsg): DecProto {
-    return DecProto.decode(message.value);
-  },
-  toProto(message: DecProto): Uint8Array {
-    return DecProto.encode(message).finish();
-  },
-  toProtoMsg(message: DecProto): DecProtoProtoMsg {
-    return {
-      typeUrl: "/cosmos.base.v1beta1.DecProto",
-      value: DecProto.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/bundle.ts b/examples/injective/src/codegen/cosmos/bundle.ts
deleted file mode 100644
index 29c9a5cc..00000000
--- a/examples/injective/src/codegen/cosmos/bundle.ts
+++ /dev/null
@@ -1,460 +0,0 @@
-import * as _2 from "./app/v1alpha1/config";
-import * as _3 from "./app/v1alpha1/module";
-import * as _4 from "./app/v1alpha1/query";
-import * as _5 from "./auth/v1beta1/auth";
-import * as _6 from "./auth/v1beta1/genesis";
-import * as _7 from "./auth/v1beta1/query";
-import * as _8 from "./authz/v1beta1/authz";
-import * as _9 from "./authz/v1beta1/event";
-import * as _10 from "./authz/v1beta1/genesis";
-import * as _11 from "./authz/v1beta1/query";
-import * as _12 from "./authz/v1beta1/tx";
-import * as _13 from "./bank/v1beta1/authz";
-import * as _14 from "./bank/v1beta1/bank";
-import * as _15 from "./bank/v1beta1/genesis";
-import * as _16 from "./bank/v1beta1/query";
-import * as _17 from "./bank/v1beta1/tx";
-import * as _18 from "./base/abci/v1beta1/abci";
-import * as _19 from "./base/kv/v1beta1/kv";
-import * as _20 from "./base/query/v1beta1/pagination";
-import * as _21 from "./base/reflection/v1beta1/reflection";
-import * as _22 from "./base/reflection/v2alpha1/reflection";
-import * as _23 from "./base/snapshots/v1beta1/snapshot";
-import * as _24 from "./base/store/v1beta1/commit_info";
-import * as _25 from "./base/store/v1beta1/listening";
-import * as _26 from "./base/tendermint/v1beta1/query";
-import * as _27 from "./base/v1beta1/coin";
-import * as _28 from "./capability/v1beta1/capability";
-import * as _29 from "./capability/v1beta1/genesis";
-import * as _30 from "./crisis/v1beta1/genesis";
-import * as _31 from "./crisis/v1beta1/tx";
-import * as _32 from "./crypto/ed25519/keys";
-import * as _33 from "./crypto/hd/v1/hd";
-import * as _34 from "./crypto/keyring/v1/record";
-import * as _35 from "./crypto/multisig/keys";
-import * as _36 from "./crypto/secp256k1/keys";
-import * as _37 from "./crypto/secp256r1/keys";
-import * as _38 from "./distribution/v1beta1/distribution";
-import * as _39 from "./distribution/v1beta1/genesis";
-import * as _40 from "./distribution/v1beta1/query";
-import * as _41 from "./distribution/v1beta1/tx";
-import * as _42 from "./evidence/v1beta1/evidence";
-import * as _43 from "./evidence/v1beta1/genesis";
-import * as _44 from "./evidence/v1beta1/query";
-import * as _45 from "./evidence/v1beta1/tx";
-import * as _46 from "./feegrant/v1beta1/feegrant";
-import * as _47 from "./feegrant/v1beta1/genesis";
-import * as _48 from "./feegrant/v1beta1/query";
-import * as _49 from "./feegrant/v1beta1/tx";
-import * as _50 from "./genutil/v1beta1/genesis";
-import * as _51 from "./gov/v1/genesis";
-import * as _52 from "./gov/v1/gov";
-import * as _53 from "./gov/v1/query";
-import * as _54 from "./gov/v1/tx";
-import * as _55 from "./gov/v1beta1/genesis";
-import * as _56 from "./gov/v1beta1/gov";
-import * as _57 from "./gov/v1beta1/query";
-import * as _58 from "./gov/v1beta1/tx";
-import * as _59 from "./group/v1/events";
-import * as _60 from "./group/v1/genesis";
-import * as _61 from "./group/v1/query";
-import * as _62 from "./group/v1/tx";
-import * as _63 from "./group/v1/types";
-import * as _64 from "./mint/v1beta1/genesis";
-import * as _65 from "./mint/v1beta1/mint";
-import * as _66 from "./mint/v1beta1/query";
-import * as _67 from "./msg/v1/msg";
-import * as _68 from "./nft/v1beta1/event";
-import * as _69 from "./nft/v1beta1/genesis";
-import * as _70 from "./nft/v1beta1/nft";
-import * as _71 from "./nft/v1beta1/query";
-import * as _72 from "./nft/v1beta1/tx";
-import * as _73 from "./orm/v1/orm";
-import * as _74 from "./orm/v1alpha1/schema";
-import * as _75 from "./params/v1beta1/params";
-import * as _76 from "./params/v1beta1/query";
-import * as _77 from "./slashing/v1beta1/genesis";
-import * as _78 from "./slashing/v1beta1/query";
-import * as _79 from "./slashing/v1beta1/slashing";
-import * as _80 from "./slashing/v1beta1/tx";
-import * as _81 from "./staking/v1beta1/authz";
-import * as _82 from "./staking/v1beta1/genesis";
-import * as _83 from "./staking/v1beta1/query";
-import * as _84 from "./staking/v1beta1/staking";
-import * as _85 from "./staking/v1beta1/tx";
-import * as _86 from "./tx/signing/v1beta1/signing";
-import * as _87 from "./tx/v1beta1/service";
-import * as _88 from "./tx/v1beta1/tx";
-import * as _89 from "./upgrade/v1beta1/query";
-import * as _90 from "./upgrade/v1beta1/tx";
-import * as _91 from "./upgrade/v1beta1/upgrade";
-import * as _92 from "./vesting/v1beta1/tx";
-import * as _93 from "./vesting/v1beta1/vesting";
-import * as _194 from "./authz/v1beta1/tx.amino";
-import * as _195 from "./bank/v1beta1/tx.amino";
-import * as _196 from "./crisis/v1beta1/tx.amino";
-import * as _197 from "./distribution/v1beta1/tx.amino";
-import * as _198 from "./evidence/v1beta1/tx.amino";
-import * as _199 from "./feegrant/v1beta1/tx.amino";
-import * as _200 from "./gov/v1/tx.amino";
-import * as _201 from "./gov/v1beta1/tx.amino";
-import * as _202 from "./group/v1/tx.amino";
-import * as _203 from "./nft/v1beta1/tx.amino";
-import * as _204 from "./slashing/v1beta1/tx.amino";
-import * as _205 from "./staking/v1beta1/tx.amino";
-import * as _206 from "./upgrade/v1beta1/tx.amino";
-import * as _207 from "./vesting/v1beta1/tx.amino";
-import * as _208 from "./authz/v1beta1/tx.registry";
-import * as _209 from "./bank/v1beta1/tx.registry";
-import * as _210 from "./crisis/v1beta1/tx.registry";
-import * as _211 from "./distribution/v1beta1/tx.registry";
-import * as _212 from "./evidence/v1beta1/tx.registry";
-import * as _213 from "./feegrant/v1beta1/tx.registry";
-import * as _214 from "./gov/v1/tx.registry";
-import * as _215 from "./gov/v1beta1/tx.registry";
-import * as _216 from "./group/v1/tx.registry";
-import * as _217 from "./nft/v1beta1/tx.registry";
-import * as _218 from "./slashing/v1beta1/tx.registry";
-import * as _219 from "./staking/v1beta1/tx.registry";
-import * as _220 from "./upgrade/v1beta1/tx.registry";
-import * as _221 from "./vesting/v1beta1/tx.registry";
-import * as _222 from "./app/v1alpha1/query.rpc.Query";
-import * as _223 from "./auth/v1beta1/query.rpc.Query";
-import * as _224 from "./authz/v1beta1/query.rpc.Query";
-import * as _225 from "./bank/v1beta1/query.rpc.Query";
-import * as _226 from "./base/tendermint/v1beta1/query.rpc.Service";
-import * as _227 from "./distribution/v1beta1/query.rpc.Query";
-import * as _228 from "./evidence/v1beta1/query.rpc.Query";
-import * as _229 from "./feegrant/v1beta1/query.rpc.Query";
-import * as _230 from "./gov/v1/query.rpc.Query";
-import * as _231 from "./gov/v1beta1/query.rpc.Query";
-import * as _232 from "./group/v1/query.rpc.Query";
-import * as _233 from "./mint/v1beta1/query.rpc.Query";
-import * as _234 from "./nft/v1beta1/query.rpc.Query";
-import * as _235 from "./params/v1beta1/query.rpc.Query";
-import * as _236 from "./slashing/v1beta1/query.rpc.Query";
-import * as _237 from "./staking/v1beta1/query.rpc.Query";
-import * as _238 from "./tx/v1beta1/service.rpc.Service";
-import * as _239 from "./upgrade/v1beta1/query.rpc.Query";
-import * as _240 from "./authz/v1beta1/tx.rpc.msg";
-import * as _241 from "./bank/v1beta1/tx.rpc.msg";
-import * as _242 from "./crisis/v1beta1/tx.rpc.msg";
-import * as _243 from "./distribution/v1beta1/tx.rpc.msg";
-import * as _244 from "./evidence/v1beta1/tx.rpc.msg";
-import * as _245 from "./feegrant/v1beta1/tx.rpc.msg";
-import * as _246 from "./gov/v1/tx.rpc.msg";
-import * as _247 from "./gov/v1beta1/tx.rpc.msg";
-import * as _248 from "./group/v1/tx.rpc.msg";
-import * as _249 from "./nft/v1beta1/tx.rpc.msg";
-import * as _250 from "./slashing/v1beta1/tx.rpc.msg";
-import * as _251 from "./staking/v1beta1/tx.rpc.msg";
-import * as _252 from "./upgrade/v1beta1/tx.rpc.msg";
-import * as _253 from "./vesting/v1beta1/tx.rpc.msg";
-import * as _309 from "./rpc.query";
-import * as _310 from "./rpc.tx";
-export namespace cosmos {
-  export namespace app {
-    export const v1alpha1 = {
-      ..._2,
-      ..._3,
-      ..._4,
-      ..._222
-    };
-  }
-  export namespace auth {
-    export const v1beta1 = {
-      ..._5,
-      ..._6,
-      ..._7,
-      ..._223
-    };
-  }
-  export namespace authz {
-    export const v1beta1 = {
-      ..._8,
-      ..._9,
-      ..._10,
-      ..._11,
-      ..._12,
-      ..._194,
-      ..._208,
-      ..._224,
-      ..._240
-    };
-  }
-  export namespace bank {
-    export const v1beta1 = {
-      ..._13,
-      ..._14,
-      ..._15,
-      ..._16,
-      ..._17,
-      ..._195,
-      ..._209,
-      ..._225,
-      ..._241
-    };
-  }
-  export namespace base {
-    export namespace abci {
-      export const v1beta1 = {
-        ..._18
-      };
-    }
-    export namespace kv {
-      export const v1beta1 = {
-        ..._19
-      };
-    }
-    export namespace query {
-      export const v1beta1 = {
-        ..._20
-      };
-    }
-    export namespace reflection {
-      export const v1beta1 = {
-        ..._21
-      };
-      export const v2alpha1 = {
-        ..._22
-      };
-    }
-    export namespace snapshots {
-      export const v1beta1 = {
-        ..._23
-      };
-    }
-    export namespace store {
-      export const v1beta1 = {
-        ..._24,
-        ..._25
-      };
-    }
-    export namespace tendermint {
-      export const v1beta1 = {
-        ..._26,
-        ..._226
-      };
-    }
-    export const v1beta1 = {
-      ..._27
-    };
-  }
-  export namespace capability {
-    export const v1beta1 = {
-      ..._28,
-      ..._29
-    };
-  }
-  export namespace crisis {
-    export const v1beta1 = {
-      ..._30,
-      ..._31,
-      ..._196,
-      ..._210,
-      ..._242
-    };
-  }
-  export namespace crypto {
-    export const ed25519 = {
-      ..._32
-    };
-    export namespace hd {
-      export const v1 = {
-        ..._33
-      };
-    }
-    export namespace keyring {
-      export const v1 = {
-        ..._34
-      };
-    }
-    export const multisig = {
-      ..._35
-    };
-    export const secp256k1 = {
-      ..._36
-    };
-    export const secp256r1 = {
-      ..._37
-    };
-  }
-  export namespace distribution {
-    export const v1beta1 = {
-      ..._38,
-      ..._39,
-      ..._40,
-      ..._41,
-      ..._197,
-      ..._211,
-      ..._227,
-      ..._243
-    };
-  }
-  export namespace evidence {
-    export const v1beta1 = {
-      ..._42,
-      ..._43,
-      ..._44,
-      ..._45,
-      ..._198,
-      ..._212,
-      ..._228,
-      ..._244
-    };
-  }
-  export namespace feegrant {
-    export const v1beta1 = {
-      ..._46,
-      ..._47,
-      ..._48,
-      ..._49,
-      ..._199,
-      ..._213,
-      ..._229,
-      ..._245
-    };
-  }
-  export namespace genutil {
-    export const v1beta1 = {
-      ..._50
-    };
-  }
-  export namespace gov {
-    export const v1 = {
-      ..._51,
-      ..._52,
-      ..._53,
-      ..._54,
-      ..._200,
-      ..._214,
-      ..._230,
-      ..._246
-    };
-    export const v1beta1 = {
-      ..._55,
-      ..._56,
-      ..._57,
-      ..._58,
-      ..._201,
-      ..._215,
-      ..._231,
-      ..._247
-    };
-  }
-  export namespace group {
-    export const v1 = {
-      ..._59,
-      ..._60,
-      ..._61,
-      ..._62,
-      ..._63,
-      ..._202,
-      ..._216,
-      ..._232,
-      ..._248
-    };
-  }
-  export namespace mint {
-    export const v1beta1 = {
-      ..._64,
-      ..._65,
-      ..._66,
-      ..._233
-    };
-  }
-  export namespace msg {
-    export const v1 = {
-      ..._67
-    };
-  }
-  export namespace nft {
-    export const v1beta1 = {
-      ..._68,
-      ..._69,
-      ..._70,
-      ..._71,
-      ..._72,
-      ..._203,
-      ..._217,
-      ..._234,
-      ..._249
-    };
-  }
-  export namespace orm {
-    export const v1 = {
-      ..._73
-    };
-    export const v1alpha1 = {
-      ..._74
-    };
-  }
-  export namespace params {
-    export const v1beta1 = {
-      ..._75,
-      ..._76,
-      ..._235
-    };
-  }
-  export namespace slashing {
-    export const v1beta1 = {
-      ..._77,
-      ..._78,
-      ..._79,
-      ..._80,
-      ..._204,
-      ..._218,
-      ..._236,
-      ..._250
-    };
-  }
-  export namespace staking {
-    export const v1beta1 = {
-      ..._81,
-      ..._82,
-      ..._83,
-      ..._84,
-      ..._85,
-      ..._205,
-      ..._219,
-      ..._237,
-      ..._251
-    };
-  }
-  export namespace tx {
-    export namespace signing {
-      export const v1beta1 = {
-        ..._86
-      };
-    }
-    export const v1beta1 = {
-      ..._87,
-      ..._88,
-      ..._238
-    };
-  }
-  export namespace upgrade {
-    export const v1beta1 = {
-      ..._89,
-      ..._90,
-      ..._91,
-      ..._206,
-      ..._220,
-      ..._239,
-      ..._252
-    };
-  }
-  export namespace vesting {
-    export const v1beta1 = {
-      ..._92,
-      ..._93,
-      ..._207,
-      ..._221,
-      ..._253
-    };
-  }
-  export const ClientFactory = {
-    ..._309,
-    ..._310
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/capability/v1beta1/capability.ts b/examples/injective/src/codegen/cosmos/capability/v1beta1/capability.ts
deleted file mode 100644
index 3ccdfd4b..00000000
--- a/examples/injective/src/codegen/cosmos/capability/v1beta1/capability.ts
+++ /dev/null
@@ -1,382 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * Capability defines an implementation of an object capability. The index
- * provided to a Capability must be globally unique.
- */
-export interface Capability {
-  index: bigint;
-}
-export interface CapabilityProtoMsg {
-  typeUrl: "/cosmos.capability.v1beta1.Capability";
-  value: Uint8Array;
-}
-/**
- * Capability defines an implementation of an object capability. The index
- * provided to a Capability must be globally unique.
- */
-export interface CapabilityAmino {
-  index: string;
-}
-export interface CapabilityAminoMsg {
-  type: "cosmos-sdk/Capability";
-  value: CapabilityAmino;
-}
-/**
- * Capability defines an implementation of an object capability. The index
- * provided to a Capability must be globally unique.
- */
-export interface CapabilitySDKType {
-  index: bigint;
-}
-/**
- * Owner defines a single capability owner. An owner is defined by the name of
- * capability and the module name.
- */
-export interface Owner {
-  module: string;
-  name: string;
-}
-export interface OwnerProtoMsg {
-  typeUrl: "/cosmos.capability.v1beta1.Owner";
-  value: Uint8Array;
-}
-/**
- * Owner defines a single capability owner. An owner is defined by the name of
- * capability and the module name.
- */
-export interface OwnerAmino {
-  module: string;
-  name: string;
-}
-export interface OwnerAminoMsg {
-  type: "cosmos-sdk/Owner";
-  value: OwnerAmino;
-}
-/**
- * Owner defines a single capability owner. An owner is defined by the name of
- * capability and the module name.
- */
-export interface OwnerSDKType {
-  module: string;
-  name: string;
-}
-/**
- * CapabilityOwners defines a set of owners of a single Capability. The set of
- * owners must be unique.
- */
-export interface CapabilityOwners {
-  owners: Owner[];
-}
-export interface CapabilityOwnersProtoMsg {
-  typeUrl: "/cosmos.capability.v1beta1.CapabilityOwners";
-  value: Uint8Array;
-}
-/**
- * CapabilityOwners defines a set of owners of a single Capability. The set of
- * owners must be unique.
- */
-export interface CapabilityOwnersAmino {
-  owners: OwnerAmino[];
-}
-export interface CapabilityOwnersAminoMsg {
-  type: "cosmos-sdk/CapabilityOwners";
-  value: CapabilityOwnersAmino;
-}
-/**
- * CapabilityOwners defines a set of owners of a single Capability. The set of
- * owners must be unique.
- */
-export interface CapabilityOwnersSDKType {
-  owners: OwnerSDKType[];
-}
-function createBaseCapability(): Capability {
-  return {
-    index: BigInt(0)
-  };
-}
-export const Capability = {
-  typeUrl: "/cosmos.capability.v1beta1.Capability",
-  aminoType: "cosmos-sdk/Capability",
-  encode(message: Capability, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== BigInt(0)) {
-      writer.uint32(8).uint64(message.index);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Capability {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCapability();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Capability {
-    return {
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Capability): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Capability>): Capability {
-    const message = createBaseCapability();
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: CapabilitySDKType): Capability {
-    return {
-      index: object?.index
-    };
-  },
-  toSDK(message: Capability): CapabilitySDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    return obj;
-  },
-  fromAmino(object: CapabilityAmino): Capability {
-    return {
-      index: BigInt(object.index)
-    };
-  },
-  toAmino(message: Capability): CapabilityAmino {
-    const obj: any = {};
-    obj.index = message.index ? message.index.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CapabilityAminoMsg): Capability {
-    return Capability.fromAmino(object.value);
-  },
-  toAminoMsg(message: Capability): CapabilityAminoMsg {
-    return {
-      type: "cosmos-sdk/Capability",
-      value: Capability.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CapabilityProtoMsg): Capability {
-    return Capability.decode(message.value);
-  },
-  toProto(message: Capability): Uint8Array {
-    return Capability.encode(message).finish();
-  },
-  toProtoMsg(message: Capability): CapabilityProtoMsg {
-    return {
-      typeUrl: "/cosmos.capability.v1beta1.Capability",
-      value: Capability.encode(message).finish()
-    };
-  }
-};
-function createBaseOwner(): Owner {
-  return {
-    module: "",
-    name: ""
-  };
-}
-export const Owner = {
-  typeUrl: "/cosmos.capability.v1beta1.Owner",
-  aminoType: "cosmos-sdk/Owner",
-  encode(message: Owner, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.module !== "") {
-      writer.uint32(10).string(message.module);
-    }
-    if (message.name !== "") {
-      writer.uint32(18).string(message.name);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Owner {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseOwner();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.module = reader.string();
-          break;
-        case 2:
-          message.name = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Owner {
-    return {
-      module: isSet(object.module) ? String(object.module) : "",
-      name: isSet(object.name) ? String(object.name) : ""
-    };
-  },
-  toJSON(message: Owner): unknown {
-    const obj: any = {};
-    message.module !== undefined && (obj.module = message.module);
-    message.name !== undefined && (obj.name = message.name);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Owner>): Owner {
-    const message = createBaseOwner();
-    message.module = object.module ?? "";
-    message.name = object.name ?? "";
-    return message;
-  },
-  fromSDK(object: OwnerSDKType): Owner {
-    return {
-      module: object?.module,
-      name: object?.name
-    };
-  },
-  toSDK(message: Owner): OwnerSDKType {
-    const obj: any = {};
-    obj.module = message.module;
-    obj.name = message.name;
-    return obj;
-  },
-  fromAmino(object: OwnerAmino): Owner {
-    return {
-      module: object.module,
-      name: object.name
-    };
-  },
-  toAmino(message: Owner): OwnerAmino {
-    const obj: any = {};
-    obj.module = message.module;
-    obj.name = message.name;
-    return obj;
-  },
-  fromAminoMsg(object: OwnerAminoMsg): Owner {
-    return Owner.fromAmino(object.value);
-  },
-  toAminoMsg(message: Owner): OwnerAminoMsg {
-    return {
-      type: "cosmos-sdk/Owner",
-      value: Owner.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: OwnerProtoMsg): Owner {
-    return Owner.decode(message.value);
-  },
-  toProto(message: Owner): Uint8Array {
-    return Owner.encode(message).finish();
-  },
-  toProtoMsg(message: Owner): OwnerProtoMsg {
-    return {
-      typeUrl: "/cosmos.capability.v1beta1.Owner",
-      value: Owner.encode(message).finish()
-    };
-  }
-};
-function createBaseCapabilityOwners(): CapabilityOwners {
-  return {
-    owners: []
-  };
-}
-export const CapabilityOwners = {
-  typeUrl: "/cosmos.capability.v1beta1.CapabilityOwners",
-  aminoType: "cosmos-sdk/CapabilityOwners",
-  encode(message: CapabilityOwners, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.owners) {
-      Owner.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CapabilityOwners {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCapabilityOwners();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owners.push(Owner.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CapabilityOwners {
-    return {
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => Owner.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: CapabilityOwners): unknown {
-    const obj: any = {};
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? Owner.toJSON(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CapabilityOwners>): CapabilityOwners {
-    const message = createBaseCapabilityOwners();
-    message.owners = object.owners?.map(e => Owner.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CapabilityOwnersSDKType): CapabilityOwners {
-    return {
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => Owner.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: CapabilityOwners): CapabilityOwnersSDKType {
-    const obj: any = {};
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? Owner.toSDK(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CapabilityOwnersAmino): CapabilityOwners {
-    return {
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => Owner.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: CapabilityOwners): CapabilityOwnersAmino {
-    const obj: any = {};
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? Owner.toAmino(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CapabilityOwnersAminoMsg): CapabilityOwners {
-    return CapabilityOwners.fromAmino(object.value);
-  },
-  toAminoMsg(message: CapabilityOwners): CapabilityOwnersAminoMsg {
-    return {
-      type: "cosmos-sdk/CapabilityOwners",
-      value: CapabilityOwners.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CapabilityOwnersProtoMsg): CapabilityOwners {
-    return CapabilityOwners.decode(message.value);
-  },
-  toProto(message: CapabilityOwners): Uint8Array {
-    return CapabilityOwners.encode(message).finish();
-  },
-  toProtoMsg(message: CapabilityOwners): CapabilityOwnersProtoMsg {
-    return {
-      typeUrl: "/cosmos.capability.v1beta1.CapabilityOwners",
-      value: CapabilityOwners.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/capability/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/capability/v1beta1/genesis.ts
deleted file mode 100644
index 365d37ff..00000000
--- a/examples/injective/src/codegen/cosmos/capability/v1beta1/genesis.ts
+++ /dev/null
@@ -1,279 +0,0 @@
-import { CapabilityOwners, CapabilityOwnersAmino, CapabilityOwnersSDKType } from "./capability";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisOwners defines the capability owners with their corresponding index. */
-export interface GenesisOwners {
-  /** index is the index of the capability owner. */
-  index: bigint;
-  /** index_owners are the owners at the given index. */
-  indexOwners: CapabilityOwners | undefined;
-}
-export interface GenesisOwnersProtoMsg {
-  typeUrl: "/cosmos.capability.v1beta1.GenesisOwners";
-  value: Uint8Array;
-}
-/** GenesisOwners defines the capability owners with their corresponding index. */
-export interface GenesisOwnersAmino {
-  /** index is the index of the capability owner. */
-  index: string;
-  /** index_owners are the owners at the given index. */
-  index_owners?: CapabilityOwnersAmino | undefined;
-}
-export interface GenesisOwnersAminoMsg {
-  type: "cosmos-sdk/GenesisOwners";
-  value: GenesisOwnersAmino;
-}
-/** GenesisOwners defines the capability owners with their corresponding index. */
-export interface GenesisOwnersSDKType {
-  index: bigint;
-  index_owners: CapabilityOwnersSDKType | undefined;
-}
-/** GenesisState defines the capability module's genesis state. */
-export interface GenesisState {
-  /** index is the capability global index. */
-  index: bigint;
-  /**
-   * owners represents a map from index to owners of the capability index
-   * index key is string to allow amino marshalling.
-   */
-  owners: GenesisOwners[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.capability.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the capability module's genesis state. */
-export interface GenesisStateAmino {
-  /** index is the capability global index. */
-  index: string;
-  /**
-   * owners represents a map from index to owners of the capability index
-   * index key is string to allow amino marshalling.
-   */
-  owners: GenesisOwnersAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the capability module's genesis state. */
-export interface GenesisStateSDKType {
-  index: bigint;
-  owners: GenesisOwnersSDKType[];
-}
-function createBaseGenesisOwners(): GenesisOwners {
-  return {
-    index: BigInt(0),
-    indexOwners: CapabilityOwners.fromPartial({})
-  };
-}
-export const GenesisOwners = {
-  typeUrl: "/cosmos.capability.v1beta1.GenesisOwners",
-  aminoType: "cosmos-sdk/GenesisOwners",
-  encode(message: GenesisOwners, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== BigInt(0)) {
-      writer.uint32(8).uint64(message.index);
-    }
-    if (message.indexOwners !== undefined) {
-      CapabilityOwners.encode(message.indexOwners, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisOwners {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisOwners();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.uint64();
-          break;
-        case 2:
-          message.indexOwners = CapabilityOwners.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisOwners {
-    return {
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0),
-      indexOwners: isSet(object.indexOwners) ? CapabilityOwners.fromJSON(object.indexOwners) : undefined
-    };
-  },
-  toJSON(message: GenesisOwners): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    message.indexOwners !== undefined && (obj.indexOwners = message.indexOwners ? CapabilityOwners.toJSON(message.indexOwners) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisOwners>): GenesisOwners {
-    const message = createBaseGenesisOwners();
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    message.indexOwners = object.indexOwners !== undefined && object.indexOwners !== null ? CapabilityOwners.fromPartial(object.indexOwners) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisOwnersSDKType): GenesisOwners {
-    return {
-      index: object?.index,
-      indexOwners: object.index_owners ? CapabilityOwners.fromSDK(object.index_owners) : undefined
-    };
-  },
-  toSDK(message: GenesisOwners): GenesisOwnersSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    message.indexOwners !== undefined && (obj.index_owners = message.indexOwners ? CapabilityOwners.toSDK(message.indexOwners) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisOwnersAmino): GenesisOwners {
-    return {
-      index: BigInt(object.index),
-      indexOwners: object?.index_owners ? CapabilityOwners.fromAmino(object.index_owners) : undefined
-    };
-  },
-  toAmino(message: GenesisOwners): GenesisOwnersAmino {
-    const obj: any = {};
-    obj.index = message.index ? message.index.toString() : undefined;
-    obj.index_owners = message.indexOwners ? CapabilityOwners.toAmino(message.indexOwners) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisOwnersAminoMsg): GenesisOwners {
-    return GenesisOwners.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisOwners): GenesisOwnersAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisOwners",
-      value: GenesisOwners.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisOwnersProtoMsg): GenesisOwners {
-    return GenesisOwners.decode(message.value);
-  },
-  toProto(message: GenesisOwners): Uint8Array {
-    return GenesisOwners.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisOwners): GenesisOwnersProtoMsg {
-    return {
-      typeUrl: "/cosmos.capability.v1beta1.GenesisOwners",
-      value: GenesisOwners.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState(): GenesisState {
-  return {
-    index: BigInt(0),
-    owners: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.capability.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== BigInt(0)) {
-      writer.uint32(8).uint64(message.index);
-    }
-    for (const v of message.owners) {
-      GenesisOwners.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.uint64();
-          break;
-        case 2:
-          message.owners.push(GenesisOwners.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0),
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => GenesisOwners.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? GenesisOwners.toJSON(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    message.owners = object.owners?.map(e => GenesisOwners.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      index: object?.index,
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => GenesisOwners.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? GenesisOwners.toSDK(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      index: BigInt(object.index),
-      owners: Array.isArray(object?.owners) ? object.owners.map((e: any) => GenesisOwners.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.index = message.index ? message.index.toString() : undefined;
-    if (message.owners) {
-      obj.owners = message.owners.map(e => e ? GenesisOwners.toAmino(e) : undefined);
-    } else {
-      obj.owners = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.capability.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/client.ts b/examples/injective/src/codegen/cosmos/client.ts
deleted file mode 100644
index d7164686..00000000
--- a/examples/injective/src/codegen/cosmos/client.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { GeneratedType, Registry, OfflineSigner } from "@cosmjs/proto-signing";
-import { AminoTypes, SigningStargateClient } from "@cosmjs/stargate";
-import { HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import * as cosmosAuthzV1beta1TxRegistry from "./authz/v1beta1/tx.registry";
-import * as cosmosBankV1beta1TxRegistry from "./bank/v1beta1/tx.registry";
-import * as cosmosCrisisV1beta1TxRegistry from "./crisis/v1beta1/tx.registry";
-import * as cosmosDistributionV1beta1TxRegistry from "./distribution/v1beta1/tx.registry";
-import * as cosmosEvidenceV1beta1TxRegistry from "./evidence/v1beta1/tx.registry";
-import * as cosmosFeegrantV1beta1TxRegistry from "./feegrant/v1beta1/tx.registry";
-import * as cosmosGovV1TxRegistry from "./gov/v1/tx.registry";
-import * as cosmosGovV1beta1TxRegistry from "./gov/v1beta1/tx.registry";
-import * as cosmosGroupV1TxRegistry from "./group/v1/tx.registry";
-import * as cosmosNftV1beta1TxRegistry from "./nft/v1beta1/tx.registry";
-import * as cosmosSlashingV1beta1TxRegistry from "./slashing/v1beta1/tx.registry";
-import * as cosmosStakingV1beta1TxRegistry from "./staking/v1beta1/tx.registry";
-import * as cosmosUpgradeV1beta1TxRegistry from "./upgrade/v1beta1/tx.registry";
-import * as cosmosVestingV1beta1TxRegistry from "./vesting/v1beta1/tx.registry";
-import * as cosmosAuthzV1beta1TxAmino from "./authz/v1beta1/tx.amino";
-import * as cosmosBankV1beta1TxAmino from "./bank/v1beta1/tx.amino";
-import * as cosmosCrisisV1beta1TxAmino from "./crisis/v1beta1/tx.amino";
-import * as cosmosDistributionV1beta1TxAmino from "./distribution/v1beta1/tx.amino";
-import * as cosmosEvidenceV1beta1TxAmino from "./evidence/v1beta1/tx.amino";
-import * as cosmosFeegrantV1beta1TxAmino from "./feegrant/v1beta1/tx.amino";
-import * as cosmosGovV1TxAmino from "./gov/v1/tx.amino";
-import * as cosmosGovV1beta1TxAmino from "./gov/v1beta1/tx.amino";
-import * as cosmosGroupV1TxAmino from "./group/v1/tx.amino";
-import * as cosmosNftV1beta1TxAmino from "./nft/v1beta1/tx.amino";
-import * as cosmosSlashingV1beta1TxAmino from "./slashing/v1beta1/tx.amino";
-import * as cosmosStakingV1beta1TxAmino from "./staking/v1beta1/tx.amino";
-import * as cosmosUpgradeV1beta1TxAmino from "./upgrade/v1beta1/tx.amino";
-import * as cosmosVestingV1beta1TxAmino from "./vesting/v1beta1/tx.amino";
-export const cosmosAminoConverters = {
-  ...cosmosAuthzV1beta1TxAmino.AminoConverter,
-  ...cosmosBankV1beta1TxAmino.AminoConverter,
-  ...cosmosCrisisV1beta1TxAmino.AminoConverter,
-  ...cosmosDistributionV1beta1TxAmino.AminoConverter,
-  ...cosmosEvidenceV1beta1TxAmino.AminoConverter,
-  ...cosmosFeegrantV1beta1TxAmino.AminoConverter,
-  ...cosmosGovV1TxAmino.AminoConverter,
-  ...cosmosGovV1beta1TxAmino.AminoConverter,
-  ...cosmosGroupV1TxAmino.AminoConverter,
-  ...cosmosNftV1beta1TxAmino.AminoConverter,
-  ...cosmosSlashingV1beta1TxAmino.AminoConverter,
-  ...cosmosStakingV1beta1TxAmino.AminoConverter,
-  ...cosmosUpgradeV1beta1TxAmino.AminoConverter,
-  ...cosmosVestingV1beta1TxAmino.AminoConverter
-};
-export const cosmosProtoRegistry: ReadonlyArray<[string, GeneratedType]> = [...cosmosAuthzV1beta1TxRegistry.registry, ...cosmosBankV1beta1TxRegistry.registry, ...cosmosCrisisV1beta1TxRegistry.registry, ...cosmosDistributionV1beta1TxRegistry.registry, ...cosmosEvidenceV1beta1TxRegistry.registry, ...cosmosFeegrantV1beta1TxRegistry.registry, ...cosmosGovV1TxRegistry.registry, ...cosmosGovV1beta1TxRegistry.registry, ...cosmosGroupV1TxRegistry.registry, ...cosmosNftV1beta1TxRegistry.registry, ...cosmosSlashingV1beta1TxRegistry.registry, ...cosmosStakingV1beta1TxRegistry.registry, ...cosmosUpgradeV1beta1TxRegistry.registry, ...cosmosVestingV1beta1TxRegistry.registry];
-export const getSigningCosmosClientOptions = (): {
-  registry: Registry;
-  aminoTypes: AminoTypes;
-} => {
-  const registry = new Registry([...cosmosProtoRegistry]);
-  const aminoTypes = new AminoTypes({
-    ...cosmosAminoConverters
-  });
-  return {
-    registry,
-    aminoTypes
-  };
-};
-export const getSigningCosmosClient = async ({
-  rpcEndpoint,
-  signer
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-  signer: OfflineSigner;
-}) => {
-  const {
-    registry,
-    aminoTypes
-  } = getSigningCosmosClientOptions();
-  const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
-    registry: (registry as any),
-    aminoTypes
-  });
-  return client;
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crisis/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/crisis/v1beta1/genesis.ts
deleted file mode 100644
index 2767034f..00000000
--- a/examples/injective/src/codegen/cosmos/crisis/v1beta1/genesis.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the crisis module's genesis state. */
-export interface GenesisState {
-  /**
-   * constant_fee is the fee used to verify the invariant in the crisis
-   * module.
-   */
-  constantFee: Coin | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.crisis.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the crisis module's genesis state. */
-export interface GenesisStateAmino {
-  /**
-   * constant_fee is the fee used to verify the invariant in the crisis
-   * module.
-   */
-  constant_fee?: CoinAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the crisis module's genesis state. */
-export interface GenesisStateSDKType {
-  constant_fee: CoinSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    constantFee: Coin.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.crisis.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.constantFee !== undefined) {
-      Coin.encode(message.constantFee, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 3:
-          message.constantFee = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      constantFee: isSet(object.constantFee) ? Coin.fromJSON(object.constantFee) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.constantFee !== undefined && (obj.constantFee = message.constantFee ? Coin.toJSON(message.constantFee) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.constantFee = object.constantFee !== undefined && object.constantFee !== null ? Coin.fromPartial(object.constantFee) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      constantFee: object.constant_fee ? Coin.fromSDK(object.constant_fee) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.constantFee !== undefined && (obj.constant_fee = message.constantFee ? Coin.toSDK(message.constantFee) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      constantFee: object?.constant_fee ? Coin.fromAmino(object.constant_fee) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.constant_fee = message.constantFee ? Coin.toAmino(message.constantFee) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.crisis.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.amino.ts
deleted file mode 100644
index 5269268b..00000000
--- a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgVerifyInvariant } from "./tx";
-export const AminoConverter = {
-  "/cosmos.crisis.v1beta1.MsgVerifyInvariant": {
-    aminoType: "cosmos-sdk/MsgVerifyInvariant",
-    toAmino: MsgVerifyInvariant.toAmino,
-    fromAmino: MsgVerifyInvariant.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.registry.ts
deleted file mode 100644
index d586b8ac..00000000
--- a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgVerifyInvariant } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.crisis.v1beta1.MsgVerifyInvariant", MsgVerifyInvariant]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    verifyInvariant(value: MsgVerifyInvariant) {
-      return {
-        typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-        value: MsgVerifyInvariant.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    verifyInvariant(value: MsgVerifyInvariant) {
-      return {
-        typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-        value
-      };
-    }
-  },
-  toJSON: {
-    verifyInvariant(value: MsgVerifyInvariant) {
-      return {
-        typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-        value: MsgVerifyInvariant.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    verifyInvariant(value: any) {
-      return {
-        typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-        value: MsgVerifyInvariant.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    verifyInvariant(value: MsgVerifyInvariant) {
-      return {
-        typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-        value: MsgVerifyInvariant.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index b0b9ea1f..00000000
--- a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgVerifyInvariant, MsgVerifyInvariantResponse } from "./tx";
-/** Msg defines the bank Msg service. */
-export interface Msg {
-  /** VerifyInvariant defines a method to verify a particular invariance. */
-  verifyInvariant(request: MsgVerifyInvariant): Promise<MsgVerifyInvariantResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.verifyInvariant = this.verifyInvariant.bind(this);
-  }
-  verifyInvariant(request: MsgVerifyInvariant): Promise<MsgVerifyInvariantResponse> {
-    const data = MsgVerifyInvariant.encode(request).finish();
-    const promise = this.rpc.request("cosmos.crisis.v1beta1.Msg", "VerifyInvariant", data);
-    return promise.then(data => MsgVerifyInvariantResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.ts
deleted file mode 100644
index c35927a3..00000000
--- a/examples/injective/src/codegen/cosmos/crisis/v1beta1/tx.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** MsgVerifyInvariant represents a message to verify a particular invariance. */
-export interface MsgVerifyInvariant {
-  sender: string;
-  invariantModuleName: string;
-  invariantRoute: string;
-}
-export interface MsgVerifyInvariantProtoMsg {
-  typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant";
-  value: Uint8Array;
-}
-/** MsgVerifyInvariant represents a message to verify a particular invariance. */
-export interface MsgVerifyInvariantAmino {
-  sender: string;
-  invariant_module_name: string;
-  invariant_route: string;
-}
-export interface MsgVerifyInvariantAminoMsg {
-  type: "cosmos-sdk/MsgVerifyInvariant";
-  value: MsgVerifyInvariantAmino;
-}
-/** MsgVerifyInvariant represents a message to verify a particular invariance. */
-export interface MsgVerifyInvariantSDKType {
-  sender: string;
-  invariant_module_name: string;
-  invariant_route: string;
-}
-/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */
-export interface MsgVerifyInvariantResponse {}
-export interface MsgVerifyInvariantResponseProtoMsg {
-  typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariantResponse";
-  value: Uint8Array;
-}
-/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */
-export interface MsgVerifyInvariantResponseAmino {}
-export interface MsgVerifyInvariantResponseAminoMsg {
-  type: "cosmos-sdk/MsgVerifyInvariantResponse";
-  value: MsgVerifyInvariantResponseAmino;
-}
-/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */
-export interface MsgVerifyInvariantResponseSDKType {}
-function createBaseMsgVerifyInvariant(): MsgVerifyInvariant {
-  return {
-    sender: "",
-    invariantModuleName: "",
-    invariantRoute: ""
-  };
-}
-export const MsgVerifyInvariant = {
-  typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-  aminoType: "cosmos-sdk/MsgVerifyInvariant",
-  encode(message: MsgVerifyInvariant, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.invariantModuleName !== "") {
-      writer.uint32(18).string(message.invariantModuleName);
-    }
-    if (message.invariantRoute !== "") {
-      writer.uint32(26).string(message.invariantRoute);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVerifyInvariant {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVerifyInvariant();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.invariantModuleName = reader.string();
-          break;
-        case 3:
-          message.invariantRoute = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVerifyInvariant {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      invariantModuleName: isSet(object.invariantModuleName) ? String(object.invariantModuleName) : "",
-      invariantRoute: isSet(object.invariantRoute) ? String(object.invariantRoute) : ""
-    };
-  },
-  toJSON(message: MsgVerifyInvariant): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.invariantModuleName !== undefined && (obj.invariantModuleName = message.invariantModuleName);
-    message.invariantRoute !== undefined && (obj.invariantRoute = message.invariantRoute);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVerifyInvariant>): MsgVerifyInvariant {
-    const message = createBaseMsgVerifyInvariant();
-    message.sender = object.sender ?? "";
-    message.invariantModuleName = object.invariantModuleName ?? "";
-    message.invariantRoute = object.invariantRoute ?? "";
-    return message;
-  },
-  fromSDK(object: MsgVerifyInvariantSDKType): MsgVerifyInvariant {
-    return {
-      sender: object?.sender,
-      invariantModuleName: object?.invariant_module_name,
-      invariantRoute: object?.invariant_route
-    };
-  },
-  toSDK(message: MsgVerifyInvariant): MsgVerifyInvariantSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.invariant_module_name = message.invariantModuleName;
-    obj.invariant_route = message.invariantRoute;
-    return obj;
-  },
-  fromAmino(object: MsgVerifyInvariantAmino): MsgVerifyInvariant {
-    return {
-      sender: object.sender,
-      invariantModuleName: object.invariant_module_name,
-      invariantRoute: object.invariant_route
-    };
-  },
-  toAmino(message: MsgVerifyInvariant): MsgVerifyInvariantAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.invariant_module_name = message.invariantModuleName;
-    obj.invariant_route = message.invariantRoute;
-    return obj;
-  },
-  fromAminoMsg(object: MsgVerifyInvariantAminoMsg): MsgVerifyInvariant {
-    return MsgVerifyInvariant.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVerifyInvariant): MsgVerifyInvariantAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVerifyInvariant",
-      value: MsgVerifyInvariant.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVerifyInvariantProtoMsg): MsgVerifyInvariant {
-    return MsgVerifyInvariant.decode(message.value);
-  },
-  toProto(message: MsgVerifyInvariant): Uint8Array {
-    return MsgVerifyInvariant.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVerifyInvariant): MsgVerifyInvariantProtoMsg {
-    return {
-      typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariant",
-      value: MsgVerifyInvariant.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVerifyInvariantResponse(): MsgVerifyInvariantResponse {
-  return {};
-}
-export const MsgVerifyInvariantResponse = {
-  typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariantResponse",
-  aminoType: "cosmos-sdk/MsgVerifyInvariantResponse",
-  encode(_: MsgVerifyInvariantResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVerifyInvariantResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVerifyInvariantResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVerifyInvariantResponse {
-    return {};
-  },
-  toJSON(_: MsgVerifyInvariantResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVerifyInvariantResponse>): MsgVerifyInvariantResponse {
-    const message = createBaseMsgVerifyInvariantResponse();
-    return message;
-  },
-  fromSDK(_: MsgVerifyInvariantResponseSDKType): MsgVerifyInvariantResponse {
-    return {};
-  },
-  toSDK(_: MsgVerifyInvariantResponse): MsgVerifyInvariantResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVerifyInvariantResponseAmino): MsgVerifyInvariantResponse {
-    return {};
-  },
-  toAmino(_: MsgVerifyInvariantResponse): MsgVerifyInvariantResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVerifyInvariantResponseAminoMsg): MsgVerifyInvariantResponse {
-    return MsgVerifyInvariantResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVerifyInvariantResponse): MsgVerifyInvariantResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVerifyInvariantResponse",
-      value: MsgVerifyInvariantResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVerifyInvariantResponseProtoMsg): MsgVerifyInvariantResponse {
-    return MsgVerifyInvariantResponse.decode(message.value);
-  },
-  toProto(message: MsgVerifyInvariantResponse): Uint8Array {
-    return MsgVerifyInvariantResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVerifyInvariantResponse): MsgVerifyInvariantResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.crisis.v1beta1.MsgVerifyInvariantResponse",
-      value: MsgVerifyInvariantResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/ed25519/keys.ts b/examples/injective/src/codegen/cosmos/crypto/ed25519/keys.ts
deleted file mode 100644
index b9b2b146..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/ed25519/keys.ts
+++ /dev/null
@@ -1,245 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/**
- * PubKey is an ed25519 public key for handling Tendermint keys in SDK.
- * It's needed for Any serialization and SDK compatibility.
- * It must not be used in a non Tendermint key context because it doesn't implement
- * ADR-28. Nevertheless, you will like to use ed25519 in app user level
- * then you must create a new proto message and follow ADR-28 for Address construction.
- */
-export interface PubKey {
-  key: Uint8Array;
-}
-export interface PubKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.ed25519.PubKey";
-  value: Uint8Array;
-}
-/**
- * PubKey is an ed25519 public key for handling Tendermint keys in SDK.
- * It's needed for Any serialization and SDK compatibility.
- * It must not be used in a non Tendermint key context because it doesn't implement
- * ADR-28. Nevertheless, you will like to use ed25519 in app user level
- * then you must create a new proto message and follow ADR-28 for Address construction.
- */
-export interface PubKeyAmino {
-  key: Uint8Array;
-}
-export interface PubKeyAminoMsg {
-  type: "cosmos-sdk/PubKey";
-  value: PubKeyAmino;
-}
-/**
- * PubKey is an ed25519 public key for handling Tendermint keys in SDK.
- * It's needed for Any serialization and SDK compatibility.
- * It must not be used in a non Tendermint key context because it doesn't implement
- * ADR-28. Nevertheless, you will like to use ed25519 in app user level
- * then you must create a new proto message and follow ADR-28 for Address construction.
- */
-export interface PubKeySDKType {
-  key: Uint8Array;
-}
-/**
- * Deprecated: PrivKey defines a ed25519 private key.
- * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context.
- */
-export interface PrivKey {
-  key: Uint8Array;
-}
-export interface PrivKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.ed25519.PrivKey";
-  value: Uint8Array;
-}
-/**
- * Deprecated: PrivKey defines a ed25519 private key.
- * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context.
- */
-export interface PrivKeyAmino {
-  key: Uint8Array;
-}
-export interface PrivKeyAminoMsg {
-  type: "cosmos-sdk/PrivKey";
-  value: PrivKeyAmino;
-}
-/**
- * Deprecated: PrivKey defines a ed25519 private key.
- * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context.
- */
-export interface PrivKeySDKType {
-  key: Uint8Array;
-}
-function createBasePubKey(): PubKey {
-  return {
-    key: new Uint8Array()
-  };
-}
-export const PubKey = {
-  typeUrl: "/cosmos.crypto.ed25519.PubKey",
-  aminoType: "cosmos-sdk/PubKey",
-  encode(message: PubKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PubKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePubKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PubKey {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array()
-    };
-  },
-  toJSON(message: PubKey): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PubKey>): PubKey {
-    const message = createBasePubKey();
-    message.key = object.key ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PubKeySDKType): PubKey {
-    return {
-      key: object?.key
-    };
-  },
-  toSDK(message: PubKey): PubKeySDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: PubKeyAmino): PubKey {
-    return {
-      key: object.key
-    };
-  },
-  toAmino(message: PubKey): PubKeyAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: PubKeyAminoMsg): PubKey {
-    return PubKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PubKey): PubKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PubKey",
-      value: PubKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PubKeyProtoMsg): PubKey {
-    return PubKey.decode(message.value);
-  },
-  toProto(message: PubKey): Uint8Array {
-    return PubKey.encode(message).finish();
-  },
-  toProtoMsg(message: PubKey): PubKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.ed25519.PubKey",
-      value: PubKey.encode(message).finish()
-    };
-  }
-};
-function createBasePrivKey(): PrivKey {
-  return {
-    key: new Uint8Array()
-  };
-}
-export const PrivKey = {
-  typeUrl: "/cosmos.crypto.ed25519.PrivKey",
-  aminoType: "cosmos-sdk/PrivKey",
-  encode(message: PrivKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PrivKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePrivKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PrivKey {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array()
-    };
-  },
-  toJSON(message: PrivKey): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PrivKey>): PrivKey {
-    const message = createBasePrivKey();
-    message.key = object.key ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PrivKeySDKType): PrivKey {
-    return {
-      key: object?.key
-    };
-  },
-  toSDK(message: PrivKey): PrivKeySDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: PrivKeyAmino): PrivKey {
-    return {
-      key: object.key
-    };
-  },
-  toAmino(message: PrivKey): PrivKeyAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: PrivKeyAminoMsg): PrivKey {
-    return PrivKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PrivKey): PrivKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PrivKey",
-      value: PrivKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PrivKeyProtoMsg): PrivKey {
-    return PrivKey.decode(message.value);
-  },
-  toProto(message: PrivKey): Uint8Array {
-    return PrivKey.encode(message).finish();
-  },
-  toProtoMsg(message: PrivKey): PrivKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.ed25519.PrivKey",
-      value: PrivKey.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/hd/v1/hd.ts b/examples/injective/src/codegen/cosmos/crypto/hd/v1/hd.ts
deleted file mode 100644
index db832a7c..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/hd/v1/hd.ts
+++ /dev/null
@@ -1,194 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** BIP44Params is used as path field in ledger item in Record. */
-export interface BIP44Params {
-  /** purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation */
-  purpose: number;
-  /** coin_type is a constant that improves privacy */
-  coinType: number;
-  /** account splits the key space into independent user identities */
-  account: number;
-  /**
-   * change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal
-   * chain.
-   */
-  change: boolean;
-  /** address_index is used as child index in BIP32 derivation */
-  addressIndex: number;
-}
-export interface BIP44ParamsProtoMsg {
-  typeUrl: "/cosmos.crypto.hd.v1.BIP44Params";
-  value: Uint8Array;
-}
-/** BIP44Params is used as path field in ledger item in Record. */
-export interface BIP44ParamsAmino {
-  /** purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation */
-  purpose: number;
-  /** coin_type is a constant that improves privacy */
-  coin_type: number;
-  /** account splits the key space into independent user identities */
-  account: number;
-  /**
-   * change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal
-   * chain.
-   */
-  change: boolean;
-  /** address_index is used as child index in BIP32 derivation */
-  address_index: number;
-}
-export interface BIP44ParamsAminoMsg {
-  type: "cosmos-sdk/BIP44Params";
-  value: BIP44ParamsAmino;
-}
-/** BIP44Params is used as path field in ledger item in Record. */
-export interface BIP44ParamsSDKType {
-  purpose: number;
-  coin_type: number;
-  account: number;
-  change: boolean;
-  address_index: number;
-}
-function createBaseBIP44Params(): BIP44Params {
-  return {
-    purpose: 0,
-    coinType: 0,
-    account: 0,
-    change: false,
-    addressIndex: 0
-  };
-}
-export const BIP44Params = {
-  typeUrl: "/cosmos.crypto.hd.v1.BIP44Params",
-  aminoType: "cosmos-sdk/BIP44Params",
-  encode(message: BIP44Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.purpose !== 0) {
-      writer.uint32(8).uint32(message.purpose);
-    }
-    if (message.coinType !== 0) {
-      writer.uint32(16).uint32(message.coinType);
-    }
-    if (message.account !== 0) {
-      writer.uint32(24).uint32(message.account);
-    }
-    if (message.change === true) {
-      writer.uint32(32).bool(message.change);
-    }
-    if (message.addressIndex !== 0) {
-      writer.uint32(40).uint32(message.addressIndex);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BIP44Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBIP44Params();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.purpose = reader.uint32();
-          break;
-        case 2:
-          message.coinType = reader.uint32();
-          break;
-        case 3:
-          message.account = reader.uint32();
-          break;
-        case 4:
-          message.change = reader.bool();
-          break;
-        case 5:
-          message.addressIndex = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BIP44Params {
-    return {
-      purpose: isSet(object.purpose) ? Number(object.purpose) : 0,
-      coinType: isSet(object.coinType) ? Number(object.coinType) : 0,
-      account: isSet(object.account) ? Number(object.account) : 0,
-      change: isSet(object.change) ? Boolean(object.change) : false,
-      addressIndex: isSet(object.addressIndex) ? Number(object.addressIndex) : 0
-    };
-  },
-  toJSON(message: BIP44Params): unknown {
-    const obj: any = {};
-    message.purpose !== undefined && (obj.purpose = Math.round(message.purpose));
-    message.coinType !== undefined && (obj.coinType = Math.round(message.coinType));
-    message.account !== undefined && (obj.account = Math.round(message.account));
-    message.change !== undefined && (obj.change = message.change);
-    message.addressIndex !== undefined && (obj.addressIndex = Math.round(message.addressIndex));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BIP44Params>): BIP44Params {
-    const message = createBaseBIP44Params();
-    message.purpose = object.purpose ?? 0;
-    message.coinType = object.coinType ?? 0;
-    message.account = object.account ?? 0;
-    message.change = object.change ?? false;
-    message.addressIndex = object.addressIndex ?? 0;
-    return message;
-  },
-  fromSDK(object: BIP44ParamsSDKType): BIP44Params {
-    return {
-      purpose: object?.purpose,
-      coinType: object?.coin_type,
-      account: object?.account,
-      change: object?.change,
-      addressIndex: object?.address_index
-    };
-  },
-  toSDK(message: BIP44Params): BIP44ParamsSDKType {
-    const obj: any = {};
-    obj.purpose = message.purpose;
-    obj.coin_type = message.coinType;
-    obj.account = message.account;
-    obj.change = message.change;
-    obj.address_index = message.addressIndex;
-    return obj;
-  },
-  fromAmino(object: BIP44ParamsAmino): BIP44Params {
-    return {
-      purpose: object.purpose,
-      coinType: object.coin_type,
-      account: object.account,
-      change: object.change,
-      addressIndex: object.address_index
-    };
-  },
-  toAmino(message: BIP44Params): BIP44ParamsAmino {
-    const obj: any = {};
-    obj.purpose = message.purpose;
-    obj.coin_type = message.coinType;
-    obj.account = message.account;
-    obj.change = message.change;
-    obj.address_index = message.addressIndex;
-    return obj;
-  },
-  fromAminoMsg(object: BIP44ParamsAminoMsg): BIP44Params {
-    return BIP44Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: BIP44Params): BIP44ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/BIP44Params",
-      value: BIP44Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BIP44ParamsProtoMsg): BIP44Params {
-    return BIP44Params.decode(message.value);
-  },
-  toProto(message: BIP44Params): Uint8Array {
-    return BIP44Params.encode(message).finish();
-  },
-  toProtoMsg(message: BIP44Params): BIP44ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.hd.v1.BIP44Params",
-      value: BIP44Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/keyring/v1/record.ts b/examples/injective/src/codegen/cosmos/crypto/keyring/v1/record.ts
deleted file mode 100644
index 218aad33..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/keyring/v1/record.ts
+++ /dev/null
@@ -1,619 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BIP44Params, BIP44ParamsAmino, BIP44ParamsSDKType } from "../../hd/v1/hd";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** Record is used for representing a key in the keyring. */
-export interface Record {
-  /** name represents a name of Record */
-  name: string;
-  /** pub_key represents a public key in any format */
-  pubKey: Any | undefined;
-  /** local stores the public information about a locally stored key */
-  local?: Record_Local | undefined;
-  /** ledger stores the public information about a Ledger key */
-  ledger?: Record_Ledger | undefined;
-  /** Multi does not store any information. */
-  multi?: Record_Multi | undefined;
-  /** Offline does not store any information. */
-  offline?: Record_Offline | undefined;
-}
-export interface RecordProtoMsg {
-  typeUrl: "/cosmos.crypto.keyring.v1.Record";
-  value: Uint8Array;
-}
-/** Record is used for representing a key in the keyring. */
-export interface RecordAmino {
-  /** name represents a name of Record */
-  name: string;
-  /** pub_key represents a public key in any format */
-  pub_key?: AnyAmino | undefined;
-  /** local stores the public information about a locally stored key */
-  local?: Record_LocalAmino | undefined;
-  /** ledger stores the public information about a Ledger key */
-  ledger?: Record_LedgerAmino | undefined;
-  /** Multi does not store any information. */
-  multi?: Record_MultiAmino | undefined;
-  /** Offline does not store any information. */
-  offline?: Record_OfflineAmino | undefined;
-}
-export interface RecordAminoMsg {
-  type: "cosmos-sdk/Record";
-  value: RecordAmino;
-}
-/** Record is used for representing a key in the keyring. */
-export interface RecordSDKType {
-  name: string;
-  pub_key: AnySDKType | undefined;
-  local?: Record_LocalSDKType | undefined;
-  ledger?: Record_LedgerSDKType | undefined;
-  multi?: Record_MultiSDKType | undefined;
-  offline?: Record_OfflineSDKType | undefined;
-}
-/**
- * Item is a keyring item stored in a keyring backend.
- * Local item
- */
-export interface Record_Local {
-  privKey: Any | undefined;
-  privKeyType: string;
-}
-export interface Record_LocalProtoMsg {
-  typeUrl: "/cosmos.crypto.keyring.v1.Local";
-  value: Uint8Array;
-}
-/**
- * Item is a keyring item stored in a keyring backend.
- * Local item
- */
-export interface Record_LocalAmino {
-  priv_key?: AnyAmino | undefined;
-  priv_key_type: string;
-}
-export interface Record_LocalAminoMsg {
-  type: "cosmos-sdk/Local";
-  value: Record_LocalAmino;
-}
-/**
- * Item is a keyring item stored in a keyring backend.
- * Local item
- */
-export interface Record_LocalSDKType {
-  priv_key: AnySDKType | undefined;
-  priv_key_type: string;
-}
-/** Ledger item */
-export interface Record_Ledger {
-  path: BIP44Params | undefined;
-}
-export interface Record_LedgerProtoMsg {
-  typeUrl: "/cosmos.crypto.keyring.v1.Ledger";
-  value: Uint8Array;
-}
-/** Ledger item */
-export interface Record_LedgerAmino {
-  path?: BIP44ParamsAmino | undefined;
-}
-export interface Record_LedgerAminoMsg {
-  type: "cosmos-sdk/Ledger";
-  value: Record_LedgerAmino;
-}
-/** Ledger item */
-export interface Record_LedgerSDKType {
-  path: BIP44ParamsSDKType | undefined;
-}
-/** Multi item */
-export interface Record_Multi {}
-export interface Record_MultiProtoMsg {
-  typeUrl: "/cosmos.crypto.keyring.v1.Multi";
-  value: Uint8Array;
-}
-/** Multi item */
-export interface Record_MultiAmino {}
-export interface Record_MultiAminoMsg {
-  type: "cosmos-sdk/Multi";
-  value: Record_MultiAmino;
-}
-/** Multi item */
-export interface Record_MultiSDKType {}
-/** Offline item */
-export interface Record_Offline {}
-export interface Record_OfflineProtoMsg {
-  typeUrl: "/cosmos.crypto.keyring.v1.Offline";
-  value: Uint8Array;
-}
-/** Offline item */
-export interface Record_OfflineAmino {}
-export interface Record_OfflineAminoMsg {
-  type: "cosmos-sdk/Offline";
-  value: Record_OfflineAmino;
-}
-/** Offline item */
-export interface Record_OfflineSDKType {}
-function createBaseRecord(): Record {
-  return {
-    name: "",
-    pubKey: Any.fromPartial({}),
-    local: undefined,
-    ledger: undefined,
-    multi: undefined,
-    offline: undefined
-  };
-}
-export const Record = {
-  typeUrl: "/cosmos.crypto.keyring.v1.Record",
-  aminoType: "cosmos-sdk/Record",
-  encode(message: Record, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.pubKey !== undefined) {
-      Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.local !== undefined) {
-      Record_Local.encode(message.local, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.ledger !== undefined) {
-      Record_Ledger.encode(message.ledger, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.multi !== undefined) {
-      Record_Multi.encode(message.multi, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.offline !== undefined) {
-      Record_Offline.encode(message.offline, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Record {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.pubKey = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.local = Record_Local.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.ledger = Record_Ledger.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.multi = Record_Multi.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.offline = Record_Offline.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Record {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      pubKey: isSet(object.pubKey) ? Any.fromJSON(object.pubKey) : undefined,
-      local: isSet(object.local) ? Record_Local.fromJSON(object.local) : undefined,
-      ledger: isSet(object.ledger) ? Record_Ledger.fromJSON(object.ledger) : undefined,
-      multi: isSet(object.multi) ? Record_Multi.fromJSON(object.multi) : undefined,
-      offline: isSet(object.offline) ? Record_Offline.fromJSON(object.offline) : undefined
-    };
-  },
-  toJSON(message: Record): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? Any.toJSON(message.pubKey) : undefined);
-    message.local !== undefined && (obj.local = message.local ? Record_Local.toJSON(message.local) : undefined);
-    message.ledger !== undefined && (obj.ledger = message.ledger ? Record_Ledger.toJSON(message.ledger) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? Record_Multi.toJSON(message.multi) : undefined);
-    message.offline !== undefined && (obj.offline = message.offline ? Record_Offline.toJSON(message.offline) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Record>): Record {
-    const message = createBaseRecord();
-    message.name = object.name ?? "";
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined;
-    message.local = object.local !== undefined && object.local !== null ? Record_Local.fromPartial(object.local) : undefined;
-    message.ledger = object.ledger !== undefined && object.ledger !== null ? Record_Ledger.fromPartial(object.ledger) : undefined;
-    message.multi = object.multi !== undefined && object.multi !== null ? Record_Multi.fromPartial(object.multi) : undefined;
-    message.offline = object.offline !== undefined && object.offline !== null ? Record_Offline.fromPartial(object.offline) : undefined;
-    return message;
-  },
-  fromSDK(object: RecordSDKType): Record {
-    return {
-      name: object?.name,
-      pubKey: object.pub_key ? Any.fromSDK(object.pub_key) : undefined,
-      local: object.local ? Record_Local.fromSDK(object.local) : undefined,
-      ledger: object.ledger ? Record_Ledger.fromSDK(object.ledger) : undefined,
-      multi: object.multi ? Record_Multi.fromSDK(object.multi) : undefined,
-      offline: object.offline ? Record_Offline.fromSDK(object.offline) : undefined
-    };
-  },
-  toSDK(message: Record): RecordSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? Any.toSDK(message.pubKey) : undefined);
-    message.local !== undefined && (obj.local = message.local ? Record_Local.toSDK(message.local) : undefined);
-    message.ledger !== undefined && (obj.ledger = message.ledger ? Record_Ledger.toSDK(message.ledger) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? Record_Multi.toSDK(message.multi) : undefined);
-    message.offline !== undefined && (obj.offline = message.offline ? Record_Offline.toSDK(message.offline) : undefined);
-    return obj;
-  },
-  fromAmino(object: RecordAmino): Record {
-    return {
-      name: object.name,
-      pubKey: object?.pub_key ? Any.fromAmino(object.pub_key) : undefined,
-      local: object?.local ? Record_Local.fromAmino(object.local) : undefined,
-      ledger: object?.ledger ? Record_Ledger.fromAmino(object.ledger) : undefined,
-      multi: object?.multi ? Record_Multi.fromAmino(object.multi) : undefined,
-      offline: object?.offline ? Record_Offline.fromAmino(object.offline) : undefined
-    };
-  },
-  toAmino(message: Record): RecordAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.pub_key = message.pubKey ? Any.toAmino(message.pubKey) : undefined;
-    obj.local = message.local ? Record_Local.toAmino(message.local) : undefined;
-    obj.ledger = message.ledger ? Record_Ledger.toAmino(message.ledger) : undefined;
-    obj.multi = message.multi ? Record_Multi.toAmino(message.multi) : undefined;
-    obj.offline = message.offline ? Record_Offline.toAmino(message.offline) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RecordAminoMsg): Record {
-    return Record.fromAmino(object.value);
-  },
-  toAminoMsg(message: Record): RecordAminoMsg {
-    return {
-      type: "cosmos-sdk/Record",
-      value: Record.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RecordProtoMsg): Record {
-    return Record.decode(message.value);
-  },
-  toProto(message: Record): Uint8Array {
-    return Record.encode(message).finish();
-  },
-  toProtoMsg(message: Record): RecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.keyring.v1.Record",
-      value: Record.encode(message).finish()
-    };
-  }
-};
-function createBaseRecord_Local(): Record_Local {
-  return {
-    privKey: Any.fromPartial({}),
-    privKeyType: ""
-  };
-}
-export const Record_Local = {
-  typeUrl: "/cosmos.crypto.keyring.v1.Local",
-  aminoType: "cosmos-sdk/Local",
-  encode(message: Record_Local, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.privKey !== undefined) {
-      Any.encode(message.privKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.privKeyType !== "") {
-      writer.uint32(18).string(message.privKeyType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Record_Local {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRecord_Local();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.privKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.privKeyType = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Record_Local {
-    return {
-      privKey: isSet(object.privKey) ? Any.fromJSON(object.privKey) : undefined,
-      privKeyType: isSet(object.privKeyType) ? String(object.privKeyType) : ""
-    };
-  },
-  toJSON(message: Record_Local): unknown {
-    const obj: any = {};
-    message.privKey !== undefined && (obj.privKey = message.privKey ? Any.toJSON(message.privKey) : undefined);
-    message.privKeyType !== undefined && (obj.privKeyType = message.privKeyType);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Record_Local>): Record_Local {
-    const message = createBaseRecord_Local();
-    message.privKey = object.privKey !== undefined && object.privKey !== null ? Any.fromPartial(object.privKey) : undefined;
-    message.privKeyType = object.privKeyType ?? "";
-    return message;
-  },
-  fromSDK(object: Record_LocalSDKType): Record_Local {
-    return {
-      privKey: object.priv_key ? Any.fromSDK(object.priv_key) : undefined,
-      privKeyType: object?.priv_key_type
-    };
-  },
-  toSDK(message: Record_Local): Record_LocalSDKType {
-    const obj: any = {};
-    message.privKey !== undefined && (obj.priv_key = message.privKey ? Any.toSDK(message.privKey) : undefined);
-    obj.priv_key_type = message.privKeyType;
-    return obj;
-  },
-  fromAmino(object: Record_LocalAmino): Record_Local {
-    return {
-      privKey: object?.priv_key ? Any.fromAmino(object.priv_key) : undefined,
-      privKeyType: object.priv_key_type
-    };
-  },
-  toAmino(message: Record_Local): Record_LocalAmino {
-    const obj: any = {};
-    obj.priv_key = message.privKey ? Any.toAmino(message.privKey) : undefined;
-    obj.priv_key_type = message.privKeyType;
-    return obj;
-  },
-  fromAminoMsg(object: Record_LocalAminoMsg): Record_Local {
-    return Record_Local.fromAmino(object.value);
-  },
-  toAminoMsg(message: Record_Local): Record_LocalAminoMsg {
-    return {
-      type: "cosmos-sdk/Local",
-      value: Record_Local.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Record_LocalProtoMsg): Record_Local {
-    return Record_Local.decode(message.value);
-  },
-  toProto(message: Record_Local): Uint8Array {
-    return Record_Local.encode(message).finish();
-  },
-  toProtoMsg(message: Record_Local): Record_LocalProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.keyring.v1.Local",
-      value: Record_Local.encode(message).finish()
-    };
-  }
-};
-function createBaseRecord_Ledger(): Record_Ledger {
-  return {
-    path: BIP44Params.fromPartial({})
-  };
-}
-export const Record_Ledger = {
-  typeUrl: "/cosmos.crypto.keyring.v1.Ledger",
-  aminoType: "cosmos-sdk/Ledger",
-  encode(message: Record_Ledger, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path !== undefined) {
-      BIP44Params.encode(message.path, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Record_Ledger {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRecord_Ledger();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = BIP44Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Record_Ledger {
-    return {
-      path: isSet(object.path) ? BIP44Params.fromJSON(object.path) : undefined
-    };
-  },
-  toJSON(message: Record_Ledger): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = message.path ? BIP44Params.toJSON(message.path) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Record_Ledger>): Record_Ledger {
-    const message = createBaseRecord_Ledger();
-    message.path = object.path !== undefined && object.path !== null ? BIP44Params.fromPartial(object.path) : undefined;
-    return message;
-  },
-  fromSDK(object: Record_LedgerSDKType): Record_Ledger {
-    return {
-      path: object.path ? BIP44Params.fromSDK(object.path) : undefined
-    };
-  },
-  toSDK(message: Record_Ledger): Record_LedgerSDKType {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = message.path ? BIP44Params.toSDK(message.path) : undefined);
-    return obj;
-  },
-  fromAmino(object: Record_LedgerAmino): Record_Ledger {
-    return {
-      path: object?.path ? BIP44Params.fromAmino(object.path) : undefined
-    };
-  },
-  toAmino(message: Record_Ledger): Record_LedgerAmino {
-    const obj: any = {};
-    obj.path = message.path ? BIP44Params.toAmino(message.path) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: Record_LedgerAminoMsg): Record_Ledger {
-    return Record_Ledger.fromAmino(object.value);
-  },
-  toAminoMsg(message: Record_Ledger): Record_LedgerAminoMsg {
-    return {
-      type: "cosmos-sdk/Ledger",
-      value: Record_Ledger.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Record_LedgerProtoMsg): Record_Ledger {
-    return Record_Ledger.decode(message.value);
-  },
-  toProto(message: Record_Ledger): Uint8Array {
-    return Record_Ledger.encode(message).finish();
-  },
-  toProtoMsg(message: Record_Ledger): Record_LedgerProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.keyring.v1.Ledger",
-      value: Record_Ledger.encode(message).finish()
-    };
-  }
-};
-function createBaseRecord_Multi(): Record_Multi {
-  return {};
-}
-export const Record_Multi = {
-  typeUrl: "/cosmos.crypto.keyring.v1.Multi",
-  aminoType: "cosmos-sdk/Multi",
-  encode(_: Record_Multi, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Record_Multi {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRecord_Multi();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): Record_Multi {
-    return {};
-  },
-  toJSON(_: Record_Multi): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<Record_Multi>): Record_Multi {
-    const message = createBaseRecord_Multi();
-    return message;
-  },
-  fromSDK(_: Record_MultiSDKType): Record_Multi {
-    return {};
-  },
-  toSDK(_: Record_Multi): Record_MultiSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: Record_MultiAmino): Record_Multi {
-    return {};
-  },
-  toAmino(_: Record_Multi): Record_MultiAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: Record_MultiAminoMsg): Record_Multi {
-    return Record_Multi.fromAmino(object.value);
-  },
-  toAminoMsg(message: Record_Multi): Record_MultiAminoMsg {
-    return {
-      type: "cosmos-sdk/Multi",
-      value: Record_Multi.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Record_MultiProtoMsg): Record_Multi {
-    return Record_Multi.decode(message.value);
-  },
-  toProto(message: Record_Multi): Uint8Array {
-    return Record_Multi.encode(message).finish();
-  },
-  toProtoMsg(message: Record_Multi): Record_MultiProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.keyring.v1.Multi",
-      value: Record_Multi.encode(message).finish()
-    };
-  }
-};
-function createBaseRecord_Offline(): Record_Offline {
-  return {};
-}
-export const Record_Offline = {
-  typeUrl: "/cosmos.crypto.keyring.v1.Offline",
-  aminoType: "cosmos-sdk/Offline",
-  encode(_: Record_Offline, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Record_Offline {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRecord_Offline();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): Record_Offline {
-    return {};
-  },
-  toJSON(_: Record_Offline): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<Record_Offline>): Record_Offline {
-    const message = createBaseRecord_Offline();
-    return message;
-  },
-  fromSDK(_: Record_OfflineSDKType): Record_Offline {
-    return {};
-  },
-  toSDK(_: Record_Offline): Record_OfflineSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: Record_OfflineAmino): Record_Offline {
-    return {};
-  },
-  toAmino(_: Record_Offline): Record_OfflineAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: Record_OfflineAminoMsg): Record_Offline {
-    return Record_Offline.fromAmino(object.value);
-  },
-  toAminoMsg(message: Record_Offline): Record_OfflineAminoMsg {
-    return {
-      type: "cosmos-sdk/Offline",
-      value: Record_Offline.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: Record_OfflineProtoMsg): Record_Offline {
-    return Record_Offline.decode(message.value);
-  },
-  toProto(message: Record_Offline): Uint8Array {
-    return Record_Offline.encode(message).finish();
-  },
-  toProtoMsg(message: Record_Offline): Record_OfflineProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.keyring.v1.Offline",
-      value: Record_Offline.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/multisig/keys.ts b/examples/injective/src/codegen/cosmos/crypto/multisig/keys.ts
deleted file mode 100644
index f71973d9..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/multisig/keys.ts
+++ /dev/null
@@ -1,152 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * LegacyAminoPubKey specifies a public key type
- * which nests multiple public keys and a threshold,
- * it uses legacy amino address rules.
- */
-export interface LegacyAminoPubKey {
-  threshold: number;
-  publicKeys: Any[];
-}
-export interface LegacyAminoPubKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey";
-  value: Uint8Array;
-}
-/**
- * LegacyAminoPubKey specifies a public key type
- * which nests multiple public keys and a threshold,
- * it uses legacy amino address rules.
- */
-export interface LegacyAminoPubKeyAmino {
-  threshold: number;
-  public_keys: AnyAmino[];
-}
-export interface LegacyAminoPubKeyAminoMsg {
-  type: "cosmos-sdk/LegacyAminoPubKey";
-  value: LegacyAminoPubKeyAmino;
-}
-/**
- * LegacyAminoPubKey specifies a public key type
- * which nests multiple public keys and a threshold,
- * it uses legacy amino address rules.
- */
-export interface LegacyAminoPubKeySDKType {
-  threshold: number;
-  public_keys: AnySDKType[];
-}
-function createBaseLegacyAminoPubKey(): LegacyAminoPubKey {
-  return {
-    threshold: 0,
-    publicKeys: []
-  };
-}
-export const LegacyAminoPubKey = {
-  typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey",
-  aminoType: "cosmos-sdk/LegacyAminoPubKey",
-  encode(message: LegacyAminoPubKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.threshold !== 0) {
-      writer.uint32(8).uint32(message.threshold);
-    }
-    for (const v of message.publicKeys) {
-      Any.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LegacyAminoPubKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLegacyAminoPubKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.threshold = reader.uint32();
-          break;
-        case 2:
-          message.publicKeys.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LegacyAminoPubKey {
-    return {
-      threshold: isSet(object.threshold) ? Number(object.threshold) : 0,
-      publicKeys: Array.isArray(object?.publicKeys) ? object.publicKeys.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: LegacyAminoPubKey): unknown {
-    const obj: any = {};
-    message.threshold !== undefined && (obj.threshold = Math.round(message.threshold));
-    if (message.publicKeys) {
-      obj.publicKeys = message.publicKeys.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.publicKeys = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LegacyAminoPubKey>): LegacyAminoPubKey {
-    const message = createBaseLegacyAminoPubKey();
-    message.threshold = object.threshold ?? 0;
-    message.publicKeys = object.publicKeys?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: LegacyAminoPubKeySDKType): LegacyAminoPubKey {
-    return {
-      threshold: object?.threshold,
-      publicKeys: Array.isArray(object?.public_keys) ? object.public_keys.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: LegacyAminoPubKey): LegacyAminoPubKeySDKType {
-    const obj: any = {};
-    obj.threshold = message.threshold;
-    if (message.publicKeys) {
-      obj.public_keys = message.publicKeys.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.public_keys = [];
-    }
-    return obj;
-  },
-  fromAmino(object: LegacyAminoPubKeyAmino): LegacyAminoPubKey {
-    return {
-      threshold: object.threshold,
-      publicKeys: Array.isArray(object?.public_keys) ? object.public_keys.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: LegacyAminoPubKey): LegacyAminoPubKeyAmino {
-    const obj: any = {};
-    obj.threshold = message.threshold;
-    if (message.publicKeys) {
-      obj.public_keys = message.publicKeys.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.public_keys = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: LegacyAminoPubKeyAminoMsg): LegacyAminoPubKey {
-    return LegacyAminoPubKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: LegacyAminoPubKey): LegacyAminoPubKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/LegacyAminoPubKey",
-      value: LegacyAminoPubKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LegacyAminoPubKeyProtoMsg): LegacyAminoPubKey {
-    return LegacyAminoPubKey.decode(message.value);
-  },
-  toProto(message: LegacyAminoPubKey): Uint8Array {
-    return LegacyAminoPubKey.encode(message).finish();
-  },
-  toProtoMsg(message: LegacyAminoPubKey): LegacyAminoPubKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey",
-      value: LegacyAminoPubKey.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/multisig/v1beta1/multisig.ts b/examples/injective/src/codegen/cosmos/crypto/multisig/v1beta1/multisig.ts
deleted file mode 100644
index bce69288..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/multisig/v1beta1/multisig.ts
+++ /dev/null
@@ -1,274 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { bytesFromBase64, base64FromBytes, DeepPartial, isSet } from "../../../../helpers";
-/**
- * MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.
- * See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers
- * signed and with which modes.
- */
-export interface MultiSignature {
-  signatures: Uint8Array[];
-}
-export interface MultiSignatureProtoMsg {
-  typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature";
-  value: Uint8Array;
-}
-/**
- * MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.
- * See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers
- * signed and with which modes.
- */
-export interface MultiSignatureAmino {
-  signatures: Uint8Array[];
-}
-export interface MultiSignatureAminoMsg {
-  type: "cosmos-sdk/MultiSignature";
-  value: MultiSignatureAmino;
-}
-/**
- * MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.
- * See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers
- * signed and with which modes.
- */
-export interface MultiSignatureSDKType {
-  signatures: Uint8Array[];
-}
-/**
- * CompactBitArray is an implementation of a space efficient bit array.
- * This is used to ensure that the encoded data takes up a minimal amount of
- * space after proto encoding.
- * This is not thread safe, and is not intended for concurrent usage.
- */
-export interface CompactBitArray {
-  extraBitsStored: number;
-  elems: Uint8Array;
-}
-export interface CompactBitArrayProtoMsg {
-  typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray";
-  value: Uint8Array;
-}
-/**
- * CompactBitArray is an implementation of a space efficient bit array.
- * This is used to ensure that the encoded data takes up a minimal amount of
- * space after proto encoding.
- * This is not thread safe, and is not intended for concurrent usage.
- */
-export interface CompactBitArrayAmino {
-  extra_bits_stored: number;
-  elems: Uint8Array;
-}
-export interface CompactBitArrayAminoMsg {
-  type: "cosmos-sdk/CompactBitArray";
-  value: CompactBitArrayAmino;
-}
-/**
- * CompactBitArray is an implementation of a space efficient bit array.
- * This is used to ensure that the encoded data takes up a minimal amount of
- * space after proto encoding.
- * This is not thread safe, and is not intended for concurrent usage.
- */
-export interface CompactBitArraySDKType {
-  extra_bits_stored: number;
-  elems: Uint8Array;
-}
-function createBaseMultiSignature(): MultiSignature {
-  return {
-    signatures: []
-  };
-}
-export const MultiSignature = {
-  typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature",
-  aminoType: "cosmos-sdk/MultiSignature",
-  encode(message: MultiSignature, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.signatures) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MultiSignature {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMultiSignature();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signatures.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MultiSignature {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: MultiSignature): unknown {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MultiSignature>): MultiSignature {
-    const message = createBaseMultiSignature();
-    message.signatures = object.signatures?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: MultiSignatureSDKType): MultiSignature {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: MultiSignature): MultiSignatureSDKType {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MultiSignatureAmino): MultiSignature {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: MultiSignature): MultiSignatureAmino {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MultiSignatureAminoMsg): MultiSignature {
-    return MultiSignature.fromAmino(object.value);
-  },
-  toAminoMsg(message: MultiSignature): MultiSignatureAminoMsg {
-    return {
-      type: "cosmos-sdk/MultiSignature",
-      value: MultiSignature.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MultiSignatureProtoMsg): MultiSignature {
-    return MultiSignature.decode(message.value);
-  },
-  toProto(message: MultiSignature): Uint8Array {
-    return MultiSignature.encode(message).finish();
-  },
-  toProtoMsg(message: MultiSignature): MultiSignatureProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature",
-      value: MultiSignature.encode(message).finish()
-    };
-  }
-};
-function createBaseCompactBitArray(): CompactBitArray {
-  return {
-    extraBitsStored: 0,
-    elems: new Uint8Array()
-  };
-}
-export const CompactBitArray = {
-  typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray",
-  aminoType: "cosmos-sdk/CompactBitArray",
-  encode(message: CompactBitArray, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.extraBitsStored !== 0) {
-      writer.uint32(8).uint32(message.extraBitsStored);
-    }
-    if (message.elems.length !== 0) {
-      writer.uint32(18).bytes(message.elems);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CompactBitArray {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCompactBitArray();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.extraBitsStored = reader.uint32();
-          break;
-        case 2:
-          message.elems = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CompactBitArray {
-    return {
-      extraBitsStored: isSet(object.extraBitsStored) ? Number(object.extraBitsStored) : 0,
-      elems: isSet(object.elems) ? bytesFromBase64(object.elems) : new Uint8Array()
-    };
-  },
-  toJSON(message: CompactBitArray): unknown {
-    const obj: any = {};
-    message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored));
-    message.elems !== undefined && (obj.elems = base64FromBytes(message.elems !== undefined ? message.elems : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CompactBitArray>): CompactBitArray {
-    const message = createBaseCompactBitArray();
-    message.extraBitsStored = object.extraBitsStored ?? 0;
-    message.elems = object.elems ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: CompactBitArraySDKType): CompactBitArray {
-    return {
-      extraBitsStored: object?.extra_bits_stored,
-      elems: object?.elems
-    };
-  },
-  toSDK(message: CompactBitArray): CompactBitArraySDKType {
-    const obj: any = {};
-    obj.extra_bits_stored = message.extraBitsStored;
-    obj.elems = message.elems;
-    return obj;
-  },
-  fromAmino(object: CompactBitArrayAmino): CompactBitArray {
-    return {
-      extraBitsStored: object.extra_bits_stored,
-      elems: object.elems
-    };
-  },
-  toAmino(message: CompactBitArray): CompactBitArrayAmino {
-    const obj: any = {};
-    obj.extra_bits_stored = message.extraBitsStored;
-    obj.elems = message.elems;
-    return obj;
-  },
-  fromAminoMsg(object: CompactBitArrayAminoMsg): CompactBitArray {
-    return CompactBitArray.fromAmino(object.value);
-  },
-  toAminoMsg(message: CompactBitArray): CompactBitArrayAminoMsg {
-    return {
-      type: "cosmos-sdk/CompactBitArray",
-      value: CompactBitArray.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CompactBitArrayProtoMsg): CompactBitArray {
-    return CompactBitArray.decode(message.value);
-  },
-  toProto(message: CompactBitArray): Uint8Array {
-    return CompactBitArray.encode(message).finish();
-  },
-  toProtoMsg(message: CompactBitArray): CompactBitArrayProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray",
-      value: CompactBitArray.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/secp256k1/keys.ts b/examples/injective/src/codegen/cosmos/crypto/secp256k1/keys.ts
deleted file mode 100644
index 8af8760f..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/secp256k1/keys.ts
+++ /dev/null
@@ -1,236 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/**
- * PubKey defines a secp256k1 public key
- * Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte
- * if the y-coordinate is the lexicographically largest of the two associated with
- * the x-coordinate. Otherwise the first byte is a 0x03.
- * This prefix is followed with the x-coordinate.
- */
-export interface PubKey {
-  key: Uint8Array;
-}
-export interface PubKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.secp256k1.PubKey";
-  value: Uint8Array;
-}
-/**
- * PubKey defines a secp256k1 public key
- * Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte
- * if the y-coordinate is the lexicographically largest of the two associated with
- * the x-coordinate. Otherwise the first byte is a 0x03.
- * This prefix is followed with the x-coordinate.
- */
-export interface PubKeyAmino {
-  key: Uint8Array;
-}
-export interface PubKeyAminoMsg {
-  type: "cosmos-sdk/PubKey";
-  value: PubKeyAmino;
-}
-/**
- * PubKey defines a secp256k1 public key
- * Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte
- * if the y-coordinate is the lexicographically largest of the two associated with
- * the x-coordinate. Otherwise the first byte is a 0x03.
- * This prefix is followed with the x-coordinate.
- */
-export interface PubKeySDKType {
-  key: Uint8Array;
-}
-/** PrivKey defines a secp256k1 private key. */
-export interface PrivKey {
-  key: Uint8Array;
-}
-export interface PrivKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.secp256k1.PrivKey";
-  value: Uint8Array;
-}
-/** PrivKey defines a secp256k1 private key. */
-export interface PrivKeyAmino {
-  key: Uint8Array;
-}
-export interface PrivKeyAminoMsg {
-  type: "cosmos-sdk/PrivKey";
-  value: PrivKeyAmino;
-}
-/** PrivKey defines a secp256k1 private key. */
-export interface PrivKeySDKType {
-  key: Uint8Array;
-}
-function createBasePubKey(): PubKey {
-  return {
-    key: new Uint8Array()
-  };
-}
-export const PubKey = {
-  typeUrl: "/cosmos.crypto.secp256k1.PubKey",
-  aminoType: "cosmos-sdk/PubKey",
-  encode(message: PubKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PubKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePubKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PubKey {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array()
-    };
-  },
-  toJSON(message: PubKey): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PubKey>): PubKey {
-    const message = createBasePubKey();
-    message.key = object.key ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PubKeySDKType): PubKey {
-    return {
-      key: object?.key
-    };
-  },
-  toSDK(message: PubKey): PubKeySDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: PubKeyAmino): PubKey {
-    return {
-      key: object.key
-    };
-  },
-  toAmino(message: PubKey): PubKeyAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: PubKeyAminoMsg): PubKey {
-    return PubKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PubKey): PubKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PubKey",
-      value: PubKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PubKeyProtoMsg): PubKey {
-    return PubKey.decode(message.value);
-  },
-  toProto(message: PubKey): Uint8Array {
-    return PubKey.encode(message).finish();
-  },
-  toProtoMsg(message: PubKey): PubKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.secp256k1.PubKey",
-      value: PubKey.encode(message).finish()
-    };
-  }
-};
-function createBasePrivKey(): PrivKey {
-  return {
-    key: new Uint8Array()
-  };
-}
-export const PrivKey = {
-  typeUrl: "/cosmos.crypto.secp256k1.PrivKey",
-  aminoType: "cosmos-sdk/PrivKey",
-  encode(message: PrivKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PrivKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePrivKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PrivKey {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array()
-    };
-  },
-  toJSON(message: PrivKey): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PrivKey>): PrivKey {
-    const message = createBasePrivKey();
-    message.key = object.key ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PrivKeySDKType): PrivKey {
-    return {
-      key: object?.key
-    };
-  },
-  toSDK(message: PrivKey): PrivKeySDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: PrivKeyAmino): PrivKey {
-    return {
-      key: object.key
-    };
-  },
-  toAmino(message: PrivKey): PrivKeyAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: PrivKeyAminoMsg): PrivKey {
-    return PrivKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PrivKey): PrivKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PrivKey",
-      value: PrivKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PrivKeyProtoMsg): PrivKey {
-    return PrivKey.decode(message.value);
-  },
-  toProto(message: PrivKey): Uint8Array {
-    return PrivKey.encode(message).finish();
-  },
-  toProtoMsg(message: PrivKey): PrivKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.secp256k1.PrivKey",
-      value: PrivKey.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/crypto/secp256r1/keys.ts b/examples/injective/src/codegen/cosmos/crypto/secp256r1/keys.ts
deleted file mode 100644
index 6028bcaf..00000000
--- a/examples/injective/src/codegen/cosmos/crypto/secp256r1/keys.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** PubKey defines a secp256r1 ECDSA public key. */
-export interface PubKey {
-  /**
-   * Point on secp256r1 curve in a compressed representation as specified in section
-   * 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998
-   */
-  key: Uint8Array;
-}
-export interface PubKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.secp256r1.PubKey";
-  value: Uint8Array;
-}
-/** PubKey defines a secp256r1 ECDSA public key. */
-export interface PubKeyAmino {
-  /**
-   * Point on secp256r1 curve in a compressed representation as specified in section
-   * 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998
-   */
-  key: Uint8Array;
-}
-export interface PubKeyAminoMsg {
-  type: "cosmos-sdk/PubKey";
-  value: PubKeyAmino;
-}
-/** PubKey defines a secp256r1 ECDSA public key. */
-export interface PubKeySDKType {
-  key: Uint8Array;
-}
-/** PrivKey defines a secp256r1 ECDSA private key. */
-export interface PrivKey {
-  /** secret number serialized using big-endian encoding */
-  secret: Uint8Array;
-}
-export interface PrivKeyProtoMsg {
-  typeUrl: "/cosmos.crypto.secp256r1.PrivKey";
-  value: Uint8Array;
-}
-/** PrivKey defines a secp256r1 ECDSA private key. */
-export interface PrivKeyAmino {
-  /** secret number serialized using big-endian encoding */
-  secret: Uint8Array;
-}
-export interface PrivKeyAminoMsg {
-  type: "cosmos-sdk/PrivKey";
-  value: PrivKeyAmino;
-}
-/** PrivKey defines a secp256r1 ECDSA private key. */
-export interface PrivKeySDKType {
-  secret: Uint8Array;
-}
-function createBasePubKey(): PubKey {
-  return {
-    key: new Uint8Array()
-  };
-}
-export const PubKey = {
-  typeUrl: "/cosmos.crypto.secp256r1.PubKey",
-  aminoType: "cosmos-sdk/PubKey",
-  encode(message: PubKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PubKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePubKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PubKey {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array()
-    };
-  },
-  toJSON(message: PubKey): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PubKey>): PubKey {
-    const message = createBasePubKey();
-    message.key = object.key ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PubKeySDKType): PubKey {
-    return {
-      key: object?.key
-    };
-  },
-  toSDK(message: PubKey): PubKeySDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: PubKeyAmino): PubKey {
-    return {
-      key: object.key
-    };
-  },
-  toAmino(message: PubKey): PubKeyAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: PubKeyAminoMsg): PubKey {
-    return PubKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PubKey): PubKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PubKey",
-      value: PubKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PubKeyProtoMsg): PubKey {
-    return PubKey.decode(message.value);
-  },
-  toProto(message: PubKey): Uint8Array {
-    return PubKey.encode(message).finish();
-  },
-  toProtoMsg(message: PubKey): PubKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.secp256r1.PubKey",
-      value: PubKey.encode(message).finish()
-    };
-  }
-};
-function createBasePrivKey(): PrivKey {
-  return {
-    secret: new Uint8Array()
-  };
-}
-export const PrivKey = {
-  typeUrl: "/cosmos.crypto.secp256r1.PrivKey",
-  aminoType: "cosmos-sdk/PrivKey",
-  encode(message: PrivKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.secret.length !== 0) {
-      writer.uint32(10).bytes(message.secret);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PrivKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePrivKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.secret = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PrivKey {
-    return {
-      secret: isSet(object.secret) ? bytesFromBase64(object.secret) : new Uint8Array()
-    };
-  },
-  toJSON(message: PrivKey): unknown {
-    const obj: any = {};
-    message.secret !== undefined && (obj.secret = base64FromBytes(message.secret !== undefined ? message.secret : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PrivKey>): PrivKey {
-    const message = createBasePrivKey();
-    message.secret = object.secret ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PrivKeySDKType): PrivKey {
-    return {
-      secret: object?.secret
-    };
-  },
-  toSDK(message: PrivKey): PrivKeySDKType {
-    const obj: any = {};
-    obj.secret = message.secret;
-    return obj;
-  },
-  fromAmino(object: PrivKeyAmino): PrivKey {
-    return {
-      secret: object.secret
-    };
-  },
-  toAmino(message: PrivKey): PrivKeyAmino {
-    const obj: any = {};
-    obj.secret = message.secret;
-    return obj;
-  },
-  fromAminoMsg(object: PrivKeyAminoMsg): PrivKey {
-    return PrivKey.fromAmino(object.value);
-  },
-  toAminoMsg(message: PrivKey): PrivKeyAminoMsg {
-    return {
-      type: "cosmos-sdk/PrivKey",
-      value: PrivKey.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PrivKeyProtoMsg): PrivKey {
-    return PrivKey.decode(message.value);
-  },
-  toProto(message: PrivKey): Uint8Array {
-    return PrivKey.encode(message).finish();
-  },
-  toProtoMsg(message: PrivKey): PrivKeyProtoMsg {
-    return {
-      typeUrl: "/cosmos.crypto.secp256r1.PrivKey",
-      value: PrivKey.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/distribution.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/distribution.ts
deleted file mode 100644
index 7c829453..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/distribution.ts
+++ /dev/null
@@ -1,1803 +0,0 @@
-import { DecCoin, DecCoinAmino, DecCoinSDKType, Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Params defines the set of params for the distribution module. */
-export interface Params {
-  communityTax: string;
-  baseProposerReward: string;
-  bonusProposerReward: string;
-  withdrawAddrEnabled: boolean;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the set of params for the distribution module. */
-export interface ParamsAmino {
-  community_tax: string;
-  base_proposer_reward: string;
-  bonus_proposer_reward: string;
-  withdraw_addr_enabled: boolean;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the set of params for the distribution module. */
-export interface ParamsSDKType {
-  community_tax: string;
-  base_proposer_reward: string;
-  bonus_proposer_reward: string;
-  withdraw_addr_enabled: boolean;
-}
-/**
- * ValidatorHistoricalRewards represents historical rewards for a validator.
- * Height is implicit within the store key.
- * Cumulative reward ratio is the sum from the zeroeth period
- * until this period of rewards / tokens, per the spec.
- * The reference count indicates the number of objects
- * which might need to reference this historical entry at any point.
- * ReferenceCount =
- *    number of outstanding delegations which ended the associated period (and
- *    might need to read that record)
- *  + number of slashes which ended the associated period (and might need to
- *  read that record)
- *  + one per validator for the zeroeth period, set on initialization
- */
-export interface ValidatorHistoricalRewards {
-  cumulativeRewardRatio: DecCoin[];
-  referenceCount: number;
-}
-export interface ValidatorHistoricalRewardsProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewards";
-  value: Uint8Array;
-}
-/**
- * ValidatorHistoricalRewards represents historical rewards for a validator.
- * Height is implicit within the store key.
- * Cumulative reward ratio is the sum from the zeroeth period
- * until this period of rewards / tokens, per the spec.
- * The reference count indicates the number of objects
- * which might need to reference this historical entry at any point.
- * ReferenceCount =
- *    number of outstanding delegations which ended the associated period (and
- *    might need to read that record)
- *  + number of slashes which ended the associated period (and might need to
- *  read that record)
- *  + one per validator for the zeroeth period, set on initialization
- */
-export interface ValidatorHistoricalRewardsAmino {
-  cumulative_reward_ratio: DecCoinAmino[];
-  reference_count: number;
-}
-export interface ValidatorHistoricalRewardsAminoMsg {
-  type: "cosmos-sdk/ValidatorHistoricalRewards";
-  value: ValidatorHistoricalRewardsAmino;
-}
-/**
- * ValidatorHistoricalRewards represents historical rewards for a validator.
- * Height is implicit within the store key.
- * Cumulative reward ratio is the sum from the zeroeth period
- * until this period of rewards / tokens, per the spec.
- * The reference count indicates the number of objects
- * which might need to reference this historical entry at any point.
- * ReferenceCount =
- *    number of outstanding delegations which ended the associated period (and
- *    might need to read that record)
- *  + number of slashes which ended the associated period (and might need to
- *  read that record)
- *  + one per validator for the zeroeth period, set on initialization
- */
-export interface ValidatorHistoricalRewardsSDKType {
-  cumulative_reward_ratio: DecCoinSDKType[];
-  reference_count: number;
-}
-/**
- * ValidatorCurrentRewards represents current rewards and current
- * period for a validator kept as a running counter and incremented
- * each block as long as the validator's tokens remain constant.
- */
-export interface ValidatorCurrentRewards {
-  rewards: DecCoin[];
-  period: bigint;
-}
-export interface ValidatorCurrentRewardsProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewards";
-  value: Uint8Array;
-}
-/**
- * ValidatorCurrentRewards represents current rewards and current
- * period for a validator kept as a running counter and incremented
- * each block as long as the validator's tokens remain constant.
- */
-export interface ValidatorCurrentRewardsAmino {
-  rewards: DecCoinAmino[];
-  period: string;
-}
-export interface ValidatorCurrentRewardsAminoMsg {
-  type: "cosmos-sdk/ValidatorCurrentRewards";
-  value: ValidatorCurrentRewardsAmino;
-}
-/**
- * ValidatorCurrentRewards represents current rewards and current
- * period for a validator kept as a running counter and incremented
- * each block as long as the validator's tokens remain constant.
- */
-export interface ValidatorCurrentRewardsSDKType {
-  rewards: DecCoinSDKType[];
-  period: bigint;
-}
-/**
- * ValidatorAccumulatedCommission represents accumulated commission
- * for a validator kept as a running counter, can be withdrawn at any time.
- */
-export interface ValidatorAccumulatedCommission {
-  commission: DecCoin[];
-}
-export interface ValidatorAccumulatedCommissionProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission";
-  value: Uint8Array;
-}
-/**
- * ValidatorAccumulatedCommission represents accumulated commission
- * for a validator kept as a running counter, can be withdrawn at any time.
- */
-export interface ValidatorAccumulatedCommissionAmino {
-  commission: DecCoinAmino[];
-}
-export interface ValidatorAccumulatedCommissionAminoMsg {
-  type: "cosmos-sdk/ValidatorAccumulatedCommission";
-  value: ValidatorAccumulatedCommissionAmino;
-}
-/**
- * ValidatorAccumulatedCommission represents accumulated commission
- * for a validator kept as a running counter, can be withdrawn at any time.
- */
-export interface ValidatorAccumulatedCommissionSDKType {
-  commission: DecCoinSDKType[];
-}
-/**
- * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
- * for a validator inexpensive to track, allows simple sanity checks.
- */
-export interface ValidatorOutstandingRewards {
-  rewards: DecCoin[];
-}
-export interface ValidatorOutstandingRewardsProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewards";
-  value: Uint8Array;
-}
-/**
- * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
- * for a validator inexpensive to track, allows simple sanity checks.
- */
-export interface ValidatorOutstandingRewardsAmino {
-  rewards: DecCoinAmino[];
-}
-export interface ValidatorOutstandingRewardsAminoMsg {
-  type: "cosmos-sdk/ValidatorOutstandingRewards";
-  value: ValidatorOutstandingRewardsAmino;
-}
-/**
- * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
- * for a validator inexpensive to track, allows simple sanity checks.
- */
-export interface ValidatorOutstandingRewardsSDKType {
-  rewards: DecCoinSDKType[];
-}
-/**
- * ValidatorSlashEvent represents a validator slash event.
- * Height is implicit within the store key.
- * This is needed to calculate appropriate amount of staking tokens
- * for delegations which are withdrawn after a slash has occurred.
- */
-export interface ValidatorSlashEvent {
-  validatorPeriod: bigint;
-  fraction: string;
-}
-export interface ValidatorSlashEventProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvent";
-  value: Uint8Array;
-}
-/**
- * ValidatorSlashEvent represents a validator slash event.
- * Height is implicit within the store key.
- * This is needed to calculate appropriate amount of staking tokens
- * for delegations which are withdrawn after a slash has occurred.
- */
-export interface ValidatorSlashEventAmino {
-  validator_period: string;
-  fraction: string;
-}
-export interface ValidatorSlashEventAminoMsg {
-  type: "cosmos-sdk/ValidatorSlashEvent";
-  value: ValidatorSlashEventAmino;
-}
-/**
- * ValidatorSlashEvent represents a validator slash event.
- * Height is implicit within the store key.
- * This is needed to calculate appropriate amount of staking tokens
- * for delegations which are withdrawn after a slash has occurred.
- */
-export interface ValidatorSlashEventSDKType {
-  validator_period: bigint;
-  fraction: string;
-}
-/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */
-export interface ValidatorSlashEvents {
-  validatorSlashEvents: ValidatorSlashEvent[];
-}
-export interface ValidatorSlashEventsProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvents";
-  value: Uint8Array;
-}
-/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */
-export interface ValidatorSlashEventsAmino {
-  validator_slash_events: ValidatorSlashEventAmino[];
-}
-export interface ValidatorSlashEventsAminoMsg {
-  type: "cosmos-sdk/ValidatorSlashEvents";
-  value: ValidatorSlashEventsAmino;
-}
-/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */
-export interface ValidatorSlashEventsSDKType {
-  validator_slash_events: ValidatorSlashEventSDKType[];
-}
-/** FeePool is the global fee pool for distribution. */
-export interface FeePool {
-  communityPool: DecCoin[];
-}
-export interface FeePoolProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.FeePool";
-  value: Uint8Array;
-}
-/** FeePool is the global fee pool for distribution. */
-export interface FeePoolAmino {
-  community_pool: DecCoinAmino[];
-}
-export interface FeePoolAminoMsg {
-  type: "cosmos-sdk/FeePool";
-  value: FeePoolAmino;
-}
-/** FeePool is the global fee pool for distribution. */
-export interface FeePoolSDKType {
-  community_pool: DecCoinSDKType[];
-}
-/**
- * CommunityPoolSpendProposal details a proposal for use of community funds,
- * together with how many coins are proposed to be spent, and to which
- * recipient account.
- */
-export interface CommunityPoolSpendProposal {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: Coin[];
-}
-export interface CommunityPoolSpendProposalProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposal";
-  value: Uint8Array;
-}
-/**
- * CommunityPoolSpendProposal details a proposal for use of community funds,
- * together with how many coins are proposed to be spent, and to which
- * recipient account.
- */
-export interface CommunityPoolSpendProposalAmino {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: CoinAmino[];
-}
-export interface CommunityPoolSpendProposalAminoMsg {
-  type: "cosmos-sdk/CommunityPoolSpendProposal";
-  value: CommunityPoolSpendProposalAmino;
-}
-/**
- * CommunityPoolSpendProposal details a proposal for use of community funds,
- * together with how many coins are proposed to be spent, and to which
- * recipient account.
- */
-export interface CommunityPoolSpendProposalSDKType {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: CoinSDKType[];
-}
-/**
- * DelegatorStartingInfo represents the starting info for a delegator reward
- * period. It tracks the previous validator period, the delegation's amount of
- * staking token, and the creation height (to check later on if any slashes have
- * occurred). NOTE: Even though validators are slashed to whole staking tokens,
- * the delegators within the validator may be left with less than a full token,
- * thus sdk.Dec is used.
- */
-export interface DelegatorStartingInfo {
-  previousPeriod: bigint;
-  stake: string;
-  height: bigint;
-}
-export interface DelegatorStartingInfoProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfo";
-  value: Uint8Array;
-}
-/**
- * DelegatorStartingInfo represents the starting info for a delegator reward
- * period. It tracks the previous validator period, the delegation's amount of
- * staking token, and the creation height (to check later on if any slashes have
- * occurred). NOTE: Even though validators are slashed to whole staking tokens,
- * the delegators within the validator may be left with less than a full token,
- * thus sdk.Dec is used.
- */
-export interface DelegatorStartingInfoAmino {
-  previous_period: string;
-  stake: string;
-  height: string;
-}
-export interface DelegatorStartingInfoAminoMsg {
-  type: "cosmos-sdk/DelegatorStartingInfo";
-  value: DelegatorStartingInfoAmino;
-}
-/**
- * DelegatorStartingInfo represents the starting info for a delegator reward
- * period. It tracks the previous validator period, the delegation's amount of
- * staking token, and the creation height (to check later on if any slashes have
- * occurred). NOTE: Even though validators are slashed to whole staking tokens,
- * the delegators within the validator may be left with less than a full token,
- * thus sdk.Dec is used.
- */
-export interface DelegatorStartingInfoSDKType {
-  previous_period: bigint;
-  stake: string;
-  height: bigint;
-}
-/**
- * DelegationDelegatorReward represents the properties
- * of a delegator's delegation reward.
- */
-export interface DelegationDelegatorReward {
-  validatorAddress: string;
-  reward: DecCoin[];
-}
-export interface DelegationDelegatorRewardProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegationDelegatorReward";
-  value: Uint8Array;
-}
-/**
- * DelegationDelegatorReward represents the properties
- * of a delegator's delegation reward.
- */
-export interface DelegationDelegatorRewardAmino {
-  validator_address: string;
-  reward: DecCoinAmino[];
-}
-export interface DelegationDelegatorRewardAminoMsg {
-  type: "cosmos-sdk/DelegationDelegatorReward";
-  value: DelegationDelegatorRewardAmino;
-}
-/**
- * DelegationDelegatorReward represents the properties
- * of a delegator's delegation reward.
- */
-export interface DelegationDelegatorRewardSDKType {
-  validator_address: string;
-  reward: DecCoinSDKType[];
-}
-/**
- * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
- * with a deposit
- */
-export interface CommunityPoolSpendProposalWithDeposit {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: string;
-  deposit: string;
-}
-export interface CommunityPoolSpendProposalWithDepositProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit";
-  value: Uint8Array;
-}
-/**
- * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
- * with a deposit
- */
-export interface CommunityPoolSpendProposalWithDepositAmino {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: string;
-  deposit: string;
-}
-export interface CommunityPoolSpendProposalWithDepositAminoMsg {
-  type: "cosmos-sdk/CommunityPoolSpendProposalWithDeposit";
-  value: CommunityPoolSpendProposalWithDepositAmino;
-}
-/**
- * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
- * with a deposit
- */
-export interface CommunityPoolSpendProposalWithDepositSDKType {
-  title: string;
-  description: string;
-  recipient: string;
-  amount: string;
-  deposit: string;
-}
-function createBaseParams(): Params {
-  return {
-    communityTax: "",
-    baseProposerReward: "",
-    bonusProposerReward: "",
-    withdrawAddrEnabled: false
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.distribution.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.communityTax !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.communityTax, 18).atomics);
-    }
-    if (message.baseProposerReward !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.baseProposerReward, 18).atomics);
-    }
-    if (message.bonusProposerReward !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.bonusProposerReward, 18).atomics);
-    }
-    if (message.withdrawAddrEnabled === true) {
-      writer.uint32(32).bool(message.withdrawAddrEnabled);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.communityTax = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.baseProposerReward = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.bonusProposerReward = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 4:
-          message.withdrawAddrEnabled = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      communityTax: isSet(object.communityTax) ? String(object.communityTax) : "",
-      baseProposerReward: isSet(object.baseProposerReward) ? String(object.baseProposerReward) : "",
-      bonusProposerReward: isSet(object.bonusProposerReward) ? String(object.bonusProposerReward) : "",
-      withdrawAddrEnabled: isSet(object.withdrawAddrEnabled) ? Boolean(object.withdrawAddrEnabled) : false
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.communityTax !== undefined && (obj.communityTax = message.communityTax);
-    message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);
-    message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);
-    message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.communityTax = object.communityTax ?? "";
-    message.baseProposerReward = object.baseProposerReward ?? "";
-    message.bonusProposerReward = object.bonusProposerReward ?? "";
-    message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false;
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      communityTax: object?.community_tax,
-      baseProposerReward: object?.base_proposer_reward,
-      bonusProposerReward: object?.bonus_proposer_reward,
-      withdrawAddrEnabled: object?.withdraw_addr_enabled
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.community_tax = message.communityTax;
-    obj.base_proposer_reward = message.baseProposerReward;
-    obj.bonus_proposer_reward = message.bonusProposerReward;
-    obj.withdraw_addr_enabled = message.withdrawAddrEnabled;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      communityTax: object.community_tax,
-      baseProposerReward: object.base_proposer_reward,
-      bonusProposerReward: object.bonus_proposer_reward,
-      withdrawAddrEnabled: object.withdraw_addr_enabled
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.community_tax = message.communityTax;
-    obj.base_proposer_reward = message.baseProposerReward;
-    obj.bonus_proposer_reward = message.bonusProposerReward;
-    obj.withdraw_addr_enabled = message.withdrawAddrEnabled;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorHistoricalRewards(): ValidatorHistoricalRewards {
-  return {
-    cumulativeRewardRatio: [],
-    referenceCount: 0
-  };
-}
-export const ValidatorHistoricalRewards = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewards",
-  aminoType: "cosmos-sdk/ValidatorHistoricalRewards",
-  encode(message: ValidatorHistoricalRewards, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.cumulativeRewardRatio) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.referenceCount !== 0) {
-      writer.uint32(16).uint32(message.referenceCount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorHistoricalRewards {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorHistoricalRewards();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.cumulativeRewardRatio.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.referenceCount = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorHistoricalRewards {
-    return {
-      cumulativeRewardRatio: Array.isArray(object?.cumulativeRewardRatio) ? object.cumulativeRewardRatio.map((e: any) => DecCoin.fromJSON(e)) : [],
-      referenceCount: isSet(object.referenceCount) ? Number(object.referenceCount) : 0
-    };
-  },
-  toJSON(message: ValidatorHistoricalRewards): unknown {
-    const obj: any = {};
-    if (message.cumulativeRewardRatio) {
-      obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.cumulativeRewardRatio = [];
-    }
-    message.referenceCount !== undefined && (obj.referenceCount = Math.round(message.referenceCount));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorHistoricalRewards>): ValidatorHistoricalRewards {
-    const message = createBaseValidatorHistoricalRewards();
-    message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map(e => DecCoin.fromPartial(e)) || [];
-    message.referenceCount = object.referenceCount ?? 0;
-    return message;
-  },
-  fromSDK(object: ValidatorHistoricalRewardsSDKType): ValidatorHistoricalRewards {
-    return {
-      cumulativeRewardRatio: Array.isArray(object?.cumulative_reward_ratio) ? object.cumulative_reward_ratio.map((e: any) => DecCoin.fromSDK(e)) : [],
-      referenceCount: object?.reference_count
-    };
-  },
-  toSDK(message: ValidatorHistoricalRewards): ValidatorHistoricalRewardsSDKType {
-    const obj: any = {};
-    if (message.cumulativeRewardRatio) {
-      obj.cumulative_reward_ratio = message.cumulativeRewardRatio.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.cumulative_reward_ratio = [];
-    }
-    obj.reference_count = message.referenceCount;
-    return obj;
-  },
-  fromAmino(object: ValidatorHistoricalRewardsAmino): ValidatorHistoricalRewards {
-    return {
-      cumulativeRewardRatio: Array.isArray(object?.cumulative_reward_ratio) ? object.cumulative_reward_ratio.map((e: any) => DecCoin.fromAmino(e)) : [],
-      referenceCount: object.reference_count
-    };
-  },
-  toAmino(message: ValidatorHistoricalRewards): ValidatorHistoricalRewardsAmino {
-    const obj: any = {};
-    if (message.cumulativeRewardRatio) {
-      obj.cumulative_reward_ratio = message.cumulativeRewardRatio.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.cumulative_reward_ratio = [];
-    }
-    obj.reference_count = message.referenceCount;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorHistoricalRewardsAminoMsg): ValidatorHistoricalRewards {
-    return ValidatorHistoricalRewards.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorHistoricalRewards): ValidatorHistoricalRewardsAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorHistoricalRewards",
-      value: ValidatorHistoricalRewards.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorHistoricalRewardsProtoMsg): ValidatorHistoricalRewards {
-    return ValidatorHistoricalRewards.decode(message.value);
-  },
-  toProto(message: ValidatorHistoricalRewards): Uint8Array {
-    return ValidatorHistoricalRewards.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorHistoricalRewards): ValidatorHistoricalRewardsProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewards",
-      value: ValidatorHistoricalRewards.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorCurrentRewards(): ValidatorCurrentRewards {
-  return {
-    rewards: [],
-    period: BigInt(0)
-  };
-}
-export const ValidatorCurrentRewards = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewards",
-  aminoType: "cosmos-sdk/ValidatorCurrentRewards",
-  encode(message: ValidatorCurrentRewards, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.rewards) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.period !== BigInt(0)) {
-      writer.uint32(16).uint64(message.period);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorCurrentRewards {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorCurrentRewards();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rewards.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.period = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorCurrentRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromJSON(e)) : [],
-      period: isSet(object.period) ? BigInt(object.period.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ValidatorCurrentRewards): unknown {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorCurrentRewards>): ValidatorCurrentRewards {
-    const message = createBaseValidatorCurrentRewards();
-    message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || [];
-    message.period = object.period !== undefined && object.period !== null ? BigInt(object.period.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorCurrentRewardsSDKType): ValidatorCurrentRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromSDK(e)) : [],
-      period: object?.period
-    };
-  },
-  toSDK(message: ValidatorCurrentRewards): ValidatorCurrentRewardsSDKType {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    obj.period = message.period;
-    return obj;
-  },
-  fromAmino(object: ValidatorCurrentRewardsAmino): ValidatorCurrentRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromAmino(e)) : [],
-      period: BigInt(object.period)
-    };
-  },
-  toAmino(message: ValidatorCurrentRewards): ValidatorCurrentRewardsAmino {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    obj.period = message.period ? message.period.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorCurrentRewardsAminoMsg): ValidatorCurrentRewards {
-    return ValidatorCurrentRewards.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorCurrentRewards): ValidatorCurrentRewardsAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorCurrentRewards",
-      value: ValidatorCurrentRewards.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorCurrentRewardsProtoMsg): ValidatorCurrentRewards {
-    return ValidatorCurrentRewards.decode(message.value);
-  },
-  toProto(message: ValidatorCurrentRewards): Uint8Array {
-    return ValidatorCurrentRewards.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorCurrentRewards): ValidatorCurrentRewardsProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewards",
-      value: ValidatorCurrentRewards.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorAccumulatedCommission(): ValidatorAccumulatedCommission {
-  return {
-    commission: []
-  };
-}
-export const ValidatorAccumulatedCommission = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission",
-  aminoType: "cosmos-sdk/ValidatorAccumulatedCommission",
-  encode(message: ValidatorAccumulatedCommission, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.commission) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorAccumulatedCommission {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorAccumulatedCommission();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.commission.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorAccumulatedCommission {
-    return {
-      commission: Array.isArray(object?.commission) ? object.commission.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ValidatorAccumulatedCommission): unknown {
-    const obj: any = {};
-    if (message.commission) {
-      obj.commission = message.commission.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.commission = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorAccumulatedCommission>): ValidatorAccumulatedCommission {
-    const message = createBaseValidatorAccumulatedCommission();
-    message.commission = object.commission?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorAccumulatedCommissionSDKType): ValidatorAccumulatedCommission {
-    return {
-      commission: Array.isArray(object?.commission) ? object.commission.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ValidatorAccumulatedCommission): ValidatorAccumulatedCommissionSDKType {
-    const obj: any = {};
-    if (message.commission) {
-      obj.commission = message.commission.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.commission = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorAccumulatedCommissionAmino): ValidatorAccumulatedCommission {
-    return {
-      commission: Array.isArray(object?.commission) ? object.commission.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ValidatorAccumulatedCommission): ValidatorAccumulatedCommissionAmino {
-    const obj: any = {};
-    if (message.commission) {
-      obj.commission = message.commission.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.commission = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAccumulatedCommissionAminoMsg): ValidatorAccumulatedCommission {
-    return ValidatorAccumulatedCommission.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorAccumulatedCommission): ValidatorAccumulatedCommissionAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorAccumulatedCommission",
-      value: ValidatorAccumulatedCommission.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorAccumulatedCommissionProtoMsg): ValidatorAccumulatedCommission {
-    return ValidatorAccumulatedCommission.decode(message.value);
-  },
-  toProto(message: ValidatorAccumulatedCommission): Uint8Array {
-    return ValidatorAccumulatedCommission.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorAccumulatedCommission): ValidatorAccumulatedCommissionProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission",
-      value: ValidatorAccumulatedCommission.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorOutstandingRewards(): ValidatorOutstandingRewards {
-  return {
-    rewards: []
-  };
-}
-export const ValidatorOutstandingRewards = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewards",
-  aminoType: "cosmos-sdk/ValidatorOutstandingRewards",
-  encode(message: ValidatorOutstandingRewards, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.rewards) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorOutstandingRewards {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorOutstandingRewards();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rewards.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorOutstandingRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ValidatorOutstandingRewards): unknown {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorOutstandingRewards>): ValidatorOutstandingRewards {
-    const message = createBaseValidatorOutstandingRewards();
-    message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorOutstandingRewardsSDKType): ValidatorOutstandingRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ValidatorOutstandingRewards): ValidatorOutstandingRewardsSDKType {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorOutstandingRewardsAmino): ValidatorOutstandingRewards {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ValidatorOutstandingRewards): ValidatorOutstandingRewardsAmino {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorOutstandingRewardsAminoMsg): ValidatorOutstandingRewards {
-    return ValidatorOutstandingRewards.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorOutstandingRewards): ValidatorOutstandingRewardsAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorOutstandingRewards",
-      value: ValidatorOutstandingRewards.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorOutstandingRewardsProtoMsg): ValidatorOutstandingRewards {
-    return ValidatorOutstandingRewards.decode(message.value);
-  },
-  toProto(message: ValidatorOutstandingRewards): Uint8Array {
-    return ValidatorOutstandingRewards.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorOutstandingRewards): ValidatorOutstandingRewardsProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewards",
-      value: ValidatorOutstandingRewards.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorSlashEvent(): ValidatorSlashEvent {
-  return {
-    validatorPeriod: BigInt(0),
-    fraction: ""
-  };
-}
-export const ValidatorSlashEvent = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvent",
-  aminoType: "cosmos-sdk/ValidatorSlashEvent",
-  encode(message: ValidatorSlashEvent, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorPeriod !== BigInt(0)) {
-      writer.uint32(8).uint64(message.validatorPeriod);
-    }
-    if (message.fraction !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.fraction, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorSlashEvent {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorSlashEvent();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorPeriod = reader.uint64();
-          break;
-        case 2:
-          message.fraction = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorSlashEvent {
-    return {
-      validatorPeriod: isSet(object.validatorPeriod) ? BigInt(object.validatorPeriod.toString()) : BigInt(0),
-      fraction: isSet(object.fraction) ? String(object.fraction) : ""
-    };
-  },
-  toJSON(message: ValidatorSlashEvent): unknown {
-    const obj: any = {};
-    message.validatorPeriod !== undefined && (obj.validatorPeriod = (message.validatorPeriod || BigInt(0)).toString());
-    message.fraction !== undefined && (obj.fraction = message.fraction);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorSlashEvent>): ValidatorSlashEvent {
-    const message = createBaseValidatorSlashEvent();
-    message.validatorPeriod = object.validatorPeriod !== undefined && object.validatorPeriod !== null ? BigInt(object.validatorPeriod.toString()) : BigInt(0);
-    message.fraction = object.fraction ?? "";
-    return message;
-  },
-  fromSDK(object: ValidatorSlashEventSDKType): ValidatorSlashEvent {
-    return {
-      validatorPeriod: object?.validator_period,
-      fraction: object?.fraction
-    };
-  },
-  toSDK(message: ValidatorSlashEvent): ValidatorSlashEventSDKType {
-    const obj: any = {};
-    obj.validator_period = message.validatorPeriod;
-    obj.fraction = message.fraction;
-    return obj;
-  },
-  fromAmino(object: ValidatorSlashEventAmino): ValidatorSlashEvent {
-    return {
-      validatorPeriod: BigInt(object.validator_period),
-      fraction: object.fraction
-    };
-  },
-  toAmino(message: ValidatorSlashEvent): ValidatorSlashEventAmino {
-    const obj: any = {};
-    obj.validator_period = message.validatorPeriod ? message.validatorPeriod.toString() : undefined;
-    obj.fraction = message.fraction;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorSlashEventAminoMsg): ValidatorSlashEvent {
-    return ValidatorSlashEvent.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorSlashEvent): ValidatorSlashEventAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorSlashEvent",
-      value: ValidatorSlashEvent.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorSlashEventProtoMsg): ValidatorSlashEvent {
-    return ValidatorSlashEvent.decode(message.value);
-  },
-  toProto(message: ValidatorSlashEvent): Uint8Array {
-    return ValidatorSlashEvent.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorSlashEvent): ValidatorSlashEventProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvent",
-      value: ValidatorSlashEvent.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorSlashEvents(): ValidatorSlashEvents {
-  return {
-    validatorSlashEvents: []
-  };
-}
-export const ValidatorSlashEvents = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvents",
-  aminoType: "cosmos-sdk/ValidatorSlashEvents",
-  encode(message: ValidatorSlashEvents, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validatorSlashEvents) {
-      ValidatorSlashEvent.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorSlashEvents {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorSlashEvents();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorSlashEvents.push(ValidatorSlashEvent.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorSlashEvents {
-    return {
-      validatorSlashEvents: Array.isArray(object?.validatorSlashEvents) ? object.validatorSlashEvents.map((e: any) => ValidatorSlashEvent.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ValidatorSlashEvents): unknown {
-    const obj: any = {};
-    if (message.validatorSlashEvents) {
-      obj.validatorSlashEvents = message.validatorSlashEvents.map(e => e ? ValidatorSlashEvent.toJSON(e) : undefined);
-    } else {
-      obj.validatorSlashEvents = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorSlashEvents>): ValidatorSlashEvents {
-    const message = createBaseValidatorSlashEvents();
-    message.validatorSlashEvents = object.validatorSlashEvents?.map(e => ValidatorSlashEvent.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorSlashEventsSDKType): ValidatorSlashEvents {
-    return {
-      validatorSlashEvents: Array.isArray(object?.validator_slash_events) ? object.validator_slash_events.map((e: any) => ValidatorSlashEvent.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ValidatorSlashEvents): ValidatorSlashEventsSDKType {
-    const obj: any = {};
-    if (message.validatorSlashEvents) {
-      obj.validator_slash_events = message.validatorSlashEvents.map(e => e ? ValidatorSlashEvent.toSDK(e) : undefined);
-    } else {
-      obj.validator_slash_events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorSlashEventsAmino): ValidatorSlashEvents {
-    return {
-      validatorSlashEvents: Array.isArray(object?.validator_slash_events) ? object.validator_slash_events.map((e: any) => ValidatorSlashEvent.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ValidatorSlashEvents): ValidatorSlashEventsAmino {
-    const obj: any = {};
-    if (message.validatorSlashEvents) {
-      obj.validator_slash_events = message.validatorSlashEvents.map(e => e ? ValidatorSlashEvent.toAmino(e) : undefined);
-    } else {
-      obj.validator_slash_events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorSlashEventsAminoMsg): ValidatorSlashEvents {
-    return ValidatorSlashEvents.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorSlashEvents): ValidatorSlashEventsAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorSlashEvents",
-      value: ValidatorSlashEvents.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorSlashEventsProtoMsg): ValidatorSlashEvents {
-    return ValidatorSlashEvents.decode(message.value);
-  },
-  toProto(message: ValidatorSlashEvents): Uint8Array {
-    return ValidatorSlashEvents.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorSlashEvents): ValidatorSlashEventsProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvents",
-      value: ValidatorSlashEvents.encode(message).finish()
-    };
-  }
-};
-function createBaseFeePool(): FeePool {
-  return {
-    communityPool: []
-  };
-}
-export const FeePool = {
-  typeUrl: "/cosmos.distribution.v1beta1.FeePool",
-  aminoType: "cosmos-sdk/FeePool",
-  encode(message: FeePool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.communityPool) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FeePool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFeePool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.communityPool.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FeePool {
-    return {
-      communityPool: Array.isArray(object?.communityPool) ? object.communityPool.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: FeePool): unknown {
-    const obj: any = {};
-    if (message.communityPool) {
-      obj.communityPool = message.communityPool.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.communityPool = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FeePool>): FeePool {
-    const message = createBaseFeePool();
-    message.communityPool = object.communityPool?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: FeePoolSDKType): FeePool {
-    return {
-      communityPool: Array.isArray(object?.community_pool) ? object.community_pool.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: FeePool): FeePoolSDKType {
-    const obj: any = {};
-    if (message.communityPool) {
-      obj.community_pool = message.communityPool.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.community_pool = [];
-    }
-    return obj;
-  },
-  fromAmino(object: FeePoolAmino): FeePool {
-    return {
-      communityPool: Array.isArray(object?.community_pool) ? object.community_pool.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: FeePool): FeePoolAmino {
-    const obj: any = {};
-    if (message.communityPool) {
-      obj.community_pool = message.communityPool.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.community_pool = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: FeePoolAminoMsg): FeePool {
-    return FeePool.fromAmino(object.value);
-  },
-  toAminoMsg(message: FeePool): FeePoolAminoMsg {
-    return {
-      type: "cosmos-sdk/FeePool",
-      value: FeePool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: FeePoolProtoMsg): FeePool {
-    return FeePool.decode(message.value);
-  },
-  toProto(message: FeePool): Uint8Array {
-    return FeePool.encode(message).finish();
-  },
-  toProtoMsg(message: FeePool): FeePoolProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.FeePool",
-      value: FeePool.encode(message).finish()
-    };
-  }
-};
-function createBaseCommunityPoolSpendProposal(): CommunityPoolSpendProposal {
-  return {
-    title: "",
-    description: "",
-    recipient: "",
-    amount: []
-  };
-}
-export const CommunityPoolSpendProposal = {
-  typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposal",
-  aminoType: "cosmos-sdk/CommunityPoolSpendProposal",
-  encode(message: CommunityPoolSpendProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.recipient !== "") {
-      writer.uint32(26).string(message.recipient);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommunityPoolSpendProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommunityPoolSpendProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.recipient = reader.string();
-          break;
-        case 4:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommunityPoolSpendProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      recipient: isSet(object.recipient) ? String(object.recipient) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: CommunityPoolSpendProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.recipient !== undefined && (obj.recipient = message.recipient);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommunityPoolSpendProposal>): CommunityPoolSpendProposal {
-    const message = createBaseCommunityPoolSpendProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.recipient = object.recipient ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CommunityPoolSpendProposalSDKType): CommunityPoolSpendProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      recipient: object?.recipient,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: CommunityPoolSpendProposal): CommunityPoolSpendProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.recipient = message.recipient;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CommunityPoolSpendProposalAmino): CommunityPoolSpendProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      recipient: object.recipient,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: CommunityPoolSpendProposal): CommunityPoolSpendProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.recipient = message.recipient;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CommunityPoolSpendProposalAminoMsg): CommunityPoolSpendProposal {
-    return CommunityPoolSpendProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: CommunityPoolSpendProposal): CommunityPoolSpendProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/CommunityPoolSpendProposal",
-      value: CommunityPoolSpendProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommunityPoolSpendProposalProtoMsg): CommunityPoolSpendProposal {
-    return CommunityPoolSpendProposal.decode(message.value);
-  },
-  toProto(message: CommunityPoolSpendProposal): Uint8Array {
-    return CommunityPoolSpendProposal.encode(message).finish();
-  },
-  toProtoMsg(message: CommunityPoolSpendProposal): CommunityPoolSpendProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposal",
-      value: CommunityPoolSpendProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegatorStartingInfo(): DelegatorStartingInfo {
-  return {
-    previousPeriod: BigInt(0),
-    stake: "",
-    height: BigInt(0)
-  };
-}
-export const DelegatorStartingInfo = {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfo",
-  aminoType: "cosmos-sdk/DelegatorStartingInfo",
-  encode(message: DelegatorStartingInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.previousPeriod !== BigInt(0)) {
-      writer.uint32(8).uint64(message.previousPeriod);
-    }
-    if (message.stake !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.stake, 18).atomics);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(24).uint64(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelegatorStartingInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegatorStartingInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.previousPeriod = reader.uint64();
-          break;
-        case 2:
-          message.stake = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.height = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelegatorStartingInfo {
-    return {
-      previousPeriod: isSet(object.previousPeriod) ? BigInt(object.previousPeriod.toString()) : BigInt(0),
-      stake: isSet(object.stake) ? String(object.stake) : "",
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: DelegatorStartingInfo): unknown {
-    const obj: any = {};
-    message.previousPeriod !== undefined && (obj.previousPeriod = (message.previousPeriod || BigInt(0)).toString());
-    message.stake !== undefined && (obj.stake = message.stake);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelegatorStartingInfo>): DelegatorStartingInfo {
-    const message = createBaseDelegatorStartingInfo();
-    message.previousPeriod = object.previousPeriod !== undefined && object.previousPeriod !== null ? BigInt(object.previousPeriod.toString()) : BigInt(0);
-    message.stake = object.stake ?? "";
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: DelegatorStartingInfoSDKType): DelegatorStartingInfo {
-    return {
-      previousPeriod: object?.previous_period,
-      stake: object?.stake,
-      height: object?.height
-    };
-  },
-  toSDK(message: DelegatorStartingInfo): DelegatorStartingInfoSDKType {
-    const obj: any = {};
-    obj.previous_period = message.previousPeriod;
-    obj.stake = message.stake;
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: DelegatorStartingInfoAmino): DelegatorStartingInfo {
-    return {
-      previousPeriod: BigInt(object.previous_period),
-      stake: object.stake,
-      height: BigInt(object.height)
-    };
-  },
-  toAmino(message: DelegatorStartingInfo): DelegatorStartingInfoAmino {
-    const obj: any = {};
-    obj.previous_period = message.previousPeriod ? message.previousPeriod.toString() : undefined;
-    obj.stake = message.stake;
-    obj.height = message.height ? message.height.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DelegatorStartingInfoAminoMsg): DelegatorStartingInfo {
-    return DelegatorStartingInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelegatorStartingInfo): DelegatorStartingInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/DelegatorStartingInfo",
-      value: DelegatorStartingInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegatorStartingInfoProtoMsg): DelegatorStartingInfo {
-    return DelegatorStartingInfo.decode(message.value);
-  },
-  toProto(message: DelegatorStartingInfo): Uint8Array {
-    return DelegatorStartingInfo.encode(message).finish();
-  },
-  toProtoMsg(message: DelegatorStartingInfo): DelegatorStartingInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfo",
-      value: DelegatorStartingInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegationDelegatorReward(): DelegationDelegatorReward {
-  return {
-    validatorAddress: "",
-    reward: []
-  };
-}
-export const DelegationDelegatorReward = {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegationDelegatorReward",
-  aminoType: "cosmos-sdk/DelegationDelegatorReward",
-  encode(message: DelegationDelegatorReward, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    for (const v of message.reward) {
-      DecCoin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelegationDelegatorReward {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegationDelegatorReward();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.reward.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelegationDelegatorReward {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      reward: Array.isArray(object?.reward) ? object.reward.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: DelegationDelegatorReward): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    if (message.reward) {
-      obj.reward = message.reward.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.reward = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelegationDelegatorReward>): DelegationDelegatorReward {
-    const message = createBaseDelegationDelegatorReward();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.reward = object.reward?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DelegationDelegatorRewardSDKType): DelegationDelegatorReward {
-    return {
-      validatorAddress: object?.validator_address,
-      reward: Array.isArray(object?.reward) ? object.reward.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: DelegationDelegatorReward): DelegationDelegatorRewardSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    if (message.reward) {
-      obj.reward = message.reward.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.reward = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DelegationDelegatorRewardAmino): DelegationDelegatorReward {
-    return {
-      validatorAddress: object.validator_address,
-      reward: Array.isArray(object?.reward) ? object.reward.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: DelegationDelegatorReward): DelegationDelegatorRewardAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    if (message.reward) {
-      obj.reward = message.reward.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.reward = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DelegationDelegatorRewardAminoMsg): DelegationDelegatorReward {
-    return DelegationDelegatorReward.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelegationDelegatorReward): DelegationDelegatorRewardAminoMsg {
-    return {
-      type: "cosmos-sdk/DelegationDelegatorReward",
-      value: DelegationDelegatorReward.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegationDelegatorRewardProtoMsg): DelegationDelegatorReward {
-    return DelegationDelegatorReward.decode(message.value);
-  },
-  toProto(message: DelegationDelegatorReward): Uint8Array {
-    return DelegationDelegatorReward.encode(message).finish();
-  },
-  toProtoMsg(message: DelegationDelegatorReward): DelegationDelegatorRewardProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.DelegationDelegatorReward",
-      value: DelegationDelegatorReward.encode(message).finish()
-    };
-  }
-};
-function createBaseCommunityPoolSpendProposalWithDeposit(): CommunityPoolSpendProposalWithDeposit {
-  return {
-    title: "",
-    description: "",
-    recipient: "",
-    amount: "",
-    deposit: ""
-  };
-}
-export const CommunityPoolSpendProposalWithDeposit = {
-  typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit",
-  aminoType: "cosmos-sdk/CommunityPoolSpendProposalWithDeposit",
-  encode(message: CommunityPoolSpendProposalWithDeposit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.recipient !== "") {
-      writer.uint32(26).string(message.recipient);
-    }
-    if (message.amount !== "") {
-      writer.uint32(34).string(message.amount);
-    }
-    if (message.deposit !== "") {
-      writer.uint32(42).string(message.deposit);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommunityPoolSpendProposalWithDeposit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommunityPoolSpendProposalWithDeposit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.recipient = reader.string();
-          break;
-        case 4:
-          message.amount = reader.string();
-          break;
-        case 5:
-          message.deposit = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommunityPoolSpendProposalWithDeposit {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      recipient: isSet(object.recipient) ? String(object.recipient) : "",
-      amount: isSet(object.amount) ? String(object.amount) : "",
-      deposit: isSet(object.deposit) ? String(object.deposit) : ""
-    };
-  },
-  toJSON(message: CommunityPoolSpendProposalWithDeposit): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.recipient !== undefined && (obj.recipient = message.recipient);
-    message.amount !== undefined && (obj.amount = message.amount);
-    message.deposit !== undefined && (obj.deposit = message.deposit);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommunityPoolSpendProposalWithDeposit>): CommunityPoolSpendProposalWithDeposit {
-    const message = createBaseCommunityPoolSpendProposalWithDeposit();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.recipient = object.recipient ?? "";
-    message.amount = object.amount ?? "";
-    message.deposit = object.deposit ?? "";
-    return message;
-  },
-  fromSDK(object: CommunityPoolSpendProposalWithDepositSDKType): CommunityPoolSpendProposalWithDeposit {
-    return {
-      title: object?.title,
-      description: object?.description,
-      recipient: object?.recipient,
-      amount: object?.amount,
-      deposit: object?.deposit
-    };
-  },
-  toSDK(message: CommunityPoolSpendProposalWithDeposit): CommunityPoolSpendProposalWithDepositSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.recipient = message.recipient;
-    obj.amount = message.amount;
-    obj.deposit = message.deposit;
-    return obj;
-  },
-  fromAmino(object: CommunityPoolSpendProposalWithDepositAmino): CommunityPoolSpendProposalWithDeposit {
-    return {
-      title: object.title,
-      description: object.description,
-      recipient: object.recipient,
-      amount: object.amount,
-      deposit: object.deposit
-    };
-  },
-  toAmino(message: CommunityPoolSpendProposalWithDeposit): CommunityPoolSpendProposalWithDepositAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.recipient = message.recipient;
-    obj.amount = message.amount;
-    obj.deposit = message.deposit;
-    return obj;
-  },
-  fromAminoMsg(object: CommunityPoolSpendProposalWithDepositAminoMsg): CommunityPoolSpendProposalWithDeposit {
-    return CommunityPoolSpendProposalWithDeposit.fromAmino(object.value);
-  },
-  toAminoMsg(message: CommunityPoolSpendProposalWithDeposit): CommunityPoolSpendProposalWithDepositAminoMsg {
-    return {
-      type: "cosmos-sdk/CommunityPoolSpendProposalWithDeposit",
-      value: CommunityPoolSpendProposalWithDeposit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommunityPoolSpendProposalWithDepositProtoMsg): CommunityPoolSpendProposalWithDeposit {
-    return CommunityPoolSpendProposalWithDeposit.decode(message.value);
-  },
-  toProto(message: CommunityPoolSpendProposalWithDeposit): Uint8Array {
-    return CommunityPoolSpendProposalWithDeposit.encode(message).finish();
-  },
-  toProtoMsg(message: CommunityPoolSpendProposalWithDeposit): CommunityPoolSpendProposalWithDepositProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit",
-      value: CommunityPoolSpendProposalWithDeposit.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/genesis.ts
deleted file mode 100644
index 552ca3fc..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/genesis.ts
+++ /dev/null
@@ -1,1390 +0,0 @@
-import { DecCoin, DecCoinAmino, DecCoinSDKType } from "../../base/v1beta1/coin";
-import { ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionAmino, ValidatorAccumulatedCommissionSDKType, ValidatorHistoricalRewards, ValidatorHistoricalRewardsAmino, ValidatorHistoricalRewardsSDKType, ValidatorCurrentRewards, ValidatorCurrentRewardsAmino, ValidatorCurrentRewardsSDKType, DelegatorStartingInfo, DelegatorStartingInfoAmino, DelegatorStartingInfoSDKType, ValidatorSlashEvent, ValidatorSlashEventAmino, ValidatorSlashEventSDKType, Params, ParamsAmino, ParamsSDKType, FeePool, FeePoolAmino, FeePoolSDKType } from "./distribution";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * DelegatorWithdrawInfo is the address for where distributions rewards are
- * withdrawn to by default this struct is only used at genesis to feed in
- * default withdraw addresses.
- */
-export interface DelegatorWithdrawInfo {
-  /** delegator_address is the address of the delegator. */
-  delegatorAddress: string;
-  /** withdraw_address is the address to withdraw the delegation rewards to. */
-  withdrawAddress: string;
-}
-export interface DelegatorWithdrawInfoProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorWithdrawInfo";
-  value: Uint8Array;
-}
-/**
- * DelegatorWithdrawInfo is the address for where distributions rewards are
- * withdrawn to by default this struct is only used at genesis to feed in
- * default withdraw addresses.
- */
-export interface DelegatorWithdrawInfoAmino {
-  /** delegator_address is the address of the delegator. */
-  delegator_address: string;
-  /** withdraw_address is the address to withdraw the delegation rewards to. */
-  withdraw_address: string;
-}
-export interface DelegatorWithdrawInfoAminoMsg {
-  type: "cosmos-sdk/DelegatorWithdrawInfo";
-  value: DelegatorWithdrawInfoAmino;
-}
-/**
- * DelegatorWithdrawInfo is the address for where distributions rewards are
- * withdrawn to by default this struct is only used at genesis to feed in
- * default withdraw addresses.
- */
-export interface DelegatorWithdrawInfoSDKType {
-  delegator_address: string;
-  withdraw_address: string;
-}
-/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */
-export interface ValidatorOutstandingRewardsRecord {
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** outstanding_rewards represents the oustanding rewards of a validator. */
-  outstandingRewards: DecCoin[];
-}
-export interface ValidatorOutstandingRewardsRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewardsRecord";
-  value: Uint8Array;
-}
-/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */
-export interface ValidatorOutstandingRewardsRecordAmino {
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** outstanding_rewards represents the oustanding rewards of a validator. */
-  outstanding_rewards: DecCoinAmino[];
-}
-export interface ValidatorOutstandingRewardsRecordAminoMsg {
-  type: "cosmos-sdk/ValidatorOutstandingRewardsRecord";
-  value: ValidatorOutstandingRewardsRecordAmino;
-}
-/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */
-export interface ValidatorOutstandingRewardsRecordSDKType {
-  validator_address: string;
-  outstanding_rewards: DecCoinSDKType[];
-}
-/**
- * ValidatorAccumulatedCommissionRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorAccumulatedCommissionRecord {
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** accumulated is the accumulated commission of a validator. */
-  accumulated: ValidatorAccumulatedCommission | undefined;
-}
-export interface ValidatorAccumulatedCommissionRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommissionRecord";
-  value: Uint8Array;
-}
-/**
- * ValidatorAccumulatedCommissionRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorAccumulatedCommissionRecordAmino {
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** accumulated is the accumulated commission of a validator. */
-  accumulated?: ValidatorAccumulatedCommissionAmino | undefined;
-}
-export interface ValidatorAccumulatedCommissionRecordAminoMsg {
-  type: "cosmos-sdk/ValidatorAccumulatedCommissionRecord";
-  value: ValidatorAccumulatedCommissionRecordAmino;
-}
-/**
- * ValidatorAccumulatedCommissionRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorAccumulatedCommissionRecordSDKType {
-  validator_address: string;
-  accumulated: ValidatorAccumulatedCommissionSDKType | undefined;
-}
-/**
- * ValidatorHistoricalRewardsRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorHistoricalRewardsRecord {
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** period defines the period the historical rewards apply to. */
-  period: bigint;
-  /** rewards defines the historical rewards of a validator. */
-  rewards: ValidatorHistoricalRewards | undefined;
-}
-export interface ValidatorHistoricalRewardsRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewardsRecord";
-  value: Uint8Array;
-}
-/**
- * ValidatorHistoricalRewardsRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorHistoricalRewardsRecordAmino {
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** period defines the period the historical rewards apply to. */
-  period: string;
-  /** rewards defines the historical rewards of a validator. */
-  rewards?: ValidatorHistoricalRewardsAmino | undefined;
-}
-export interface ValidatorHistoricalRewardsRecordAminoMsg {
-  type: "cosmos-sdk/ValidatorHistoricalRewardsRecord";
-  value: ValidatorHistoricalRewardsRecordAmino;
-}
-/**
- * ValidatorHistoricalRewardsRecord is used for import / export via genesis
- * json.
- */
-export interface ValidatorHistoricalRewardsRecordSDKType {
-  validator_address: string;
-  period: bigint;
-  rewards: ValidatorHistoricalRewardsSDKType | undefined;
-}
-/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */
-export interface ValidatorCurrentRewardsRecord {
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** rewards defines the current rewards of a validator. */
-  rewards: ValidatorCurrentRewards | undefined;
-}
-export interface ValidatorCurrentRewardsRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewardsRecord";
-  value: Uint8Array;
-}
-/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */
-export interface ValidatorCurrentRewardsRecordAmino {
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** rewards defines the current rewards of a validator. */
-  rewards?: ValidatorCurrentRewardsAmino | undefined;
-}
-export interface ValidatorCurrentRewardsRecordAminoMsg {
-  type: "cosmos-sdk/ValidatorCurrentRewardsRecord";
-  value: ValidatorCurrentRewardsRecordAmino;
-}
-/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */
-export interface ValidatorCurrentRewardsRecordSDKType {
-  validator_address: string;
-  rewards: ValidatorCurrentRewardsSDKType | undefined;
-}
-/** DelegatorStartingInfoRecord used for import / export via genesis json. */
-export interface DelegatorStartingInfoRecord {
-  /** delegator_address is the address of the delegator. */
-  delegatorAddress: string;
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** starting_info defines the starting info of a delegator. */
-  startingInfo: DelegatorStartingInfo | undefined;
-}
-export interface DelegatorStartingInfoRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfoRecord";
-  value: Uint8Array;
-}
-/** DelegatorStartingInfoRecord used for import / export via genesis json. */
-export interface DelegatorStartingInfoRecordAmino {
-  /** delegator_address is the address of the delegator. */
-  delegator_address: string;
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** starting_info defines the starting info of a delegator. */
-  starting_info?: DelegatorStartingInfoAmino | undefined;
-}
-export interface DelegatorStartingInfoRecordAminoMsg {
-  type: "cosmos-sdk/DelegatorStartingInfoRecord";
-  value: DelegatorStartingInfoRecordAmino;
-}
-/** DelegatorStartingInfoRecord used for import / export via genesis json. */
-export interface DelegatorStartingInfoRecordSDKType {
-  delegator_address: string;
-  validator_address: string;
-  starting_info: DelegatorStartingInfoSDKType | undefined;
-}
-/** ValidatorSlashEventRecord is used for import / export via genesis json. */
-export interface ValidatorSlashEventRecord {
-  /** validator_address is the address of the validator. */
-  validatorAddress: string;
-  /** height defines the block height at which the slash event occured. */
-  height: bigint;
-  /** period is the period of the slash event. */
-  period: bigint;
-  /** validator_slash_event describes the slash event. */
-  validatorSlashEvent: ValidatorSlashEvent | undefined;
-}
-export interface ValidatorSlashEventRecordProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEventRecord";
-  value: Uint8Array;
-}
-/** ValidatorSlashEventRecord is used for import / export via genesis json. */
-export interface ValidatorSlashEventRecordAmino {
-  /** validator_address is the address of the validator. */
-  validator_address: string;
-  /** height defines the block height at which the slash event occured. */
-  height: string;
-  /** period is the period of the slash event. */
-  period: string;
-  /** validator_slash_event describes the slash event. */
-  validator_slash_event?: ValidatorSlashEventAmino | undefined;
-}
-export interface ValidatorSlashEventRecordAminoMsg {
-  type: "cosmos-sdk/ValidatorSlashEventRecord";
-  value: ValidatorSlashEventRecordAmino;
-}
-/** ValidatorSlashEventRecord is used for import / export via genesis json. */
-export interface ValidatorSlashEventRecordSDKType {
-  validator_address: string;
-  height: bigint;
-  period: bigint;
-  validator_slash_event: ValidatorSlashEventSDKType | undefined;
-}
-/** GenesisState defines the distribution module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of the module. */
-  params: Params | undefined;
-  /** fee_pool defines the fee pool at genesis. */
-  feePool: FeePool | undefined;
-  /** fee_pool defines the delegator withdraw infos at genesis. */
-  delegatorWithdrawInfos: DelegatorWithdrawInfo[];
-  /** fee_pool defines the previous proposer at genesis. */
-  previousProposer: string;
-  /** fee_pool defines the outstanding rewards of all validators at genesis. */
-  outstandingRewards: ValidatorOutstandingRewardsRecord[];
-  /** fee_pool defines the accumulated commisions of all validators at genesis. */
-  validatorAccumulatedCommissions: ValidatorAccumulatedCommissionRecord[];
-  /** fee_pool defines the historical rewards of all validators at genesis. */
-  validatorHistoricalRewards: ValidatorHistoricalRewardsRecord[];
-  /** fee_pool defines the current rewards of all validators at genesis. */
-  validatorCurrentRewards: ValidatorCurrentRewardsRecord[];
-  /** fee_pool defines the delegator starting infos at genesis. */
-  delegatorStartingInfos: DelegatorStartingInfoRecord[];
-  /** fee_pool defines the validator slash events at genesis. */
-  validatorSlashEvents: ValidatorSlashEventRecord[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the distribution module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-  /** fee_pool defines the fee pool at genesis. */
-  fee_pool?: FeePoolAmino | undefined;
-  /** fee_pool defines the delegator withdraw infos at genesis. */
-  delegator_withdraw_infos: DelegatorWithdrawInfoAmino[];
-  /** fee_pool defines the previous proposer at genesis. */
-  previous_proposer: string;
-  /** fee_pool defines the outstanding rewards of all validators at genesis. */
-  outstanding_rewards: ValidatorOutstandingRewardsRecordAmino[];
-  /** fee_pool defines the accumulated commisions of all validators at genesis. */
-  validator_accumulated_commissions: ValidatorAccumulatedCommissionRecordAmino[];
-  /** fee_pool defines the historical rewards of all validators at genesis. */
-  validator_historical_rewards: ValidatorHistoricalRewardsRecordAmino[];
-  /** fee_pool defines the current rewards of all validators at genesis. */
-  validator_current_rewards: ValidatorCurrentRewardsRecordAmino[];
-  /** fee_pool defines the delegator starting infos at genesis. */
-  delegator_starting_infos: DelegatorStartingInfoRecordAmino[];
-  /** fee_pool defines the validator slash events at genesis. */
-  validator_slash_events: ValidatorSlashEventRecordAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the distribution module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  fee_pool: FeePoolSDKType | undefined;
-  delegator_withdraw_infos: DelegatorWithdrawInfoSDKType[];
-  previous_proposer: string;
-  outstanding_rewards: ValidatorOutstandingRewardsRecordSDKType[];
-  validator_accumulated_commissions: ValidatorAccumulatedCommissionRecordSDKType[];
-  validator_historical_rewards: ValidatorHistoricalRewardsRecordSDKType[];
-  validator_current_rewards: ValidatorCurrentRewardsRecordSDKType[];
-  delegator_starting_infos: DelegatorStartingInfoRecordSDKType[];
-  validator_slash_events: ValidatorSlashEventRecordSDKType[];
-}
-function createBaseDelegatorWithdrawInfo(): DelegatorWithdrawInfo {
-  return {
-    delegatorAddress: "",
-    withdrawAddress: ""
-  };
-}
-export const DelegatorWithdrawInfo = {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorWithdrawInfo",
-  aminoType: "cosmos-sdk/DelegatorWithdrawInfo",
-  encode(message: DelegatorWithdrawInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.withdrawAddress !== "") {
-      writer.uint32(18).string(message.withdrawAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelegatorWithdrawInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegatorWithdrawInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.withdrawAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelegatorWithdrawInfo {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      withdrawAddress: isSet(object.withdrawAddress) ? String(object.withdrawAddress) : ""
-    };
-  },
-  toJSON(message: DelegatorWithdrawInfo): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelegatorWithdrawInfo>): DelegatorWithdrawInfo {
-    const message = createBaseDelegatorWithdrawInfo();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.withdrawAddress = object.withdrawAddress ?? "";
-    return message;
-  },
-  fromSDK(object: DelegatorWithdrawInfoSDKType): DelegatorWithdrawInfo {
-    return {
-      delegatorAddress: object?.delegator_address,
-      withdrawAddress: object?.withdraw_address
-    };
-  },
-  toSDK(message: DelegatorWithdrawInfo): DelegatorWithdrawInfoSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAmino(object: DelegatorWithdrawInfoAmino): DelegatorWithdrawInfo {
-    return {
-      delegatorAddress: object.delegator_address,
-      withdrawAddress: object.withdraw_address
-    };
-  },
-  toAmino(message: DelegatorWithdrawInfo): DelegatorWithdrawInfoAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAminoMsg(object: DelegatorWithdrawInfoAminoMsg): DelegatorWithdrawInfo {
-    return DelegatorWithdrawInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelegatorWithdrawInfo): DelegatorWithdrawInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/DelegatorWithdrawInfo",
-      value: DelegatorWithdrawInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegatorWithdrawInfoProtoMsg): DelegatorWithdrawInfo {
-    return DelegatorWithdrawInfo.decode(message.value);
-  },
-  toProto(message: DelegatorWithdrawInfo): Uint8Array {
-    return DelegatorWithdrawInfo.encode(message).finish();
-  },
-  toProtoMsg(message: DelegatorWithdrawInfo): DelegatorWithdrawInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.DelegatorWithdrawInfo",
-      value: DelegatorWithdrawInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorOutstandingRewardsRecord(): ValidatorOutstandingRewardsRecord {
-  return {
-    validatorAddress: "",
-    outstandingRewards: []
-  };
-}
-export const ValidatorOutstandingRewardsRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewardsRecord",
-  aminoType: "cosmos-sdk/ValidatorOutstandingRewardsRecord",
-  encode(message: ValidatorOutstandingRewardsRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    for (const v of message.outstandingRewards) {
-      DecCoin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorOutstandingRewardsRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorOutstandingRewardsRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.outstandingRewards.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorOutstandingRewardsRecord {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      outstandingRewards: Array.isArray(object?.outstandingRewards) ? object.outstandingRewards.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ValidatorOutstandingRewardsRecord): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    if (message.outstandingRewards) {
-      obj.outstandingRewards = message.outstandingRewards.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.outstandingRewards = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorOutstandingRewardsRecord>): ValidatorOutstandingRewardsRecord {
-    const message = createBaseValidatorOutstandingRewardsRecord();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.outstandingRewards = object.outstandingRewards?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorOutstandingRewardsRecordSDKType): ValidatorOutstandingRewardsRecord {
-    return {
-      validatorAddress: object?.validator_address,
-      outstandingRewards: Array.isArray(object?.outstanding_rewards) ? object.outstanding_rewards.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ValidatorOutstandingRewardsRecord): ValidatorOutstandingRewardsRecordSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    if (message.outstandingRewards) {
-      obj.outstanding_rewards = message.outstandingRewards.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.outstanding_rewards = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorOutstandingRewardsRecordAmino): ValidatorOutstandingRewardsRecord {
-    return {
-      validatorAddress: object.validator_address,
-      outstandingRewards: Array.isArray(object?.outstanding_rewards) ? object.outstanding_rewards.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ValidatorOutstandingRewardsRecord): ValidatorOutstandingRewardsRecordAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    if (message.outstandingRewards) {
-      obj.outstanding_rewards = message.outstandingRewards.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.outstanding_rewards = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorOutstandingRewardsRecordAminoMsg): ValidatorOutstandingRewardsRecord {
-    return ValidatorOutstandingRewardsRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorOutstandingRewardsRecord): ValidatorOutstandingRewardsRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorOutstandingRewardsRecord",
-      value: ValidatorOutstandingRewardsRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorOutstandingRewardsRecordProtoMsg): ValidatorOutstandingRewardsRecord {
-    return ValidatorOutstandingRewardsRecord.decode(message.value);
-  },
-  toProto(message: ValidatorOutstandingRewardsRecord): Uint8Array {
-    return ValidatorOutstandingRewardsRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorOutstandingRewardsRecord): ValidatorOutstandingRewardsRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewardsRecord",
-      value: ValidatorOutstandingRewardsRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorAccumulatedCommissionRecord(): ValidatorAccumulatedCommissionRecord {
-  return {
-    validatorAddress: "",
-    accumulated: ValidatorAccumulatedCommission.fromPartial({})
-  };
-}
-export const ValidatorAccumulatedCommissionRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommissionRecord",
-  aminoType: "cosmos-sdk/ValidatorAccumulatedCommissionRecord",
-  encode(message: ValidatorAccumulatedCommissionRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.accumulated !== undefined) {
-      ValidatorAccumulatedCommission.encode(message.accumulated, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorAccumulatedCommissionRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorAccumulatedCommissionRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.accumulated = ValidatorAccumulatedCommission.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorAccumulatedCommissionRecord {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      accumulated: isSet(object.accumulated) ? ValidatorAccumulatedCommission.fromJSON(object.accumulated) : undefined
-    };
-  },
-  toJSON(message: ValidatorAccumulatedCommissionRecord): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.accumulated !== undefined && (obj.accumulated = message.accumulated ? ValidatorAccumulatedCommission.toJSON(message.accumulated) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorAccumulatedCommissionRecord>): ValidatorAccumulatedCommissionRecord {
-    const message = createBaseValidatorAccumulatedCommissionRecord();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.accumulated = object.accumulated !== undefined && object.accumulated !== null ? ValidatorAccumulatedCommission.fromPartial(object.accumulated) : undefined;
-    return message;
-  },
-  fromSDK(object: ValidatorAccumulatedCommissionRecordSDKType): ValidatorAccumulatedCommissionRecord {
-    return {
-      validatorAddress: object?.validator_address,
-      accumulated: object.accumulated ? ValidatorAccumulatedCommission.fromSDK(object.accumulated) : undefined
-    };
-  },
-  toSDK(message: ValidatorAccumulatedCommissionRecord): ValidatorAccumulatedCommissionRecordSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    message.accumulated !== undefined && (obj.accumulated = message.accumulated ? ValidatorAccumulatedCommission.toSDK(message.accumulated) : undefined);
-    return obj;
-  },
-  fromAmino(object: ValidatorAccumulatedCommissionRecordAmino): ValidatorAccumulatedCommissionRecord {
-    return {
-      validatorAddress: object.validator_address,
-      accumulated: object?.accumulated ? ValidatorAccumulatedCommission.fromAmino(object.accumulated) : undefined
-    };
-  },
-  toAmino(message: ValidatorAccumulatedCommissionRecord): ValidatorAccumulatedCommissionRecordAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.accumulated = message.accumulated ? ValidatorAccumulatedCommission.toAmino(message.accumulated) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAccumulatedCommissionRecordAminoMsg): ValidatorAccumulatedCommissionRecord {
-    return ValidatorAccumulatedCommissionRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorAccumulatedCommissionRecord): ValidatorAccumulatedCommissionRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorAccumulatedCommissionRecord",
-      value: ValidatorAccumulatedCommissionRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorAccumulatedCommissionRecordProtoMsg): ValidatorAccumulatedCommissionRecord {
-    return ValidatorAccumulatedCommissionRecord.decode(message.value);
-  },
-  toProto(message: ValidatorAccumulatedCommissionRecord): Uint8Array {
-    return ValidatorAccumulatedCommissionRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorAccumulatedCommissionRecord): ValidatorAccumulatedCommissionRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommissionRecord",
-      value: ValidatorAccumulatedCommissionRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorHistoricalRewardsRecord(): ValidatorHistoricalRewardsRecord {
-  return {
-    validatorAddress: "",
-    period: BigInt(0),
-    rewards: ValidatorHistoricalRewards.fromPartial({})
-  };
-}
-export const ValidatorHistoricalRewardsRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewardsRecord",
-  aminoType: "cosmos-sdk/ValidatorHistoricalRewardsRecord",
-  encode(message: ValidatorHistoricalRewardsRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.period !== BigInt(0)) {
-      writer.uint32(16).uint64(message.period);
-    }
-    if (message.rewards !== undefined) {
-      ValidatorHistoricalRewards.encode(message.rewards, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorHistoricalRewardsRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorHistoricalRewardsRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.period = reader.uint64();
-          break;
-        case 3:
-          message.rewards = ValidatorHistoricalRewards.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorHistoricalRewardsRecord {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      period: isSet(object.period) ? BigInt(object.period.toString()) : BigInt(0),
-      rewards: isSet(object.rewards) ? ValidatorHistoricalRewards.fromJSON(object.rewards) : undefined
-    };
-  },
-  toJSON(message: ValidatorHistoricalRewardsRecord): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString());
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorHistoricalRewards.toJSON(message.rewards) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorHistoricalRewardsRecord>): ValidatorHistoricalRewardsRecord {
-    const message = createBaseValidatorHistoricalRewardsRecord();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.period = object.period !== undefined && object.period !== null ? BigInt(object.period.toString()) : BigInt(0);
-    message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorHistoricalRewards.fromPartial(object.rewards) : undefined;
-    return message;
-  },
-  fromSDK(object: ValidatorHistoricalRewardsRecordSDKType): ValidatorHistoricalRewardsRecord {
-    return {
-      validatorAddress: object?.validator_address,
-      period: object?.period,
-      rewards: object.rewards ? ValidatorHistoricalRewards.fromSDK(object.rewards) : undefined
-    };
-  },
-  toSDK(message: ValidatorHistoricalRewardsRecord): ValidatorHistoricalRewardsRecordSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.period = message.period;
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorHistoricalRewards.toSDK(message.rewards) : undefined);
-    return obj;
-  },
-  fromAmino(object: ValidatorHistoricalRewardsRecordAmino): ValidatorHistoricalRewardsRecord {
-    return {
-      validatorAddress: object.validator_address,
-      period: BigInt(object.period),
-      rewards: object?.rewards ? ValidatorHistoricalRewards.fromAmino(object.rewards) : undefined
-    };
-  },
-  toAmino(message: ValidatorHistoricalRewardsRecord): ValidatorHistoricalRewardsRecordAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.period = message.period ? message.period.toString() : undefined;
-    obj.rewards = message.rewards ? ValidatorHistoricalRewards.toAmino(message.rewards) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorHistoricalRewardsRecordAminoMsg): ValidatorHistoricalRewardsRecord {
-    return ValidatorHistoricalRewardsRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorHistoricalRewardsRecord): ValidatorHistoricalRewardsRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorHistoricalRewardsRecord",
-      value: ValidatorHistoricalRewardsRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorHistoricalRewardsRecordProtoMsg): ValidatorHistoricalRewardsRecord {
-    return ValidatorHistoricalRewardsRecord.decode(message.value);
-  },
-  toProto(message: ValidatorHistoricalRewardsRecord): Uint8Array {
-    return ValidatorHistoricalRewardsRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorHistoricalRewardsRecord): ValidatorHistoricalRewardsRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewardsRecord",
-      value: ValidatorHistoricalRewardsRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorCurrentRewardsRecord(): ValidatorCurrentRewardsRecord {
-  return {
-    validatorAddress: "",
-    rewards: ValidatorCurrentRewards.fromPartial({})
-  };
-}
-export const ValidatorCurrentRewardsRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewardsRecord",
-  aminoType: "cosmos-sdk/ValidatorCurrentRewardsRecord",
-  encode(message: ValidatorCurrentRewardsRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.rewards !== undefined) {
-      ValidatorCurrentRewards.encode(message.rewards, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorCurrentRewardsRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorCurrentRewardsRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.rewards = ValidatorCurrentRewards.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorCurrentRewardsRecord {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      rewards: isSet(object.rewards) ? ValidatorCurrentRewards.fromJSON(object.rewards) : undefined
-    };
-  },
-  toJSON(message: ValidatorCurrentRewardsRecord): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorCurrentRewards.toJSON(message.rewards) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorCurrentRewardsRecord>): ValidatorCurrentRewardsRecord {
-    const message = createBaseValidatorCurrentRewardsRecord();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorCurrentRewards.fromPartial(object.rewards) : undefined;
-    return message;
-  },
-  fromSDK(object: ValidatorCurrentRewardsRecordSDKType): ValidatorCurrentRewardsRecord {
-    return {
-      validatorAddress: object?.validator_address,
-      rewards: object.rewards ? ValidatorCurrentRewards.fromSDK(object.rewards) : undefined
-    };
-  },
-  toSDK(message: ValidatorCurrentRewardsRecord): ValidatorCurrentRewardsRecordSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorCurrentRewards.toSDK(message.rewards) : undefined);
-    return obj;
-  },
-  fromAmino(object: ValidatorCurrentRewardsRecordAmino): ValidatorCurrentRewardsRecord {
-    return {
-      validatorAddress: object.validator_address,
-      rewards: object?.rewards ? ValidatorCurrentRewards.fromAmino(object.rewards) : undefined
-    };
-  },
-  toAmino(message: ValidatorCurrentRewardsRecord): ValidatorCurrentRewardsRecordAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.rewards = message.rewards ? ValidatorCurrentRewards.toAmino(message.rewards) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorCurrentRewardsRecordAminoMsg): ValidatorCurrentRewardsRecord {
-    return ValidatorCurrentRewardsRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorCurrentRewardsRecord): ValidatorCurrentRewardsRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorCurrentRewardsRecord",
-      value: ValidatorCurrentRewardsRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorCurrentRewardsRecordProtoMsg): ValidatorCurrentRewardsRecord {
-    return ValidatorCurrentRewardsRecord.decode(message.value);
-  },
-  toProto(message: ValidatorCurrentRewardsRecord): Uint8Array {
-    return ValidatorCurrentRewardsRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorCurrentRewardsRecord): ValidatorCurrentRewardsRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewardsRecord",
-      value: ValidatorCurrentRewardsRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegatorStartingInfoRecord(): DelegatorStartingInfoRecord {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    startingInfo: DelegatorStartingInfo.fromPartial({})
-  };
-}
-export const DelegatorStartingInfoRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfoRecord",
-  aminoType: "cosmos-sdk/DelegatorStartingInfoRecord",
-  encode(message: DelegatorStartingInfoRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.startingInfo !== undefined) {
-      DelegatorStartingInfo.encode(message.startingInfo, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelegatorStartingInfoRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegatorStartingInfoRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.startingInfo = DelegatorStartingInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelegatorStartingInfoRecord {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      startingInfo: isSet(object.startingInfo) ? DelegatorStartingInfo.fromJSON(object.startingInfo) : undefined
-    };
-  },
-  toJSON(message: DelegatorStartingInfoRecord): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.startingInfo !== undefined && (obj.startingInfo = message.startingInfo ? DelegatorStartingInfo.toJSON(message.startingInfo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelegatorStartingInfoRecord>): DelegatorStartingInfoRecord {
-    const message = createBaseDelegatorStartingInfoRecord();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.startingInfo = object.startingInfo !== undefined && object.startingInfo !== null ? DelegatorStartingInfo.fromPartial(object.startingInfo) : undefined;
-    return message;
-  },
-  fromSDK(object: DelegatorStartingInfoRecordSDKType): DelegatorStartingInfoRecord {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      startingInfo: object.starting_info ? DelegatorStartingInfo.fromSDK(object.starting_info) : undefined
-    };
-  },
-  toSDK(message: DelegatorStartingInfoRecord): DelegatorStartingInfoRecordSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    message.startingInfo !== undefined && (obj.starting_info = message.startingInfo ? DelegatorStartingInfo.toSDK(message.startingInfo) : undefined);
-    return obj;
-  },
-  fromAmino(object: DelegatorStartingInfoRecordAmino): DelegatorStartingInfoRecord {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      startingInfo: object?.starting_info ? DelegatorStartingInfo.fromAmino(object.starting_info) : undefined
-    };
-  },
-  toAmino(message: DelegatorStartingInfoRecord): DelegatorStartingInfoRecordAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.starting_info = message.startingInfo ? DelegatorStartingInfo.toAmino(message.startingInfo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DelegatorStartingInfoRecordAminoMsg): DelegatorStartingInfoRecord {
-    return DelegatorStartingInfoRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelegatorStartingInfoRecord): DelegatorStartingInfoRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/DelegatorStartingInfoRecord",
-      value: DelegatorStartingInfoRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegatorStartingInfoRecordProtoMsg): DelegatorStartingInfoRecord {
-    return DelegatorStartingInfoRecord.decode(message.value);
-  },
-  toProto(message: DelegatorStartingInfoRecord): Uint8Array {
-    return DelegatorStartingInfoRecord.encode(message).finish();
-  },
-  toProtoMsg(message: DelegatorStartingInfoRecord): DelegatorStartingInfoRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfoRecord",
-      value: DelegatorStartingInfoRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorSlashEventRecord(): ValidatorSlashEventRecord {
-  return {
-    validatorAddress: "",
-    height: BigInt(0),
-    period: BigInt(0),
-    validatorSlashEvent: ValidatorSlashEvent.fromPartial({})
-  };
-}
-export const ValidatorSlashEventRecord = {
-  typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEventRecord",
-  aminoType: "cosmos-sdk/ValidatorSlashEventRecord",
-  encode(message: ValidatorSlashEventRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(16).uint64(message.height);
-    }
-    if (message.period !== BigInt(0)) {
-      writer.uint32(24).uint64(message.period);
-    }
-    if (message.validatorSlashEvent !== undefined) {
-      ValidatorSlashEvent.encode(message.validatorSlashEvent, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorSlashEventRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorSlashEventRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.height = reader.uint64();
-          break;
-        case 3:
-          message.period = reader.uint64();
-          break;
-        case 4:
-          message.validatorSlashEvent = ValidatorSlashEvent.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorSlashEventRecord {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      period: isSet(object.period) ? BigInt(object.period.toString()) : BigInt(0),
-      validatorSlashEvent: isSet(object.validatorSlashEvent) ? ValidatorSlashEvent.fromJSON(object.validatorSlashEvent) : undefined
-    };
-  },
-  toJSON(message: ValidatorSlashEventRecord): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString());
-    message.validatorSlashEvent !== undefined && (obj.validatorSlashEvent = message.validatorSlashEvent ? ValidatorSlashEvent.toJSON(message.validatorSlashEvent) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorSlashEventRecord>): ValidatorSlashEventRecord {
-    const message = createBaseValidatorSlashEventRecord();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.period = object.period !== undefined && object.period !== null ? BigInt(object.period.toString()) : BigInt(0);
-    message.validatorSlashEvent = object.validatorSlashEvent !== undefined && object.validatorSlashEvent !== null ? ValidatorSlashEvent.fromPartial(object.validatorSlashEvent) : undefined;
-    return message;
-  },
-  fromSDK(object: ValidatorSlashEventRecordSDKType): ValidatorSlashEventRecord {
-    return {
-      validatorAddress: object?.validator_address,
-      height: object?.height,
-      period: object?.period,
-      validatorSlashEvent: object.validator_slash_event ? ValidatorSlashEvent.fromSDK(object.validator_slash_event) : undefined
-    };
-  },
-  toSDK(message: ValidatorSlashEventRecord): ValidatorSlashEventRecordSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.height = message.height;
-    obj.period = message.period;
-    message.validatorSlashEvent !== undefined && (obj.validator_slash_event = message.validatorSlashEvent ? ValidatorSlashEvent.toSDK(message.validatorSlashEvent) : undefined);
-    return obj;
-  },
-  fromAmino(object: ValidatorSlashEventRecordAmino): ValidatorSlashEventRecord {
-    return {
-      validatorAddress: object.validator_address,
-      height: BigInt(object.height),
-      period: BigInt(object.period),
-      validatorSlashEvent: object?.validator_slash_event ? ValidatorSlashEvent.fromAmino(object.validator_slash_event) : undefined
-    };
-  },
-  toAmino(message: ValidatorSlashEventRecord): ValidatorSlashEventRecordAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.period = message.period ? message.period.toString() : undefined;
-    obj.validator_slash_event = message.validatorSlashEvent ? ValidatorSlashEvent.toAmino(message.validatorSlashEvent) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorSlashEventRecordAminoMsg): ValidatorSlashEventRecord {
-    return ValidatorSlashEventRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorSlashEventRecord): ValidatorSlashEventRecordAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorSlashEventRecord",
-      value: ValidatorSlashEventRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorSlashEventRecordProtoMsg): ValidatorSlashEventRecord {
-    return ValidatorSlashEventRecord.decode(message.value);
-  },
-  toProto(message: ValidatorSlashEventRecord): Uint8Array {
-    return ValidatorSlashEventRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorSlashEventRecord): ValidatorSlashEventRecordProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEventRecord",
-      value: ValidatorSlashEventRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    feePool: FeePool.fromPartial({}),
-    delegatorWithdrawInfos: [],
-    previousProposer: "",
-    outstandingRewards: [],
-    validatorAccumulatedCommissions: [],
-    validatorHistoricalRewards: [],
-    validatorCurrentRewards: [],
-    delegatorStartingInfos: [],
-    validatorSlashEvents: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.distribution.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.feePool !== undefined) {
-      FeePool.encode(message.feePool, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.delegatorWithdrawInfos) {
-      DelegatorWithdrawInfo.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.previousProposer !== "") {
-      writer.uint32(34).string(message.previousProposer);
-    }
-    for (const v of message.outstandingRewards) {
-      ValidatorOutstandingRewardsRecord.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.validatorAccumulatedCommissions) {
-      ValidatorAccumulatedCommissionRecord.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.validatorHistoricalRewards) {
-      ValidatorHistoricalRewardsRecord.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    for (const v of message.validatorCurrentRewards) {
-      ValidatorCurrentRewardsRecord.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    for (const v of message.delegatorStartingInfos) {
-      DelegatorStartingInfoRecord.encode(v!, writer.uint32(74).fork()).ldelim();
-    }
-    for (const v of message.validatorSlashEvents) {
-      ValidatorSlashEventRecord.encode(v!, writer.uint32(82).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.feePool = FeePool.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.delegatorWithdrawInfos.push(DelegatorWithdrawInfo.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.previousProposer = reader.string();
-          break;
-        case 5:
-          message.outstandingRewards.push(ValidatorOutstandingRewardsRecord.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.validatorAccumulatedCommissions.push(ValidatorAccumulatedCommissionRecord.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.validatorHistoricalRewards.push(ValidatorHistoricalRewardsRecord.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.validatorCurrentRewards.push(ValidatorCurrentRewardsRecord.decode(reader, reader.uint32()));
-          break;
-        case 9:
-          message.delegatorStartingInfos.push(DelegatorStartingInfoRecord.decode(reader, reader.uint32()));
-          break;
-        case 10:
-          message.validatorSlashEvents.push(ValidatorSlashEventRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      feePool: isSet(object.feePool) ? FeePool.fromJSON(object.feePool) : undefined,
-      delegatorWithdrawInfos: Array.isArray(object?.delegatorWithdrawInfos) ? object.delegatorWithdrawInfos.map((e: any) => DelegatorWithdrawInfo.fromJSON(e)) : [],
-      previousProposer: isSet(object.previousProposer) ? String(object.previousProposer) : "",
-      outstandingRewards: Array.isArray(object?.outstandingRewards) ? object.outstandingRewards.map((e: any) => ValidatorOutstandingRewardsRecord.fromJSON(e)) : [],
-      validatorAccumulatedCommissions: Array.isArray(object?.validatorAccumulatedCommissions) ? object.validatorAccumulatedCommissions.map((e: any) => ValidatorAccumulatedCommissionRecord.fromJSON(e)) : [],
-      validatorHistoricalRewards: Array.isArray(object?.validatorHistoricalRewards) ? object.validatorHistoricalRewards.map((e: any) => ValidatorHistoricalRewardsRecord.fromJSON(e)) : [],
-      validatorCurrentRewards: Array.isArray(object?.validatorCurrentRewards) ? object.validatorCurrentRewards.map((e: any) => ValidatorCurrentRewardsRecord.fromJSON(e)) : [],
-      delegatorStartingInfos: Array.isArray(object?.delegatorStartingInfos) ? object.delegatorStartingInfos.map((e: any) => DelegatorStartingInfoRecord.fromJSON(e)) : [],
-      validatorSlashEvents: Array.isArray(object?.validatorSlashEvents) ? object.validatorSlashEvents.map((e: any) => ValidatorSlashEventRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    message.feePool !== undefined && (obj.feePool = message.feePool ? FeePool.toJSON(message.feePool) : undefined);
-    if (message.delegatorWithdrawInfos) {
-      obj.delegatorWithdrawInfos = message.delegatorWithdrawInfos.map(e => e ? DelegatorWithdrawInfo.toJSON(e) : undefined);
-    } else {
-      obj.delegatorWithdrawInfos = [];
-    }
-    message.previousProposer !== undefined && (obj.previousProposer = message.previousProposer);
-    if (message.outstandingRewards) {
-      obj.outstandingRewards = message.outstandingRewards.map(e => e ? ValidatorOutstandingRewardsRecord.toJSON(e) : undefined);
-    } else {
-      obj.outstandingRewards = [];
-    }
-    if (message.validatorAccumulatedCommissions) {
-      obj.validatorAccumulatedCommissions = message.validatorAccumulatedCommissions.map(e => e ? ValidatorAccumulatedCommissionRecord.toJSON(e) : undefined);
-    } else {
-      obj.validatorAccumulatedCommissions = [];
-    }
-    if (message.validatorHistoricalRewards) {
-      obj.validatorHistoricalRewards = message.validatorHistoricalRewards.map(e => e ? ValidatorHistoricalRewardsRecord.toJSON(e) : undefined);
-    } else {
-      obj.validatorHistoricalRewards = [];
-    }
-    if (message.validatorCurrentRewards) {
-      obj.validatorCurrentRewards = message.validatorCurrentRewards.map(e => e ? ValidatorCurrentRewardsRecord.toJSON(e) : undefined);
-    } else {
-      obj.validatorCurrentRewards = [];
-    }
-    if (message.delegatorStartingInfos) {
-      obj.delegatorStartingInfos = message.delegatorStartingInfos.map(e => e ? DelegatorStartingInfoRecord.toJSON(e) : undefined);
-    } else {
-      obj.delegatorStartingInfos = [];
-    }
-    if (message.validatorSlashEvents) {
-      obj.validatorSlashEvents = message.validatorSlashEvents.map(e => e ? ValidatorSlashEventRecord.toJSON(e) : undefined);
-    } else {
-      obj.validatorSlashEvents = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.feePool = object.feePool !== undefined && object.feePool !== null ? FeePool.fromPartial(object.feePool) : undefined;
-    message.delegatorWithdrawInfos = object.delegatorWithdrawInfos?.map(e => DelegatorWithdrawInfo.fromPartial(e)) || [];
-    message.previousProposer = object.previousProposer ?? "";
-    message.outstandingRewards = object.outstandingRewards?.map(e => ValidatorOutstandingRewardsRecord.fromPartial(e)) || [];
-    message.validatorAccumulatedCommissions = object.validatorAccumulatedCommissions?.map(e => ValidatorAccumulatedCommissionRecord.fromPartial(e)) || [];
-    message.validatorHistoricalRewards = object.validatorHistoricalRewards?.map(e => ValidatorHistoricalRewardsRecord.fromPartial(e)) || [];
-    message.validatorCurrentRewards = object.validatorCurrentRewards?.map(e => ValidatorCurrentRewardsRecord.fromPartial(e)) || [];
-    message.delegatorStartingInfos = object.delegatorStartingInfos?.map(e => DelegatorStartingInfoRecord.fromPartial(e)) || [];
-    message.validatorSlashEvents = object.validatorSlashEvents?.map(e => ValidatorSlashEventRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      feePool: object.fee_pool ? FeePool.fromSDK(object.fee_pool) : undefined,
-      delegatorWithdrawInfos: Array.isArray(object?.delegator_withdraw_infos) ? object.delegator_withdraw_infos.map((e: any) => DelegatorWithdrawInfo.fromSDK(e)) : [],
-      previousProposer: object?.previous_proposer,
-      outstandingRewards: Array.isArray(object?.outstanding_rewards) ? object.outstanding_rewards.map((e: any) => ValidatorOutstandingRewardsRecord.fromSDK(e)) : [],
-      validatorAccumulatedCommissions: Array.isArray(object?.validator_accumulated_commissions) ? object.validator_accumulated_commissions.map((e: any) => ValidatorAccumulatedCommissionRecord.fromSDK(e)) : [],
-      validatorHistoricalRewards: Array.isArray(object?.validator_historical_rewards) ? object.validator_historical_rewards.map((e: any) => ValidatorHistoricalRewardsRecord.fromSDK(e)) : [],
-      validatorCurrentRewards: Array.isArray(object?.validator_current_rewards) ? object.validator_current_rewards.map((e: any) => ValidatorCurrentRewardsRecord.fromSDK(e)) : [],
-      delegatorStartingInfos: Array.isArray(object?.delegator_starting_infos) ? object.delegator_starting_infos.map((e: any) => DelegatorStartingInfoRecord.fromSDK(e)) : [],
-      validatorSlashEvents: Array.isArray(object?.validator_slash_events) ? object.validator_slash_events.map((e: any) => ValidatorSlashEventRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    message.feePool !== undefined && (obj.fee_pool = message.feePool ? FeePool.toSDK(message.feePool) : undefined);
-    if (message.delegatorWithdrawInfos) {
-      obj.delegator_withdraw_infos = message.delegatorWithdrawInfos.map(e => e ? DelegatorWithdrawInfo.toSDK(e) : undefined);
-    } else {
-      obj.delegator_withdraw_infos = [];
-    }
-    obj.previous_proposer = message.previousProposer;
-    if (message.outstandingRewards) {
-      obj.outstanding_rewards = message.outstandingRewards.map(e => e ? ValidatorOutstandingRewardsRecord.toSDK(e) : undefined);
-    } else {
-      obj.outstanding_rewards = [];
-    }
-    if (message.validatorAccumulatedCommissions) {
-      obj.validator_accumulated_commissions = message.validatorAccumulatedCommissions.map(e => e ? ValidatorAccumulatedCommissionRecord.toSDK(e) : undefined);
-    } else {
-      obj.validator_accumulated_commissions = [];
-    }
-    if (message.validatorHistoricalRewards) {
-      obj.validator_historical_rewards = message.validatorHistoricalRewards.map(e => e ? ValidatorHistoricalRewardsRecord.toSDK(e) : undefined);
-    } else {
-      obj.validator_historical_rewards = [];
-    }
-    if (message.validatorCurrentRewards) {
-      obj.validator_current_rewards = message.validatorCurrentRewards.map(e => e ? ValidatorCurrentRewardsRecord.toSDK(e) : undefined);
-    } else {
-      obj.validator_current_rewards = [];
-    }
-    if (message.delegatorStartingInfos) {
-      obj.delegator_starting_infos = message.delegatorStartingInfos.map(e => e ? DelegatorStartingInfoRecord.toSDK(e) : undefined);
-    } else {
-      obj.delegator_starting_infos = [];
-    }
-    if (message.validatorSlashEvents) {
-      obj.validator_slash_events = message.validatorSlashEvents.map(e => e ? ValidatorSlashEventRecord.toSDK(e) : undefined);
-    } else {
-      obj.validator_slash_events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      feePool: object?.fee_pool ? FeePool.fromAmino(object.fee_pool) : undefined,
-      delegatorWithdrawInfos: Array.isArray(object?.delegator_withdraw_infos) ? object.delegator_withdraw_infos.map((e: any) => DelegatorWithdrawInfo.fromAmino(e)) : [],
-      previousProposer: object.previous_proposer,
-      outstandingRewards: Array.isArray(object?.outstanding_rewards) ? object.outstanding_rewards.map((e: any) => ValidatorOutstandingRewardsRecord.fromAmino(e)) : [],
-      validatorAccumulatedCommissions: Array.isArray(object?.validator_accumulated_commissions) ? object.validator_accumulated_commissions.map((e: any) => ValidatorAccumulatedCommissionRecord.fromAmino(e)) : [],
-      validatorHistoricalRewards: Array.isArray(object?.validator_historical_rewards) ? object.validator_historical_rewards.map((e: any) => ValidatorHistoricalRewardsRecord.fromAmino(e)) : [],
-      validatorCurrentRewards: Array.isArray(object?.validator_current_rewards) ? object.validator_current_rewards.map((e: any) => ValidatorCurrentRewardsRecord.fromAmino(e)) : [],
-      delegatorStartingInfos: Array.isArray(object?.delegator_starting_infos) ? object.delegator_starting_infos.map((e: any) => DelegatorStartingInfoRecord.fromAmino(e)) : [],
-      validatorSlashEvents: Array.isArray(object?.validator_slash_events) ? object.validator_slash_events.map((e: any) => ValidatorSlashEventRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    obj.fee_pool = message.feePool ? FeePool.toAmino(message.feePool) : undefined;
-    if (message.delegatorWithdrawInfos) {
-      obj.delegator_withdraw_infos = message.delegatorWithdrawInfos.map(e => e ? DelegatorWithdrawInfo.toAmino(e) : undefined);
-    } else {
-      obj.delegator_withdraw_infos = [];
-    }
-    obj.previous_proposer = message.previousProposer;
-    if (message.outstandingRewards) {
-      obj.outstanding_rewards = message.outstandingRewards.map(e => e ? ValidatorOutstandingRewardsRecord.toAmino(e) : undefined);
-    } else {
-      obj.outstanding_rewards = [];
-    }
-    if (message.validatorAccumulatedCommissions) {
-      obj.validator_accumulated_commissions = message.validatorAccumulatedCommissions.map(e => e ? ValidatorAccumulatedCommissionRecord.toAmino(e) : undefined);
-    } else {
-      obj.validator_accumulated_commissions = [];
-    }
-    if (message.validatorHistoricalRewards) {
-      obj.validator_historical_rewards = message.validatorHistoricalRewards.map(e => e ? ValidatorHistoricalRewardsRecord.toAmino(e) : undefined);
-    } else {
-      obj.validator_historical_rewards = [];
-    }
-    if (message.validatorCurrentRewards) {
-      obj.validator_current_rewards = message.validatorCurrentRewards.map(e => e ? ValidatorCurrentRewardsRecord.toAmino(e) : undefined);
-    } else {
-      obj.validator_current_rewards = [];
-    }
-    if (message.delegatorStartingInfos) {
-      obj.delegator_starting_infos = message.delegatorStartingInfos.map(e => e ? DelegatorStartingInfoRecord.toAmino(e) : undefined);
-    } else {
-      obj.delegator_starting_infos = [];
-    }
-    if (message.validatorSlashEvents) {
-      obj.validator_slash_events = message.validatorSlashEvents.map(e => e ? ValidatorSlashEventRecord.toAmino(e) : undefined);
-    } else {
-      obj.validator_slash_events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 085c07f4..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,332 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponse, QueryValidatorCommissionRequest, QueryValidatorCommissionResponse, QueryValidatorSlashesRequest, QueryValidatorSlashesResponse, QueryDelegationRewardsRequest, QueryDelegationRewardsResponse, QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponse, QueryCommunityPoolRequest, QueryCommunityPoolResponse } from "./query";
-/** Query defines the gRPC querier service for distribution module. */
-export interface Query {
-  /** Params queries params of the distribution module. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** ValidatorOutstandingRewards queries rewards of a validator address. */
-  validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
-  /** ValidatorCommission queries accumulated commission for a validator. */
-  validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
-  /** ValidatorSlashes queries slash events of a validator. */
-  validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
-  /** DelegationRewards queries the total rewards accrued by a delegation. */
-  delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
-  /**
-   * DelegationTotalRewards queries the total rewards accrued by a each
-   * validator.
-   */
-  delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
-  /** DelegatorValidators queries the validators of a delegator. */
-  delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
-  /** DelegatorWithdrawAddress queries withdraw address of a delegator. */
-  delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
-  /** CommunityPool queries the community pool coins. */
-  communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.validatorOutstandingRewards = this.validatorOutstandingRewards.bind(this);
-    this.validatorCommission = this.validatorCommission.bind(this);
-    this.validatorSlashes = this.validatorSlashes.bind(this);
-    this.delegationRewards = this.delegationRewards.bind(this);
-    this.delegationTotalRewards = this.delegationTotalRewards.bind(this);
-    this.delegatorValidators = this.delegatorValidators.bind(this);
-    this.delegatorWithdrawAddress = this.delegatorWithdrawAddress.bind(this);
-    this.communityPool = this.communityPool.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse> {
-    const data = QueryValidatorOutstandingRewardsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorOutstandingRewards", data);
-    return promise.then(data => QueryValidatorOutstandingRewardsResponse.decode(new BinaryReader(data)));
-  }
-  validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse> {
-    const data = QueryValidatorCommissionRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorCommission", data);
-    return promise.then(data => QueryValidatorCommissionResponse.decode(new BinaryReader(data)));
-  }
-  validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse> {
-    const data = QueryValidatorSlashesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorSlashes", data);
-    return promise.then(data => QueryValidatorSlashesResponse.decode(new BinaryReader(data)));
-  }
-  delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse> {
-    const data = QueryDelegationRewardsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationRewards", data);
-    return promise.then(data => QueryDelegationRewardsResponse.decode(new BinaryReader(data)));
-  }
-  delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse> {
-    const data = QueryDelegationTotalRewardsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationTotalRewards", data);
-    return promise.then(data => QueryDelegationTotalRewardsResponse.decode(new BinaryReader(data)));
-  }
-  delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse> {
-    const data = QueryDelegatorValidatorsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorValidators", data);
-    return promise.then(data => QueryDelegatorValidatorsResponse.decode(new BinaryReader(data)));
-  }
-  delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse> {
-    const data = QueryDelegatorWithdrawAddressRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorWithdrawAddress", data);
-    return promise.then(data => QueryDelegatorWithdrawAddressResponse.decode(new BinaryReader(data)));
-  }
-  communityPool(request: QueryCommunityPoolRequest = {}): Promise<QueryCommunityPoolResponse> {
-    const data = QueryCommunityPoolRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "CommunityPool", data);
-    return promise.then(data => QueryCommunityPoolResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse> {
-      return queryService.validatorOutstandingRewards(request);
-    },
-    validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse> {
-      return queryService.validatorCommission(request);
-    },
-    validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse> {
-      return queryService.validatorSlashes(request);
-    },
-    delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse> {
-      return queryService.delegationRewards(request);
-    },
-    delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse> {
-      return queryService.delegationTotalRewards(request);
-    },
-    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse> {
-      return queryService.delegatorValidators(request);
-    },
-    delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse> {
-      return queryService.delegatorWithdrawAddress(request);
-    },
-    communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse> {
-      return queryService.communityPool(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseValidatorOutstandingRewardsQuery<TData> extends ReactQueryParams<QueryValidatorOutstandingRewardsResponse, TData> {
-  request: QueryValidatorOutstandingRewardsRequest;
-}
-export interface UseValidatorCommissionQuery<TData> extends ReactQueryParams<QueryValidatorCommissionResponse, TData> {
-  request: QueryValidatorCommissionRequest;
-}
-export interface UseValidatorSlashesQuery<TData> extends ReactQueryParams<QueryValidatorSlashesResponse, TData> {
-  request: QueryValidatorSlashesRequest;
-}
-export interface UseDelegationRewardsQuery<TData> extends ReactQueryParams<QueryDelegationRewardsResponse, TData> {
-  request: QueryDelegationRewardsRequest;
-}
-export interface UseDelegationTotalRewardsQuery<TData> extends ReactQueryParams<QueryDelegationTotalRewardsResponse, TData> {
-  request: QueryDelegationTotalRewardsRequest;
-}
-export interface UseDelegatorValidatorsQuery<TData> extends ReactQueryParams<QueryDelegatorValidatorsResponse, TData> {
-  request: QueryDelegatorValidatorsRequest;
-}
-export interface UseDelegatorWithdrawAddressQuery<TData> extends ReactQueryParams<QueryDelegatorWithdrawAddressResponse, TData> {
-  request: QueryDelegatorWithdrawAddressRequest;
-}
-export interface UseCommunityPoolQuery<TData> extends ReactQueryParams<QueryCommunityPoolResponse, TData> {
-  request?: QueryCommunityPoolRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useValidatorOutstandingRewards = <TData = QueryValidatorOutstandingRewardsResponse,>({
-    request,
-    options
-  }: UseValidatorOutstandingRewardsQuery<TData>) => {
-    return useQuery<QueryValidatorOutstandingRewardsResponse, Error, TData>(["validatorOutstandingRewardsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validatorOutstandingRewards(request);
-    }, options);
-  };
-  const useValidatorCommission = <TData = QueryValidatorCommissionResponse,>({
-    request,
-    options
-  }: UseValidatorCommissionQuery<TData>) => {
-    return useQuery<QueryValidatorCommissionResponse, Error, TData>(["validatorCommissionQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validatorCommission(request);
-    }, options);
-  };
-  const useValidatorSlashes = <TData = QueryValidatorSlashesResponse,>({
-    request,
-    options
-  }: UseValidatorSlashesQuery<TData>) => {
-    return useQuery<QueryValidatorSlashesResponse, Error, TData>(["validatorSlashesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validatorSlashes(request);
-    }, options);
-  };
-  const useDelegationRewards = <TData = QueryDelegationRewardsResponse,>({
-    request,
-    options
-  }: UseDelegationRewardsQuery<TData>) => {
-    return useQuery<QueryDelegationRewardsResponse, Error, TData>(["delegationRewardsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegationRewards(request);
-    }, options);
-  };
-  const useDelegationTotalRewards = <TData = QueryDelegationTotalRewardsResponse,>({
-    request,
-    options
-  }: UseDelegationTotalRewardsQuery<TData>) => {
-    return useQuery<QueryDelegationTotalRewardsResponse, Error, TData>(["delegationTotalRewardsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegationTotalRewards(request);
-    }, options);
-  };
-  const useDelegatorValidators = <TData = QueryDelegatorValidatorsResponse,>({
-    request,
-    options
-  }: UseDelegatorValidatorsQuery<TData>) => {
-    return useQuery<QueryDelegatorValidatorsResponse, Error, TData>(["delegatorValidatorsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorValidators(request);
-    }, options);
-  };
-  const useDelegatorWithdrawAddress = <TData = QueryDelegatorWithdrawAddressResponse,>({
-    request,
-    options
-  }: UseDelegatorWithdrawAddressQuery<TData>) => {
-    return useQuery<QueryDelegatorWithdrawAddressResponse, Error, TData>(["delegatorWithdrawAddressQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorWithdrawAddress(request);
-    }, options);
-  };
-  const useCommunityPool = <TData = QueryCommunityPoolResponse,>({
-    request,
-    options
-  }: UseCommunityPoolQuery<TData>) => {
-    return useQuery<QueryCommunityPoolResponse, Error, TData>(["communityPoolQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.communityPool(request);
-    }, options);
-  };
-  return {
-    /** Params queries params of the distribution module. */useParams,
-    /** ValidatorOutstandingRewards queries rewards of a validator address. */useValidatorOutstandingRewards,
-    /** ValidatorCommission queries accumulated commission for a validator. */useValidatorCommission,
-    /** ValidatorSlashes queries slash events of a validator. */useValidatorSlashes,
-    /** DelegationRewards queries the total rewards accrued by a delegation. */useDelegationRewards,
-    /**
-     * DelegationTotalRewards queries the total rewards accrued by a each
-     * validator.
-     */
-    useDelegationTotalRewards,
-    /** DelegatorValidators queries the validators of a delegator. */useDelegatorValidators,
-    /** DelegatorWithdrawAddress queries withdraw address of a delegator. */useDelegatorWithdrawAddress,
-    /** CommunityPool queries the community pool coins. */useCommunityPool
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorOutstandingRewardsStore {
-    store = new QueryStore<QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponse>(queryService?.validatorOutstandingRewards);
-    validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorCommissionStore {
-    store = new QueryStore<QueryValidatorCommissionRequest, QueryValidatorCommissionResponse>(queryService?.validatorCommission);
-    validatorCommission(request: QueryValidatorCommissionRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorSlashesStore {
-    store = new QueryStore<QueryValidatorSlashesRequest, QueryValidatorSlashesResponse>(queryService?.validatorSlashes);
-    validatorSlashes(request: QueryValidatorSlashesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegationRewardsStore {
-    store = new QueryStore<QueryDelegationRewardsRequest, QueryDelegationRewardsResponse>(queryService?.delegationRewards);
-    delegationRewards(request: QueryDelegationRewardsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegationTotalRewardsStore {
-    store = new QueryStore<QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponse>(queryService?.delegationTotalRewards);
-    delegationTotalRewards(request: QueryDelegationTotalRewardsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorValidatorsStore {
-    store = new QueryStore<QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse>(queryService?.delegatorValidators);
-    delegatorValidators(request: QueryDelegatorValidatorsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorWithdrawAddressStore {
-    store = new QueryStore<QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponse>(queryService?.delegatorWithdrawAddress);
-    delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCommunityPoolStore {
-    store = new QueryStore<QueryCommunityPoolRequest, QueryCommunityPoolResponse>(queryService?.communityPool);
-    communityPool(request: QueryCommunityPoolRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Params queries params of the distribution module. */QueryParamsStore,
-    /** ValidatorOutstandingRewards queries rewards of a validator address. */QueryValidatorOutstandingRewardsStore,
-    /** ValidatorCommission queries accumulated commission for a validator. */QueryValidatorCommissionStore,
-    /** ValidatorSlashes queries slash events of a validator. */QueryValidatorSlashesStore,
-    /** DelegationRewards queries the total rewards accrued by a delegation. */QueryDelegationRewardsStore,
-    /**
-     * DelegationTotalRewards queries the total rewards accrued by a each
-     * validator.
-     */
-    QueryDelegationTotalRewardsStore,
-    /** DelegatorValidators queries the validators of a delegator. */QueryDelegatorValidatorsStore,
-    /** DelegatorWithdrawAddress queries withdraw address of a delegator. */QueryDelegatorWithdrawAddressStore,
-    /** CommunityPool queries the community pool coins. */QueryCommunityPoolStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.ts
deleted file mode 100644
index e644674c..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/query.ts
+++ /dev/null
@@ -1,2261 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Params, ParamsAmino, ParamsSDKType, ValidatorOutstandingRewards, ValidatorOutstandingRewardsAmino, ValidatorOutstandingRewardsSDKType, ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionAmino, ValidatorAccumulatedCommissionSDKType, ValidatorSlashEvent, ValidatorSlashEventAmino, ValidatorSlashEventSDKType, DelegationDelegatorReward, DelegationDelegatorRewardAmino, DelegationDelegatorRewardSDKType } from "./distribution";
-import { DecCoin, DecCoinAmino, DecCoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/**
- * QueryValidatorOutstandingRewardsRequest is the request type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsRequest {
-  /** validator_address defines the validator address to query for. */
-  validatorAddress: string;
-}
-export interface QueryValidatorOutstandingRewardsRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorOutstandingRewardsRequest is the request type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsRequestAmino {
-  /** validator_address defines the validator address to query for. */
-  validator_address: string;
-}
-export interface QueryValidatorOutstandingRewardsRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorOutstandingRewardsRequest";
-  value: QueryValidatorOutstandingRewardsRequestAmino;
-}
-/**
- * QueryValidatorOutstandingRewardsRequest is the request type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsRequestSDKType {
-  validator_address: string;
-}
-/**
- * QueryValidatorOutstandingRewardsResponse is the response type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsResponse {
-  rewards: ValidatorOutstandingRewards | undefined;
-}
-export interface QueryValidatorOutstandingRewardsResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorOutstandingRewardsResponse is the response type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsResponseAmino {
-  rewards?: ValidatorOutstandingRewardsAmino | undefined;
-}
-export interface QueryValidatorOutstandingRewardsResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorOutstandingRewardsResponse";
-  value: QueryValidatorOutstandingRewardsResponseAmino;
-}
-/**
- * QueryValidatorOutstandingRewardsResponse is the response type for the
- * Query/ValidatorOutstandingRewards RPC method.
- */
-export interface QueryValidatorOutstandingRewardsResponseSDKType {
-  rewards: ValidatorOutstandingRewardsSDKType | undefined;
-}
-/**
- * QueryValidatorCommissionRequest is the request type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionRequest {
-  /** validator_address defines the validator address to query for. */
-  validatorAddress: string;
-}
-export interface QueryValidatorCommissionRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorCommissionRequest is the request type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionRequestAmino {
-  /** validator_address defines the validator address to query for. */
-  validator_address: string;
-}
-export interface QueryValidatorCommissionRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorCommissionRequest";
-  value: QueryValidatorCommissionRequestAmino;
-}
-/**
- * QueryValidatorCommissionRequest is the request type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionRequestSDKType {
-  validator_address: string;
-}
-/**
- * QueryValidatorCommissionResponse is the response type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionResponse {
-  /** commission defines the commision the validator received. */
-  commission: ValidatorAccumulatedCommission | undefined;
-}
-export interface QueryValidatorCommissionResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorCommissionResponse is the response type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionResponseAmino {
-  /** commission defines the commision the validator received. */
-  commission?: ValidatorAccumulatedCommissionAmino | undefined;
-}
-export interface QueryValidatorCommissionResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorCommissionResponse";
-  value: QueryValidatorCommissionResponseAmino;
-}
-/**
- * QueryValidatorCommissionResponse is the response type for the
- * Query/ValidatorCommission RPC method
- */
-export interface QueryValidatorCommissionResponseSDKType {
-  commission: ValidatorAccumulatedCommissionSDKType | undefined;
-}
-/**
- * QueryValidatorSlashesRequest is the request type for the
- * Query/ValidatorSlashes RPC method
- */
-export interface QueryValidatorSlashesRequest {
-  /** validator_address defines the validator address to query for. */
-  validatorAddress: string;
-  /** starting_height defines the optional starting height to query the slashes. */
-  startingHeight: bigint;
-  /** starting_height defines the optional ending height to query the slashes. */
-  endingHeight: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryValidatorSlashesRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorSlashesRequest is the request type for the
- * Query/ValidatorSlashes RPC method
- */
-export interface QueryValidatorSlashesRequestAmino {
-  /** validator_address defines the validator address to query for. */
-  validator_address: string;
-  /** starting_height defines the optional starting height to query the slashes. */
-  starting_height: string;
-  /** starting_height defines the optional ending height to query the slashes. */
-  ending_height: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryValidatorSlashesRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorSlashesRequest";
-  value: QueryValidatorSlashesRequestAmino;
-}
-/**
- * QueryValidatorSlashesRequest is the request type for the
- * Query/ValidatorSlashes RPC method
- */
-export interface QueryValidatorSlashesRequestSDKType {
-  validator_address: string;
-  starting_height: bigint;
-  ending_height: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryValidatorSlashesResponse is the response type for the
- * Query/ValidatorSlashes RPC method.
- */
-export interface QueryValidatorSlashesResponse {
-  /** slashes defines the slashes the validator received. */
-  slashes: ValidatorSlashEvent[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryValidatorSlashesResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorSlashesResponse is the response type for the
- * Query/ValidatorSlashes RPC method.
- */
-export interface QueryValidatorSlashesResponseAmino {
-  /** slashes defines the slashes the validator received. */
-  slashes: ValidatorSlashEventAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryValidatorSlashesResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorSlashesResponse";
-  value: QueryValidatorSlashesResponseAmino;
-}
-/**
- * QueryValidatorSlashesResponse is the response type for the
- * Query/ValidatorSlashes RPC method.
- */
-export interface QueryValidatorSlashesResponseSDKType {
-  slashes: ValidatorSlashEventSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryDelegationRewardsRequest is the request type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsRequest {
-  /** delegator_address defines the delegator address to query for. */
-  delegatorAddress: string;
-  /** validator_address defines the validator address to query for. */
-  validatorAddress: string;
-}
-export interface QueryDelegationRewardsRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegationRewardsRequest is the request type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsRequestAmino {
-  /** delegator_address defines the delegator address to query for. */
-  delegator_address: string;
-  /** validator_address defines the validator address to query for. */
-  validator_address: string;
-}
-export interface QueryDelegationRewardsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegationRewardsRequest";
-  value: QueryDelegationRewardsRequestAmino;
-}
-/**
- * QueryDelegationRewardsRequest is the request type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsRequestSDKType {
-  delegator_address: string;
-  validator_address: string;
-}
-/**
- * QueryDelegationRewardsResponse is the response type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsResponse {
-  /** rewards defines the rewards accrued by a delegation. */
-  rewards: DecCoin[];
-}
-export interface QueryDelegationRewardsResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegationRewardsResponse is the response type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsResponseAmino {
-  /** rewards defines the rewards accrued by a delegation. */
-  rewards: DecCoinAmino[];
-}
-export interface QueryDelegationRewardsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegationRewardsResponse";
-  value: QueryDelegationRewardsResponseAmino;
-}
-/**
- * QueryDelegationRewardsResponse is the response type for the
- * Query/DelegationRewards RPC method.
- */
-export interface QueryDelegationRewardsResponseSDKType {
-  rewards: DecCoinSDKType[];
-}
-/**
- * QueryDelegationTotalRewardsRequest is the request type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsRequest {
-  /** delegator_address defines the delegator address to query for. */
-  delegatorAddress: string;
-}
-export interface QueryDelegationTotalRewardsRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegationTotalRewardsRequest is the request type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsRequestAmino {
-  /** delegator_address defines the delegator address to query for. */
-  delegator_address: string;
-}
-export interface QueryDelegationTotalRewardsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegationTotalRewardsRequest";
-  value: QueryDelegationTotalRewardsRequestAmino;
-}
-/**
- * QueryDelegationTotalRewardsRequest is the request type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsRequestSDKType {
-  delegator_address: string;
-}
-/**
- * QueryDelegationTotalRewardsResponse is the response type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsResponse {
-  /** rewards defines all the rewards accrued by a delegator. */
-  rewards: DelegationDelegatorReward[];
-  /** total defines the sum of all the rewards. */
-  total: DecCoin[];
-}
-export interface QueryDelegationTotalRewardsResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegationTotalRewardsResponse is the response type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsResponseAmino {
-  /** rewards defines all the rewards accrued by a delegator. */
-  rewards: DelegationDelegatorRewardAmino[];
-  /** total defines the sum of all the rewards. */
-  total: DecCoinAmino[];
-}
-export interface QueryDelegationTotalRewardsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegationTotalRewardsResponse";
-  value: QueryDelegationTotalRewardsResponseAmino;
-}
-/**
- * QueryDelegationTotalRewardsResponse is the response type for the
- * Query/DelegationTotalRewards RPC method.
- */
-export interface QueryDelegationTotalRewardsResponseSDKType {
-  rewards: DelegationDelegatorRewardSDKType[];
-  total: DecCoinSDKType[];
-}
-/**
- * QueryDelegatorValidatorsRequest is the request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequest {
-  /** delegator_address defines the delegator address to query for. */
-  delegatorAddress: string;
-}
-export interface QueryDelegatorValidatorsRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorsRequest is the request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequestAmino {
-  /** delegator_address defines the delegator address to query for. */
-  delegator_address: string;
-}
-export interface QueryDelegatorValidatorsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorsRequest";
-  value: QueryDelegatorValidatorsRequestAmino;
-}
-/**
- * QueryDelegatorValidatorsRequest is the request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequestSDKType {
-  delegator_address: string;
-}
-/**
- * QueryDelegatorValidatorsResponse is the response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponse {
-  /** validators defines the validators a delegator is delegating for. */
-  validators: string[];
-}
-export interface QueryDelegatorValidatorsResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorsResponse is the response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponseAmino {
-  /** validators defines the validators a delegator is delegating for. */
-  validators: string[];
-}
-export interface QueryDelegatorValidatorsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorsResponse";
-  value: QueryDelegatorValidatorsResponseAmino;
-}
-/**
- * QueryDelegatorValidatorsResponse is the response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponseSDKType {
-  validators: string[];
-}
-/**
- * QueryDelegatorWithdrawAddressRequest is the request type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressRequest {
-  /** delegator_address defines the delegator address to query for. */
-  delegatorAddress: string;
-}
-export interface QueryDelegatorWithdrawAddressRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorWithdrawAddressRequest is the request type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressRequestAmino {
-  /** delegator_address defines the delegator address to query for. */
-  delegator_address: string;
-}
-export interface QueryDelegatorWithdrawAddressRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorWithdrawAddressRequest";
-  value: QueryDelegatorWithdrawAddressRequestAmino;
-}
-/**
- * QueryDelegatorWithdrawAddressRequest is the request type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressRequestSDKType {
-  delegator_address: string;
-}
-/**
- * QueryDelegatorWithdrawAddressResponse is the response type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressResponse {
-  /** withdraw_address defines the delegator address to query for. */
-  withdrawAddress: string;
-}
-export interface QueryDelegatorWithdrawAddressResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorWithdrawAddressResponse is the response type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressResponseAmino {
-  /** withdraw_address defines the delegator address to query for. */
-  withdraw_address: string;
-}
-export interface QueryDelegatorWithdrawAddressResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorWithdrawAddressResponse";
-  value: QueryDelegatorWithdrawAddressResponseAmino;
-}
-/**
- * QueryDelegatorWithdrawAddressResponse is the response type for the
- * Query/DelegatorWithdrawAddress RPC method.
- */
-export interface QueryDelegatorWithdrawAddressResponseSDKType {
-  withdraw_address: string;
-}
-/**
- * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
- * method.
- */
-export interface QueryCommunityPoolRequest {}
-export interface QueryCommunityPoolRequestProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolRequest";
-  value: Uint8Array;
-}
-/**
- * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
- * method.
- */
-export interface QueryCommunityPoolRequestAmino {}
-export interface QueryCommunityPoolRequestAminoMsg {
-  type: "cosmos-sdk/QueryCommunityPoolRequest";
-  value: QueryCommunityPoolRequestAmino;
-}
-/**
- * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
- * method.
- */
-export interface QueryCommunityPoolRequestSDKType {}
-/**
- * QueryCommunityPoolResponse is the response type for the Query/CommunityPool
- * RPC method.
- */
-export interface QueryCommunityPoolResponse {
-  /** pool defines community pool's coins. */
-  pool: DecCoin[];
-}
-export interface QueryCommunityPoolResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolResponse";
-  value: Uint8Array;
-}
-/**
- * QueryCommunityPoolResponse is the response type for the Query/CommunityPool
- * RPC method.
- */
-export interface QueryCommunityPoolResponseAmino {
-  /** pool defines community pool's coins. */
-  pool: DecCoinAmino[];
-}
-export interface QueryCommunityPoolResponseAminoMsg {
-  type: "cosmos-sdk/QueryCommunityPoolResponse";
-  value: QueryCommunityPoolResponseAmino;
-}
-/**
- * QueryCommunityPoolResponse is the response type for the Query/CommunityPool
- * RPC method.
- */
-export interface QueryCommunityPoolResponseSDKType {
-  pool: DecCoinSDKType[];
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorOutstandingRewardsRequest(): QueryValidatorOutstandingRewardsRequest {
-  return {
-    validatorAddress: ""
-  };
-}
-export const QueryValidatorOutstandingRewardsRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest",
-  aminoType: "cosmos-sdk/QueryValidatorOutstandingRewardsRequest",
-  encode(message: QueryValidatorOutstandingRewardsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorOutstandingRewardsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorOutstandingRewardsRequest {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryValidatorOutstandingRewardsRequest): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorOutstandingRewardsRequest>): QueryValidatorOutstandingRewardsRequest {
-    const message = createBaseQueryValidatorOutstandingRewardsRequest();
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryValidatorOutstandingRewardsRequestSDKType): QueryValidatorOutstandingRewardsRequest {
-    return {
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: QueryValidatorOutstandingRewardsRequest): QueryValidatorOutstandingRewardsRequestSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryValidatorOutstandingRewardsRequestAmino): QueryValidatorOutstandingRewardsRequest {
-    return {
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: QueryValidatorOutstandingRewardsRequest): QueryValidatorOutstandingRewardsRequestAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorOutstandingRewardsRequestAminoMsg): QueryValidatorOutstandingRewardsRequest {
-    return QueryValidatorOutstandingRewardsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorOutstandingRewardsRequest): QueryValidatorOutstandingRewardsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorOutstandingRewardsRequest",
-      value: QueryValidatorOutstandingRewardsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorOutstandingRewardsRequestProtoMsg): QueryValidatorOutstandingRewardsRequest {
-    return QueryValidatorOutstandingRewardsRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorOutstandingRewardsRequest): Uint8Array {
-    return QueryValidatorOutstandingRewardsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorOutstandingRewardsRequest): QueryValidatorOutstandingRewardsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest",
-      value: QueryValidatorOutstandingRewardsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorOutstandingRewardsResponse(): QueryValidatorOutstandingRewardsResponse {
-  return {
-    rewards: ValidatorOutstandingRewards.fromPartial({})
-  };
-}
-export const QueryValidatorOutstandingRewardsResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse",
-  aminoType: "cosmos-sdk/QueryValidatorOutstandingRewardsResponse",
-  encode(message: QueryValidatorOutstandingRewardsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.rewards !== undefined) {
-      ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorOutstandingRewardsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rewards = ValidatorOutstandingRewards.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorOutstandingRewardsResponse {
-    return {
-      rewards: isSet(object.rewards) ? ValidatorOutstandingRewards.fromJSON(object.rewards) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorOutstandingRewardsResponse): unknown {
-    const obj: any = {};
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorOutstandingRewards.toJSON(message.rewards) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorOutstandingRewardsResponse>): QueryValidatorOutstandingRewardsResponse {
-    const message = createBaseQueryValidatorOutstandingRewardsResponse();
-    message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorOutstandingRewards.fromPartial(object.rewards) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorOutstandingRewardsResponseSDKType): QueryValidatorOutstandingRewardsResponse {
-    return {
-      rewards: object.rewards ? ValidatorOutstandingRewards.fromSDK(object.rewards) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorOutstandingRewardsResponse): QueryValidatorOutstandingRewardsResponseSDKType {
-    const obj: any = {};
-    message.rewards !== undefined && (obj.rewards = message.rewards ? ValidatorOutstandingRewards.toSDK(message.rewards) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorOutstandingRewardsResponseAmino): QueryValidatorOutstandingRewardsResponse {
-    return {
-      rewards: object?.rewards ? ValidatorOutstandingRewards.fromAmino(object.rewards) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorOutstandingRewardsResponse): QueryValidatorOutstandingRewardsResponseAmino {
-    const obj: any = {};
-    obj.rewards = message.rewards ? ValidatorOutstandingRewards.toAmino(message.rewards) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorOutstandingRewardsResponseAminoMsg): QueryValidatorOutstandingRewardsResponse {
-    return QueryValidatorOutstandingRewardsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorOutstandingRewardsResponse): QueryValidatorOutstandingRewardsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorOutstandingRewardsResponse",
-      value: QueryValidatorOutstandingRewardsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorOutstandingRewardsResponseProtoMsg): QueryValidatorOutstandingRewardsResponse {
-    return QueryValidatorOutstandingRewardsResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorOutstandingRewardsResponse): Uint8Array {
-    return QueryValidatorOutstandingRewardsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorOutstandingRewardsResponse): QueryValidatorOutstandingRewardsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse",
-      value: QueryValidatorOutstandingRewardsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorCommissionRequest(): QueryValidatorCommissionRequest {
-  return {
-    validatorAddress: ""
-  };
-}
-export const QueryValidatorCommissionRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest",
-  aminoType: "cosmos-sdk/QueryValidatorCommissionRequest",
-  encode(message: QueryValidatorCommissionRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorCommissionRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorCommissionRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorCommissionRequest {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryValidatorCommissionRequest): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorCommissionRequest>): QueryValidatorCommissionRequest {
-    const message = createBaseQueryValidatorCommissionRequest();
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryValidatorCommissionRequestSDKType): QueryValidatorCommissionRequest {
-    return {
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: QueryValidatorCommissionRequest): QueryValidatorCommissionRequestSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryValidatorCommissionRequestAmino): QueryValidatorCommissionRequest {
-    return {
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: QueryValidatorCommissionRequest): QueryValidatorCommissionRequestAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorCommissionRequestAminoMsg): QueryValidatorCommissionRequest {
-    return QueryValidatorCommissionRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorCommissionRequest): QueryValidatorCommissionRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorCommissionRequest",
-      value: QueryValidatorCommissionRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorCommissionRequestProtoMsg): QueryValidatorCommissionRequest {
-    return QueryValidatorCommissionRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorCommissionRequest): Uint8Array {
-    return QueryValidatorCommissionRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorCommissionRequest): QueryValidatorCommissionRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest",
-      value: QueryValidatorCommissionRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorCommissionResponse(): QueryValidatorCommissionResponse {
-  return {
-    commission: ValidatorAccumulatedCommission.fromPartial({})
-  };
-}
-export const QueryValidatorCommissionResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse",
-  aminoType: "cosmos-sdk/QueryValidatorCommissionResponse",
-  encode(message: QueryValidatorCommissionResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.commission !== undefined) {
-      ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorCommissionResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorCommissionResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.commission = ValidatorAccumulatedCommission.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorCommissionResponse {
-    return {
-      commission: isSet(object.commission) ? ValidatorAccumulatedCommission.fromJSON(object.commission) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorCommissionResponse): unknown {
-    const obj: any = {};
-    message.commission !== undefined && (obj.commission = message.commission ? ValidatorAccumulatedCommission.toJSON(message.commission) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorCommissionResponse>): QueryValidatorCommissionResponse {
-    const message = createBaseQueryValidatorCommissionResponse();
-    message.commission = object.commission !== undefined && object.commission !== null ? ValidatorAccumulatedCommission.fromPartial(object.commission) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorCommissionResponseSDKType): QueryValidatorCommissionResponse {
-    return {
-      commission: object.commission ? ValidatorAccumulatedCommission.fromSDK(object.commission) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorCommissionResponse): QueryValidatorCommissionResponseSDKType {
-    const obj: any = {};
-    message.commission !== undefined && (obj.commission = message.commission ? ValidatorAccumulatedCommission.toSDK(message.commission) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorCommissionResponseAmino): QueryValidatorCommissionResponse {
-    return {
-      commission: object?.commission ? ValidatorAccumulatedCommission.fromAmino(object.commission) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorCommissionResponse): QueryValidatorCommissionResponseAmino {
-    const obj: any = {};
-    obj.commission = message.commission ? ValidatorAccumulatedCommission.toAmino(message.commission) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorCommissionResponseAminoMsg): QueryValidatorCommissionResponse {
-    return QueryValidatorCommissionResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorCommissionResponse): QueryValidatorCommissionResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorCommissionResponse",
-      value: QueryValidatorCommissionResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorCommissionResponseProtoMsg): QueryValidatorCommissionResponse {
-    return QueryValidatorCommissionResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorCommissionResponse): Uint8Array {
-    return QueryValidatorCommissionResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorCommissionResponse): QueryValidatorCommissionResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse",
-      value: QueryValidatorCommissionResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorSlashesRequest(): QueryValidatorSlashesRequest {
-  return {
-    validatorAddress: "",
-    startingHeight: BigInt(0),
-    endingHeight: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryValidatorSlashesRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest",
-  aminoType: "cosmos-sdk/QueryValidatorSlashesRequest",
-  encode(message: QueryValidatorSlashesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.startingHeight !== BigInt(0)) {
-      writer.uint32(16).uint64(message.startingHeight);
-    }
-    if (message.endingHeight !== BigInt(0)) {
-      writer.uint32(24).uint64(message.endingHeight);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorSlashesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorSlashesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.startingHeight = reader.uint64();
-          break;
-        case 3:
-          message.endingHeight = reader.uint64();
-          break;
-        case 4:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorSlashesRequest {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      startingHeight: isSet(object.startingHeight) ? BigInt(object.startingHeight.toString()) : BigInt(0),
-      endingHeight: isSet(object.endingHeight) ? BigInt(object.endingHeight.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorSlashesRequest): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.startingHeight !== undefined && (obj.startingHeight = (message.startingHeight || BigInt(0)).toString());
-    message.endingHeight !== undefined && (obj.endingHeight = (message.endingHeight || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorSlashesRequest>): QueryValidatorSlashesRequest {
-    const message = createBaseQueryValidatorSlashesRequest();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.startingHeight = object.startingHeight !== undefined && object.startingHeight !== null ? BigInt(object.startingHeight.toString()) : BigInt(0);
-    message.endingHeight = object.endingHeight !== undefined && object.endingHeight !== null ? BigInt(object.endingHeight.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorSlashesRequestSDKType): QueryValidatorSlashesRequest {
-    return {
-      validatorAddress: object?.validator_address,
-      startingHeight: object?.starting_height,
-      endingHeight: object?.ending_height,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorSlashesRequest): QueryValidatorSlashesRequestSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.starting_height = message.startingHeight;
-    obj.ending_height = message.endingHeight;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorSlashesRequestAmino): QueryValidatorSlashesRequest {
-    return {
-      validatorAddress: object.validator_address,
-      startingHeight: BigInt(object.starting_height),
-      endingHeight: BigInt(object.ending_height),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorSlashesRequest): QueryValidatorSlashesRequestAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.starting_height = message.startingHeight ? message.startingHeight.toString() : undefined;
-    obj.ending_height = message.endingHeight ? message.endingHeight.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorSlashesRequestAminoMsg): QueryValidatorSlashesRequest {
-    return QueryValidatorSlashesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorSlashesRequest): QueryValidatorSlashesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorSlashesRequest",
-      value: QueryValidatorSlashesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorSlashesRequestProtoMsg): QueryValidatorSlashesRequest {
-    return QueryValidatorSlashesRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorSlashesRequest): Uint8Array {
-    return QueryValidatorSlashesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorSlashesRequest): QueryValidatorSlashesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest",
-      value: QueryValidatorSlashesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorSlashesResponse(): QueryValidatorSlashesResponse {
-  return {
-    slashes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryValidatorSlashesResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse",
-  aminoType: "cosmos-sdk/QueryValidatorSlashesResponse",
-  encode(message: QueryValidatorSlashesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.slashes) {
-      ValidatorSlashEvent.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorSlashesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorSlashesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.slashes.push(ValidatorSlashEvent.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorSlashesResponse {
-    return {
-      slashes: Array.isArray(object?.slashes) ? object.slashes.map((e: any) => ValidatorSlashEvent.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorSlashesResponse): unknown {
-    const obj: any = {};
-    if (message.slashes) {
-      obj.slashes = message.slashes.map(e => e ? ValidatorSlashEvent.toJSON(e) : undefined);
-    } else {
-      obj.slashes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorSlashesResponse>): QueryValidatorSlashesResponse {
-    const message = createBaseQueryValidatorSlashesResponse();
-    message.slashes = object.slashes?.map(e => ValidatorSlashEvent.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorSlashesResponseSDKType): QueryValidatorSlashesResponse {
-    return {
-      slashes: Array.isArray(object?.slashes) ? object.slashes.map((e: any) => ValidatorSlashEvent.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorSlashesResponse): QueryValidatorSlashesResponseSDKType {
-    const obj: any = {};
-    if (message.slashes) {
-      obj.slashes = message.slashes.map(e => e ? ValidatorSlashEvent.toSDK(e) : undefined);
-    } else {
-      obj.slashes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorSlashesResponseAmino): QueryValidatorSlashesResponse {
-    return {
-      slashes: Array.isArray(object?.slashes) ? object.slashes.map((e: any) => ValidatorSlashEvent.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorSlashesResponse): QueryValidatorSlashesResponseAmino {
-    const obj: any = {};
-    if (message.slashes) {
-      obj.slashes = message.slashes.map(e => e ? ValidatorSlashEvent.toAmino(e) : undefined);
-    } else {
-      obj.slashes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorSlashesResponseAminoMsg): QueryValidatorSlashesResponse {
-    return QueryValidatorSlashesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorSlashesResponse): QueryValidatorSlashesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorSlashesResponse",
-      value: QueryValidatorSlashesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorSlashesResponseProtoMsg): QueryValidatorSlashesResponse {
-    return QueryValidatorSlashesResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorSlashesResponse): Uint8Array {
-    return QueryValidatorSlashesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorSlashesResponse): QueryValidatorSlashesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse",
-      value: QueryValidatorSlashesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationRewardsRequest(): QueryDelegationRewardsRequest {
-  return {
-    delegatorAddress: "",
-    validatorAddress: ""
-  };
-}
-export const QueryDelegationRewardsRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest",
-  aminoType: "cosmos-sdk/QueryDelegationRewardsRequest",
-  encode(message: QueryDelegationRewardsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationRewardsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationRewardsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationRewardsRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryDelegationRewardsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationRewardsRequest>): QueryDelegationRewardsRequest {
-    const message = createBaseQueryDelegationRewardsRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegationRewardsRequestSDKType): QueryDelegationRewardsRequest {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: QueryDelegationRewardsRequest): QueryDelegationRewardsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryDelegationRewardsRequestAmino): QueryDelegationRewardsRequest {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: QueryDelegationRewardsRequest): QueryDelegationRewardsRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationRewardsRequestAminoMsg): QueryDelegationRewardsRequest {
-    return QueryDelegationRewardsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationRewardsRequest): QueryDelegationRewardsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationRewardsRequest",
-      value: QueryDelegationRewardsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationRewardsRequestProtoMsg): QueryDelegationRewardsRequest {
-    return QueryDelegationRewardsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegationRewardsRequest): Uint8Array {
-    return QueryDelegationRewardsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationRewardsRequest): QueryDelegationRewardsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest",
-      value: QueryDelegationRewardsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationRewardsResponse(): QueryDelegationRewardsResponse {
-  return {
-    rewards: []
-  };
-}
-export const QueryDelegationRewardsResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse",
-  aminoType: "cosmos-sdk/QueryDelegationRewardsResponse",
-  encode(message: QueryDelegationRewardsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.rewards) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationRewardsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationRewardsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rewards.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryDelegationRewardsResponse): unknown {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationRewardsResponse>): QueryDelegationRewardsResponse {
-    const message = createBaseQueryDelegationRewardsResponse();
-    message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryDelegationRewardsResponseSDKType): QueryDelegationRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryDelegationRewardsResponse): QueryDelegationRewardsResponseSDKType {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryDelegationRewardsResponseAmino): QueryDelegationRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryDelegationRewardsResponse): QueryDelegationRewardsResponseAmino {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationRewardsResponseAminoMsg): QueryDelegationRewardsResponse {
-    return QueryDelegationRewardsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationRewardsResponse): QueryDelegationRewardsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationRewardsResponse",
-      value: QueryDelegationRewardsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationRewardsResponseProtoMsg): QueryDelegationRewardsResponse {
-    return QueryDelegationRewardsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegationRewardsResponse): Uint8Array {
-    return QueryDelegationRewardsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationRewardsResponse): QueryDelegationRewardsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse",
-      value: QueryDelegationRewardsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationTotalRewardsRequest(): QueryDelegationTotalRewardsRequest {
-  return {
-    delegatorAddress: ""
-  };
-}
-export const QueryDelegationTotalRewardsRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest",
-  aminoType: "cosmos-sdk/QueryDelegationTotalRewardsRequest",
-  encode(message: QueryDelegationTotalRewardsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationTotalRewardsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationTotalRewardsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationTotalRewardsRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryDelegationTotalRewardsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationTotalRewardsRequest>): QueryDelegationTotalRewardsRequest {
-    const message = createBaseQueryDelegationTotalRewardsRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegationTotalRewardsRequestSDKType): QueryDelegationTotalRewardsRequest {
-    return {
-      delegatorAddress: object?.delegator_address
-    };
-  },
-  toSDK(message: QueryDelegationTotalRewardsRequest): QueryDelegationTotalRewardsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryDelegationTotalRewardsRequestAmino): QueryDelegationTotalRewardsRequest {
-    return {
-      delegatorAddress: object.delegator_address
-    };
-  },
-  toAmino(message: QueryDelegationTotalRewardsRequest): QueryDelegationTotalRewardsRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationTotalRewardsRequestAminoMsg): QueryDelegationTotalRewardsRequest {
-    return QueryDelegationTotalRewardsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationTotalRewardsRequest): QueryDelegationTotalRewardsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationTotalRewardsRequest",
-      value: QueryDelegationTotalRewardsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationTotalRewardsRequestProtoMsg): QueryDelegationTotalRewardsRequest {
-    return QueryDelegationTotalRewardsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegationTotalRewardsRequest): Uint8Array {
-    return QueryDelegationTotalRewardsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationTotalRewardsRequest): QueryDelegationTotalRewardsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest",
-      value: QueryDelegationTotalRewardsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationTotalRewardsResponse(): QueryDelegationTotalRewardsResponse {
-  return {
-    rewards: [],
-    total: []
-  };
-}
-export const QueryDelegationTotalRewardsResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse",
-  aminoType: "cosmos-sdk/QueryDelegationTotalRewardsResponse",
-  encode(message: QueryDelegationTotalRewardsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.rewards) {
-      DelegationDelegatorReward.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.total) {
-      DecCoin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationTotalRewardsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationTotalRewardsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rewards.push(DelegationDelegatorReward.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.total.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationTotalRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DelegationDelegatorReward.fromJSON(e)) : [],
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryDelegationTotalRewardsResponse): unknown {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DelegationDelegatorReward.toJSON(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    if (message.total) {
-      obj.total = message.total.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationTotalRewardsResponse>): QueryDelegationTotalRewardsResponse {
-    const message = createBaseQueryDelegationTotalRewardsResponse();
-    message.rewards = object.rewards?.map(e => DelegationDelegatorReward.fromPartial(e)) || [];
-    message.total = object.total?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryDelegationTotalRewardsResponseSDKType): QueryDelegationTotalRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DelegationDelegatorReward.fromSDK(e)) : [],
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryDelegationTotalRewardsResponse): QueryDelegationTotalRewardsResponseSDKType {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DelegationDelegatorReward.toSDK(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    if (message.total) {
-      obj.total = message.total.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryDelegationTotalRewardsResponseAmino): QueryDelegationTotalRewardsResponse {
-    return {
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => DelegationDelegatorReward.fromAmino(e)) : [],
-      total: Array.isArray(object?.total) ? object.total.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryDelegationTotalRewardsResponse): QueryDelegationTotalRewardsResponseAmino {
-    const obj: any = {};
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? DelegationDelegatorReward.toAmino(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    if (message.total) {
-      obj.total = message.total.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.total = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationTotalRewardsResponseAminoMsg): QueryDelegationTotalRewardsResponse {
-    return QueryDelegationTotalRewardsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationTotalRewardsResponse): QueryDelegationTotalRewardsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationTotalRewardsResponse",
-      value: QueryDelegationTotalRewardsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationTotalRewardsResponseProtoMsg): QueryDelegationTotalRewardsResponse {
-    return QueryDelegationTotalRewardsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegationTotalRewardsResponse): Uint8Array {
-    return QueryDelegationTotalRewardsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationTotalRewardsResponse): QueryDelegationTotalRewardsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse",
-      value: QueryDelegationTotalRewardsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorsRequest(): QueryDelegatorValidatorsRequest {
-  return {
-    delegatorAddress: ""
-  };
-}
-export const QueryDelegatorValidatorsRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorsRequest",
-  encode(message: QueryDelegatorValidatorsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorsRequest>): QueryDelegatorValidatorsRequest {
-    const message = createBaseQueryDelegatorValidatorsRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorsRequestSDKType): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddress: object?.delegator_address
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorsRequestAmino): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddress: object.delegator_address
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorsRequestAminoMsg): QueryDelegatorValidatorsRequest {
-    return QueryDelegatorValidatorsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorsRequest",
-      value: QueryDelegatorValidatorsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorsRequestProtoMsg): QueryDelegatorValidatorsRequest {
-    return QueryDelegatorValidatorsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorsRequest): Uint8Array {
-    return QueryDelegatorValidatorsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest",
-      value: QueryDelegatorValidatorsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorsResponse(): QueryDelegatorValidatorsResponse {
-  return {
-    validators: []
-  };
-}
-export const QueryDelegatorValidatorsResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorsResponse",
-  encode(message: QueryDelegatorValidatorsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validators) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validators.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorsResponse): unknown {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e);
-    } else {
-      obj.validators = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorsResponse>): QueryDelegatorValidatorsResponse {
-    const message = createBaseQueryDelegatorValidatorsResponse();
-    message.validators = object.validators?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorsResponseSDKType): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseSDKType {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e);
-    } else {
-      obj.validators = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorsResponseAmino): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseAmino {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e);
-    } else {
-      obj.validators = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorsResponseAminoMsg): QueryDelegatorValidatorsResponse {
-    return QueryDelegatorValidatorsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorsResponse",
-      value: QueryDelegatorValidatorsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorsResponseProtoMsg): QueryDelegatorValidatorsResponse {
-    return QueryDelegatorValidatorsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorsResponse): Uint8Array {
-    return QueryDelegatorValidatorsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse",
-      value: QueryDelegatorValidatorsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorWithdrawAddressRequest(): QueryDelegatorWithdrawAddressRequest {
-  return {
-    delegatorAddress: ""
-  };
-}
-export const QueryDelegatorWithdrawAddressRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorWithdrawAddressRequest",
-  encode(message: QueryDelegatorWithdrawAddressRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorWithdrawAddressRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorWithdrawAddressRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryDelegatorWithdrawAddressRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorWithdrawAddressRequest>): QueryDelegatorWithdrawAddressRequest {
-    const message = createBaseQueryDelegatorWithdrawAddressRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegatorWithdrawAddressRequestSDKType): QueryDelegatorWithdrawAddressRequest {
-    return {
-      delegatorAddress: object?.delegator_address
-    };
-  },
-  toSDK(message: QueryDelegatorWithdrawAddressRequest): QueryDelegatorWithdrawAddressRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorWithdrawAddressRequestAmino): QueryDelegatorWithdrawAddressRequest {
-    return {
-      delegatorAddress: object.delegator_address
-    };
-  },
-  toAmino(message: QueryDelegatorWithdrawAddressRequest): QueryDelegatorWithdrawAddressRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorWithdrawAddressRequestAminoMsg): QueryDelegatorWithdrawAddressRequest {
-    return QueryDelegatorWithdrawAddressRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorWithdrawAddressRequest): QueryDelegatorWithdrawAddressRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorWithdrawAddressRequest",
-      value: QueryDelegatorWithdrawAddressRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorWithdrawAddressRequestProtoMsg): QueryDelegatorWithdrawAddressRequest {
-    return QueryDelegatorWithdrawAddressRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorWithdrawAddressRequest): Uint8Array {
-    return QueryDelegatorWithdrawAddressRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorWithdrawAddressRequest): QueryDelegatorWithdrawAddressRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest",
-      value: QueryDelegatorWithdrawAddressRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorWithdrawAddressResponse(): QueryDelegatorWithdrawAddressResponse {
-  return {
-    withdrawAddress: ""
-  };
-}
-export const QueryDelegatorWithdrawAddressResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorWithdrawAddressResponse",
-  encode(message: QueryDelegatorWithdrawAddressResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.withdrawAddress !== "") {
-      writer.uint32(10).string(message.withdrawAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorWithdrawAddressResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.withdrawAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorWithdrawAddressResponse {
-    return {
-      withdrawAddress: isSet(object.withdrawAddress) ? String(object.withdrawAddress) : ""
-    };
-  },
-  toJSON(message: QueryDelegatorWithdrawAddressResponse): unknown {
-    const obj: any = {};
-    message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorWithdrawAddressResponse>): QueryDelegatorWithdrawAddressResponse {
-    const message = createBaseQueryDelegatorWithdrawAddressResponse();
-    message.withdrawAddress = object.withdrawAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegatorWithdrawAddressResponseSDKType): QueryDelegatorWithdrawAddressResponse {
-    return {
-      withdrawAddress: object?.withdraw_address
-    };
-  },
-  toSDK(message: QueryDelegatorWithdrawAddressResponse): QueryDelegatorWithdrawAddressResponseSDKType {
-    const obj: any = {};
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorWithdrawAddressResponseAmino): QueryDelegatorWithdrawAddressResponse {
-    return {
-      withdrawAddress: object.withdraw_address
-    };
-  },
-  toAmino(message: QueryDelegatorWithdrawAddressResponse): QueryDelegatorWithdrawAddressResponseAmino {
-    const obj: any = {};
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorWithdrawAddressResponseAminoMsg): QueryDelegatorWithdrawAddressResponse {
-    return QueryDelegatorWithdrawAddressResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorWithdrawAddressResponse): QueryDelegatorWithdrawAddressResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorWithdrawAddressResponse",
-      value: QueryDelegatorWithdrawAddressResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorWithdrawAddressResponseProtoMsg): QueryDelegatorWithdrawAddressResponse {
-    return QueryDelegatorWithdrawAddressResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorWithdrawAddressResponse): Uint8Array {
-    return QueryDelegatorWithdrawAddressResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorWithdrawAddressResponse): QueryDelegatorWithdrawAddressResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse",
-      value: QueryDelegatorWithdrawAddressResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCommunityPoolRequest(): QueryCommunityPoolRequest {
-  return {};
-}
-export const QueryCommunityPoolRequest = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolRequest",
-  aminoType: "cosmos-sdk/QueryCommunityPoolRequest",
-  encode(_: QueryCommunityPoolRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCommunityPoolRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCommunityPoolRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryCommunityPoolRequest {
-    return {};
-  },
-  toJSON(_: QueryCommunityPoolRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryCommunityPoolRequest>): QueryCommunityPoolRequest {
-    const message = createBaseQueryCommunityPoolRequest();
-    return message;
-  },
-  fromSDK(_: QueryCommunityPoolRequestSDKType): QueryCommunityPoolRequest {
-    return {};
-  },
-  toSDK(_: QueryCommunityPoolRequest): QueryCommunityPoolRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryCommunityPoolRequestAmino): QueryCommunityPoolRequest {
-    return {};
-  },
-  toAmino(_: QueryCommunityPoolRequest): QueryCommunityPoolRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryCommunityPoolRequestAminoMsg): QueryCommunityPoolRequest {
-    return QueryCommunityPoolRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCommunityPoolRequest): QueryCommunityPoolRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryCommunityPoolRequest",
-      value: QueryCommunityPoolRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCommunityPoolRequestProtoMsg): QueryCommunityPoolRequest {
-    return QueryCommunityPoolRequest.decode(message.value);
-  },
-  toProto(message: QueryCommunityPoolRequest): Uint8Array {
-    return QueryCommunityPoolRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCommunityPoolRequest): QueryCommunityPoolRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolRequest",
-      value: QueryCommunityPoolRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCommunityPoolResponse(): QueryCommunityPoolResponse {
-  return {
-    pool: []
-  };
-}
-export const QueryCommunityPoolResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolResponse",
-  aminoType: "cosmos-sdk/QueryCommunityPoolResponse",
-  encode(message: QueryCommunityPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pool) {
-      DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCommunityPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCommunityPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pool.push(DecCoin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCommunityPoolResponse {
-    return {
-      pool: Array.isArray(object?.pool) ? object.pool.map((e: any) => DecCoin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryCommunityPoolResponse): unknown {
-    const obj: any = {};
-    if (message.pool) {
-      obj.pool = message.pool.map(e => e ? DecCoin.toJSON(e) : undefined);
-    } else {
-      obj.pool = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCommunityPoolResponse>): QueryCommunityPoolResponse {
-    const message = createBaseQueryCommunityPoolResponse();
-    message.pool = object.pool?.map(e => DecCoin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryCommunityPoolResponseSDKType): QueryCommunityPoolResponse {
-    return {
-      pool: Array.isArray(object?.pool) ? object.pool.map((e: any) => DecCoin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryCommunityPoolResponse): QueryCommunityPoolResponseSDKType {
-    const obj: any = {};
-    if (message.pool) {
-      obj.pool = message.pool.map(e => e ? DecCoin.toSDK(e) : undefined);
-    } else {
-      obj.pool = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryCommunityPoolResponseAmino): QueryCommunityPoolResponse {
-    return {
-      pool: Array.isArray(object?.pool) ? object.pool.map((e: any) => DecCoin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryCommunityPoolResponse): QueryCommunityPoolResponseAmino {
-    const obj: any = {};
-    if (message.pool) {
-      obj.pool = message.pool.map(e => e ? DecCoin.toAmino(e) : undefined);
-    } else {
-      obj.pool = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryCommunityPoolResponseAminoMsg): QueryCommunityPoolResponse {
-    return QueryCommunityPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCommunityPoolResponse): QueryCommunityPoolResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryCommunityPoolResponse",
-      value: QueryCommunityPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCommunityPoolResponseProtoMsg): QueryCommunityPoolResponse {
-    return QueryCommunityPoolResponse.decode(message.value);
-  },
-  toProto(message: QueryCommunityPoolResponse): Uint8Array {
-    return QueryCommunityPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCommunityPoolResponse): QueryCommunityPoolResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolResponse",
-      value: QueryCommunityPoolResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.amino.ts
deleted file mode 100644
index 5b1270cb..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { MsgSetWithdrawAddress, MsgWithdrawDelegatorReward, MsgWithdrawValidatorCommission, MsgFundCommunityPool } from "./tx";
-export const AminoConverter = {
-  "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress": {
-    aminoType: "cosmos-sdk/MsgModifyWithdrawAddress",
-    toAmino: MsgSetWithdrawAddress.toAmino,
-    fromAmino: MsgSetWithdrawAddress.fromAmino
-  },
-  "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward": {
-    aminoType: "cosmos-sdk/MsgWithdrawDelegationReward",
-    toAmino: MsgWithdrawDelegatorReward.toAmino,
-    fromAmino: MsgWithdrawDelegatorReward.fromAmino
-  },
-  "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission": {
-    aminoType: "cosmos-sdk/MsgWithdrawValidatorCommission",
-    toAmino: MsgWithdrawValidatorCommission.toAmino,
-    fromAmino: MsgWithdrawValidatorCommission.fromAmino
-  },
-  "/cosmos.distribution.v1beta1.MsgFundCommunityPool": {
-    aminoType: "cosmos-sdk/MsgFundCommunityPool",
-    toAmino: MsgFundCommunityPool.toAmino,
-    fromAmino: MsgFundCommunityPool.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.registry.ts
deleted file mode 100644
index 39f7df87..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSetWithdrawAddress, MsgWithdrawDelegatorReward, MsgWithdrawValidatorCommission, MsgFundCommunityPool } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", MsgSetWithdrawAddress], ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", MsgWithdrawDelegatorReward], ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", MsgWithdrawValidatorCommission], ["/cosmos.distribution.v1beta1.MsgFundCommunityPool", MsgFundCommunityPool]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    setWithdrawAddress(value: MsgSetWithdrawAddress) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-        value: MsgSetWithdrawAddress.encode(value).finish()
-      };
-    },
-    withdrawDelegatorReward(value: MsgWithdrawDelegatorReward) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-        value: MsgWithdrawDelegatorReward.encode(value).finish()
-      };
-    },
-    withdrawValidatorCommission(value: MsgWithdrawValidatorCommission) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-        value: MsgWithdrawValidatorCommission.encode(value).finish()
-      };
-    },
-    fundCommunityPool(value: MsgFundCommunityPool) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-        value: MsgFundCommunityPool.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    setWithdrawAddress(value: MsgSetWithdrawAddress) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-        value
-      };
-    },
-    withdrawDelegatorReward(value: MsgWithdrawDelegatorReward) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-        value
-      };
-    },
-    withdrawValidatorCommission(value: MsgWithdrawValidatorCommission) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-        value
-      };
-    },
-    fundCommunityPool(value: MsgFundCommunityPool) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-        value
-      };
-    }
-  },
-  toJSON: {
-    setWithdrawAddress(value: MsgSetWithdrawAddress) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-        value: MsgSetWithdrawAddress.toJSON(value)
-      };
-    },
-    withdrawDelegatorReward(value: MsgWithdrawDelegatorReward) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-        value: MsgWithdrawDelegatorReward.toJSON(value)
-      };
-    },
-    withdrawValidatorCommission(value: MsgWithdrawValidatorCommission) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-        value: MsgWithdrawValidatorCommission.toJSON(value)
-      };
-    },
-    fundCommunityPool(value: MsgFundCommunityPool) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-        value: MsgFundCommunityPool.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    setWithdrawAddress(value: any) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-        value: MsgSetWithdrawAddress.fromJSON(value)
-      };
-    },
-    withdrawDelegatorReward(value: any) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-        value: MsgWithdrawDelegatorReward.fromJSON(value)
-      };
-    },
-    withdrawValidatorCommission(value: any) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-        value: MsgWithdrawValidatorCommission.fromJSON(value)
-      };
-    },
-    fundCommunityPool(value: any) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-        value: MsgFundCommunityPool.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    setWithdrawAddress(value: MsgSetWithdrawAddress) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-        value: MsgSetWithdrawAddress.fromPartial(value)
-      };
-    },
-    withdrawDelegatorReward(value: MsgWithdrawDelegatorReward) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-        value: MsgWithdrawDelegatorReward.fromPartial(value)
-      };
-    },
-    withdrawValidatorCommission(value: MsgWithdrawValidatorCommission) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-        value: MsgWithdrawValidatorCommission.fromPartial(value)
-      };
-    },
-    fundCommunityPool(value: MsgFundCommunityPool) {
-      return {
-        typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-        value: MsgFundCommunityPool.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index c66ec3e0..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSetWithdrawAddress, MsgSetWithdrawAddressResponse, MsgWithdrawDelegatorReward, MsgWithdrawDelegatorRewardResponse, MsgWithdrawValidatorCommission, MsgWithdrawValidatorCommissionResponse, MsgFundCommunityPool, MsgFundCommunityPoolResponse } from "./tx";
-/** Msg defines the distribution Msg service. */
-export interface Msg {
-  /**
-   * SetWithdrawAddress defines a method to change the withdraw address
-   * for a delegator (or validator self-delegation).
-   */
-  setWithdrawAddress(request: MsgSetWithdrawAddress): Promise<MsgSetWithdrawAddressResponse>;
-  /**
-   * WithdrawDelegatorReward defines a method to withdraw rewards of delegator
-   * from a single validator.
-   */
-  withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise<MsgWithdrawDelegatorRewardResponse>;
-  /**
-   * WithdrawValidatorCommission defines a method to withdraw the
-   * full commission to the validator address.
-   */
-  withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise<MsgWithdrawValidatorCommissionResponse>;
-  /**
-   * FundCommunityPool defines a method to allow an account to directly
-   * fund the community pool.
-   */
-  fundCommunityPool(request: MsgFundCommunityPool): Promise<MsgFundCommunityPoolResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.setWithdrawAddress = this.setWithdrawAddress.bind(this);
-    this.withdrawDelegatorReward = this.withdrawDelegatorReward.bind(this);
-    this.withdrawValidatorCommission = this.withdrawValidatorCommission.bind(this);
-    this.fundCommunityPool = this.fundCommunityPool.bind(this);
-  }
-  setWithdrawAddress(request: MsgSetWithdrawAddress): Promise<MsgSetWithdrawAddressResponse> {
-    const data = MsgSetWithdrawAddress.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "SetWithdrawAddress", data);
-    return promise.then(data => MsgSetWithdrawAddressResponse.decode(new BinaryReader(data)));
-  }
-  withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise<MsgWithdrawDelegatorRewardResponse> {
-    const data = MsgWithdrawDelegatorReward.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawDelegatorReward", data);
-    return promise.then(data => MsgWithdrawDelegatorRewardResponse.decode(new BinaryReader(data)));
-  }
-  withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise<MsgWithdrawValidatorCommissionResponse> {
-    const data = MsgWithdrawValidatorCommission.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawValidatorCommission", data);
-    return promise.then(data => MsgWithdrawValidatorCommissionResponse.decode(new BinaryReader(data)));
-  }
-  fundCommunityPool(request: MsgFundCommunityPool): Promise<MsgFundCommunityPoolResponse> {
-    const data = MsgFundCommunityPool.encode(request).finish();
-    const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "FundCommunityPool", data);
-    return promise.then(data => MsgFundCommunityPoolResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.ts
deleted file mode 100644
index bd219c24..00000000
--- a/examples/injective/src/codegen/cosmos/distribution/v1beta1/tx.ts
+++ /dev/null
@@ -1,942 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgSetWithdrawAddress sets the withdraw address for
- * a delegator (or validator self-delegation).
- */
-export interface MsgSetWithdrawAddress {
-  delegatorAddress: string;
-  withdrawAddress: string;
-}
-export interface MsgSetWithdrawAddressProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress";
-  value: Uint8Array;
-}
-/**
- * MsgSetWithdrawAddress sets the withdraw address for
- * a delegator (or validator self-delegation).
- */
-export interface MsgSetWithdrawAddressAmino {
-  delegator_address: string;
-  withdraw_address: string;
-}
-export interface MsgSetWithdrawAddressAminoMsg {
-  type: "cosmos-sdk/MsgModifyWithdrawAddress";
-  value: MsgSetWithdrawAddressAmino;
-}
-/**
- * MsgSetWithdrawAddress sets the withdraw address for
- * a delegator (or validator self-delegation).
- */
-export interface MsgSetWithdrawAddressSDKType {
-  delegator_address: string;
-  withdraw_address: string;
-}
-/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */
-export interface MsgSetWithdrawAddressResponse {}
-export interface MsgSetWithdrawAddressResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse";
-  value: Uint8Array;
-}
-/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */
-export interface MsgSetWithdrawAddressResponseAmino {}
-export interface MsgSetWithdrawAddressResponseAminoMsg {
-  type: "cosmos-sdk/MsgSetWithdrawAddressResponse";
-  value: MsgSetWithdrawAddressResponseAmino;
-}
-/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */
-export interface MsgSetWithdrawAddressResponseSDKType {}
-/**
- * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator
- * from a single validator.
- */
-export interface MsgWithdrawDelegatorReward {
-  delegatorAddress: string;
-  validatorAddress: string;
-}
-export interface MsgWithdrawDelegatorRewardProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward";
-  value: Uint8Array;
-}
-/**
- * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator
- * from a single validator.
- */
-export interface MsgWithdrawDelegatorRewardAmino {
-  delegator_address: string;
-  validator_address: string;
-}
-export interface MsgWithdrawDelegatorRewardAminoMsg {
-  type: "cosmos-sdk/MsgWithdrawDelegationReward";
-  value: MsgWithdrawDelegatorRewardAmino;
-}
-/**
- * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator
- * from a single validator.
- */
-export interface MsgWithdrawDelegatorRewardSDKType {
-  delegator_address: string;
-  validator_address: string;
-}
-/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */
-export interface MsgWithdrawDelegatorRewardResponse {
-  amount: Coin[];
-}
-export interface MsgWithdrawDelegatorRewardResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse";
-  value: Uint8Array;
-}
-/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */
-export interface MsgWithdrawDelegatorRewardResponseAmino {
-  amount: CoinAmino[];
-}
-export interface MsgWithdrawDelegatorRewardResponseAminoMsg {
-  type: "cosmos-sdk/MsgWithdrawDelegatorRewardResponse";
-  value: MsgWithdrawDelegatorRewardResponseAmino;
-}
-/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */
-export interface MsgWithdrawDelegatorRewardResponseSDKType {
-  amount: CoinSDKType[];
-}
-/**
- * MsgWithdrawValidatorCommission withdraws the full commission to the validator
- * address.
- */
-export interface MsgWithdrawValidatorCommission {
-  validatorAddress: string;
-}
-export interface MsgWithdrawValidatorCommissionProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission";
-  value: Uint8Array;
-}
-/**
- * MsgWithdrawValidatorCommission withdraws the full commission to the validator
- * address.
- */
-export interface MsgWithdrawValidatorCommissionAmino {
-  validator_address: string;
-}
-export interface MsgWithdrawValidatorCommissionAminoMsg {
-  type: "cosmos-sdk/MsgWithdrawValidatorCommission";
-  value: MsgWithdrawValidatorCommissionAmino;
-}
-/**
- * MsgWithdrawValidatorCommission withdraws the full commission to the validator
- * address.
- */
-export interface MsgWithdrawValidatorCommissionSDKType {
-  validator_address: string;
-}
-/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */
-export interface MsgWithdrawValidatorCommissionResponse {
-  amount: Coin[];
-}
-export interface MsgWithdrawValidatorCommissionResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse";
-  value: Uint8Array;
-}
-/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */
-export interface MsgWithdrawValidatorCommissionResponseAmino {
-  amount: CoinAmino[];
-}
-export interface MsgWithdrawValidatorCommissionResponseAminoMsg {
-  type: "cosmos-sdk/MsgWithdrawValidatorCommissionResponse";
-  value: MsgWithdrawValidatorCommissionResponseAmino;
-}
-/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */
-export interface MsgWithdrawValidatorCommissionResponseSDKType {
-  amount: CoinSDKType[];
-}
-/**
- * MsgFundCommunityPool allows an account to directly
- * fund the community pool.
- */
-export interface MsgFundCommunityPool {
-  amount: Coin[];
-  depositor: string;
-}
-export interface MsgFundCommunityPoolProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool";
-  value: Uint8Array;
-}
-/**
- * MsgFundCommunityPool allows an account to directly
- * fund the community pool.
- */
-export interface MsgFundCommunityPoolAmino {
-  amount: CoinAmino[];
-  depositor: string;
-}
-export interface MsgFundCommunityPoolAminoMsg {
-  type: "cosmos-sdk/MsgFundCommunityPool";
-  value: MsgFundCommunityPoolAmino;
-}
-/**
- * MsgFundCommunityPool allows an account to directly
- * fund the community pool.
- */
-export interface MsgFundCommunityPoolSDKType {
-  amount: CoinSDKType[];
-  depositor: string;
-}
-/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */
-export interface MsgFundCommunityPoolResponse {}
-export interface MsgFundCommunityPoolResponseProtoMsg {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse";
-  value: Uint8Array;
-}
-/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */
-export interface MsgFundCommunityPoolResponseAmino {}
-export interface MsgFundCommunityPoolResponseAminoMsg {
-  type: "cosmos-sdk/MsgFundCommunityPoolResponse";
-  value: MsgFundCommunityPoolResponseAmino;
-}
-/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */
-export interface MsgFundCommunityPoolResponseSDKType {}
-function createBaseMsgSetWithdrawAddress(): MsgSetWithdrawAddress {
-  return {
-    delegatorAddress: "",
-    withdrawAddress: ""
-  };
-}
-export const MsgSetWithdrawAddress = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-  aminoType: "cosmos-sdk/MsgModifyWithdrawAddress",
-  encode(message: MsgSetWithdrawAddress, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.withdrawAddress !== "") {
-      writer.uint32(18).string(message.withdrawAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSetWithdrawAddress {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSetWithdrawAddress();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.withdrawAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSetWithdrawAddress {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      withdrawAddress: isSet(object.withdrawAddress) ? String(object.withdrawAddress) : ""
-    };
-  },
-  toJSON(message: MsgSetWithdrawAddress): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSetWithdrawAddress>): MsgSetWithdrawAddress {
-    const message = createBaseMsgSetWithdrawAddress();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.withdrawAddress = object.withdrawAddress ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSetWithdrawAddressSDKType): MsgSetWithdrawAddress {
-    return {
-      delegatorAddress: object?.delegator_address,
-      withdrawAddress: object?.withdraw_address
-    };
-  },
-  toSDK(message: MsgSetWithdrawAddress): MsgSetWithdrawAddressSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAmino(object: MsgSetWithdrawAddressAmino): MsgSetWithdrawAddress {
-    return {
-      delegatorAddress: object.delegator_address,
-      withdrawAddress: object.withdraw_address
-    };
-  },
-  toAmino(message: MsgSetWithdrawAddress): MsgSetWithdrawAddressAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.withdraw_address = message.withdrawAddress;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSetWithdrawAddressAminoMsg): MsgSetWithdrawAddress {
-    return MsgSetWithdrawAddress.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSetWithdrawAddress): MsgSetWithdrawAddressAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgModifyWithdrawAddress",
-      value: MsgSetWithdrawAddress.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSetWithdrawAddressProtoMsg): MsgSetWithdrawAddress {
-    return MsgSetWithdrawAddress.decode(message.value);
-  },
-  toProto(message: MsgSetWithdrawAddress): Uint8Array {
-    return MsgSetWithdrawAddress.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSetWithdrawAddress): MsgSetWithdrawAddressProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",
-      value: MsgSetWithdrawAddress.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSetWithdrawAddressResponse(): MsgSetWithdrawAddressResponse {
-  return {};
-}
-export const MsgSetWithdrawAddressResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse",
-  aminoType: "cosmos-sdk/MsgSetWithdrawAddressResponse",
-  encode(_: MsgSetWithdrawAddressResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSetWithdrawAddressResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSetWithdrawAddressResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSetWithdrawAddressResponse {
-    return {};
-  },
-  toJSON(_: MsgSetWithdrawAddressResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSetWithdrawAddressResponse>): MsgSetWithdrawAddressResponse {
-    const message = createBaseMsgSetWithdrawAddressResponse();
-    return message;
-  },
-  fromSDK(_: MsgSetWithdrawAddressResponseSDKType): MsgSetWithdrawAddressResponse {
-    return {};
-  },
-  toSDK(_: MsgSetWithdrawAddressResponse): MsgSetWithdrawAddressResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSetWithdrawAddressResponseAmino): MsgSetWithdrawAddressResponse {
-    return {};
-  },
-  toAmino(_: MsgSetWithdrawAddressResponse): MsgSetWithdrawAddressResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSetWithdrawAddressResponseAminoMsg): MsgSetWithdrawAddressResponse {
-    return MsgSetWithdrawAddressResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSetWithdrawAddressResponse): MsgSetWithdrawAddressResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSetWithdrawAddressResponse",
-      value: MsgSetWithdrawAddressResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSetWithdrawAddressResponseProtoMsg): MsgSetWithdrawAddressResponse {
-    return MsgSetWithdrawAddressResponse.decode(message.value);
-  },
-  toProto(message: MsgSetWithdrawAddressResponse): Uint8Array {
-    return MsgSetWithdrawAddressResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSetWithdrawAddressResponse): MsgSetWithdrawAddressResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse",
-      value: MsgSetWithdrawAddressResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawDelegatorReward(): MsgWithdrawDelegatorReward {
-  return {
-    delegatorAddress: "",
-    validatorAddress: ""
-  };
-}
-export const MsgWithdrawDelegatorReward = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-  aminoType: "cosmos-sdk/MsgWithdrawDelegationReward",
-  encode(message: MsgWithdrawDelegatorReward, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawDelegatorReward {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawDelegatorReward();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgWithdrawDelegatorReward {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: MsgWithdrawDelegatorReward): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgWithdrawDelegatorReward>): MsgWithdrawDelegatorReward {
-    const message = createBaseMsgWithdrawDelegatorReward();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: MsgWithdrawDelegatorRewardSDKType): MsgWithdrawDelegatorReward {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: MsgWithdrawDelegatorReward): MsgWithdrawDelegatorRewardSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: MsgWithdrawDelegatorRewardAmino): MsgWithdrawDelegatorReward {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: MsgWithdrawDelegatorReward): MsgWithdrawDelegatorRewardAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawDelegatorRewardAminoMsg): MsgWithdrawDelegatorReward {
-    return MsgWithdrawDelegatorReward.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawDelegatorReward): MsgWithdrawDelegatorRewardAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgWithdrawDelegationReward",
-      value: MsgWithdrawDelegatorReward.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawDelegatorRewardProtoMsg): MsgWithdrawDelegatorReward {
-    return MsgWithdrawDelegatorReward.decode(message.value);
-  },
-  toProto(message: MsgWithdrawDelegatorReward): Uint8Array {
-    return MsgWithdrawDelegatorReward.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawDelegatorReward): MsgWithdrawDelegatorRewardProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",
-      value: MsgWithdrawDelegatorReward.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawDelegatorRewardResponse(): MsgWithdrawDelegatorRewardResponse {
-  return {
-    amount: []
-  };
-}
-export const MsgWithdrawDelegatorRewardResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse",
-  aminoType: "cosmos-sdk/MsgWithdrawDelegatorRewardResponse",
-  encode(message: MsgWithdrawDelegatorRewardResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawDelegatorRewardResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawDelegatorRewardResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgWithdrawDelegatorRewardResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgWithdrawDelegatorRewardResponse): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgWithdrawDelegatorRewardResponse>): MsgWithdrawDelegatorRewardResponse {
-    const message = createBaseMsgWithdrawDelegatorRewardResponse();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgWithdrawDelegatorRewardResponseSDKType): MsgWithdrawDelegatorRewardResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgWithdrawDelegatorRewardResponse): MsgWithdrawDelegatorRewardResponseSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgWithdrawDelegatorRewardResponseAmino): MsgWithdrawDelegatorRewardResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgWithdrawDelegatorRewardResponse): MsgWithdrawDelegatorRewardResponseAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawDelegatorRewardResponseAminoMsg): MsgWithdrawDelegatorRewardResponse {
-    return MsgWithdrawDelegatorRewardResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawDelegatorRewardResponse): MsgWithdrawDelegatorRewardResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgWithdrawDelegatorRewardResponse",
-      value: MsgWithdrawDelegatorRewardResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawDelegatorRewardResponseProtoMsg): MsgWithdrawDelegatorRewardResponse {
-    return MsgWithdrawDelegatorRewardResponse.decode(message.value);
-  },
-  toProto(message: MsgWithdrawDelegatorRewardResponse): Uint8Array {
-    return MsgWithdrawDelegatorRewardResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawDelegatorRewardResponse): MsgWithdrawDelegatorRewardResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse",
-      value: MsgWithdrawDelegatorRewardResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawValidatorCommission(): MsgWithdrawValidatorCommission {
-  return {
-    validatorAddress: ""
-  };
-}
-export const MsgWithdrawValidatorCommission = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-  aminoType: "cosmos-sdk/MsgWithdrawValidatorCommission",
-  encode(message: MsgWithdrawValidatorCommission, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawValidatorCommission {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawValidatorCommission();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgWithdrawValidatorCommission {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: MsgWithdrawValidatorCommission): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgWithdrawValidatorCommission>): MsgWithdrawValidatorCommission {
-    const message = createBaseMsgWithdrawValidatorCommission();
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: MsgWithdrawValidatorCommissionSDKType): MsgWithdrawValidatorCommission {
-    return {
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: MsgWithdrawValidatorCommission): MsgWithdrawValidatorCommissionSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: MsgWithdrawValidatorCommissionAmino): MsgWithdrawValidatorCommission {
-    return {
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: MsgWithdrawValidatorCommission): MsgWithdrawValidatorCommissionAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawValidatorCommissionAminoMsg): MsgWithdrawValidatorCommission {
-    return MsgWithdrawValidatorCommission.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawValidatorCommission): MsgWithdrawValidatorCommissionAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgWithdrawValidatorCommission",
-      value: MsgWithdrawValidatorCommission.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawValidatorCommissionProtoMsg): MsgWithdrawValidatorCommission {
-    return MsgWithdrawValidatorCommission.decode(message.value);
-  },
-  toProto(message: MsgWithdrawValidatorCommission): Uint8Array {
-    return MsgWithdrawValidatorCommission.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawValidatorCommission): MsgWithdrawValidatorCommissionProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",
-      value: MsgWithdrawValidatorCommission.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawValidatorCommissionResponse(): MsgWithdrawValidatorCommissionResponse {
-  return {
-    amount: []
-  };
-}
-export const MsgWithdrawValidatorCommissionResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse",
-  aminoType: "cosmos-sdk/MsgWithdrawValidatorCommissionResponse",
-  encode(message: MsgWithdrawValidatorCommissionResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawValidatorCommissionResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawValidatorCommissionResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgWithdrawValidatorCommissionResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgWithdrawValidatorCommissionResponse): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgWithdrawValidatorCommissionResponse>): MsgWithdrawValidatorCommissionResponse {
-    const message = createBaseMsgWithdrawValidatorCommissionResponse();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgWithdrawValidatorCommissionResponseSDKType): MsgWithdrawValidatorCommissionResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgWithdrawValidatorCommissionResponse): MsgWithdrawValidatorCommissionResponseSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgWithdrawValidatorCommissionResponseAmino): MsgWithdrawValidatorCommissionResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgWithdrawValidatorCommissionResponse): MsgWithdrawValidatorCommissionResponseAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawValidatorCommissionResponseAminoMsg): MsgWithdrawValidatorCommissionResponse {
-    return MsgWithdrawValidatorCommissionResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawValidatorCommissionResponse): MsgWithdrawValidatorCommissionResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgWithdrawValidatorCommissionResponse",
-      value: MsgWithdrawValidatorCommissionResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawValidatorCommissionResponseProtoMsg): MsgWithdrawValidatorCommissionResponse {
-    return MsgWithdrawValidatorCommissionResponse.decode(message.value);
-  },
-  toProto(message: MsgWithdrawValidatorCommissionResponse): Uint8Array {
-    return MsgWithdrawValidatorCommissionResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawValidatorCommissionResponse): MsgWithdrawValidatorCommissionResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse",
-      value: MsgWithdrawValidatorCommissionResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgFundCommunityPool(): MsgFundCommunityPool {
-  return {
-    amount: [],
-    depositor: ""
-  };
-}
-export const MsgFundCommunityPool = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-  aminoType: "cosmos-sdk/MsgFundCommunityPool",
-  encode(message: MsgFundCommunityPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgFundCommunityPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgFundCommunityPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgFundCommunityPool {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],
-      depositor: isSet(object.depositor) ? String(object.depositor) : ""
-    };
-  },
-  toJSON(message: MsgFundCommunityPool): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgFundCommunityPool>): MsgFundCommunityPool {
-    const message = createBaseMsgFundCommunityPool();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    message.depositor = object.depositor ?? "";
-    return message;
-  },
-  fromSDK(object: MsgFundCommunityPoolSDKType): MsgFundCommunityPool {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : [],
-      depositor: object?.depositor
-    };
-  },
-  toSDK(message: MsgFundCommunityPool): MsgFundCommunityPoolSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAmino(object: MsgFundCommunityPoolAmino): MsgFundCommunityPool {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : [],
-      depositor: object.depositor
-    };
-  },
-  toAmino(message: MsgFundCommunityPool): MsgFundCommunityPoolAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAminoMsg(object: MsgFundCommunityPoolAminoMsg): MsgFundCommunityPool {
-    return MsgFundCommunityPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgFundCommunityPool): MsgFundCommunityPoolAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgFundCommunityPool",
-      value: MsgFundCommunityPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgFundCommunityPoolProtoMsg): MsgFundCommunityPool {
-    return MsgFundCommunityPool.decode(message.value);
-  },
-  toProto(message: MsgFundCommunityPool): Uint8Array {
-    return MsgFundCommunityPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgFundCommunityPool): MsgFundCommunityPoolProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool",
-      value: MsgFundCommunityPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgFundCommunityPoolResponse(): MsgFundCommunityPoolResponse {
-  return {};
-}
-export const MsgFundCommunityPoolResponse = {
-  typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse",
-  aminoType: "cosmos-sdk/MsgFundCommunityPoolResponse",
-  encode(_: MsgFundCommunityPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgFundCommunityPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgFundCommunityPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgFundCommunityPoolResponse {
-    return {};
-  },
-  toJSON(_: MsgFundCommunityPoolResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgFundCommunityPoolResponse>): MsgFundCommunityPoolResponse {
-    const message = createBaseMsgFundCommunityPoolResponse();
-    return message;
-  },
-  fromSDK(_: MsgFundCommunityPoolResponseSDKType): MsgFundCommunityPoolResponse {
-    return {};
-  },
-  toSDK(_: MsgFundCommunityPoolResponse): MsgFundCommunityPoolResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgFundCommunityPoolResponseAmino): MsgFundCommunityPoolResponse {
-    return {};
-  },
-  toAmino(_: MsgFundCommunityPoolResponse): MsgFundCommunityPoolResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgFundCommunityPoolResponseAminoMsg): MsgFundCommunityPoolResponse {
-    return MsgFundCommunityPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgFundCommunityPoolResponse): MsgFundCommunityPoolResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgFundCommunityPoolResponse",
-      value: MsgFundCommunityPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgFundCommunityPoolResponseProtoMsg): MsgFundCommunityPoolResponse {
-    return MsgFundCommunityPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgFundCommunityPoolResponse): Uint8Array {
-    return MsgFundCommunityPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgFundCommunityPoolResponse): MsgFundCommunityPoolResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse",
-      value: MsgFundCommunityPoolResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/evidence.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/evidence.ts
deleted file mode 100644
index f52a7813..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/evidence.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-/**
- * Equivocation implements the Evidence interface and defines evidence of double
- * signing misbehavior.
- */
-export interface Equivocation {
-  height: bigint;
-  time: Date | undefined;
-  power: bigint;
-  consensusAddress: string;
-}
-export interface EquivocationProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.Equivocation";
-  value: Uint8Array;
-}
-/**
- * Equivocation implements the Evidence interface and defines evidence of double
- * signing misbehavior.
- */
-export interface EquivocationAmino {
-  height: string;
-  time?: Date | undefined;
-  power: string;
-  consensus_address: string;
-}
-export interface EquivocationAminoMsg {
-  type: "cosmos-sdk/Equivocation";
-  value: EquivocationAmino;
-}
-/**
- * Equivocation implements the Evidence interface and defines evidence of double
- * signing misbehavior.
- */
-export interface EquivocationSDKType {
-  height: bigint;
-  time: Date | undefined;
-  power: bigint;
-  consensus_address: string;
-}
-function createBaseEquivocation(): Equivocation {
-  return {
-    height: BigInt(0),
-    time: new Date(),
-    power: BigInt(0),
-    consensusAddress: ""
-  };
-}
-export const Equivocation = {
-  typeUrl: "/cosmos.evidence.v1beta1.Equivocation",
-  aminoType: "cosmos-sdk/Equivocation",
-  encode(message: Equivocation, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.power !== BigInt(0)) {
-      writer.uint32(24).int64(message.power);
-    }
-    if (message.consensusAddress !== "") {
-      writer.uint32(34).string(message.consensusAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Equivocation {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEquivocation();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.power = reader.int64();
-          break;
-        case 4:
-          message.consensusAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Equivocation {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      power: isSet(object.power) ? BigInt(object.power.toString()) : BigInt(0),
-      consensusAddress: isSet(object.consensusAddress) ? String(object.consensusAddress) : ""
-    };
-  },
-  toJSON(message: Equivocation): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());
-    message.consensusAddress !== undefined && (obj.consensusAddress = message.consensusAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Equivocation>): Equivocation {
-    const message = createBaseEquivocation();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.time = object.time ?? undefined;
-    message.power = object.power !== undefined && object.power !== null ? BigInt(object.power.toString()) : BigInt(0);
-    message.consensusAddress = object.consensusAddress ?? "";
-    return message;
-  },
-  fromSDK(object: EquivocationSDKType): Equivocation {
-    return {
-      height: object?.height,
-      time: object.time ?? undefined,
-      power: object?.power,
-      consensusAddress: object?.consensus_address
-    };
-  },
-  toSDK(message: Equivocation): EquivocationSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    obj.power = message.power;
-    obj.consensus_address = message.consensusAddress;
-    return obj;
-  },
-  fromAmino(object: EquivocationAmino): Equivocation {
-    return {
-      height: BigInt(object.height),
-      time: object.time,
-      power: BigInt(object.power),
-      consensusAddress: object.consensus_address
-    };
-  },
-  toAmino(message: Equivocation): EquivocationAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.time = message.time;
-    obj.power = message.power ? message.power.toString() : undefined;
-    obj.consensus_address = message.consensusAddress;
-    return obj;
-  },
-  fromAminoMsg(object: EquivocationAminoMsg): Equivocation {
-    return Equivocation.fromAmino(object.value);
-  },
-  toAminoMsg(message: Equivocation): EquivocationAminoMsg {
-    return {
-      type: "cosmos-sdk/Equivocation",
-      value: Equivocation.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EquivocationProtoMsg): Equivocation {
-    return Equivocation.decode(message.value);
-  },
-  toProto(message: Equivocation): Uint8Array {
-    return Equivocation.encode(message).finish();
-  },
-  toProtoMsg(message: Equivocation): EquivocationProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.Equivocation",
-      value: Equivocation.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/genesis.ts
deleted file mode 100644
index 9d8a7fb8..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/genesis.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial } from "../../../helpers";
-/** GenesisState defines the evidence module's genesis state. */
-export interface GenesisState {
-  /** evidence defines all the evidence at genesis. */
-  evidence: Any[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the evidence module's genesis state. */
-export interface GenesisStateAmino {
-  /** evidence defines all the evidence at genesis. */
-  evidence: AnyAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the evidence module's genesis state. */
-export interface GenesisStateSDKType {
-  evidence: AnySDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    evidence: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.evidence.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.evidence) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.evidence.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.evidence = object.evidence?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 8ce8eba9..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryEvidenceRequest, QueryEvidenceResponse, QueryAllEvidenceRequest, QueryAllEvidenceResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Evidence queries evidence based on evidence hash. */
-  evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
-  /** AllEvidence queries all evidence. */
-  allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.evidence = this.evidence.bind(this);
-    this.allEvidence = this.allEvidence.bind(this);
-  }
-  evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse> {
-    const data = QueryEvidenceRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.evidence.v1beta1.Query", "Evidence", data);
-    return promise.then(data => QueryEvidenceResponse.decode(new BinaryReader(data)));
-  }
-  allEvidence(request: QueryAllEvidenceRequest = {
-    pagination: undefined
-  }): Promise<QueryAllEvidenceResponse> {
-    const data = QueryAllEvidenceRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.evidence.v1beta1.Query", "AllEvidence", data);
-    return promise.then(data => QueryAllEvidenceResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse> {
-      return queryService.evidence(request);
-    },
-    allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse> {
-      return queryService.allEvidence(request);
-    }
-  };
-};
-export interface UseEvidenceQuery<TData> extends ReactQueryParams<QueryEvidenceResponse, TData> {
-  request: QueryEvidenceRequest;
-}
-export interface UseAllEvidenceQuery<TData> extends ReactQueryParams<QueryAllEvidenceResponse, TData> {
-  request?: QueryAllEvidenceRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useEvidence = <TData = QueryEvidenceResponse,>({
-    request,
-    options
-  }: UseEvidenceQuery<TData>) => {
-    return useQuery<QueryEvidenceResponse, Error, TData>(["evidenceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.evidence(request);
-    }, options);
-  };
-  const useAllEvidence = <TData = QueryAllEvidenceResponse,>({
-    request,
-    options
-  }: UseAllEvidenceQuery<TData>) => {
-    return useQuery<QueryAllEvidenceResponse, Error, TData>(["allEvidenceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allEvidence(request);
-    }, options);
-  };
-  return {
-    /** Evidence queries evidence based on evidence hash. */useEvidence,
-    /** AllEvidence queries all evidence. */useAllEvidence
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryEvidenceStore {
-    store = new QueryStore<QueryEvidenceRequest, QueryEvidenceResponse>(queryService?.evidence);
-    evidence(request: QueryEvidenceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllEvidenceStore {
-    store = new QueryStore<QueryAllEvidenceRequest, QueryAllEvidenceResponse>(queryService?.allEvidence);
-    allEvidence(request: QueryAllEvidenceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Evidence queries evidence based on evidence hash. */QueryEvidenceStore,
-    /** AllEvidence queries all evidence. */QueryAllEvidenceStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.ts
deleted file mode 100644
index df83ace0..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/query.ts
+++ /dev/null
@@ -1,493 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */
-export interface QueryEvidenceRequest {
-  /** evidence_hash defines the hash of the requested evidence. */
-  evidenceHash: Uint8Array;
-}
-export interface QueryEvidenceRequestProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceRequest";
-  value: Uint8Array;
-}
-/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */
-export interface QueryEvidenceRequestAmino {
-  /** evidence_hash defines the hash of the requested evidence. */
-  evidence_hash: Uint8Array;
-}
-export interface QueryEvidenceRequestAminoMsg {
-  type: "cosmos-sdk/QueryEvidenceRequest";
-  value: QueryEvidenceRequestAmino;
-}
-/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */
-export interface QueryEvidenceRequestSDKType {
-  evidence_hash: Uint8Array;
-}
-/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */
-export interface QueryEvidenceResponse {
-  /** evidence returns the requested evidence. */
-  evidence: Any | undefined;
-}
-export interface QueryEvidenceResponseProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceResponse";
-  value: Uint8Array;
-}
-/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */
-export interface QueryEvidenceResponseAmino {
-  /** evidence returns the requested evidence. */
-  evidence?: AnyAmino | undefined;
-}
-export interface QueryEvidenceResponseAminoMsg {
-  type: "cosmos-sdk/QueryEvidenceResponse";
-  value: QueryEvidenceResponseAmino;
-}
-/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */
-export interface QueryEvidenceResponseSDKType {
-  evidence: AnySDKType | undefined;
-}
-/**
- * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAllEvidenceRequestProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceRequest";
-  value: Uint8Array;
-}
-/**
- * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAllEvidenceRequestAminoMsg {
-  type: "cosmos-sdk/QueryAllEvidenceRequest";
-  value: QueryAllEvidenceRequestAmino;
-}
-/**
- * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceResponse {
-  /** evidence returns all evidences. */
-  evidence: Any[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAllEvidenceResponseProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceResponseAmino {
-  /** evidence returns all evidences. */
-  evidence: AnyAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAllEvidenceResponseAminoMsg {
-  type: "cosmos-sdk/QueryAllEvidenceResponse";
-  value: QueryAllEvidenceResponseAmino;
-}
-/**
- * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC
- * method.
- */
-export interface QueryAllEvidenceResponseSDKType {
-  evidence: AnySDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryEvidenceRequest(): QueryEvidenceRequest {
-  return {
-    evidenceHash: new Uint8Array()
-  };
-}
-export const QueryEvidenceRequest = {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceRequest",
-  aminoType: "cosmos-sdk/QueryEvidenceRequest",
-  encode(message: QueryEvidenceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.evidenceHash.length !== 0) {
-      writer.uint32(10).bytes(message.evidenceHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEvidenceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEvidenceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.evidenceHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryEvidenceRequest {
-    return {
-      evidenceHash: isSet(object.evidenceHash) ? bytesFromBase64(object.evidenceHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryEvidenceRequest): unknown {
-    const obj: any = {};
-    message.evidenceHash !== undefined && (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryEvidenceRequest>): QueryEvidenceRequest {
-    const message = createBaseQueryEvidenceRequest();
-    message.evidenceHash = object.evidenceHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryEvidenceRequestSDKType): QueryEvidenceRequest {
-    return {
-      evidenceHash: object?.evidence_hash
-    };
-  },
-  toSDK(message: QueryEvidenceRequest): QueryEvidenceRequestSDKType {
-    const obj: any = {};
-    obj.evidence_hash = message.evidenceHash;
-    return obj;
-  },
-  fromAmino(object: QueryEvidenceRequestAmino): QueryEvidenceRequest {
-    return {
-      evidenceHash: object.evidence_hash
-    };
-  },
-  toAmino(message: QueryEvidenceRequest): QueryEvidenceRequestAmino {
-    const obj: any = {};
-    obj.evidence_hash = message.evidenceHash;
-    return obj;
-  },
-  fromAminoMsg(object: QueryEvidenceRequestAminoMsg): QueryEvidenceRequest {
-    return QueryEvidenceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEvidenceRequest): QueryEvidenceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryEvidenceRequest",
-      value: QueryEvidenceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEvidenceRequestProtoMsg): QueryEvidenceRequest {
-    return QueryEvidenceRequest.decode(message.value);
-  },
-  toProto(message: QueryEvidenceRequest): Uint8Array {
-    return QueryEvidenceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEvidenceRequest): QueryEvidenceRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceRequest",
-      value: QueryEvidenceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryEvidenceResponse(): QueryEvidenceResponse {
-  return {
-    evidence: Any.fromPartial({})
-  };
-}
-export const QueryEvidenceResponse = {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceResponse",
-  aminoType: "cosmos-sdk/QueryEvidenceResponse",
-  encode(message: QueryEvidenceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.evidence !== undefined) {
-      Any.encode(message.evidence, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEvidenceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEvidenceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.evidence = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryEvidenceResponse {
-    return {
-      evidence: isSet(object.evidence) ? Any.fromJSON(object.evidence) : undefined
-    };
-  },
-  toJSON(message: QueryEvidenceResponse): unknown {
-    const obj: any = {};
-    message.evidence !== undefined && (obj.evidence = message.evidence ? Any.toJSON(message.evidence) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryEvidenceResponse>): QueryEvidenceResponse {
-    const message = createBaseQueryEvidenceResponse();
-    message.evidence = object.evidence !== undefined && object.evidence !== null ? Any.fromPartial(object.evidence) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryEvidenceResponseSDKType): QueryEvidenceResponse {
-    return {
-      evidence: object.evidence ? Any.fromSDK(object.evidence) : undefined
-    };
-  },
-  toSDK(message: QueryEvidenceResponse): QueryEvidenceResponseSDKType {
-    const obj: any = {};
-    message.evidence !== undefined && (obj.evidence = message.evidence ? Any.toSDK(message.evidence) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryEvidenceResponseAmino): QueryEvidenceResponse {
-    return {
-      evidence: object?.evidence ? Any.fromAmino(object.evidence) : undefined
-    };
-  },
-  toAmino(message: QueryEvidenceResponse): QueryEvidenceResponseAmino {
-    const obj: any = {};
-    obj.evidence = message.evidence ? Any.toAmino(message.evidence) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryEvidenceResponseAminoMsg): QueryEvidenceResponse {
-    return QueryEvidenceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEvidenceResponse): QueryEvidenceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryEvidenceResponse",
-      value: QueryEvidenceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEvidenceResponseProtoMsg): QueryEvidenceResponse {
-    return QueryEvidenceResponse.decode(message.value);
-  },
-  toProto(message: QueryEvidenceResponse): Uint8Array {
-    return QueryEvidenceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEvidenceResponse): QueryEvidenceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.QueryEvidenceResponse",
-      value: QueryEvidenceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllEvidenceRequest(): QueryAllEvidenceRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAllEvidenceRequest = {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceRequest",
-  aminoType: "cosmos-sdk/QueryAllEvidenceRequest",
-  encode(message: QueryAllEvidenceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllEvidenceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllEvidenceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllEvidenceRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllEvidenceRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllEvidenceRequest>): QueryAllEvidenceRequest {
-    const message = createBaseQueryAllEvidenceRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllEvidenceRequestSDKType): QueryAllEvidenceRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllEvidenceRequest): QueryAllEvidenceRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllEvidenceRequestAmino): QueryAllEvidenceRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllEvidenceRequest): QueryAllEvidenceRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllEvidenceRequestAminoMsg): QueryAllEvidenceRequest {
-    return QueryAllEvidenceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllEvidenceRequest): QueryAllEvidenceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllEvidenceRequest",
-      value: QueryAllEvidenceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllEvidenceRequestProtoMsg): QueryAllEvidenceRequest {
-    return QueryAllEvidenceRequest.decode(message.value);
-  },
-  toProto(message: QueryAllEvidenceRequest): Uint8Array {
-    return QueryAllEvidenceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllEvidenceRequest): QueryAllEvidenceRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceRequest",
-      value: QueryAllEvidenceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllEvidenceResponse(): QueryAllEvidenceResponse {
-  return {
-    evidence: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAllEvidenceResponse = {
-  typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceResponse",
-  aminoType: "cosmos-sdk/QueryAllEvidenceResponse",
-  encode(message: QueryAllEvidenceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.evidence) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllEvidenceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllEvidenceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.evidence.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllEvidenceResponse {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllEvidenceResponse): unknown {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllEvidenceResponse>): QueryAllEvidenceResponse {
-    const message = createBaseQueryAllEvidenceResponse();
-    message.evidence = object.evidence?.map(e => Any.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllEvidenceResponseSDKType): QueryAllEvidenceResponse {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllEvidenceResponse): QueryAllEvidenceResponseSDKType {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllEvidenceResponseAmino): QueryAllEvidenceResponse {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Any.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllEvidenceResponse): QueryAllEvidenceResponseAmino {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllEvidenceResponseAminoMsg): QueryAllEvidenceResponse {
-    return QueryAllEvidenceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllEvidenceResponse): QueryAllEvidenceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllEvidenceResponse",
-      value: QueryAllEvidenceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllEvidenceResponseProtoMsg): QueryAllEvidenceResponse {
-    return QueryAllEvidenceResponse.decode(message.value);
-  },
-  toProto(message: QueryAllEvidenceResponse): Uint8Array {
-    return QueryAllEvidenceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllEvidenceResponse): QueryAllEvidenceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.QueryAllEvidenceResponse",
-      value: QueryAllEvidenceResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.amino.ts
deleted file mode 100644
index a9da4176..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgSubmitEvidence } from "./tx";
-export const AminoConverter = {
-  "/cosmos.evidence.v1beta1.MsgSubmitEvidence": {
-    aminoType: "cosmos-sdk/MsgSubmitEvidence",
-    toAmino: MsgSubmitEvidence.toAmino,
-    fromAmino: MsgSubmitEvidence.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.registry.ts
deleted file mode 100644
index 832e6151..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSubmitEvidence } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.evidence.v1beta1.MsgSubmitEvidence", MsgSubmitEvidence]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    submitEvidence(value: MsgSubmitEvidence) {
-      return {
-        typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-        value: MsgSubmitEvidence.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    submitEvidence(value: MsgSubmitEvidence) {
-      return {
-        typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-        value
-      };
-    }
-  },
-  toJSON: {
-    submitEvidence(value: MsgSubmitEvidence) {
-      return {
-        typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-        value: MsgSubmitEvidence.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    submitEvidence(value: any) {
-      return {
-        typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-        value: MsgSubmitEvidence.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    submitEvidence(value: MsgSubmitEvidence) {
-      return {
-        typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-        value: MsgSubmitEvidence.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 50e7473e..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSubmitEvidence, MsgSubmitEvidenceResponse } from "./tx";
-/** Msg defines the evidence Msg service. */
-export interface Msg {
-  /**
-   * SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or
-   * counterfactual signing.
-   */
-  submitEvidence(request: MsgSubmitEvidence): Promise<MsgSubmitEvidenceResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.submitEvidence = this.submitEvidence.bind(this);
-  }
-  submitEvidence(request: MsgSubmitEvidence): Promise<MsgSubmitEvidenceResponse> {
-    const data = MsgSubmitEvidence.encode(request).finish();
-    const promise = this.rpc.request("cosmos.evidence.v1beta1.Msg", "SubmitEvidence", data);
-    return promise.then(data => MsgSubmitEvidenceResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.ts
deleted file mode 100644
index 8cee8ba5..00000000
--- a/examples/injective/src/codegen/cosmos/evidence/v1beta1/tx.ts
+++ /dev/null
@@ -1,247 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/**
- * MsgSubmitEvidence represents a message that supports submitting arbitrary
- * Evidence of misbehavior such as equivocation or counterfactual signing.
- */
-export interface MsgSubmitEvidence {
-  submitter: string;
-  evidence: Any | undefined;
-}
-export interface MsgSubmitEvidenceProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence";
-  value: Uint8Array;
-}
-/**
- * MsgSubmitEvidence represents a message that supports submitting arbitrary
- * Evidence of misbehavior such as equivocation or counterfactual signing.
- */
-export interface MsgSubmitEvidenceAmino {
-  submitter: string;
-  evidence?: AnyAmino | undefined;
-}
-export interface MsgSubmitEvidenceAminoMsg {
-  type: "cosmos-sdk/MsgSubmitEvidence";
-  value: MsgSubmitEvidenceAmino;
-}
-/**
- * MsgSubmitEvidence represents a message that supports submitting arbitrary
- * Evidence of misbehavior such as equivocation or counterfactual signing.
- */
-export interface MsgSubmitEvidenceSDKType {
-  submitter: string;
-  evidence: AnySDKType | undefined;
-}
-/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */
-export interface MsgSubmitEvidenceResponse {
-  /** hash defines the hash of the evidence. */
-  hash: Uint8Array;
-}
-export interface MsgSubmitEvidenceResponseProtoMsg {
-  typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidenceResponse";
-  value: Uint8Array;
-}
-/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */
-export interface MsgSubmitEvidenceResponseAmino {
-  /** hash defines the hash of the evidence. */
-  hash: Uint8Array;
-}
-export interface MsgSubmitEvidenceResponseAminoMsg {
-  type: "cosmos-sdk/MsgSubmitEvidenceResponse";
-  value: MsgSubmitEvidenceResponseAmino;
-}
-/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */
-export interface MsgSubmitEvidenceResponseSDKType {
-  hash: Uint8Array;
-}
-function createBaseMsgSubmitEvidence(): MsgSubmitEvidence {
-  return {
-    submitter: "",
-    evidence: Any.fromPartial({})
-  };
-}
-export const MsgSubmitEvidence = {
-  typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-  aminoType: "cosmos-sdk/MsgSubmitEvidence",
-  encode(message: MsgSubmitEvidence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.submitter !== "") {
-      writer.uint32(10).string(message.submitter);
-    }
-    if (message.evidence !== undefined) {
-      Any.encode(message.evidence, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitEvidence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitEvidence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.submitter = reader.string();
-          break;
-        case 2:
-          message.evidence = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitEvidence {
-    return {
-      submitter: isSet(object.submitter) ? String(object.submitter) : "",
-      evidence: isSet(object.evidence) ? Any.fromJSON(object.evidence) : undefined
-    };
-  },
-  toJSON(message: MsgSubmitEvidence): unknown {
-    const obj: any = {};
-    message.submitter !== undefined && (obj.submitter = message.submitter);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? Any.toJSON(message.evidence) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitEvidence>): MsgSubmitEvidence {
-    const message = createBaseMsgSubmitEvidence();
-    message.submitter = object.submitter ?? "";
-    message.evidence = object.evidence !== undefined && object.evidence !== null ? Any.fromPartial(object.evidence) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgSubmitEvidenceSDKType): MsgSubmitEvidence {
-    return {
-      submitter: object?.submitter,
-      evidence: object.evidence ? Any.fromSDK(object.evidence) : undefined
-    };
-  },
-  toSDK(message: MsgSubmitEvidence): MsgSubmitEvidenceSDKType {
-    const obj: any = {};
-    obj.submitter = message.submitter;
-    message.evidence !== undefined && (obj.evidence = message.evidence ? Any.toSDK(message.evidence) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgSubmitEvidenceAmino): MsgSubmitEvidence {
-    return {
-      submitter: object.submitter,
-      evidence: object?.evidence ? Any.fromAmino(object.evidence) : undefined
-    };
-  },
-  toAmino(message: MsgSubmitEvidence): MsgSubmitEvidenceAmino {
-    const obj: any = {};
-    obj.submitter = message.submitter;
-    obj.evidence = message.evidence ? Any.toAmino(message.evidence) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitEvidenceAminoMsg): MsgSubmitEvidence {
-    return MsgSubmitEvidence.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitEvidence): MsgSubmitEvidenceAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitEvidence",
-      value: MsgSubmitEvidence.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitEvidenceProtoMsg): MsgSubmitEvidence {
-    return MsgSubmitEvidence.decode(message.value);
-  },
-  toProto(message: MsgSubmitEvidence): Uint8Array {
-    return MsgSubmitEvidence.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitEvidence): MsgSubmitEvidenceProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidence",
-      value: MsgSubmitEvidence.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitEvidenceResponse(): MsgSubmitEvidenceResponse {
-  return {
-    hash: new Uint8Array()
-  };
-}
-export const MsgSubmitEvidenceResponse = {
-  typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidenceResponse",
-  aminoType: "cosmos-sdk/MsgSubmitEvidenceResponse",
-  encode(message: MsgSubmitEvidenceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash.length !== 0) {
-      writer.uint32(34).bytes(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitEvidenceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitEvidenceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 4:
-          message.hash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitEvidenceResponse {
-    return {
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgSubmitEvidenceResponse): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitEvidenceResponse>): MsgSubmitEvidenceResponse {
-    const message = createBaseMsgSubmitEvidenceResponse();
-    message.hash = object.hash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgSubmitEvidenceResponseSDKType): MsgSubmitEvidenceResponse {
-    return {
-      hash: object?.hash
-    };
-  },
-  toSDK(message: MsgSubmitEvidenceResponse): MsgSubmitEvidenceResponseSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitEvidenceResponseAmino): MsgSubmitEvidenceResponse {
-    return {
-      hash: object.hash
-    };
-  },
-  toAmino(message: MsgSubmitEvidenceResponse): MsgSubmitEvidenceResponseAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitEvidenceResponseAminoMsg): MsgSubmitEvidenceResponse {
-    return MsgSubmitEvidenceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitEvidenceResponse): MsgSubmitEvidenceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitEvidenceResponse",
-      value: MsgSubmitEvidenceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitEvidenceResponseProtoMsg): MsgSubmitEvidenceResponse {
-    return MsgSubmitEvidenceResponse.decode(message.value);
-  },
-  toProto(message: MsgSubmitEvidenceResponse): Uint8Array {
-    return MsgSubmitEvidenceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitEvidenceResponse): MsgSubmitEvidenceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.evidence.v1beta1.MsgSubmitEvidenceResponse",
-      value: MsgSubmitEvidenceResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/feegrant.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/feegrant.ts
deleted file mode 100644
index 8d2691db..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/feegrant.ts
+++ /dev/null
@@ -1,692 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-/**
- * BasicAllowance implements Allowance with a one-time grant of tokens
- * that optionally expires. The grantee can use up to SpendLimit to cover fees.
- */
-export interface BasicAllowance {
-  /**
-   * spend_limit specifies the maximum amount of tokens that can be spent
-   * by this allowance and will be updated as tokens are spent. If it is
-   * empty, there is no spend limit and any amount of coins can be spent.
-   */
-  spendLimit: Coin[];
-  /** expiration specifies an optional time when this allowance expires */
-  expiration: Date | undefined;
-}
-export interface BasicAllowanceProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.BasicAllowance";
-  value: Uint8Array;
-}
-/**
- * BasicAllowance implements Allowance with a one-time grant of tokens
- * that optionally expires. The grantee can use up to SpendLimit to cover fees.
- */
-export interface BasicAllowanceAmino {
-  /**
-   * spend_limit specifies the maximum amount of tokens that can be spent
-   * by this allowance and will be updated as tokens are spent. If it is
-   * empty, there is no spend limit and any amount of coins can be spent.
-   */
-  spend_limit: CoinAmino[];
-  /** expiration specifies an optional time when this allowance expires */
-  expiration?: Date | undefined;
-}
-export interface BasicAllowanceAminoMsg {
-  type: "cosmos-sdk/BasicAllowance";
-  value: BasicAllowanceAmino;
-}
-/**
- * BasicAllowance implements Allowance with a one-time grant of tokens
- * that optionally expires. The grantee can use up to SpendLimit to cover fees.
- */
-export interface BasicAllowanceSDKType {
-  spend_limit: CoinSDKType[];
-  expiration: Date | undefined;
-}
-/**
- * PeriodicAllowance extends Allowance to allow for both a maximum cap,
- * as well as a limit per time period.
- */
-export interface PeriodicAllowance {
-  /** basic specifies a struct of `BasicAllowance` */
-  basic: BasicAllowance | undefined;
-  /**
-   * period specifies the time duration in which period_spend_limit coins can
-   * be spent before that allowance is reset
-   */
-  period: Duration | undefined;
-  /**
-   * period_spend_limit specifies the maximum number of coins that can be spent
-   * in the period
-   */
-  periodSpendLimit: Coin[];
-  /** period_can_spend is the number of coins left to be spent before the period_reset time */
-  periodCanSpend: Coin[];
-  /**
-   * period_reset is the time at which this period resets and a new one begins,
-   * it is calculated from the start time of the first transaction after the
-   * last period ended
-   */
-  periodReset: Date | undefined;
-}
-export interface PeriodicAllowanceProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.PeriodicAllowance";
-  value: Uint8Array;
-}
-/**
- * PeriodicAllowance extends Allowance to allow for both a maximum cap,
- * as well as a limit per time period.
- */
-export interface PeriodicAllowanceAmino {
-  /** basic specifies a struct of `BasicAllowance` */
-  basic?: BasicAllowanceAmino | undefined;
-  /**
-   * period specifies the time duration in which period_spend_limit coins can
-   * be spent before that allowance is reset
-   */
-  period?: DurationAmino | undefined;
-  /**
-   * period_spend_limit specifies the maximum number of coins that can be spent
-   * in the period
-   */
-  period_spend_limit: CoinAmino[];
-  /** period_can_spend is the number of coins left to be spent before the period_reset time */
-  period_can_spend: CoinAmino[];
-  /**
-   * period_reset is the time at which this period resets and a new one begins,
-   * it is calculated from the start time of the first transaction after the
-   * last period ended
-   */
-  period_reset?: Date | undefined;
-}
-export interface PeriodicAllowanceAminoMsg {
-  type: "cosmos-sdk/PeriodicAllowance";
-  value: PeriodicAllowanceAmino;
-}
-/**
- * PeriodicAllowance extends Allowance to allow for both a maximum cap,
- * as well as a limit per time period.
- */
-export interface PeriodicAllowanceSDKType {
-  basic: BasicAllowanceSDKType | undefined;
-  period: DurationSDKType | undefined;
-  period_spend_limit: CoinSDKType[];
-  period_can_spend: CoinSDKType[];
-  period_reset: Date | undefined;
-}
-/** AllowedMsgAllowance creates allowance only for specified message types. */
-export interface AllowedMsgAllowance {
-  /** allowance can be any of basic and periodic fee allowance. */
-  allowance: Any | undefined;
-  /** allowed_messages are the messages for which the grantee has the access. */
-  allowedMessages: string[];
-}
-export interface AllowedMsgAllowanceProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.AllowedMsgAllowance";
-  value: Uint8Array;
-}
-/** AllowedMsgAllowance creates allowance only for specified message types. */
-export interface AllowedMsgAllowanceAmino {
-  /** allowance can be any of basic and periodic fee allowance. */
-  allowance?: AnyAmino | undefined;
-  /** allowed_messages are the messages for which the grantee has the access. */
-  allowed_messages: string[];
-}
-export interface AllowedMsgAllowanceAminoMsg {
-  type: "cosmos-sdk/AllowedMsgAllowance";
-  value: AllowedMsgAllowanceAmino;
-}
-/** AllowedMsgAllowance creates allowance only for specified message types. */
-export interface AllowedMsgAllowanceSDKType {
-  allowance: AnySDKType | undefined;
-  allowed_messages: string[];
-}
-/** Grant is stored in the KVStore to record a grant with full context */
-export interface Grant {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-  /** allowance can be any of basic, periodic, allowed fee allowance. */
-  allowance: Any | undefined;
-}
-export interface GrantProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.Grant";
-  value: Uint8Array;
-}
-/** Grant is stored in the KVStore to record a grant with full context */
-export interface GrantAmino {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-  /** allowance can be any of basic, periodic, allowed fee allowance. */
-  allowance?: AnyAmino | undefined;
-}
-export interface GrantAminoMsg {
-  type: "cosmos-sdk/Grant";
-  value: GrantAmino;
-}
-/** Grant is stored in the KVStore to record a grant with full context */
-export interface GrantSDKType {
-  granter: string;
-  grantee: string;
-  allowance: AnySDKType | undefined;
-}
-function createBaseBasicAllowance(): BasicAllowance {
-  return {
-    spendLimit: [],
-    expiration: new Date()
-  };
-}
-export const BasicAllowance = {
-  typeUrl: "/cosmos.feegrant.v1beta1.BasicAllowance",
-  aminoType: "cosmos-sdk/BasicAllowance",
-  encode(message: BasicAllowance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.spendLimit) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.expiration !== undefined) {
-      Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BasicAllowance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBasicAllowance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.spendLimit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BasicAllowance {
-    return {
-      spendLimit: Array.isArray(object?.spendLimit) ? object.spendLimit.map((e: any) => Coin.fromJSON(e)) : [],
-      expiration: isSet(object.expiration) ? new Date(object.expiration) : undefined
-    };
-  },
-  toJSON(message: BasicAllowance): unknown {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spendLimit = message.spendLimit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.spendLimit = [];
-    }
-    message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BasicAllowance>): BasicAllowance {
-    const message = createBaseBasicAllowance();
-    message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || [];
-    message.expiration = object.expiration ?? undefined;
-    return message;
-  },
-  fromSDK(object: BasicAllowanceSDKType): BasicAllowance {
-    return {
-      spendLimit: Array.isArray(object?.spend_limit) ? object.spend_limit.map((e: any) => Coin.fromSDK(e)) : [],
-      expiration: object.expiration ?? undefined
-    };
-  },
-  toSDK(message: BasicAllowance): BasicAllowanceSDKType {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spend_limit = message.spendLimit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.spend_limit = [];
-    }
-    message.expiration !== undefined && (obj.expiration = message.expiration ?? undefined);
-    return obj;
-  },
-  fromAmino(object: BasicAllowanceAmino): BasicAllowance {
-    return {
-      spendLimit: Array.isArray(object?.spend_limit) ? object.spend_limit.map((e: any) => Coin.fromAmino(e)) : [],
-      expiration: object.expiration
-    };
-  },
-  toAmino(message: BasicAllowance): BasicAllowanceAmino {
-    const obj: any = {};
-    if (message.spendLimit) {
-      obj.spend_limit = message.spendLimit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.spend_limit = [];
-    }
-    obj.expiration = message.expiration;
-    return obj;
-  },
-  fromAminoMsg(object: BasicAllowanceAminoMsg): BasicAllowance {
-    return BasicAllowance.fromAmino(object.value);
-  },
-  toAminoMsg(message: BasicAllowance): BasicAllowanceAminoMsg {
-    return {
-      type: "cosmos-sdk/BasicAllowance",
-      value: BasicAllowance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BasicAllowanceProtoMsg): BasicAllowance {
-    return BasicAllowance.decode(message.value);
-  },
-  toProto(message: BasicAllowance): Uint8Array {
-    return BasicAllowance.encode(message).finish();
-  },
-  toProtoMsg(message: BasicAllowance): BasicAllowanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.BasicAllowance",
-      value: BasicAllowance.encode(message).finish()
-    };
-  }
-};
-function createBasePeriodicAllowance(): PeriodicAllowance {
-  return {
-    basic: BasicAllowance.fromPartial({}),
-    period: Duration.fromPartial({}),
-    periodSpendLimit: [],
-    periodCanSpend: [],
-    periodReset: new Date()
-  };
-}
-export const PeriodicAllowance = {
-  typeUrl: "/cosmos.feegrant.v1beta1.PeriodicAllowance",
-  aminoType: "cosmos-sdk/PeriodicAllowance",
-  encode(message: PeriodicAllowance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.basic !== undefined) {
-      BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.period !== undefined) {
-      Duration.encode(message.period, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.periodSpendLimit) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.periodCanSpend) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.periodReset !== undefined) {
-      Timestamp.encode(toTimestamp(message.periodReset), writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PeriodicAllowance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeriodicAllowance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.basic = BasicAllowance.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.period = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.periodSpendLimit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.periodCanSpend.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.periodReset = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PeriodicAllowance {
-    return {
-      basic: isSet(object.basic) ? BasicAllowance.fromJSON(object.basic) : undefined,
-      period: isSet(object.period) ? Duration.fromJSON(object.period) : undefined,
-      periodSpendLimit: Array.isArray(object?.periodSpendLimit) ? object.periodSpendLimit.map((e: any) => Coin.fromJSON(e)) : [],
-      periodCanSpend: Array.isArray(object?.periodCanSpend) ? object.periodCanSpend.map((e: any) => Coin.fromJSON(e)) : [],
-      periodReset: isSet(object.periodReset) ? new Date(object.periodReset) : undefined
-    };
-  },
-  toJSON(message: PeriodicAllowance): unknown {
-    const obj: any = {};
-    message.basic !== undefined && (obj.basic = message.basic ? BasicAllowance.toJSON(message.basic) : undefined);
-    message.period !== undefined && (obj.period = message.period ? Duration.toJSON(message.period) : undefined);
-    if (message.periodSpendLimit) {
-      obj.periodSpendLimit = message.periodSpendLimit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.periodSpendLimit = [];
-    }
-    if (message.periodCanSpend) {
-      obj.periodCanSpend = message.periodCanSpend.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.periodCanSpend = [];
-    }
-    message.periodReset !== undefined && (obj.periodReset = message.periodReset.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PeriodicAllowance>): PeriodicAllowance {
-    const message = createBasePeriodicAllowance();
-    message.basic = object.basic !== undefined && object.basic !== null ? BasicAllowance.fromPartial(object.basic) : undefined;
-    message.period = object.period !== undefined && object.period !== null ? Duration.fromPartial(object.period) : undefined;
-    message.periodSpendLimit = object.periodSpendLimit?.map(e => Coin.fromPartial(e)) || [];
-    message.periodCanSpend = object.periodCanSpend?.map(e => Coin.fromPartial(e)) || [];
-    message.periodReset = object.periodReset ?? undefined;
-    return message;
-  },
-  fromSDK(object: PeriodicAllowanceSDKType): PeriodicAllowance {
-    return {
-      basic: object.basic ? BasicAllowance.fromSDK(object.basic) : undefined,
-      period: object.period ? Duration.fromSDK(object.period) : undefined,
-      periodSpendLimit: Array.isArray(object?.period_spend_limit) ? object.period_spend_limit.map((e: any) => Coin.fromSDK(e)) : [],
-      periodCanSpend: Array.isArray(object?.period_can_spend) ? object.period_can_spend.map((e: any) => Coin.fromSDK(e)) : [],
-      periodReset: object.period_reset ?? undefined
-    };
-  },
-  toSDK(message: PeriodicAllowance): PeriodicAllowanceSDKType {
-    const obj: any = {};
-    message.basic !== undefined && (obj.basic = message.basic ? BasicAllowance.toSDK(message.basic) : undefined);
-    message.period !== undefined && (obj.period = message.period ? Duration.toSDK(message.period) : undefined);
-    if (message.periodSpendLimit) {
-      obj.period_spend_limit = message.periodSpendLimit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.period_spend_limit = [];
-    }
-    if (message.periodCanSpend) {
-      obj.period_can_spend = message.periodCanSpend.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.period_can_spend = [];
-    }
-    message.periodReset !== undefined && (obj.period_reset = message.periodReset ?? undefined);
-    return obj;
-  },
-  fromAmino(object: PeriodicAllowanceAmino): PeriodicAllowance {
-    return {
-      basic: object?.basic ? BasicAllowance.fromAmino(object.basic) : undefined,
-      period: object?.period ? Duration.fromAmino(object.period) : undefined,
-      periodSpendLimit: Array.isArray(object?.period_spend_limit) ? object.period_spend_limit.map((e: any) => Coin.fromAmino(e)) : [],
-      periodCanSpend: Array.isArray(object?.period_can_spend) ? object.period_can_spend.map((e: any) => Coin.fromAmino(e)) : [],
-      periodReset: object.period_reset
-    };
-  },
-  toAmino(message: PeriodicAllowance): PeriodicAllowanceAmino {
-    const obj: any = {};
-    obj.basic = message.basic ? BasicAllowance.toAmino(message.basic) : undefined;
-    obj.period = message.period ? Duration.toAmino(message.period) : undefined;
-    if (message.periodSpendLimit) {
-      obj.period_spend_limit = message.periodSpendLimit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.period_spend_limit = [];
-    }
-    if (message.periodCanSpend) {
-      obj.period_can_spend = message.periodCanSpend.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.period_can_spend = [];
-    }
-    obj.period_reset = message.periodReset;
-    return obj;
-  },
-  fromAminoMsg(object: PeriodicAllowanceAminoMsg): PeriodicAllowance {
-    return PeriodicAllowance.fromAmino(object.value);
-  },
-  toAminoMsg(message: PeriodicAllowance): PeriodicAllowanceAminoMsg {
-    return {
-      type: "cosmos-sdk/PeriodicAllowance",
-      value: PeriodicAllowance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PeriodicAllowanceProtoMsg): PeriodicAllowance {
-    return PeriodicAllowance.decode(message.value);
-  },
-  toProto(message: PeriodicAllowance): Uint8Array {
-    return PeriodicAllowance.encode(message).finish();
-  },
-  toProtoMsg(message: PeriodicAllowance): PeriodicAllowanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.PeriodicAllowance",
-      value: PeriodicAllowance.encode(message).finish()
-    };
-  }
-};
-function createBaseAllowedMsgAllowance(): AllowedMsgAllowance {
-  return {
-    allowance: Any.fromPartial({}),
-    allowedMessages: []
-  };
-}
-export const AllowedMsgAllowance = {
-  typeUrl: "/cosmos.feegrant.v1beta1.AllowedMsgAllowance",
-  aminoType: "cosmos-sdk/AllowedMsgAllowance",
-  encode(message: AllowedMsgAllowance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.allowance !== undefined) {
-      Any.encode(message.allowance, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.allowedMessages) {
-      writer.uint32(18).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AllowedMsgAllowance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAllowedMsgAllowance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowance = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.allowedMessages.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AllowedMsgAllowance {
-    return {
-      allowance: isSet(object.allowance) ? Any.fromJSON(object.allowance) : undefined,
-      allowedMessages: Array.isArray(object?.allowedMessages) ? object.allowedMessages.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: AllowedMsgAllowance): unknown {
-    const obj: any = {};
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toJSON(message.allowance) : undefined);
-    if (message.allowedMessages) {
-      obj.allowedMessages = message.allowedMessages.map(e => e);
-    } else {
-      obj.allowedMessages = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AllowedMsgAllowance>): AllowedMsgAllowance {
-    const message = createBaseAllowedMsgAllowance();
-    message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined;
-    message.allowedMessages = object.allowedMessages?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: AllowedMsgAllowanceSDKType): AllowedMsgAllowance {
-    return {
-      allowance: object.allowance ? Any.fromSDK(object.allowance) : undefined,
-      allowedMessages: Array.isArray(object?.allowed_messages) ? object.allowed_messages.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: AllowedMsgAllowance): AllowedMsgAllowanceSDKType {
-    const obj: any = {};
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toSDK(message.allowance) : undefined);
-    if (message.allowedMessages) {
-      obj.allowed_messages = message.allowedMessages.map(e => e);
-    } else {
-      obj.allowed_messages = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AllowedMsgAllowanceAmino): AllowedMsgAllowance {
-    return {
-      allowance: object?.allowance ? Any.fromAmino(object.allowance) : undefined,
-      allowedMessages: Array.isArray(object?.allowed_messages) ? object.allowed_messages.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: AllowedMsgAllowance): AllowedMsgAllowanceAmino {
-    const obj: any = {};
-    obj.allowance = message.allowance ? Any.toAmino(message.allowance) : undefined;
-    if (message.allowedMessages) {
-      obj.allowed_messages = message.allowedMessages.map(e => e);
-    } else {
-      obj.allowed_messages = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AllowedMsgAllowanceAminoMsg): AllowedMsgAllowance {
-    return AllowedMsgAllowance.fromAmino(object.value);
-  },
-  toAminoMsg(message: AllowedMsgAllowance): AllowedMsgAllowanceAminoMsg {
-    return {
-      type: "cosmos-sdk/AllowedMsgAllowance",
-      value: AllowedMsgAllowance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AllowedMsgAllowanceProtoMsg): AllowedMsgAllowance {
-    return AllowedMsgAllowance.decode(message.value);
-  },
-  toProto(message: AllowedMsgAllowance): Uint8Array {
-    return AllowedMsgAllowance.encode(message).finish();
-  },
-  toProtoMsg(message: AllowedMsgAllowance): AllowedMsgAllowanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.AllowedMsgAllowance",
-      value: AllowedMsgAllowance.encode(message).finish()
-    };
-  }
-};
-function createBaseGrant(): Grant {
-  return {
-    granter: "",
-    grantee: "",
-    allowance: Any.fromPartial({})
-  };
-}
-export const Grant = {
-  typeUrl: "/cosmos.feegrant.v1beta1.Grant",
-  aminoType: "cosmos-sdk/Grant",
-  encode(message: Grant, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.allowance !== undefined) {
-      Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Grant {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGrant();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.allowance = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Grant {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      allowance: isSet(object.allowance) ? Any.fromJSON(object.allowance) : undefined
-    };
-  },
-  toJSON(message: Grant): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toJSON(message.allowance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Grant>): Grant {
-    const message = createBaseGrant();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined;
-    return message;
-  },
-  fromSDK(object: GrantSDKType): Grant {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      allowance: object.allowance ? Any.fromSDK(object.allowance) : undefined
-    };
-  },
-  toSDK(message: Grant): GrantSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toSDK(message.allowance) : undefined);
-    return obj;
-  },
-  fromAmino(object: GrantAmino): Grant {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      allowance: object?.allowance ? Any.fromAmino(object.allowance) : undefined
-    };
-  },
-  toAmino(message: Grant): GrantAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.allowance = message.allowance ? Any.toAmino(message.allowance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GrantAminoMsg): Grant {
-    return Grant.fromAmino(object.value);
-  },
-  toAminoMsg(message: Grant): GrantAminoMsg {
-    return {
-      type: "cosmos-sdk/Grant",
-      value: Grant.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GrantProtoMsg): Grant {
-    return Grant.decode(message.value);
-  },
-  toProto(message: Grant): Uint8Array {
-    return Grant.encode(message).finish();
-  },
-  toProtoMsg(message: Grant): GrantProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.Grant",
-      value: Grant.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/genesis.ts
deleted file mode 100644
index bb020f5a..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/genesis.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { Grant, GrantAmino, GrantSDKType } from "./feegrant";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial } from "../../../helpers";
-/** GenesisState contains a set of fee allowances, persisted from the store */
-export interface GenesisState {
-  allowances: Grant[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState contains a set of fee allowances, persisted from the store */
-export interface GenesisStateAmino {
-  allowances: GrantAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState contains a set of fee allowances, persisted from the store */
-export interface GenesisStateSDKType {
-  allowances: GrantSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    allowances: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.feegrant.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.allowances) {
-      Grant.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowances.push(Grant.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toJSON(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toSDK(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toAmino(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 1dc263bc..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,146 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryAllowanceRequest, QueryAllowanceResponse, QueryAllowancesRequest, QueryAllowancesResponse, QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Allowance returns fee granted to the grantee by the granter. */
-  allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
-  /** Allowances returns all the grants for address. */
-  allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
-  /**
-   * AllowancesByGranter returns all the grants given by an address
-   * Since v0.46
-   */
-  allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.allowance = this.allowance.bind(this);
-    this.allowances = this.allowances.bind(this);
-    this.allowancesByGranter = this.allowancesByGranter.bind(this);
-  }
-  allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse> {
-    const data = QueryAllowanceRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowance", data);
-    return promise.then(data => QueryAllowanceResponse.decode(new BinaryReader(data)));
-  }
-  allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse> {
-    const data = QueryAllowancesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowances", data);
-    return promise.then(data => QueryAllowancesResponse.decode(new BinaryReader(data)));
-  }
-  allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse> {
-    const data = QueryAllowancesByGranterRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "AllowancesByGranter", data);
-    return promise.then(data => QueryAllowancesByGranterResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse> {
-      return queryService.allowance(request);
-    },
-    allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse> {
-      return queryService.allowances(request);
-    },
-    allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse> {
-      return queryService.allowancesByGranter(request);
-    }
-  };
-};
-export interface UseAllowanceQuery<TData> extends ReactQueryParams<QueryAllowanceResponse, TData> {
-  request: QueryAllowanceRequest;
-}
-export interface UseAllowancesQuery<TData> extends ReactQueryParams<QueryAllowancesResponse, TData> {
-  request: QueryAllowancesRequest;
-}
-export interface UseAllowancesByGranterQuery<TData> extends ReactQueryParams<QueryAllowancesByGranterResponse, TData> {
-  request: QueryAllowancesByGranterRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useAllowance = <TData = QueryAllowanceResponse,>({
-    request,
-    options
-  }: UseAllowanceQuery<TData>) => {
-    return useQuery<QueryAllowanceResponse, Error, TData>(["allowanceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allowance(request);
-    }, options);
-  };
-  const useAllowances = <TData = QueryAllowancesResponse,>({
-    request,
-    options
-  }: UseAllowancesQuery<TData>) => {
-    return useQuery<QueryAllowancesResponse, Error, TData>(["allowancesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allowances(request);
-    }, options);
-  };
-  const useAllowancesByGranter = <TData = QueryAllowancesByGranterResponse,>({
-    request,
-    options
-  }: UseAllowancesByGranterQuery<TData>) => {
-    return useQuery<QueryAllowancesByGranterResponse, Error, TData>(["allowancesByGranterQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allowancesByGranter(request);
-    }, options);
-  };
-  return {
-    /** Allowance returns fee granted to the grantee by the granter. */useAllowance,
-    /** Allowances returns all the grants for address. */useAllowances,
-    /**
-     * AllowancesByGranter returns all the grants given by an address
-     * Since v0.46
-     */
-    useAllowancesByGranter
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryAllowanceStore {
-    store = new QueryStore<QueryAllowanceRequest, QueryAllowanceResponse>(queryService?.allowance);
-    allowance(request: QueryAllowanceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllowancesStore {
-    store = new QueryStore<QueryAllowancesRequest, QueryAllowancesResponse>(queryService?.allowances);
-    allowances(request: QueryAllowancesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllowancesByGranterStore {
-    store = new QueryStore<QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponse>(queryService?.allowancesByGranter);
-    allowancesByGranter(request: QueryAllowancesByGranterRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Allowance returns fee granted to the grantee by the granter. */QueryAllowanceStore,
-    /** Allowances returns all the grants for address. */QueryAllowancesStore,
-    /**
-     * AllowancesByGranter returns all the grants given by an address
-     * Since v0.46
-     */
-    QueryAllowancesByGranterStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.ts
deleted file mode 100644
index ac0cd19c..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/query.ts
+++ /dev/null
@@ -1,779 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Grant, GrantAmino, GrantSDKType } from "./feegrant";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */
-export interface QueryAllowanceRequest {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-}
-export interface QueryAllowanceRequestProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceRequest";
-  value: Uint8Array;
-}
-/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */
-export interface QueryAllowanceRequestAmino {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-}
-export interface QueryAllowanceRequestAminoMsg {
-  type: "cosmos-sdk/QueryAllowanceRequest";
-  value: QueryAllowanceRequestAmino;
-}
-/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */
-export interface QueryAllowanceRequestSDKType {
-  granter: string;
-  grantee: string;
-}
-/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */
-export interface QueryAllowanceResponse {
-  /** allowance is a allowance granted for grantee by granter. */
-  allowance: Grant | undefined;
-}
-export interface QueryAllowanceResponseProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceResponse";
-  value: Uint8Array;
-}
-/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */
-export interface QueryAllowanceResponseAmino {
-  /** allowance is a allowance granted for grantee by granter. */
-  allowance?: GrantAmino | undefined;
-}
-export interface QueryAllowanceResponseAminoMsg {
-  type: "cosmos-sdk/QueryAllowanceResponse";
-  value: QueryAllowanceResponseAmino;
-}
-/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */
-export interface QueryAllowanceResponseSDKType {
-  allowance: GrantSDKType | undefined;
-}
-/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */
-export interface QueryAllowancesRequest {
-  grantee: string;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAllowancesRequestProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesRequest";
-  value: Uint8Array;
-}
-/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */
-export interface QueryAllowancesRequestAmino {
-  grantee: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAllowancesRequestAminoMsg {
-  type: "cosmos-sdk/QueryAllowancesRequest";
-  value: QueryAllowancesRequestAmino;
-}
-/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */
-export interface QueryAllowancesRequestSDKType {
-  grantee: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */
-export interface QueryAllowancesResponse {
-  /** allowances are allowance's granted for grantee by granter. */
-  allowances: Grant[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAllowancesResponseProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesResponse";
-  value: Uint8Array;
-}
-/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */
-export interface QueryAllowancesResponseAmino {
-  /** allowances are allowance's granted for grantee by granter. */
-  allowances: GrantAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAllowancesResponseAminoMsg {
-  type: "cosmos-sdk/QueryAllowancesResponse";
-  value: QueryAllowancesResponseAmino;
-}
-/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */
-export interface QueryAllowancesResponseSDKType {
-  allowances: GrantSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterRequest {
-  granter: string;
-  /** pagination defines an pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAllowancesByGranterRequestProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest";
-  value: Uint8Array;
-}
-/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterRequestAmino {
-  granter: string;
-  /** pagination defines an pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAllowancesByGranterRequestAminoMsg {
-  type: "cosmos-sdk/QueryAllowancesByGranterRequest";
-  value: QueryAllowancesByGranterRequestAmino;
-}
-/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterRequestSDKType {
-  granter: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterResponse {
-  /** allowances that have been issued by the granter. */
-  allowances: Grant[];
-  /** pagination defines an pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAllowancesByGranterResponseProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse";
-  value: Uint8Array;
-}
-/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterResponseAmino {
-  /** allowances that have been issued by the granter. */
-  allowances: GrantAmino[];
-  /** pagination defines an pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAllowancesByGranterResponseAminoMsg {
-  type: "cosmos-sdk/QueryAllowancesByGranterResponse";
-  value: QueryAllowancesByGranterResponseAmino;
-}
-/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */
-export interface QueryAllowancesByGranterResponseSDKType {
-  allowances: GrantSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryAllowanceRequest(): QueryAllowanceRequest {
-  return {
-    granter: "",
-    grantee: ""
-  };
-}
-export const QueryAllowanceRequest = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceRequest",
-  aminoType: "cosmos-sdk/QueryAllowanceRequest",
-  encode(message: QueryAllowanceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowanceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowanceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowanceRequest {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : ""
-    };
-  },
-  toJSON(message: QueryAllowanceRequest): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowanceRequest>): QueryAllowanceRequest {
-    const message = createBaseQueryAllowanceRequest();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAllowanceRequestSDKType): QueryAllowanceRequest {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee
-    };
-  },
-  toSDK(message: QueryAllowanceRequest): QueryAllowanceRequestSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAmino(object: QueryAllowanceRequestAmino): QueryAllowanceRequest {
-    return {
-      granter: object.granter,
-      grantee: object.grantee
-    };
-  },
-  toAmino(message: QueryAllowanceRequest): QueryAllowanceRequestAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowanceRequestAminoMsg): QueryAllowanceRequest {
-    return QueryAllowanceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowanceRequest): QueryAllowanceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowanceRequest",
-      value: QueryAllowanceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowanceRequestProtoMsg): QueryAllowanceRequest {
-    return QueryAllowanceRequest.decode(message.value);
-  },
-  toProto(message: QueryAllowanceRequest): Uint8Array {
-    return QueryAllowanceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowanceRequest): QueryAllowanceRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceRequest",
-      value: QueryAllowanceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllowanceResponse(): QueryAllowanceResponse {
-  return {
-    allowance: Grant.fromPartial({})
-  };
-}
-export const QueryAllowanceResponse = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceResponse",
-  aminoType: "cosmos-sdk/QueryAllowanceResponse",
-  encode(message: QueryAllowanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.allowance !== undefined) {
-      Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowance = Grant.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowanceResponse {
-    return {
-      allowance: isSet(object.allowance) ? Grant.fromJSON(object.allowance) : undefined
-    };
-  },
-  toJSON(message: QueryAllowanceResponse): unknown {
-    const obj: any = {};
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Grant.toJSON(message.allowance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowanceResponse>): QueryAllowanceResponse {
-    const message = createBaseQueryAllowanceResponse();
-    message.allowance = object.allowance !== undefined && object.allowance !== null ? Grant.fromPartial(object.allowance) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllowanceResponseSDKType): QueryAllowanceResponse {
-    return {
-      allowance: object.allowance ? Grant.fromSDK(object.allowance) : undefined
-    };
-  },
-  toSDK(message: QueryAllowanceResponse): QueryAllowanceResponseSDKType {
-    const obj: any = {};
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Grant.toSDK(message.allowance) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllowanceResponseAmino): QueryAllowanceResponse {
-    return {
-      allowance: object?.allowance ? Grant.fromAmino(object.allowance) : undefined
-    };
-  },
-  toAmino(message: QueryAllowanceResponse): QueryAllowanceResponseAmino {
-    const obj: any = {};
-    obj.allowance = message.allowance ? Grant.toAmino(message.allowance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowanceResponseAminoMsg): QueryAllowanceResponse {
-    return QueryAllowanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowanceResponse): QueryAllowanceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowanceResponse",
-      value: QueryAllowanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowanceResponseProtoMsg): QueryAllowanceResponse {
-    return QueryAllowanceResponse.decode(message.value);
-  },
-  toProto(message: QueryAllowanceResponse): Uint8Array {
-    return QueryAllowanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowanceResponse): QueryAllowanceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceResponse",
-      value: QueryAllowanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllowancesRequest(): QueryAllowancesRequest {
-  return {
-    grantee: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAllowancesRequest = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesRequest",
-  aminoType: "cosmos-sdk/QueryAllowancesRequest",
-  encode(message: QueryAllowancesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.grantee !== "") {
-      writer.uint32(10).string(message.grantee);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowancesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowancesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.grantee = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowancesRequest {
-    return {
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllowancesRequest): unknown {
-    const obj: any = {};
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowancesRequest>): QueryAllowancesRequest {
-    const message = createBaseQueryAllowancesRequest();
-    message.grantee = object.grantee ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllowancesRequestSDKType): QueryAllowancesRequest {
-    return {
-      grantee: object?.grantee,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllowancesRequest): QueryAllowancesRequestSDKType {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllowancesRequestAmino): QueryAllowancesRequest {
-    return {
-      grantee: object.grantee,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllowancesRequest): QueryAllowancesRequestAmino {
-    const obj: any = {};
-    obj.grantee = message.grantee;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowancesRequestAminoMsg): QueryAllowancesRequest {
-    return QueryAllowancesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowancesRequest): QueryAllowancesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowancesRequest",
-      value: QueryAllowancesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowancesRequestProtoMsg): QueryAllowancesRequest {
-    return QueryAllowancesRequest.decode(message.value);
-  },
-  toProto(message: QueryAllowancesRequest): Uint8Array {
-    return QueryAllowancesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowancesRequest): QueryAllowancesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesRequest",
-      value: QueryAllowancesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllowancesResponse(): QueryAllowancesResponse {
-  return {
-    allowances: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAllowancesResponse = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesResponse",
-  aminoType: "cosmos-sdk/QueryAllowancesResponse",
-  encode(message: QueryAllowancesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.allowances) {
-      Grant.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowancesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowancesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowances.push(Grant.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowancesResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllowancesResponse): unknown {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toJSON(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowancesResponse>): QueryAllowancesResponse {
-    const message = createBaseQueryAllowancesResponse();
-    message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllowancesResponseSDKType): QueryAllowancesResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllowancesResponse): QueryAllowancesResponseSDKType {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toSDK(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllowancesResponseAmino): QueryAllowancesResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllowancesResponse): QueryAllowancesResponseAmino {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toAmino(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowancesResponseAminoMsg): QueryAllowancesResponse {
-    return QueryAllowancesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowancesResponse): QueryAllowancesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowancesResponse",
-      value: QueryAllowancesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowancesResponseProtoMsg): QueryAllowancesResponse {
-    return QueryAllowancesResponse.decode(message.value);
-  },
-  toProto(message: QueryAllowancesResponse): Uint8Array {
-    return QueryAllowancesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowancesResponse): QueryAllowancesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesResponse",
-      value: QueryAllowancesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllowancesByGranterRequest(): QueryAllowancesByGranterRequest {
-  return {
-    granter: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAllowancesByGranterRequest = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest",
-  aminoType: "cosmos-sdk/QueryAllowancesByGranterRequest",
-  encode(message: QueryAllowancesByGranterRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowancesByGranterRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowancesByGranterRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowancesByGranterRequest {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllowancesByGranterRequest): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowancesByGranterRequest>): QueryAllowancesByGranterRequest {
-    const message = createBaseQueryAllowancesByGranterRequest();
-    message.granter = object.granter ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllowancesByGranterRequestSDKType): QueryAllowancesByGranterRequest {
-    return {
-      granter: object?.granter,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllowancesByGranterRequest): QueryAllowancesByGranterRequestSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllowancesByGranterRequestAmino): QueryAllowancesByGranterRequest {
-    return {
-      granter: object.granter,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllowancesByGranterRequest): QueryAllowancesByGranterRequestAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowancesByGranterRequestAminoMsg): QueryAllowancesByGranterRequest {
-    return QueryAllowancesByGranterRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowancesByGranterRequest): QueryAllowancesByGranterRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowancesByGranterRequest",
-      value: QueryAllowancesByGranterRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowancesByGranterRequestProtoMsg): QueryAllowancesByGranterRequest {
-    return QueryAllowancesByGranterRequest.decode(message.value);
-  },
-  toProto(message: QueryAllowancesByGranterRequest): Uint8Array {
-    return QueryAllowancesByGranterRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowancesByGranterRequest): QueryAllowancesByGranterRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest",
-      value: QueryAllowancesByGranterRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllowancesByGranterResponse(): QueryAllowancesByGranterResponse {
-  return {
-    allowances: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAllowancesByGranterResponse = {
-  typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse",
-  aminoType: "cosmos-sdk/QueryAllowancesByGranterResponse",
-  encode(message: QueryAllowancesByGranterResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.allowances) {
-      Grant.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllowancesByGranterResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllowancesByGranterResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowances.push(Grant.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllowancesByGranterResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllowancesByGranterResponse): unknown {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toJSON(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllowancesByGranterResponse>): QueryAllowancesByGranterResponse {
-    const message = createBaseQueryAllowancesByGranterResponse();
-    message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllowancesByGranterResponseSDKType): QueryAllowancesByGranterResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllowancesByGranterResponse): QueryAllowancesByGranterResponseSDKType {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toSDK(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllowancesByGranterResponseAmino): QueryAllowancesByGranterResponse {
-    return {
-      allowances: Array.isArray(object?.allowances) ? object.allowances.map((e: any) => Grant.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllowancesByGranterResponse): QueryAllowancesByGranterResponseAmino {
-    const obj: any = {};
-    if (message.allowances) {
-      obj.allowances = message.allowances.map(e => e ? Grant.toAmino(e) : undefined);
-    } else {
-      obj.allowances = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllowancesByGranterResponseAminoMsg): QueryAllowancesByGranterResponse {
-    return QueryAllowancesByGranterResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllowancesByGranterResponse): QueryAllowancesByGranterResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAllowancesByGranterResponse",
-      value: QueryAllowancesByGranterResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllowancesByGranterResponseProtoMsg): QueryAllowancesByGranterResponse {
-    return QueryAllowancesByGranterResponse.decode(message.value);
-  },
-  toProto(message: QueryAllowancesByGranterResponse): Uint8Array {
-    return QueryAllowancesByGranterResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllowancesByGranterResponse): QueryAllowancesByGranterResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse",
-      value: QueryAllowancesByGranterResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.amino.ts
deleted file mode 100644
index 1a5cbbbd..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MsgGrantAllowance, MsgRevokeAllowance } from "./tx";
-export const AminoConverter = {
-  "/cosmos.feegrant.v1beta1.MsgGrantAllowance": {
-    aminoType: "cosmos-sdk/MsgGrantAllowance",
-    toAmino: MsgGrantAllowance.toAmino,
-    fromAmino: MsgGrantAllowance.fromAmino
-  },
-  "/cosmos.feegrant.v1beta1.MsgRevokeAllowance": {
-    aminoType: "cosmos-sdk/MsgRevokeAllowance",
-    toAmino: MsgRevokeAllowance.toAmino,
-    fromAmino: MsgRevokeAllowance.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.registry.ts
deleted file mode 100644
index fdac3ac5..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgGrantAllowance, MsgRevokeAllowance } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.feegrant.v1beta1.MsgGrantAllowance", MsgGrantAllowance], ["/cosmos.feegrant.v1beta1.MsgRevokeAllowance", MsgRevokeAllowance]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    grantAllowance(value: MsgGrantAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-        value: MsgGrantAllowance.encode(value).finish()
-      };
-    },
-    revokeAllowance(value: MsgRevokeAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-        value: MsgRevokeAllowance.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    grantAllowance(value: MsgGrantAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-        value
-      };
-    },
-    revokeAllowance(value: MsgRevokeAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-        value
-      };
-    }
-  },
-  toJSON: {
-    grantAllowance(value: MsgGrantAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-        value: MsgGrantAllowance.toJSON(value)
-      };
-    },
-    revokeAllowance(value: MsgRevokeAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-        value: MsgRevokeAllowance.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    grantAllowance(value: any) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-        value: MsgGrantAllowance.fromJSON(value)
-      };
-    },
-    revokeAllowance(value: any) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-        value: MsgRevokeAllowance.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    grantAllowance(value: MsgGrantAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-        value: MsgGrantAllowance.fromPartial(value)
-      };
-    },
-    revokeAllowance(value: MsgRevokeAllowance) {
-      return {
-        typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-        value: MsgRevokeAllowance.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 34b65501..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgGrantAllowance, MsgGrantAllowanceResponse, MsgRevokeAllowance, MsgRevokeAllowanceResponse } from "./tx";
-/** Msg defines the feegrant msg service. */
-export interface Msg {
-  /**
-   * GrantAllowance grants fee allowance to the grantee on the granter's
-   * account with the provided expiration time.
-   */
-  grantAllowance(request: MsgGrantAllowance): Promise<MsgGrantAllowanceResponse>;
-  /**
-   * RevokeAllowance revokes any fee allowance of granter's account that
-   * has been granted to the grantee.
-   */
-  revokeAllowance(request: MsgRevokeAllowance): Promise<MsgRevokeAllowanceResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.grantAllowance = this.grantAllowance.bind(this);
-    this.revokeAllowance = this.revokeAllowance.bind(this);
-  }
-  grantAllowance(request: MsgGrantAllowance): Promise<MsgGrantAllowanceResponse> {
-    const data = MsgGrantAllowance.encode(request).finish();
-    const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "GrantAllowance", data);
-    return promise.then(data => MsgGrantAllowanceResponse.decode(new BinaryReader(data)));
-  }
-  revokeAllowance(request: MsgRevokeAllowance): Promise<MsgRevokeAllowanceResponse> {
-    const data = MsgRevokeAllowance.encode(request).finish();
-    const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "RevokeAllowance", data);
-    return promise.then(data => MsgRevokeAllowanceResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.ts
deleted file mode 100644
index 7ec32ba9..00000000
--- a/examples/injective/src/codegen/cosmos/feegrant/v1beta1/tx.ts
+++ /dev/null
@@ -1,457 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgGrantAllowance adds permission for Grantee to spend up to Allowance
- * of fees from the account of Granter.
- */
-export interface MsgGrantAllowance {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-  /** allowance can be any of basic, periodic, allowed fee allowance. */
-  allowance: Any | undefined;
-}
-export interface MsgGrantAllowanceProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance";
-  value: Uint8Array;
-}
-/**
- * MsgGrantAllowance adds permission for Grantee to spend up to Allowance
- * of fees from the account of Granter.
- */
-export interface MsgGrantAllowanceAmino {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-  /** allowance can be any of basic, periodic, allowed fee allowance. */
-  allowance?: AnyAmino | undefined;
-}
-export interface MsgGrantAllowanceAminoMsg {
-  type: "cosmos-sdk/MsgGrantAllowance";
-  value: MsgGrantAllowanceAmino;
-}
-/**
- * MsgGrantAllowance adds permission for Grantee to spend up to Allowance
- * of fees from the account of Granter.
- */
-export interface MsgGrantAllowanceSDKType {
-  granter: string;
-  grantee: string;
-  allowance: AnySDKType | undefined;
-}
-/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */
-export interface MsgGrantAllowanceResponse {}
-export interface MsgGrantAllowanceResponseProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse";
-  value: Uint8Array;
-}
-/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */
-export interface MsgGrantAllowanceResponseAmino {}
-export interface MsgGrantAllowanceResponseAminoMsg {
-  type: "cosmos-sdk/MsgGrantAllowanceResponse";
-  value: MsgGrantAllowanceResponseAmino;
-}
-/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */
-export interface MsgGrantAllowanceResponseSDKType {}
-/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */
-export interface MsgRevokeAllowance {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-}
-export interface MsgRevokeAllowanceProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance";
-  value: Uint8Array;
-}
-/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */
-export interface MsgRevokeAllowanceAmino {
-  /** granter is the address of the user granting an allowance of their funds. */
-  granter: string;
-  /** grantee is the address of the user being granted an allowance of another user's funds. */
-  grantee: string;
-}
-export interface MsgRevokeAllowanceAminoMsg {
-  type: "cosmos-sdk/MsgRevokeAllowance";
-  value: MsgRevokeAllowanceAmino;
-}
-/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */
-export interface MsgRevokeAllowanceSDKType {
-  granter: string;
-  grantee: string;
-}
-/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */
-export interface MsgRevokeAllowanceResponse {}
-export interface MsgRevokeAllowanceResponseProtoMsg {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse";
-  value: Uint8Array;
-}
-/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */
-export interface MsgRevokeAllowanceResponseAmino {}
-export interface MsgRevokeAllowanceResponseAminoMsg {
-  type: "cosmos-sdk/MsgRevokeAllowanceResponse";
-  value: MsgRevokeAllowanceResponseAmino;
-}
-/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */
-export interface MsgRevokeAllowanceResponseSDKType {}
-function createBaseMsgGrantAllowance(): MsgGrantAllowance {
-  return {
-    granter: "",
-    grantee: "",
-    allowance: Any.fromPartial({})
-  };
-}
-export const MsgGrantAllowance = {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-  aminoType: "cosmos-sdk/MsgGrantAllowance",
-  encode(message: MsgGrantAllowance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    if (message.allowance !== undefined) {
-      Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgGrantAllowance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgGrantAllowance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        case 3:
-          message.allowance = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgGrantAllowance {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : "",
-      allowance: isSet(object.allowance) ? Any.fromJSON(object.allowance) : undefined
-    };
-  },
-  toJSON(message: MsgGrantAllowance): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toJSON(message.allowance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgGrantAllowance>): MsgGrantAllowance {
-    const message = createBaseMsgGrantAllowance();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgGrantAllowanceSDKType): MsgGrantAllowance {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee,
-      allowance: object.allowance ? Any.fromSDK(object.allowance) : undefined
-    };
-  },
-  toSDK(message: MsgGrantAllowance): MsgGrantAllowanceSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    message.allowance !== undefined && (obj.allowance = message.allowance ? Any.toSDK(message.allowance) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgGrantAllowanceAmino): MsgGrantAllowance {
-    return {
-      granter: object.granter,
-      grantee: object.grantee,
-      allowance: object?.allowance ? Any.fromAmino(object.allowance) : undefined
-    };
-  },
-  toAmino(message: MsgGrantAllowance): MsgGrantAllowanceAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    obj.allowance = message.allowance ? Any.toAmino(message.allowance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgGrantAllowanceAminoMsg): MsgGrantAllowance {
-    return MsgGrantAllowance.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgGrantAllowance): MsgGrantAllowanceAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgGrantAllowance",
-      value: MsgGrantAllowance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgGrantAllowanceProtoMsg): MsgGrantAllowance {
-    return MsgGrantAllowance.decode(message.value);
-  },
-  toProto(message: MsgGrantAllowance): Uint8Array {
-    return MsgGrantAllowance.encode(message).finish();
-  },
-  toProtoMsg(message: MsgGrantAllowance): MsgGrantAllowanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance",
-      value: MsgGrantAllowance.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgGrantAllowanceResponse(): MsgGrantAllowanceResponse {
-  return {};
-}
-export const MsgGrantAllowanceResponse = {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse",
-  aminoType: "cosmos-sdk/MsgGrantAllowanceResponse",
-  encode(_: MsgGrantAllowanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgGrantAllowanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgGrantAllowanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgGrantAllowanceResponse {
-    return {};
-  },
-  toJSON(_: MsgGrantAllowanceResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgGrantAllowanceResponse>): MsgGrantAllowanceResponse {
-    const message = createBaseMsgGrantAllowanceResponse();
-    return message;
-  },
-  fromSDK(_: MsgGrantAllowanceResponseSDKType): MsgGrantAllowanceResponse {
-    return {};
-  },
-  toSDK(_: MsgGrantAllowanceResponse): MsgGrantAllowanceResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgGrantAllowanceResponseAmino): MsgGrantAllowanceResponse {
-    return {};
-  },
-  toAmino(_: MsgGrantAllowanceResponse): MsgGrantAllowanceResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgGrantAllowanceResponseAminoMsg): MsgGrantAllowanceResponse {
-    return MsgGrantAllowanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgGrantAllowanceResponse): MsgGrantAllowanceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgGrantAllowanceResponse",
-      value: MsgGrantAllowanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgGrantAllowanceResponseProtoMsg): MsgGrantAllowanceResponse {
-    return MsgGrantAllowanceResponse.decode(message.value);
-  },
-  toProto(message: MsgGrantAllowanceResponse): Uint8Array {
-    return MsgGrantAllowanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgGrantAllowanceResponse): MsgGrantAllowanceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse",
-      value: MsgGrantAllowanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRevokeAllowance(): MsgRevokeAllowance {
-  return {
-    granter: "",
-    grantee: ""
-  };
-}
-export const MsgRevokeAllowance = {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-  aminoType: "cosmos-sdk/MsgRevokeAllowance",
-  encode(message: MsgRevokeAllowance, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.granter !== "") {
-      writer.uint32(10).string(message.granter);
-    }
-    if (message.grantee !== "") {
-      writer.uint32(18).string(message.grantee);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRevokeAllowance {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRevokeAllowance();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.granter = reader.string();
-          break;
-        case 2:
-          message.grantee = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgRevokeAllowance {
-    return {
-      granter: isSet(object.granter) ? String(object.granter) : "",
-      grantee: isSet(object.grantee) ? String(object.grantee) : ""
-    };
-  },
-  toJSON(message: MsgRevokeAllowance): unknown {
-    const obj: any = {};
-    message.granter !== undefined && (obj.granter = message.granter);
-    message.grantee !== undefined && (obj.grantee = message.grantee);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgRevokeAllowance>): MsgRevokeAllowance {
-    const message = createBaseMsgRevokeAllowance();
-    message.granter = object.granter ?? "";
-    message.grantee = object.grantee ?? "";
-    return message;
-  },
-  fromSDK(object: MsgRevokeAllowanceSDKType): MsgRevokeAllowance {
-    return {
-      granter: object?.granter,
-      grantee: object?.grantee
-    };
-  },
-  toSDK(message: MsgRevokeAllowance): MsgRevokeAllowanceSDKType {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAmino(object: MsgRevokeAllowanceAmino): MsgRevokeAllowance {
-    return {
-      granter: object.granter,
-      grantee: object.grantee
-    };
-  },
-  toAmino(message: MsgRevokeAllowance): MsgRevokeAllowanceAmino {
-    const obj: any = {};
-    obj.granter = message.granter;
-    obj.grantee = message.grantee;
-    return obj;
-  },
-  fromAminoMsg(object: MsgRevokeAllowanceAminoMsg): MsgRevokeAllowance {
-    return MsgRevokeAllowance.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRevokeAllowance): MsgRevokeAllowanceAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRevokeAllowance",
-      value: MsgRevokeAllowance.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRevokeAllowanceProtoMsg): MsgRevokeAllowance {
-    return MsgRevokeAllowance.decode(message.value);
-  },
-  toProto(message: MsgRevokeAllowance): Uint8Array {
-    return MsgRevokeAllowance.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRevokeAllowance): MsgRevokeAllowanceProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance",
-      value: MsgRevokeAllowance.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRevokeAllowanceResponse(): MsgRevokeAllowanceResponse {
-  return {};
-}
-export const MsgRevokeAllowanceResponse = {
-  typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse",
-  aminoType: "cosmos-sdk/MsgRevokeAllowanceResponse",
-  encode(_: MsgRevokeAllowanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRevokeAllowanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRevokeAllowanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgRevokeAllowanceResponse {
-    return {};
-  },
-  toJSON(_: MsgRevokeAllowanceResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgRevokeAllowanceResponse>): MsgRevokeAllowanceResponse {
-    const message = createBaseMsgRevokeAllowanceResponse();
-    return message;
-  },
-  fromSDK(_: MsgRevokeAllowanceResponseSDKType): MsgRevokeAllowanceResponse {
-    return {};
-  },
-  toSDK(_: MsgRevokeAllowanceResponse): MsgRevokeAllowanceResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgRevokeAllowanceResponseAmino): MsgRevokeAllowanceResponse {
-    return {};
-  },
-  toAmino(_: MsgRevokeAllowanceResponse): MsgRevokeAllowanceResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgRevokeAllowanceResponseAminoMsg): MsgRevokeAllowanceResponse {
-    return MsgRevokeAllowanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRevokeAllowanceResponse): MsgRevokeAllowanceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRevokeAllowanceResponse",
-      value: MsgRevokeAllowanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRevokeAllowanceResponseProtoMsg): MsgRevokeAllowanceResponse {
-    return MsgRevokeAllowanceResponse.decode(message.value);
-  },
-  toProto(message: MsgRevokeAllowanceResponse): Uint8Array {
-    return MsgRevokeAllowanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRevokeAllowanceResponse): MsgRevokeAllowanceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse",
-      value: MsgRevokeAllowanceResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/genutil/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/genutil/v1beta1/genesis.ts
deleted file mode 100644
index fdbf5b44..00000000
--- a/examples/injective/src/codegen/cosmos/genutil/v1beta1/genesis.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** GenesisState defines the raw genesis transaction in JSON. */
-export interface GenesisState {
-  /** gen_txs defines the genesis transactions. */
-  genTxs: Uint8Array[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.genutil.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the raw genesis transaction in JSON. */
-export interface GenesisStateAmino {
-  /** gen_txs defines the genesis transactions. */
-  gen_txs: Uint8Array[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the raw genesis transaction in JSON. */
-export interface GenesisStateSDKType {
-  gen_txs: Uint8Array[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    genTxs: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.genutil.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.genTxs) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.genTxs.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      genTxs: Array.isArray(object?.genTxs) ? object.genTxs.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.genTxs) {
-      obj.genTxs = message.genTxs.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.genTxs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.genTxs = object.genTxs?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      genTxs: Array.isArray(object?.gen_txs) ? object.gen_txs.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.genTxs) {
-      obj.gen_txs = message.genTxs.map(e => e);
-    } else {
-      obj.gen_txs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      genTxs: Array.isArray(object?.gen_txs) ? object.gen_txs.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.genTxs) {
-      obj.gen_txs = message.genTxs.map(e => e);
-    } else {
-      obj.gen_txs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.genutil.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/genesis.ts b/examples/injective/src/codegen/cosmos/gov/v1/genesis.ts
deleted file mode 100644
index dd3a154e..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/genesis.ts
+++ /dev/null
@@ -1,263 +0,0 @@
-import { Deposit, DepositAmino, DepositSDKType, Vote, VoteAmino, VoteSDKType, Proposal, ProposalAmino, ProposalSDKType, DepositParams, DepositParamsAmino, DepositParamsSDKType, VotingParams, VotingParamsAmino, VotingParamsSDKType, TallyParams, TallyParamsAmino, TallyParamsSDKType } from "./gov";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisState {
-  /** starting_proposal_id is the ID of the starting proposal. */
-  startingProposalId: bigint;
-  /** deposits defines all the deposits present at genesis. */
-  deposits: Deposit[];
-  /** votes defines all the votes present at genesis. */
-  votes: Vote[];
-  /** proposals defines all the proposals present at genesis. */
-  proposals: Proposal[];
-  /** params defines all the paramaters of related to deposit. */
-  depositParams: DepositParams | undefined;
-  /** params defines all the paramaters of related to voting. */
-  votingParams: VotingParams | undefined;
-  /** params defines all the paramaters of related to tally. */
-  tallyParams: TallyParams | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.gov.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisStateAmino {
-  /** starting_proposal_id is the ID of the starting proposal. */
-  starting_proposal_id: string;
-  /** deposits defines all the deposits present at genesis. */
-  deposits: DepositAmino[];
-  /** votes defines all the votes present at genesis. */
-  votes: VoteAmino[];
-  /** proposals defines all the proposals present at genesis. */
-  proposals: ProposalAmino[];
-  /** params defines all the paramaters of related to deposit. */
-  deposit_params?: DepositParamsAmino | undefined;
-  /** params defines all the paramaters of related to voting. */
-  voting_params?: VotingParamsAmino | undefined;
-  /** params defines all the paramaters of related to tally. */
-  tally_params?: TallyParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/v1/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisStateSDKType {
-  starting_proposal_id: bigint;
-  deposits: DepositSDKType[];
-  votes: VoteSDKType[];
-  proposals: ProposalSDKType[];
-  deposit_params: DepositParamsSDKType | undefined;
-  voting_params: VotingParamsSDKType | undefined;
-  tally_params: TallyParamsSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    startingProposalId: BigInt(0),
-    deposits: [],
-    votes: [],
-    proposals: [],
-    depositParams: DepositParams.fromPartial({}),
-    votingParams: VotingParams.fromPartial({}),
-    tallyParams: TallyParams.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.gov.v1.GenesisState",
-  aminoType: "cosmos-sdk/v1/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.startingProposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.startingProposalId);
-    }
-    for (const v of message.deposits) {
-      Deposit.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.depositParams !== undefined) {
-      DepositParams.encode(message.depositParams, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.votingParams !== undefined) {
-      VotingParams.encode(message.votingParams, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.tallyParams !== undefined) {
-      TallyParams.encode(message.tallyParams, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.startingProposalId = reader.uint64();
-          break;
-        case 2:
-          message.deposits.push(Deposit.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.depositParams = DepositParams.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.votingParams = VotingParams.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.tallyParams = TallyParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      startingProposalId: isSet(object.startingProposalId) ? BigInt(object.startingProposalId.toString()) : BigInt(0),
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromJSON(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      depositParams: isSet(object.depositParams) ? DepositParams.fromJSON(object.depositParams) : undefined,
-      votingParams: isSet(object.votingParams) ? VotingParams.fromJSON(object.votingParams) : undefined,
-      tallyParams: isSet(object.tallyParams) ? TallyParams.fromJSON(object.tallyParams) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.startingProposalId !== undefined && (obj.startingProposalId = (message.startingProposalId || BigInt(0)).toString());
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toJSON(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.depositParams !== undefined && (obj.depositParams = message.depositParams ? DepositParams.toJSON(message.depositParams) : undefined);
-    message.votingParams !== undefined && (obj.votingParams = message.votingParams ? VotingParams.toJSON(message.votingParams) : undefined);
-    message.tallyParams !== undefined && (obj.tallyParams = message.tallyParams ? TallyParams.toJSON(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.startingProposalId = object.startingProposalId !== undefined && object.startingProposalId !== null ? BigInt(object.startingProposalId.toString()) : BigInt(0);
-    message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || [];
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined;
-    message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined;
-    message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      startingProposalId: object?.starting_proposal_id,
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromSDK(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      depositParams: object.deposit_params ? DepositParams.fromSDK(object.deposit_params) : undefined,
-      votingParams: object.voting_params ? VotingParams.fromSDK(object.voting_params) : undefined,
-      tallyParams: object.tally_params ? TallyParams.fromSDK(object.tally_params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.starting_proposal_id = message.startingProposalId;
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toSDK(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.depositParams !== undefined && (obj.deposit_params = message.depositParams ? DepositParams.toSDK(message.depositParams) : undefined);
-    message.votingParams !== undefined && (obj.voting_params = message.votingParams ? VotingParams.toSDK(message.votingParams) : undefined);
-    message.tallyParams !== undefined && (obj.tally_params = message.tallyParams ? TallyParams.toSDK(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      startingProposalId: BigInt(object.starting_proposal_id),
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromAmino(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      depositParams: object?.deposit_params ? DepositParams.fromAmino(object.deposit_params) : undefined,
-      votingParams: object?.voting_params ? VotingParams.fromAmino(object.voting_params) : undefined,
-      tallyParams: object?.tally_params ? TallyParams.fromAmino(object.tally_params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.starting_proposal_id = message.startingProposalId ? message.startingProposalId.toString() : undefined;
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toAmino(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    obj.deposit_params = message.depositParams ? DepositParams.toAmino(message.depositParams) : undefined;
-    obj.voting_params = message.votingParams ? VotingParams.toAmino(message.votingParams) : undefined;
-    obj.tally_params = message.tallyParams ? TallyParams.toAmino(message.tallyParams) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/gov.ts b/examples/injective/src/codegen/cosmos/gov/v1/gov.ts
deleted file mode 100644
index 93cc5463..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/gov.ts
+++ /dev/null
@@ -1,1483 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers";
-/** VoteOption enumerates the valid vote options for a given governance proposal. */
-export enum VoteOption {
-  /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */
-  VOTE_OPTION_UNSPECIFIED = 0,
-  /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */
-  VOTE_OPTION_YES = 1,
-  /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */
-  VOTE_OPTION_ABSTAIN = 2,
-  /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */
-  VOTE_OPTION_NO = 3,
-  /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */
-  VOTE_OPTION_NO_WITH_VETO = 4,
-  UNRECOGNIZED = -1,
-}
-export const VoteOptionSDKType = VoteOption;
-export const VoteOptionAmino = VoteOption;
-export function voteOptionFromJSON(object: any): VoteOption {
-  switch (object) {
-    case 0:
-    case "VOTE_OPTION_UNSPECIFIED":
-      return VoteOption.VOTE_OPTION_UNSPECIFIED;
-    case 1:
-    case "VOTE_OPTION_YES":
-      return VoteOption.VOTE_OPTION_YES;
-    case 2:
-    case "VOTE_OPTION_ABSTAIN":
-      return VoteOption.VOTE_OPTION_ABSTAIN;
-    case 3:
-    case "VOTE_OPTION_NO":
-      return VoteOption.VOTE_OPTION_NO;
-    case 4:
-    case "VOTE_OPTION_NO_WITH_VETO":
-      return VoteOption.VOTE_OPTION_NO_WITH_VETO;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return VoteOption.UNRECOGNIZED;
-  }
-}
-export function voteOptionToJSON(object: VoteOption): string {
-  switch (object) {
-    case VoteOption.VOTE_OPTION_UNSPECIFIED:
-      return "VOTE_OPTION_UNSPECIFIED";
-    case VoteOption.VOTE_OPTION_YES:
-      return "VOTE_OPTION_YES";
-    case VoteOption.VOTE_OPTION_ABSTAIN:
-      return "VOTE_OPTION_ABSTAIN";
-    case VoteOption.VOTE_OPTION_NO:
-      return "VOTE_OPTION_NO";
-    case VoteOption.VOTE_OPTION_NO_WITH_VETO:
-      return "VOTE_OPTION_NO_WITH_VETO";
-    case VoteOption.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ProposalStatus enumerates the valid statuses of a proposal. */
-export enum ProposalStatus {
-  /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */
-  PROPOSAL_STATUS_UNSPECIFIED = 0,
-  /**
-   * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit
-   * period.
-   */
-  PROPOSAL_STATUS_DEPOSIT_PERIOD = 1,
-  /**
-   * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting
-   * period.
-   */
-  PROPOSAL_STATUS_VOTING_PERIOD = 2,
-  /**
-   * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has
-   * passed.
-   */
-  PROPOSAL_STATUS_PASSED = 3,
-  /**
-   * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has
-   * been rejected.
-   */
-  PROPOSAL_STATUS_REJECTED = 4,
-  /**
-   * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has
-   * failed.
-   */
-  PROPOSAL_STATUS_FAILED = 5,
-  UNRECOGNIZED = -1,
-}
-export const ProposalStatusSDKType = ProposalStatus;
-export const ProposalStatusAmino = ProposalStatus;
-export function proposalStatusFromJSON(object: any): ProposalStatus {
-  switch (object) {
-    case 0:
-    case "PROPOSAL_STATUS_UNSPECIFIED":
-      return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;
-    case 1:
-    case "PROPOSAL_STATUS_DEPOSIT_PERIOD":
-      return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;
-    case 2:
-    case "PROPOSAL_STATUS_VOTING_PERIOD":
-      return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;
-    case 3:
-    case "PROPOSAL_STATUS_PASSED":
-      return ProposalStatus.PROPOSAL_STATUS_PASSED;
-    case 4:
-    case "PROPOSAL_STATUS_REJECTED":
-      return ProposalStatus.PROPOSAL_STATUS_REJECTED;
-    case 5:
-    case "PROPOSAL_STATUS_FAILED":
-      return ProposalStatus.PROPOSAL_STATUS_FAILED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ProposalStatus.UNRECOGNIZED;
-  }
-}
-export function proposalStatusToJSON(object: ProposalStatus): string {
-  switch (object) {
-    case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:
-      return "PROPOSAL_STATUS_UNSPECIFIED";
-    case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:
-      return "PROPOSAL_STATUS_DEPOSIT_PERIOD";
-    case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:
-      return "PROPOSAL_STATUS_VOTING_PERIOD";
-    case ProposalStatus.PROPOSAL_STATUS_PASSED:
-      return "PROPOSAL_STATUS_PASSED";
-    case ProposalStatus.PROPOSAL_STATUS_REJECTED:
-      return "PROPOSAL_STATUS_REJECTED";
-    case ProposalStatus.PROPOSAL_STATUS_FAILED:
-      return "PROPOSAL_STATUS_FAILED";
-    case ProposalStatus.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** WeightedVoteOption defines a unit of vote for vote split. */
-export interface WeightedVoteOption {
-  option: VoteOption;
-  weight: string;
-}
-export interface WeightedVoteOptionProtoMsg {
-  typeUrl: "/cosmos.gov.v1.WeightedVoteOption";
-  value: Uint8Array;
-}
-/** WeightedVoteOption defines a unit of vote for vote split. */
-export interface WeightedVoteOptionAmino {
-  option: VoteOption;
-  weight: string;
-}
-export interface WeightedVoteOptionAminoMsg {
-  type: "cosmos-sdk/v1/WeightedVoteOption";
-  value: WeightedVoteOptionAmino;
-}
-/** WeightedVoteOption defines a unit of vote for vote split. */
-export interface WeightedVoteOptionSDKType {
-  option: VoteOption;
-  weight: string;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface Deposit {
-  proposalId: bigint;
-  depositor: string;
-  amount: Coin[];
-}
-export interface DepositProtoMsg {
-  typeUrl: "/cosmos.gov.v1.Deposit";
-  value: Uint8Array;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface DepositAmino {
-  proposal_id: string;
-  depositor: string;
-  amount: CoinAmino[];
-}
-export interface DepositAminoMsg {
-  type: "cosmos-sdk/v1/Deposit";
-  value: DepositAmino;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface DepositSDKType {
-  proposal_id: bigint;
-  depositor: string;
-  amount: CoinSDKType[];
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface Proposal {
-  id: bigint;
-  messages: Any[];
-  status: ProposalStatus;
-  /**
-   * final_tally_result is the final tally result of the proposal. When
-   * querying a proposal via gRPC, this field is not populated until the
-   * proposal's voting period has ended.
-   */
-  finalTallyResult: TallyResult | undefined;
-  submitTime: Date | undefined;
-  depositEndTime: Date | undefined;
-  totalDeposit: Coin[];
-  votingStartTime: Date | undefined;
-  votingEndTime: Date | undefined;
-  /** metadata is any arbitrary metadata attached to the proposal. */
-  metadata: string;
-}
-export interface ProposalProtoMsg {
-  typeUrl: "/cosmos.gov.v1.Proposal";
-  value: Uint8Array;
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface ProposalAmino {
-  id: string;
-  messages: AnyAmino[];
-  status: ProposalStatus;
-  /**
-   * final_tally_result is the final tally result of the proposal. When
-   * querying a proposal via gRPC, this field is not populated until the
-   * proposal's voting period has ended.
-   */
-  final_tally_result?: TallyResultAmino | undefined;
-  submit_time?: Date | undefined;
-  deposit_end_time?: Date | undefined;
-  total_deposit: CoinAmino[];
-  voting_start_time?: Date | undefined;
-  voting_end_time?: Date | undefined;
-  /** metadata is any arbitrary metadata attached to the proposal. */
-  metadata: string;
-}
-export interface ProposalAminoMsg {
-  type: "cosmos-sdk/v1/Proposal";
-  value: ProposalAmino;
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface ProposalSDKType {
-  id: bigint;
-  messages: AnySDKType[];
-  status: ProposalStatus;
-  final_tally_result: TallyResultSDKType | undefined;
-  submit_time: Date | undefined;
-  deposit_end_time: Date | undefined;
-  total_deposit: CoinSDKType[];
-  voting_start_time: Date | undefined;
-  voting_end_time: Date | undefined;
-  metadata: string;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResult {
-  yesCount: string;
-  abstainCount: string;
-  noCount: string;
-  noWithVetoCount: string;
-}
-export interface TallyResultProtoMsg {
-  typeUrl: "/cosmos.gov.v1.TallyResult";
-  value: Uint8Array;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResultAmino {
-  yes_count: string;
-  abstain_count: string;
-  no_count: string;
-  no_with_veto_count: string;
-}
-export interface TallyResultAminoMsg {
-  type: "cosmos-sdk/v1/TallyResult";
-  value: TallyResultAmino;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResultSDKType {
-  yes_count: string;
-  abstain_count: string;
-  no_count: string;
-  no_with_veto_count: string;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface Vote {
-  proposalId: bigint;
-  voter: string;
-  options: WeightedVoteOption[];
-  /** metadata is any  arbitrary metadata to attached to the vote. */
-  metadata: string;
-}
-export interface VoteProtoMsg {
-  typeUrl: "/cosmos.gov.v1.Vote";
-  value: Uint8Array;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface VoteAmino {
-  proposal_id: string;
-  voter: string;
-  options: WeightedVoteOptionAmino[];
-  /** metadata is any  arbitrary metadata to attached to the vote. */
-  metadata: string;
-}
-export interface VoteAminoMsg {
-  type: "cosmos-sdk/v1/Vote";
-  value: VoteAmino;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface VoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  options: WeightedVoteOptionSDKType[];
-  metadata: string;
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParams {
-  /** Minimum deposit for a proposal to enter voting period. */
-  minDeposit: Coin[];
-  /**
-   * Maximum period for Atom holders to deposit on a proposal. Initial value: 2
-   *  months.
-   */
-  maxDepositPeriod: Duration | undefined;
-}
-export interface DepositParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1.DepositParams";
-  value: Uint8Array;
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParamsAmino {
-  /** Minimum deposit for a proposal to enter voting period. */
-  min_deposit: CoinAmino[];
-  /**
-   * Maximum period for Atom holders to deposit on a proposal. Initial value: 2
-   *  months.
-   */
-  max_deposit_period?: DurationAmino | undefined;
-}
-export interface DepositParamsAminoMsg {
-  type: "cosmos-sdk/v1/DepositParams";
-  value: DepositParamsAmino;
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParamsSDKType {
-  min_deposit: CoinSDKType[];
-  max_deposit_period: DurationSDKType | undefined;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParams {
-  /** Length of the voting period. */
-  votingPeriod: Duration | undefined;
-}
-export interface VotingParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1.VotingParams";
-  value: Uint8Array;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParamsAmino {
-  /** Length of the voting period. */
-  voting_period?: DurationAmino | undefined;
-}
-export interface VotingParamsAminoMsg {
-  type: "cosmos-sdk/v1/VotingParams";
-  value: VotingParamsAmino;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParamsSDKType {
-  voting_period: DurationSDKType | undefined;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParams {
-  /**
-   * Minimum percentage of total stake needed to vote for a result to be
-   *  considered valid.
-   */
-  quorum: string;
-  /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */
-  threshold: string;
-  /**
-   * Minimum value of Veto votes to Total votes ratio for proposal to be
-   *  vetoed. Default value: 1/3.
-   */
-  vetoThreshold: string;
-}
-export interface TallyParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1.TallyParams";
-  value: Uint8Array;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParamsAmino {
-  /**
-   * Minimum percentage of total stake needed to vote for a result to be
-   *  considered valid.
-   */
-  quorum: string;
-  /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */
-  threshold: string;
-  /**
-   * Minimum value of Veto votes to Total votes ratio for proposal to be
-   *  vetoed. Default value: 1/3.
-   */
-  veto_threshold: string;
-}
-export interface TallyParamsAminoMsg {
-  type: "cosmos-sdk/v1/TallyParams";
-  value: TallyParamsAmino;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParamsSDKType {
-  quorum: string;
-  threshold: string;
-  veto_threshold: string;
-}
-function createBaseWeightedVoteOption(): WeightedVoteOption {
-  return {
-    option: 0,
-    weight: ""
-  };
-}
-export const WeightedVoteOption = {
-  typeUrl: "/cosmos.gov.v1.WeightedVoteOption",
-  aminoType: "cosmos-sdk/v1/WeightedVoteOption",
-  encode(message: WeightedVoteOption, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.option !== 0) {
-      writer.uint32(8).int32(message.option);
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(message.weight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): WeightedVoteOption {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseWeightedVoteOption();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.option = (reader.int32() as any);
-          break;
-        case 2:
-          message.weight = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: isSet(object.weight) ? String(object.weight) : ""
-    };
-  },
-  toJSON(message: WeightedVoteOption): unknown {
-    const obj: any = {};
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    message.weight !== undefined && (obj.weight = message.weight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<WeightedVoteOption>): WeightedVoteOption {
-    const message = createBaseWeightedVoteOption();
-    message.option = object.option ?? 0;
-    message.weight = object.weight ?? "";
-    return message;
-  },
-  fromSDK(object: WeightedVoteOptionSDKType): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: object?.weight
-    };
-  },
-  toSDK(message: WeightedVoteOption): WeightedVoteOptionSDKType {
-    const obj: any = {};
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAmino(object: WeightedVoteOptionAmino): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: object.weight
-    };
-  },
-  toAmino(message: WeightedVoteOption): WeightedVoteOptionAmino {
-    const obj: any = {};
-    obj.option = message.option;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAminoMsg(object: WeightedVoteOptionAminoMsg): WeightedVoteOption {
-    return WeightedVoteOption.fromAmino(object.value);
-  },
-  toAminoMsg(message: WeightedVoteOption): WeightedVoteOptionAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/WeightedVoteOption",
-      value: WeightedVoteOption.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: WeightedVoteOptionProtoMsg): WeightedVoteOption {
-    return WeightedVoteOption.decode(message.value);
-  },
-  toProto(message: WeightedVoteOption): Uint8Array {
-    return WeightedVoteOption.encode(message).finish();
-  },
-  toProtoMsg(message: WeightedVoteOption): WeightedVoteOptionProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.WeightedVoteOption",
-      value: WeightedVoteOption.encode(message).finish()
-    };
-  }
-};
-function createBaseDeposit(): Deposit {
-  return {
-    proposalId: BigInt(0),
-    depositor: "",
-    amount: []
-  };
-}
-export const Deposit = {
-  typeUrl: "/cosmos.gov.v1.Deposit",
-  aminoType: "cosmos-sdk/v1/Deposit",
-  encode(message: Deposit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Deposit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDeposit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Deposit {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Deposit): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Deposit>): Deposit {
-    const message = createBaseDeposit();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DepositSDKType): Deposit {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Deposit): DepositSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DepositAmino): Deposit {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Deposit): DepositAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DepositAminoMsg): Deposit {
-    return Deposit.fromAmino(object.value);
-  },
-  toAminoMsg(message: Deposit): DepositAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/Deposit",
-      value: Deposit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DepositProtoMsg): Deposit {
-    return Deposit.decode(message.value);
-  },
-  toProto(message: Deposit): Uint8Array {
-    return Deposit.encode(message).finish();
-  },
-  toProtoMsg(message: Deposit): DepositProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.Deposit",
-      value: Deposit.encode(message).finish()
-    };
-  }
-};
-function createBaseProposal(): Proposal {
-  return {
-    id: BigInt(0),
-    messages: [],
-    status: 0,
-    finalTallyResult: TallyResult.fromPartial({}),
-    submitTime: new Date(),
-    depositEndTime: new Date(),
-    totalDeposit: [],
-    votingStartTime: new Date(),
-    votingEndTime: new Date(),
-    metadata: ""
-  };
-}
-export const Proposal = {
-  typeUrl: "/cosmos.gov.v1.Proposal",
-  aminoType: "cosmos-sdk/v1/Proposal",
-  encode(message: Proposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== BigInt(0)) {
-      writer.uint32(8).uint64(message.id);
-    }
-    for (const v of message.messages) {
-      Any.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.status !== 0) {
-      writer.uint32(24).int32(message.status);
-    }
-    if (message.finalTallyResult !== undefined) {
-      TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.submitTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.depositEndTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.totalDeposit) {
-      Coin.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.votingStartTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim();
-    }
-    if (message.votingEndTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim();
-    }
-    if (message.metadata !== "") {
-      writer.uint32(82).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Proposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint64();
-          break;
-        case 2:
-          message.messages.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.status = (reader.int32() as any);
-          break;
-        case 4:
-          message.finalTallyResult = TallyResult.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.depositEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.totalDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.votingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 9:
-          message.votingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 10:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Proposal {
-    return {
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromJSON(e)) : [],
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: isSet(object.finalTallyResult) ? TallyResult.fromJSON(object.finalTallyResult) : undefined,
-      submitTime: isSet(object.submitTime) ? new Date(object.submitTime) : undefined,
-      depositEndTime: isSet(object.depositEndTime) ? new Date(object.depositEndTime) : undefined,
-      totalDeposit: Array.isArray(object?.totalDeposit) ? object.totalDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      votingStartTime: isSet(object.votingStartTime) ? new Date(object.votingStartTime) : undefined,
-      votingEndTime: isSet(object.votingEndTime) ? new Date(object.votingEndTime) : undefined,
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: Proposal): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.finalTallyResult !== undefined && (obj.finalTallyResult = message.finalTallyResult ? TallyResult.toJSON(message.finalTallyResult) : undefined);
-    message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());
-    message.depositEndTime !== undefined && (obj.depositEndTime = message.depositEndTime.toISOString());
-    if (message.totalDeposit) {
-      obj.totalDeposit = message.totalDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalDeposit = [];
-    }
-    message.votingStartTime !== undefined && (obj.votingStartTime = message.votingStartTime.toISOString());
-    message.votingEndTime !== undefined && (obj.votingEndTime = message.votingEndTime.toISOString());
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Proposal>): Proposal {
-    const message = createBaseProposal();
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.messages = object.messages?.map(e => Any.fromPartial(e)) || [];
-    message.status = object.status ?? 0;
-    message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined;
-    message.submitTime = object.submitTime ?? undefined;
-    message.depositEndTime = object.depositEndTime ?? undefined;
-    message.totalDeposit = object.totalDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.votingStartTime = object.votingStartTime ?? undefined;
-    message.votingEndTime = object.votingEndTime ?? undefined;
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: ProposalSDKType): Proposal {
-    return {
-      id: object?.id,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromSDK(e)) : [],
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: object.final_tally_result ? TallyResult.fromSDK(object.final_tally_result) : undefined,
-      submitTime: object.submit_time ?? undefined,
-      depositEndTime: object.deposit_end_time ?? undefined,
-      totalDeposit: Array.isArray(object?.total_deposit) ? object.total_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      votingStartTime: object.voting_start_time ?? undefined,
-      votingEndTime: object.voting_end_time ?? undefined,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: Proposal): ProposalSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.finalTallyResult !== undefined && (obj.final_tally_result = message.finalTallyResult ? TallyResult.toSDK(message.finalTallyResult) : undefined);
-    message.submitTime !== undefined && (obj.submit_time = message.submitTime ?? undefined);
-    message.depositEndTime !== undefined && (obj.deposit_end_time = message.depositEndTime ?? undefined);
-    if (message.totalDeposit) {
-      obj.total_deposit = message.totalDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_deposit = [];
-    }
-    message.votingStartTime !== undefined && (obj.voting_start_time = message.votingStartTime ?? undefined);
-    message.votingEndTime !== undefined && (obj.voting_end_time = message.votingEndTime ?? undefined);
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: ProposalAmino): Proposal {
-    return {
-      id: BigInt(object.id),
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromAmino(e)) : [],
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: object?.final_tally_result ? TallyResult.fromAmino(object.final_tally_result) : undefined,
-      submitTime: object.submit_time,
-      depositEndTime: object.deposit_end_time,
-      totalDeposit: Array.isArray(object?.total_deposit) ? object.total_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      votingStartTime: object.voting_start_time,
-      votingEndTime: object.voting_end_time,
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: Proposal): ProposalAmino {
-    const obj: any = {};
-    obj.id = message.id ? message.id.toString() : undefined;
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    obj.status = message.status;
-    obj.final_tally_result = message.finalTallyResult ? TallyResult.toAmino(message.finalTallyResult) : undefined;
-    obj.submit_time = message.submitTime;
-    obj.deposit_end_time = message.depositEndTime;
-    if (message.totalDeposit) {
-      obj.total_deposit = message.totalDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_deposit = [];
-    }
-    obj.voting_start_time = message.votingStartTime;
-    obj.voting_end_time = message.votingEndTime;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: ProposalAminoMsg): Proposal {
-    return Proposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: Proposal): ProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/Proposal",
-      value: Proposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ProposalProtoMsg): Proposal {
-    return Proposal.decode(message.value);
-  },
-  toProto(message: Proposal): Uint8Array {
-    return Proposal.encode(message).finish();
-  },
-  toProtoMsg(message: Proposal): ProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.Proposal",
-      value: Proposal.encode(message).finish()
-    };
-  }
-};
-function createBaseTallyResult(): TallyResult {
-  return {
-    yesCount: "",
-    abstainCount: "",
-    noCount: "",
-    noWithVetoCount: ""
-  };
-}
-export const TallyResult = {
-  typeUrl: "/cosmos.gov.v1.TallyResult",
-  aminoType: "cosmos-sdk/v1/TallyResult",
-  encode(message: TallyResult, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.yesCount !== "") {
-      writer.uint32(10).string(message.yesCount);
-    }
-    if (message.abstainCount !== "") {
-      writer.uint32(18).string(message.abstainCount);
-    }
-    if (message.noCount !== "") {
-      writer.uint32(26).string(message.noCount);
-    }
-    if (message.noWithVetoCount !== "") {
-      writer.uint32(34).string(message.noWithVetoCount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TallyResult {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTallyResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.yesCount = reader.string();
-          break;
-        case 2:
-          message.abstainCount = reader.string();
-          break;
-        case 3:
-          message.noCount = reader.string();
-          break;
-        case 4:
-          message.noWithVetoCount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TallyResult {
-    return {
-      yesCount: isSet(object.yesCount) ? String(object.yesCount) : "",
-      abstainCount: isSet(object.abstainCount) ? String(object.abstainCount) : "",
-      noCount: isSet(object.noCount) ? String(object.noCount) : "",
-      noWithVetoCount: isSet(object.noWithVetoCount) ? String(object.noWithVetoCount) : ""
-    };
-  },
-  toJSON(message: TallyResult): unknown {
-    const obj: any = {};
-    message.yesCount !== undefined && (obj.yesCount = message.yesCount);
-    message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);
-    message.noCount !== undefined && (obj.noCount = message.noCount);
-    message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TallyResult>): TallyResult {
-    const message = createBaseTallyResult();
-    message.yesCount = object.yesCount ?? "";
-    message.abstainCount = object.abstainCount ?? "";
-    message.noCount = object.noCount ?? "";
-    message.noWithVetoCount = object.noWithVetoCount ?? "";
-    return message;
-  },
-  fromSDK(object: TallyResultSDKType): TallyResult {
-    return {
-      yesCount: object?.yes_count,
-      abstainCount: object?.abstain_count,
-      noCount: object?.no_count,
-      noWithVetoCount: object?.no_with_veto_count
-    };
-  },
-  toSDK(message: TallyResult): TallyResultSDKType {
-    const obj: any = {};
-    obj.yes_count = message.yesCount;
-    obj.abstain_count = message.abstainCount;
-    obj.no_count = message.noCount;
-    obj.no_with_veto_count = message.noWithVetoCount;
-    return obj;
-  },
-  fromAmino(object: TallyResultAmino): TallyResult {
-    return {
-      yesCount: object.yes_count,
-      abstainCount: object.abstain_count,
-      noCount: object.no_count,
-      noWithVetoCount: object.no_with_veto_count
-    };
-  },
-  toAmino(message: TallyResult): TallyResultAmino {
-    const obj: any = {};
-    obj.yes_count = message.yesCount;
-    obj.abstain_count = message.abstainCount;
-    obj.no_count = message.noCount;
-    obj.no_with_veto_count = message.noWithVetoCount;
-    return obj;
-  },
-  fromAminoMsg(object: TallyResultAminoMsg): TallyResult {
-    return TallyResult.fromAmino(object.value);
-  },
-  toAminoMsg(message: TallyResult): TallyResultAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/TallyResult",
-      value: TallyResult.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TallyResultProtoMsg): TallyResult {
-    return TallyResult.decode(message.value);
-  },
-  toProto(message: TallyResult): Uint8Array {
-    return TallyResult.encode(message).finish();
-  },
-  toProtoMsg(message: TallyResult): TallyResultProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.TallyResult",
-      value: TallyResult.encode(message).finish()
-    };
-  }
-};
-function createBaseVote(): Vote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    options: [],
-    metadata: ""
-  };
-}
-export const Vote = {
-  typeUrl: "/cosmos.gov.v1.Vote",
-  aminoType: "cosmos-sdk/v1/Vote",
-  encode(message: Vote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    for (const v of message.options) {
-      WeightedVoteOption.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.metadata !== "") {
-      writer.uint32(42).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Vote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 4:
-          message.options.push(WeightedVoteOption.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Vote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e)) : [],
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: Vote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toJSON(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Vote>): Vote {
-    const message = createBaseVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || [];
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: VoteSDKType): Vote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromSDK(e)) : [],
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: Vote): VoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toSDK(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: VoteAmino): Vote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromAmino(e)) : [],
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: Vote): VoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toAmino(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: VoteAminoMsg): Vote {
-    return Vote.fromAmino(object.value);
-  },
-  toAminoMsg(message: Vote): VoteAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/Vote",
-      value: Vote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VoteProtoMsg): Vote {
-    return Vote.decode(message.value);
-  },
-  toProto(message: Vote): Uint8Array {
-    return Vote.encode(message).finish();
-  },
-  toProtoMsg(message: Vote): VoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.Vote",
-      value: Vote.encode(message).finish()
-    };
-  }
-};
-function createBaseDepositParams(): DepositParams {
-  return {
-    minDeposit: [],
-    maxDepositPeriod: Duration.fromPartial({})
-  };
-}
-export const DepositParams = {
-  typeUrl: "/cosmos.gov.v1.DepositParams",
-  aminoType: "cosmos-sdk/v1/DepositParams",
-  encode(message: DepositParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.minDeposit) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.maxDepositPeriod !== undefined) {
-      Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DepositParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDepositParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.maxDepositPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.minDeposit) ? object.minDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      maxDepositPeriod: isSet(object.maxDepositPeriod) ? Duration.fromJSON(object.maxDepositPeriod) : undefined
-    };
-  },
-  toJSON(message: DepositParams): unknown {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.minDeposit = message.minDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.minDeposit = [];
-    }
-    message.maxDepositPeriod !== undefined && (obj.maxDepositPeriod = message.maxDepositPeriod ? Duration.toJSON(message.maxDepositPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DepositParams>): DepositParams {
-    const message = createBaseDepositParams();
-    message.minDeposit = object.minDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? Duration.fromPartial(object.maxDepositPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: DepositParamsSDKType): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.min_deposit) ? object.min_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      maxDepositPeriod: object.max_deposit_period ? Duration.fromSDK(object.max_deposit_period) : undefined
-    };
-  },
-  toSDK(message: DepositParams): DepositParamsSDKType {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.min_deposit = message.minDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.min_deposit = [];
-    }
-    message.maxDepositPeriod !== undefined && (obj.max_deposit_period = message.maxDepositPeriod ? Duration.toSDK(message.maxDepositPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: DepositParamsAmino): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.min_deposit) ? object.min_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      maxDepositPeriod: object?.max_deposit_period ? Duration.fromAmino(object.max_deposit_period) : undefined
-    };
-  },
-  toAmino(message: DepositParams): DepositParamsAmino {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.min_deposit = message.minDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.min_deposit = [];
-    }
-    obj.max_deposit_period = message.maxDepositPeriod ? Duration.toAmino(message.maxDepositPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DepositParamsAminoMsg): DepositParams {
-    return DepositParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: DepositParams): DepositParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/DepositParams",
-      value: DepositParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DepositParamsProtoMsg): DepositParams {
-    return DepositParams.decode(message.value);
-  },
-  toProto(message: DepositParams): Uint8Array {
-    return DepositParams.encode(message).finish();
-  },
-  toProtoMsg(message: DepositParams): DepositParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.DepositParams",
-      value: DepositParams.encode(message).finish()
-    };
-  }
-};
-function createBaseVotingParams(): VotingParams {
-  return {
-    votingPeriod: Duration.fromPartial({})
-  };
-}
-export const VotingParams = {
-  typeUrl: "/cosmos.gov.v1.VotingParams",
-  aminoType: "cosmos-sdk/v1/VotingParams",
-  encode(message: VotingParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.votingPeriod !== undefined) {
-      Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): VotingParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVotingParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votingPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): VotingParams {
-    return {
-      votingPeriod: isSet(object.votingPeriod) ? Duration.fromJSON(object.votingPeriod) : undefined
-    };
-  },
-  toJSON(message: VotingParams): unknown {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.votingPeriod = message.votingPeriod ? Duration.toJSON(message.votingPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<VotingParams>): VotingParams {
-    const message = createBaseVotingParams();
-    message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: VotingParamsSDKType): VotingParams {
-    return {
-      votingPeriod: object.voting_period ? Duration.fromSDK(object.voting_period) : undefined
-    };
-  },
-  toSDK(message: VotingParams): VotingParamsSDKType {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.voting_period = message.votingPeriod ? Duration.toSDK(message.votingPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: VotingParamsAmino): VotingParams {
-    return {
-      votingPeriod: object?.voting_period ? Duration.fromAmino(object.voting_period) : undefined
-    };
-  },
-  toAmino(message: VotingParams): VotingParamsAmino {
-    const obj: any = {};
-    obj.voting_period = message.votingPeriod ? Duration.toAmino(message.votingPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: VotingParamsAminoMsg): VotingParams {
-    return VotingParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: VotingParams): VotingParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/VotingParams",
-      value: VotingParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VotingParamsProtoMsg): VotingParams {
-    return VotingParams.decode(message.value);
-  },
-  toProto(message: VotingParams): Uint8Array {
-    return VotingParams.encode(message).finish();
-  },
-  toProtoMsg(message: VotingParams): VotingParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.VotingParams",
-      value: VotingParams.encode(message).finish()
-    };
-  }
-};
-function createBaseTallyParams(): TallyParams {
-  return {
-    quorum: "",
-    threshold: "",
-    vetoThreshold: ""
-  };
-}
-export const TallyParams = {
-  typeUrl: "/cosmos.gov.v1.TallyParams",
-  aminoType: "cosmos-sdk/v1/TallyParams",
-  encode(message: TallyParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.quorum !== "") {
-      writer.uint32(10).string(message.quorum);
-    }
-    if (message.threshold !== "") {
-      writer.uint32(18).string(message.threshold);
-    }
-    if (message.vetoThreshold !== "") {
-      writer.uint32(26).string(message.vetoThreshold);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TallyParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTallyParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.quorum = reader.string();
-          break;
-        case 2:
-          message.threshold = reader.string();
-          break;
-        case 3:
-          message.vetoThreshold = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TallyParams {
-    return {
-      quorum: isSet(object.quorum) ? String(object.quorum) : "",
-      threshold: isSet(object.threshold) ? String(object.threshold) : "",
-      vetoThreshold: isSet(object.vetoThreshold) ? String(object.vetoThreshold) : ""
-    };
-  },
-  toJSON(message: TallyParams): unknown {
-    const obj: any = {};
-    message.quorum !== undefined && (obj.quorum = message.quorum);
-    message.threshold !== undefined && (obj.threshold = message.threshold);
-    message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TallyParams>): TallyParams {
-    const message = createBaseTallyParams();
-    message.quorum = object.quorum ?? "";
-    message.threshold = object.threshold ?? "";
-    message.vetoThreshold = object.vetoThreshold ?? "";
-    return message;
-  },
-  fromSDK(object: TallyParamsSDKType): TallyParams {
-    return {
-      quorum: object?.quorum,
-      threshold: object?.threshold,
-      vetoThreshold: object?.veto_threshold
-    };
-  },
-  toSDK(message: TallyParams): TallyParamsSDKType {
-    const obj: any = {};
-    obj.quorum = message.quorum;
-    obj.threshold = message.threshold;
-    obj.veto_threshold = message.vetoThreshold;
-    return obj;
-  },
-  fromAmino(object: TallyParamsAmino): TallyParams {
-    return {
-      quorum: object.quorum,
-      threshold: object.threshold,
-      vetoThreshold: object.veto_threshold
-    };
-  },
-  toAmino(message: TallyParams): TallyParamsAmino {
-    const obj: any = {};
-    obj.quorum = message.quorum;
-    obj.threshold = message.threshold;
-    obj.veto_threshold = message.vetoThreshold;
-    return obj;
-  },
-  fromAminoMsg(object: TallyParamsAminoMsg): TallyParams {
-    return TallyParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: TallyParams): TallyParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/TallyParams",
-      value: TallyParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TallyParamsProtoMsg): TallyParams {
-    return TallyParams.decode(message.value);
-  },
-  toProto(message: TallyParams): Uint8Array {
-    return TallyParams.encode(message).finish();
-  },
-  toProtoMsg(message: TallyParams): TallyParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.TallyParams",
-      value: TallyParams.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/gov/v1/query.rpc.Query.ts
deleted file mode 100644
index 29bccadb..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,290 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query";
-/** Query defines the gRPC querier service for gov module */
-export interface Query {
-  /** Proposal queries proposal details based on ProposalID. */
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
-  /** Proposals queries all proposals based on given status. */
-  proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
-  /** Vote queries voted information based on proposalID, voterAddr. */
-  vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
-  /** Votes queries votes of a given proposal. */
-  votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
-  /** Params queries all parameters of the gov module. */
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** Deposit queries single deposit information based proposalID, depositAddr. */
-  deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
-  /** Deposits queries all deposits of a single proposal. */
-  deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
-  /** TallyResult queries the tally of a proposal vote. */
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.proposal = this.proposal.bind(this);
-    this.proposals = this.proposals.bind(this);
-    this.vote = this.vote.bind(this);
-    this.votes = this.votes.bind(this);
-    this.params = this.params.bind(this);
-    this.deposit = this.deposit.bind(this);
-    this.deposits = this.deposits.bind(this);
-    this.tallyResult = this.tallyResult.bind(this);
-  }
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-    const data = QueryProposalRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposal", data);
-    return promise.then(data => QueryProposalResponse.decode(new BinaryReader(data)));
-  }
-  proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
-    const data = QueryProposalsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposals", data);
-    return promise.then(data => QueryProposalsResponse.decode(new BinaryReader(data)));
-  }
-  vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
-    const data = QueryVoteRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Vote", data);
-    return promise.then(data => QueryVoteResponse.decode(new BinaryReader(data)));
-  }
-  votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
-    const data = QueryVotesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Votes", data);
-    return promise.then(data => QueryVotesResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
-    const data = QueryDepositRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposit", data);
-    return promise.then(data => QueryDepositResponse.decode(new BinaryReader(data)));
-  }
-  deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
-    const data = QueryDepositsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposits", data);
-    return promise.then(data => QueryDepositsResponse.decode(new BinaryReader(data)));
-  }
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-    const data = QueryTallyResultRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Query", "TallyResult", data);
-    return promise.then(data => QueryTallyResultResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-      return queryService.proposal(request);
-    },
-    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
-      return queryService.proposals(request);
-    },
-    vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
-      return queryService.vote(request);
-    },
-    votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
-      return queryService.votes(request);
-    },
-    params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
-      return queryService.deposit(request);
-    },
-    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
-      return queryService.deposits(request);
-    },
-    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-      return queryService.tallyResult(request);
-    }
-  };
-};
-export interface UseProposalQuery<TData> extends ReactQueryParams<QueryProposalResponse, TData> {
-  request: QueryProposalRequest;
-}
-export interface UseProposalsQuery<TData> extends ReactQueryParams<QueryProposalsResponse, TData> {
-  request: QueryProposalsRequest;
-}
-export interface UseVoteQuery<TData> extends ReactQueryParams<QueryVoteResponse, TData> {
-  request: QueryVoteRequest;
-}
-export interface UseVotesQuery<TData> extends ReactQueryParams<QueryVotesResponse, TData> {
-  request: QueryVotesRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request: QueryParamsRequest;
-}
-export interface UseDepositQuery<TData> extends ReactQueryParams<QueryDepositResponse, TData> {
-  request: QueryDepositRequest;
-}
-export interface UseDepositsQuery<TData> extends ReactQueryParams<QueryDepositsResponse, TData> {
-  request: QueryDepositsRequest;
-}
-export interface UseTallyResultQuery<TData> extends ReactQueryParams<QueryTallyResultResponse, TData> {
-  request: QueryTallyResultRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useProposal = <TData = QueryProposalResponse,>({
-    request,
-    options
-  }: UseProposalQuery<TData>) => {
-    return useQuery<QueryProposalResponse, Error, TData>(["proposalQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposal(request);
-    }, options);
-  };
-  const useProposals = <TData = QueryProposalsResponse,>({
-    request,
-    options
-  }: UseProposalsQuery<TData>) => {
-    return useQuery<QueryProposalsResponse, Error, TData>(["proposalsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposals(request);
-    }, options);
-  };
-  const useVote = <TData = QueryVoteResponse,>({
-    request,
-    options
-  }: UseVoteQuery<TData>) => {
-    return useQuery<QueryVoteResponse, Error, TData>(["voteQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.vote(request);
-    }, options);
-  };
-  const useVotes = <TData = QueryVotesResponse,>({
-    request,
-    options
-  }: UseVotesQuery<TData>) => {
-    return useQuery<QueryVotesResponse, Error, TData>(["votesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.votes(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useDeposit = <TData = QueryDepositResponse,>({
-    request,
-    options
-  }: UseDepositQuery<TData>) => {
-    return useQuery<QueryDepositResponse, Error, TData>(["depositQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.deposit(request);
-    }, options);
-  };
-  const useDeposits = <TData = QueryDepositsResponse,>({
-    request,
-    options
-  }: UseDepositsQuery<TData>) => {
-    return useQuery<QueryDepositsResponse, Error, TData>(["depositsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.deposits(request);
-    }, options);
-  };
-  const useTallyResult = <TData = QueryTallyResultResponse,>({
-    request,
-    options
-  }: UseTallyResultQuery<TData>) => {
-    return useQuery<QueryTallyResultResponse, Error, TData>(["tallyResultQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.tallyResult(request);
-    }, options);
-  };
-  return {
-    /** Proposal queries proposal details based on ProposalID. */useProposal,
-    /** Proposals queries all proposals based on given status. */useProposals,
-    /** Vote queries voted information based on proposalID, voterAddr. */useVote,
-    /** Votes queries votes of a given proposal. */useVotes,
-    /** Params queries all parameters of the gov module. */useParams,
-    /** Deposit queries single deposit information based proposalID, depositAddr. */useDeposit,
-    /** Deposits queries all deposits of a single proposal. */useDeposits,
-    /** TallyResult queries the tally of a proposal vote. */useTallyResult
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryProposalStore {
-    store = new QueryStore<QueryProposalRequest, QueryProposalResponse>(queryService?.proposal);
-    proposal(request: QueryProposalRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryProposalsStore {
-    store = new QueryStore<QueryProposalsRequest, QueryProposalsResponse>(queryService?.proposals);
-    proposals(request: QueryProposalsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVoteStore {
-    store = new QueryStore<QueryVoteRequest, QueryVoteResponse>(queryService?.vote);
-    vote(request: QueryVoteRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVotesStore {
-    store = new QueryStore<QueryVotesRequest, QueryVotesResponse>(queryService?.votes);
-    votes(request: QueryVotesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDepositStore {
-    store = new QueryStore<QueryDepositRequest, QueryDepositResponse>(queryService?.deposit);
-    deposit(request: QueryDepositRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDepositsStore {
-    store = new QueryStore<QueryDepositsRequest, QueryDepositsResponse>(queryService?.deposits);
-    deposits(request: QueryDepositsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTallyResultStore {
-    store = new QueryStore<QueryTallyResultRequest, QueryTallyResultResponse>(queryService?.tallyResult);
-    tallyResult(request: QueryTallyResultRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Proposal queries proposal details based on ProposalID. */QueryProposalStore,
-    /** Proposals queries all proposals based on given status. */QueryProposalsStore,
-    /** Vote queries voted information based on proposalID, voterAddr. */QueryVoteStore,
-    /** Votes queries votes of a given proposal. */QueryVotesStore,
-    /** Params queries all parameters of the gov module. */QueryParamsStore,
-    /** Deposit queries single deposit information based proposalID, depositAddr. */QueryDepositStore,
-    /** Deposits queries all deposits of a single proposal. */QueryDepositsStore,
-    /** TallyResult queries the tally of a proposal vote. */QueryTallyResultStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/query.ts b/examples/injective/src/codegen/cosmos/gov/v1/query.ts
deleted file mode 100644
index e5e1226d..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/query.ts
+++ /dev/null
@@ -1,2037 +0,0 @@
-import { ProposalStatus, Proposal, ProposalAmino, ProposalSDKType, Vote, VoteAmino, VoteSDKType, VotingParams, VotingParamsAmino, VotingParamsSDKType, DepositParams, DepositParamsAmino, DepositParamsSDKType, TallyParams, TallyParamsAmino, TallyParamsSDKType, Deposit, DepositAmino, DepositSDKType, TallyResult, TallyResultAmino, TallyResultSDKType, proposalStatusFromJSON, proposalStatusToJSON } from "./gov";
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-}
-export interface QueryProposalRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryProposalRequest";
-  value: Uint8Array;
-}
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-}
-export interface QueryProposalRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryProposalRequest";
-  value: QueryProposalRequestAmino;
-}
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponse {
-  proposal: Proposal | undefined;
-}
-export interface QueryProposalResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryProposalResponse";
-  value: Uint8Array;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponseAmino {
-  proposal?: ProposalAmino | undefined;
-}
-export interface QueryProposalResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryProposalResponse";
-  value: QueryProposalResponseAmino;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponseSDKType {
-  proposal: ProposalSDKType | undefined;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequest {
-  /** proposal_status defines the status of the proposals. */
-  proposalStatus: ProposalStatus;
-  /** voter defines the voter address for the proposals. */
-  voter: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryProposalsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryProposalsRequest";
-  value: Uint8Array;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequestAmino {
-  /** proposal_status defines the status of the proposals. */
-  proposal_status: ProposalStatus;
-  /** voter defines the voter address for the proposals. */
-  voter: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryProposalsRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryProposalsRequest";
-  value: QueryProposalsRequestAmino;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequestSDKType {
-  proposal_status: ProposalStatus;
-  voter: string;
-  depositor: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponse {
-  proposals: Proposal[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryProposalsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryProposalsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponseAmino {
-  proposals: ProposalAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryProposalsResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryProposalsResponse";
-  value: QueryProposalsResponseAmino;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponseSDKType {
-  proposals: ProposalSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** voter defines the oter address for the proposals. */
-  voter: string;
-}
-export interface QueryVoteRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryVoteRequest";
-  value: Uint8Array;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** voter defines the oter address for the proposals. */
-  voter: string;
-}
-export interface QueryVoteRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryVoteRequest";
-  value: QueryVoteRequestAmino;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequestSDKType {
-  proposal_id: bigint;
-  voter: string;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponse {
-  /** vote defined the queried vote. */
-  vote: Vote | undefined;
-}
-export interface QueryVoteResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryVoteResponse";
-  value: Uint8Array;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponseAmino {
-  /** vote defined the queried vote. */
-  vote?: VoteAmino | undefined;
-}
-export interface QueryVoteResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryVoteResponse";
-  value: QueryVoteResponseAmino;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponseSDKType {
-  vote: VoteSDKType | undefined;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryVotesRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryVotesRequest";
-  value: Uint8Array;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryVotesRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryVotesRequest";
-  value: QueryVotesRequestAmino;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequestSDKType {
-  proposal_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponse {
-  /** votes defined the queried votes. */
-  votes: Vote[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryVotesResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryVotesResponse";
-  value: Uint8Array;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponseAmino {
-  /** votes defined the queried votes. */
-  votes: VoteAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryVotesResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryVotesResponse";
-  value: QueryVotesResponseAmino;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponseSDKType {
-  votes: VoteSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {
-  /**
-   * params_type defines which parameters to query for, can be one of "voting",
-   * "tallying" or "deposit".
-   */
-  paramsType: string;
-}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {
-  /**
-   * params_type defines which parameters to query for, can be one of "voting",
-   * "tallying" or "deposit".
-   */
-  params_type: string;
-}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {
-  params_type: string;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** voting_params defines the parameters related to voting. */
-  votingParams: VotingParams | undefined;
-  /** deposit_params defines the parameters related to deposit. */
-  depositParams: DepositParams | undefined;
-  /** tally_params defines the parameters related to tally. */
-  tallyParams: TallyParams | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** voting_params defines the parameters related to voting. */
-  voting_params?: VotingParamsAmino | undefined;
-  /** deposit_params defines the parameters related to deposit. */
-  deposit_params?: DepositParamsAmino | undefined;
-  /** tally_params defines the parameters related to tally. */
-  tally_params?: TallyParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  voting_params: VotingParamsSDKType | undefined;
-  deposit_params: DepositParamsSDKType | undefined;
-  tally_params: TallyParamsSDKType | undefined;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-}
-export interface QueryDepositRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryDepositRequest";
-  value: Uint8Array;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-}
-export interface QueryDepositRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryDepositRequest";
-  value: QueryDepositRequestAmino;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequestSDKType {
-  proposal_id: bigint;
-  depositor: string;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponse {
-  /** deposit defines the requested deposit. */
-  deposit: Deposit | undefined;
-}
-export interface QueryDepositResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryDepositResponse";
-  value: Uint8Array;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponseAmino {
-  /** deposit defines the requested deposit. */
-  deposit?: DepositAmino | undefined;
-}
-export interface QueryDepositResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryDepositResponse";
-  value: QueryDepositResponseAmino;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponseSDKType {
-  deposit: DepositSDKType | undefined;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDepositsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryDepositsRequest";
-  value: Uint8Array;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDepositsRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryDepositsRequest";
-  value: QueryDepositsRequestAmino;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequestSDKType {
-  proposal_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponse {
-  deposits: Deposit[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDepositsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryDepositsResponse";
-  value: Uint8Array;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponseAmino {
-  deposits: DepositAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDepositsResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryDepositsResponse";
-  value: QueryDepositsResponseAmino;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponseSDKType {
-  deposits: DepositSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-}
-export interface QueryTallyResultRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryTallyResultRequest";
-  value: Uint8Array;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-}
-export interface QueryTallyResultRequestAminoMsg {
-  type: "cosmos-sdk/v1/QueryTallyResultRequest";
-  value: QueryTallyResultRequestAmino;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponse {
-  /** tally defines the requested tally. */
-  tally: TallyResult | undefined;
-}
-export interface QueryTallyResultResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.QueryTallyResultResponse";
-  value: Uint8Array;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponseAmino {
-  /** tally defines the requested tally. */
-  tally?: TallyResultAmino | undefined;
-}
-export interface QueryTallyResultResponseAminoMsg {
-  type: "cosmos-sdk/v1/QueryTallyResultResponse";
-  value: QueryTallyResultResponseAmino;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponseSDKType {
-  tally: TallyResultSDKType | undefined;
-}
-function createBaseQueryProposalRequest(): QueryProposalRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryProposalRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryProposalRequest",
-  aminoType: "cosmos-sdk/v1/QueryProposalRequest",
-  encode(message: QueryProposalRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryProposalRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalRequest>): QueryProposalRequest {
-    const message = createBaseQueryProposalRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryProposalRequestSDKType): QueryProposalRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryProposalRequest): QueryProposalRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryProposalRequestAmino): QueryProposalRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryProposalRequest): QueryProposalRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalRequestAminoMsg): QueryProposalRequest {
-    return QueryProposalRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalRequest): QueryProposalRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryProposalRequest",
-      value: QueryProposalRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalRequestProtoMsg): QueryProposalRequest {
-    return QueryProposalRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalRequest): Uint8Array {
-    return QueryProposalRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalRequest): QueryProposalRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryProposalRequest",
-      value: QueryProposalRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalResponse(): QueryProposalResponse {
-  return {
-    proposal: Proposal.fromPartial({})
-  };
-}
-export const QueryProposalResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryProposalResponse",
-  aminoType: "cosmos-sdk/v1/QueryProposalResponse",
-  encode(message: QueryProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposal !== undefined) {
-      Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposal = Proposal.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalResponse {
-    return {
-      proposal: isSet(object.proposal) ? Proposal.fromJSON(object.proposal) : undefined
-    };
-  },
-  toJSON(message: QueryProposalResponse): unknown {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toJSON(message.proposal) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalResponse>): QueryProposalResponse {
-    const message = createBaseQueryProposalResponse();
-    message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalResponseSDKType): QueryProposalResponse {
-    return {
-      proposal: object.proposal ? Proposal.fromSDK(object.proposal) : undefined
-    };
-  },
-  toSDK(message: QueryProposalResponse): QueryProposalResponseSDKType {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toSDK(message.proposal) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalResponseAmino): QueryProposalResponse {
-    return {
-      proposal: object?.proposal ? Proposal.fromAmino(object.proposal) : undefined
-    };
-  },
-  toAmino(message: QueryProposalResponse): QueryProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal = message.proposal ? Proposal.toAmino(message.proposal) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalResponseAminoMsg): QueryProposalResponse {
-    return QueryProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalResponse): QueryProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryProposalResponse",
-      value: QueryProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalResponseProtoMsg): QueryProposalResponse {
-    return QueryProposalResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalResponse): Uint8Array {
-    return QueryProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalResponse): QueryProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryProposalResponse",
-      value: QueryProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsRequest(): QueryProposalsRequest {
-  return {
-    proposalStatus: 0,
-    voter: "",
-    depositor: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryProposalsRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryProposalsRequest",
-  aminoType: "cosmos-sdk/v1/QueryProposalsRequest",
-  encode(message: QueryProposalsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalStatus !== 0) {
-      writer.uint32(8).int32(message.proposalStatus);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(26).string(message.depositor);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalStatus = (reader.int32() as any);
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.depositor = reader.string();
-          break;
-        case 4:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposalStatus) ? proposalStatusFromJSON(object.proposalStatus) : -1,
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsRequest): unknown {
-    const obj: any = {};
-    message.proposalStatus !== undefined && (obj.proposalStatus = proposalStatusToJSON(message.proposalStatus));
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsRequest>): QueryProposalsRequest {
-    const message = createBaseQueryProposalsRequest();
-    message.proposalStatus = object.proposalStatus ?? 0;
-    message.voter = object.voter ?? "";
-    message.depositor = object.depositor ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsRequestSDKType): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposal_status) ? proposalStatusFromJSON(object.proposal_status) : -1,
-      voter: object?.voter,
-      depositor: object?.depositor,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsRequest): QueryProposalsRequestSDKType {
-    const obj: any = {};
-    message.proposalStatus !== undefined && (obj.proposal_status = proposalStatusToJSON(message.proposalStatus));
-    obj.voter = message.voter;
-    obj.depositor = message.depositor;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsRequestAmino): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposal_status) ? proposalStatusFromJSON(object.proposal_status) : -1,
-      voter: object.voter,
-      depositor: object.depositor,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsRequest): QueryProposalsRequestAmino {
-    const obj: any = {};
-    obj.proposal_status = message.proposalStatus;
-    obj.voter = message.voter;
-    obj.depositor = message.depositor;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsRequestAminoMsg): QueryProposalsRequest {
-    return QueryProposalsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsRequest): QueryProposalsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryProposalsRequest",
-      value: QueryProposalsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsRequestProtoMsg): QueryProposalsRequest {
-    return QueryProposalsRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalsRequest): Uint8Array {
-    return QueryProposalsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsRequest): QueryProposalsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryProposalsRequest",
-      value: QueryProposalsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsResponse(): QueryProposalsResponse {
-  return {
-    proposals: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryProposalsResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryProposalsResponse",
-  aminoType: "cosmos-sdk/v1/QueryProposalsResponse",
-  encode(message: QueryProposalsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsResponse): unknown {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsResponse>): QueryProposalsResponse {
-    const message = createBaseQueryProposalsResponse();
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsResponseSDKType): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsResponse): QueryProposalsResponseSDKType {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsResponseAmino): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsResponse): QueryProposalsResponseAmino {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsResponseAminoMsg): QueryProposalsResponse {
-    return QueryProposalsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsResponse): QueryProposalsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryProposalsResponse",
-      value: QueryProposalsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsResponseProtoMsg): QueryProposalsResponse {
-    return QueryProposalsResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalsResponse): Uint8Array {
-    return QueryProposalsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsResponse): QueryProposalsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryProposalsResponse",
-      value: QueryProposalsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteRequest(): QueryVoteRequest {
-  return {
-    proposalId: BigInt(0),
-    voter: ""
-  };
-}
-export const QueryVoteRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryVoteRequest",
-  aminoType: "cosmos-sdk/v1/QueryVoteRequest",
-  encode(message: QueryVoteRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : ""
-    };
-  },
-  toJSON(message: QueryVoteRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteRequest>): QueryVoteRequest {
-    const message = createBaseQueryVoteRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    return message;
-  },
-  fromSDK(object: QueryVoteRequestSDKType): QueryVoteRequest {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter
-    };
-  },
-  toSDK(message: QueryVoteRequest): QueryVoteRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAmino(object: QueryVoteRequestAmino): QueryVoteRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter
-    };
-  },
-  toAmino(message: QueryVoteRequest): QueryVoteRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteRequestAminoMsg): QueryVoteRequest {
-    return QueryVoteRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteRequest): QueryVoteRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryVoteRequest",
-      value: QueryVoteRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteRequestProtoMsg): QueryVoteRequest {
-    return QueryVoteRequest.decode(message.value);
-  },
-  toProto(message: QueryVoteRequest): Uint8Array {
-    return QueryVoteRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteRequest): QueryVoteRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryVoteRequest",
-      value: QueryVoteRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteResponse(): QueryVoteResponse {
-  return {
-    vote: Vote.fromPartial({})
-  };
-}
-export const QueryVoteResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryVoteResponse",
-  aminoType: "cosmos-sdk/v1/QueryVoteResponse",
-  encode(message: QueryVoteResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.vote !== undefined) {
-      Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.vote = Vote.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteResponse {
-    return {
-      vote: isSet(object.vote) ? Vote.fromJSON(object.vote) : undefined
-    };
-  },
-  toJSON(message: QueryVoteResponse): unknown {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toJSON(message.vote) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteResponse>): QueryVoteResponse {
-    const message = createBaseQueryVoteResponse();
-    message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVoteResponseSDKType): QueryVoteResponse {
-    return {
-      vote: object.vote ? Vote.fromSDK(object.vote) : undefined
-    };
-  },
-  toSDK(message: QueryVoteResponse): QueryVoteResponseSDKType {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toSDK(message.vote) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVoteResponseAmino): QueryVoteResponse {
-    return {
-      vote: object?.vote ? Vote.fromAmino(object.vote) : undefined
-    };
-  },
-  toAmino(message: QueryVoteResponse): QueryVoteResponseAmino {
-    const obj: any = {};
-    obj.vote = message.vote ? Vote.toAmino(message.vote) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteResponseAminoMsg): QueryVoteResponse {
-    return QueryVoteResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteResponse): QueryVoteResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryVoteResponse",
-      value: QueryVoteResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteResponseProtoMsg): QueryVoteResponse {
-    return QueryVoteResponse.decode(message.value);
-  },
-  toProto(message: QueryVoteResponse): Uint8Array {
-    return QueryVoteResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteResponse): QueryVoteResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryVoteResponse",
-      value: QueryVoteResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesRequest(): QueryVotesRequest {
-  return {
-    proposalId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryVotesRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryVotesRequest",
-  aminoType: "cosmos-sdk/v1/QueryVotesRequest",
-  encode(message: QueryVotesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesRequest>): QueryVotesRequest {
-    const message = createBaseQueryVotesRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesRequestSDKType): QueryVotesRequest {
-    return {
-      proposalId: object?.proposal_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesRequest): QueryVotesRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesRequestAmino): QueryVotesRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesRequest): QueryVotesRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesRequestAminoMsg): QueryVotesRequest {
-    return QueryVotesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesRequest): QueryVotesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryVotesRequest",
-      value: QueryVotesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesRequestProtoMsg): QueryVotesRequest {
-    return QueryVotesRequest.decode(message.value);
-  },
-  toProto(message: QueryVotesRequest): Uint8Array {
-    return QueryVotesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesRequest): QueryVotesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryVotesRequest",
-      value: QueryVotesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesResponse(): QueryVotesResponse {
-  return {
-    votes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryVotesResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryVotesResponse",
-  aminoType: "cosmos-sdk/v1/QueryVotesResponse",
-  encode(message: QueryVotesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesResponse): unknown {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesResponse>): QueryVotesResponse {
-    const message = createBaseQueryVotesResponse();
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesResponseSDKType): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesResponse): QueryVotesResponseSDKType {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesResponseAmino): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesResponse): QueryVotesResponseAmino {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesResponseAminoMsg): QueryVotesResponse {
-    return QueryVotesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesResponse): QueryVotesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryVotesResponse",
-      value: QueryVotesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesResponseProtoMsg): QueryVotesResponse {
-    return QueryVotesResponse.decode(message.value);
-  },
-  toProto(message: QueryVotesResponse): Uint8Array {
-    return QueryVotesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesResponse): QueryVotesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryVotesResponse",
-      value: QueryVotesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {
-    paramsType: ""
-  };
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/v1/QueryParamsRequest",
-  encode(message: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.paramsType !== "") {
-      writer.uint32(10).string(message.paramsType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.paramsType = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsRequest {
-    return {
-      paramsType: isSet(object.paramsType) ? String(object.paramsType) : ""
-    };
-  },
-  toJSON(message: QueryParamsRequest): unknown {
-    const obj: any = {};
-    message.paramsType !== undefined && (obj.paramsType = message.paramsType);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    message.paramsType = object.paramsType ?? "";
-    return message;
-  },
-  fromSDK(object: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {
-      paramsType: object?.params_type
-    };
-  },
-  toSDK(message: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    obj.params_type = message.paramsType;
-    return obj;
-  },
-  fromAmino(object: QueryParamsRequestAmino): QueryParamsRequest {
-    return {
-      paramsType: object.params_type
-    };
-  },
-  toAmino(message: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    obj.params_type = message.paramsType;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    votingParams: VotingParams.fromPartial({}),
-    depositParams: DepositParams.fromPartial({}),
-    tallyParams: TallyParams.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/v1/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.votingParams !== undefined) {
-      VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.depositParams !== undefined) {
-      DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.tallyParams !== undefined) {
-      TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votingParams = VotingParams.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.depositParams = DepositParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.tallyParams = TallyParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      votingParams: isSet(object.votingParams) ? VotingParams.fromJSON(object.votingParams) : undefined,
-      depositParams: isSet(object.depositParams) ? DepositParams.fromJSON(object.depositParams) : undefined,
-      tallyParams: isSet(object.tallyParams) ? TallyParams.fromJSON(object.tallyParams) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.votingParams !== undefined && (obj.votingParams = message.votingParams ? VotingParams.toJSON(message.votingParams) : undefined);
-    message.depositParams !== undefined && (obj.depositParams = message.depositParams ? DepositParams.toJSON(message.depositParams) : undefined);
-    message.tallyParams !== undefined && (obj.tallyParams = message.tallyParams ? TallyParams.toJSON(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined;
-    message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined;
-    message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      votingParams: object.voting_params ? VotingParams.fromSDK(object.voting_params) : undefined,
-      depositParams: object.deposit_params ? DepositParams.fromSDK(object.deposit_params) : undefined,
-      tallyParams: object.tally_params ? TallyParams.fromSDK(object.tally_params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.votingParams !== undefined && (obj.voting_params = message.votingParams ? VotingParams.toSDK(message.votingParams) : undefined);
-    message.depositParams !== undefined && (obj.deposit_params = message.depositParams ? DepositParams.toSDK(message.depositParams) : undefined);
-    message.tallyParams !== undefined && (obj.tally_params = message.tallyParams ? TallyParams.toSDK(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      votingParams: object?.voting_params ? VotingParams.fromAmino(object.voting_params) : undefined,
-      depositParams: object?.deposit_params ? DepositParams.fromAmino(object.deposit_params) : undefined,
-      tallyParams: object?.tally_params ? TallyParams.fromAmino(object.tally_params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.voting_params = message.votingParams ? VotingParams.toAmino(message.votingParams) : undefined;
-    obj.deposit_params = message.depositParams ? DepositParams.toAmino(message.depositParams) : undefined;
-    obj.tally_params = message.tallyParams ? TallyParams.toAmino(message.tallyParams) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositRequest(): QueryDepositRequest {
-  return {
-    proposalId: BigInt(0),
-    depositor: ""
-  };
-}
-export const QueryDepositRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryDepositRequest",
-  aminoType: "cosmos-sdk/v1/QueryDepositRequest",
-  encode(message: QueryDepositRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : ""
-    };
-  },
-  toJSON(message: QueryDepositRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositRequest>): QueryDepositRequest {
-    const message = createBaseQueryDepositRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDepositRequestSDKType): QueryDepositRequest {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor
-    };
-  },
-  toSDK(message: QueryDepositRequest): QueryDepositRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAmino(object: QueryDepositRequestAmino): QueryDepositRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor
-    };
-  },
-  toAmino(message: QueryDepositRequest): QueryDepositRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositRequestAminoMsg): QueryDepositRequest {
-    return QueryDepositRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositRequest): QueryDepositRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryDepositRequest",
-      value: QueryDepositRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositRequestProtoMsg): QueryDepositRequest {
-    return QueryDepositRequest.decode(message.value);
-  },
-  toProto(message: QueryDepositRequest): Uint8Array {
-    return QueryDepositRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositRequest): QueryDepositRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryDepositRequest",
-      value: QueryDepositRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositResponse(): QueryDepositResponse {
-  return {
-    deposit: Deposit.fromPartial({})
-  };
-}
-export const QueryDepositResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryDepositResponse",
-  aminoType: "cosmos-sdk/v1/QueryDepositResponse",
-  encode(message: QueryDepositResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.deposit !== undefined) {
-      Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.deposit = Deposit.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositResponse {
-    return {
-      deposit: isSet(object.deposit) ? Deposit.fromJSON(object.deposit) : undefined
-    };
-  },
-  toJSON(message: QueryDepositResponse): unknown {
-    const obj: any = {};
-    message.deposit !== undefined && (obj.deposit = message.deposit ? Deposit.toJSON(message.deposit) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositResponse>): QueryDepositResponse {
-    const message = createBaseQueryDepositResponse();
-    message.deposit = object.deposit !== undefined && object.deposit !== null ? Deposit.fromPartial(object.deposit) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositResponseSDKType): QueryDepositResponse {
-    return {
-      deposit: object.deposit ? Deposit.fromSDK(object.deposit) : undefined
-    };
-  },
-  toSDK(message: QueryDepositResponse): QueryDepositResponseSDKType {
-    const obj: any = {};
-    message.deposit !== undefined && (obj.deposit = message.deposit ? Deposit.toSDK(message.deposit) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositResponseAmino): QueryDepositResponse {
-    return {
-      deposit: object?.deposit ? Deposit.fromAmino(object.deposit) : undefined
-    };
-  },
-  toAmino(message: QueryDepositResponse): QueryDepositResponseAmino {
-    const obj: any = {};
-    obj.deposit = message.deposit ? Deposit.toAmino(message.deposit) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositResponseAminoMsg): QueryDepositResponse {
-    return QueryDepositResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositResponse): QueryDepositResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryDepositResponse",
-      value: QueryDepositResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositResponseProtoMsg): QueryDepositResponse {
-    return QueryDepositResponse.decode(message.value);
-  },
-  toProto(message: QueryDepositResponse): Uint8Array {
-    return QueryDepositResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositResponse): QueryDepositResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryDepositResponse",
-      value: QueryDepositResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositsRequest(): QueryDepositsRequest {
-  return {
-    proposalId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDepositsRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryDepositsRequest",
-  aminoType: "cosmos-sdk/v1/QueryDepositsRequest",
-  encode(message: QueryDepositsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositsRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDepositsRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositsRequest>): QueryDepositsRequest {
-    const message = createBaseQueryDepositsRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositsRequestSDKType): QueryDepositsRequest {
-    return {
-      proposalId: object?.proposal_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDepositsRequest): QueryDepositsRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositsRequestAmino): QueryDepositsRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDepositsRequest): QueryDepositsRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositsRequestAminoMsg): QueryDepositsRequest {
-    return QueryDepositsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositsRequest): QueryDepositsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryDepositsRequest",
-      value: QueryDepositsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositsRequestProtoMsg): QueryDepositsRequest {
-    return QueryDepositsRequest.decode(message.value);
-  },
-  toProto(message: QueryDepositsRequest): Uint8Array {
-    return QueryDepositsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositsRequest): QueryDepositsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryDepositsRequest",
-      value: QueryDepositsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositsResponse(): QueryDepositsResponse {
-  return {
-    deposits: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDepositsResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryDepositsResponse",
-  aminoType: "cosmos-sdk/v1/QueryDepositsResponse",
-  encode(message: QueryDepositsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.deposits) {
-      Deposit.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.deposits.push(Deposit.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDepositsResponse): unknown {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toJSON(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositsResponse>): QueryDepositsResponse {
-    const message = createBaseQueryDepositsResponse();
-    message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositsResponseSDKType): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDepositsResponse): QueryDepositsResponseSDKType {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toSDK(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositsResponseAmino): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDepositsResponse): QueryDepositsResponseAmino {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toAmino(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositsResponseAminoMsg): QueryDepositsResponse {
-    return QueryDepositsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositsResponse): QueryDepositsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryDepositsResponse",
-      value: QueryDepositsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositsResponseProtoMsg): QueryDepositsResponse {
-    return QueryDepositsResponse.decode(message.value);
-  },
-  toProto(message: QueryDepositsResponse): Uint8Array {
-    return QueryDepositsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositsResponse): QueryDepositsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryDepositsResponse",
-      value: QueryDepositsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultRequest(): QueryTallyResultRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryTallyResultRequest = {
-  typeUrl: "/cosmos.gov.v1.QueryTallyResultRequest",
-  aminoType: "cosmos-sdk/v1/QueryTallyResultRequest",
-  encode(message: QueryTallyResultRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryTallyResultRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultRequest>): QueryTallyResultRequest {
-    const message = createBaseQueryTallyResultRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryTallyResultRequestSDKType): QueryTallyResultRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryTallyResultRequest): QueryTallyResultRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultRequestAmino): QueryTallyResultRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryTallyResultRequest): QueryTallyResultRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultRequestAminoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryTallyResultRequest",
-      value: QueryTallyResultRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultRequestProtoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.decode(message.value);
-  },
-  toProto(message: QueryTallyResultRequest): Uint8Array {
-    return QueryTallyResultRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryTallyResultRequest",
-      value: QueryTallyResultRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultResponse(): QueryTallyResultResponse {
-  return {
-    tally: TallyResult.fromPartial({})
-  };
-}
-export const QueryTallyResultResponse = {
-  typeUrl: "/cosmos.gov.v1.QueryTallyResultResponse",
-  aminoType: "cosmos-sdk/v1/QueryTallyResultResponse",
-  encode(message: QueryTallyResultResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tally !== undefined) {
-      TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tally = TallyResult.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultResponse {
-    return {
-      tally: isSet(object.tally) ? TallyResult.fromJSON(object.tally) : undefined
-    };
-  },
-  toJSON(message: QueryTallyResultResponse): unknown {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toJSON(message.tally) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultResponse>): QueryTallyResultResponse {
-    const message = createBaseQueryTallyResultResponse();
-    message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTallyResultResponseSDKType): QueryTallyResultResponse {
-    return {
-      tally: object.tally ? TallyResult.fromSDK(object.tally) : undefined
-    };
-  },
-  toSDK(message: QueryTallyResultResponse): QueryTallyResultResponseSDKType {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toSDK(message.tally) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultResponseAmino): QueryTallyResultResponse {
-    return {
-      tally: object?.tally ? TallyResult.fromAmino(object.tally) : undefined
-    };
-  },
-  toAmino(message: QueryTallyResultResponse): QueryTallyResultResponseAmino {
-    const obj: any = {};
-    obj.tally = message.tally ? TallyResult.toAmino(message.tally) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultResponseAminoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/QueryTallyResultResponse",
-      value: QueryTallyResultResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultResponseProtoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.decode(message.value);
-  },
-  toProto(message: QueryTallyResultResponse): Uint8Array {
-    return QueryTallyResultResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.QueryTallyResultResponse",
-      value: QueryTallyResultResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/tx.amino.ts b/examples/injective/src/codegen/cosmos/gov/v1/tx.amino.ts
deleted file mode 100644
index 33fcf209..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/tx.amino.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { MsgSubmitProposal, MsgExecLegacyContent, MsgVote, MsgVoteWeighted, MsgDeposit } from "./tx";
-export const AminoConverter = {
-  "/cosmos.gov.v1.MsgSubmitProposal": {
-    aminoType: "cosmos-sdk/v1/MsgSubmitProposal",
-    toAmino: MsgSubmitProposal.toAmino,
-    fromAmino: MsgSubmitProposal.fromAmino
-  },
-  "/cosmos.gov.v1.MsgExecLegacyContent": {
-    aminoType: "cosmos-sdk/v1/MsgExecLegacyContent",
-    toAmino: MsgExecLegacyContent.toAmino,
-    fromAmino: MsgExecLegacyContent.fromAmino
-  },
-  "/cosmos.gov.v1.MsgVote": {
-    aminoType: "cosmos-sdk/v1/MsgVote",
-    toAmino: MsgVote.toAmino,
-    fromAmino: MsgVote.fromAmino
-  },
-  "/cosmos.gov.v1.MsgVoteWeighted": {
-    aminoType: "cosmos-sdk/v1/MsgVoteWeighted",
-    toAmino: MsgVoteWeighted.toAmino,
-    fromAmino: MsgVoteWeighted.fromAmino
-  },
-  "/cosmos.gov.v1.MsgDeposit": {
-    aminoType: "cosmos-sdk/v1/MsgDeposit",
-    toAmino: MsgDeposit.toAmino,
-    fromAmino: MsgDeposit.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/tx.registry.ts b/examples/injective/src/codegen/cosmos/gov/v1/tx.registry.ts
deleted file mode 100644
index be88f457..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/tx.registry.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSubmitProposal, MsgExecLegacyContent, MsgVote, MsgVoteWeighted, MsgDeposit } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.gov.v1.MsgSubmitProposal", MsgSubmitProposal], ["/cosmos.gov.v1.MsgExecLegacyContent", MsgExecLegacyContent], ["/cosmos.gov.v1.MsgVote", MsgVote], ["/cosmos.gov.v1.MsgVoteWeighted", MsgVoteWeighted], ["/cosmos.gov.v1.MsgDeposit", MsgDeposit]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.encode(value).finish()
-      };
-    },
-    execLegacyContent(value: MsgExecLegacyContent) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-        value: MsgExecLegacyContent.encode(value).finish()
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVote",
-        value: MsgVote.encode(value).finish()
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-        value: MsgVoteWeighted.encode(value).finish()
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgDeposit",
-        value: MsgDeposit.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-        value
-      };
-    },
-    execLegacyContent(value: MsgExecLegacyContent) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-        value
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVote",
-        value
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-        value
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgDeposit",
-        value
-      };
-    }
-  },
-  toJSON: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.toJSON(value)
-      };
-    },
-    execLegacyContent(value: MsgExecLegacyContent) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-        value: MsgExecLegacyContent.toJSON(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVote",
-        value: MsgVote.toJSON(value)
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-        value: MsgVoteWeighted.toJSON(value)
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgDeposit",
-        value: MsgDeposit.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    submitProposal(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromJSON(value)
-      };
-    },
-    execLegacyContent(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-        value: MsgExecLegacyContent.fromJSON(value)
-      };
-    },
-    vote(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVote",
-        value: MsgVote.fromJSON(value)
-      };
-    },
-    voteWeighted(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-        value: MsgVoteWeighted.fromJSON(value)
-      };
-    },
-    deposit(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgDeposit",
-        value: MsgDeposit.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromPartial(value)
-      };
-    },
-    execLegacyContent(value: MsgExecLegacyContent) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-        value: MsgExecLegacyContent.fromPartial(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVote",
-        value: MsgVote.fromPartial(value)
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-        value: MsgVoteWeighted.fromPartial(value)
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1.MsgDeposit",
-        value: MsgDeposit.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/gov/v1/tx.rpc.msg.ts
deleted file mode 100644
index 2a8605ee..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgExecLegacyContent, MsgExecLegacyContentResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx";
-/** Msg defines the gov Msg service. */
-export interface Msg {
-  /** SubmitProposal defines a method to create new proposal given a content. */
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse>;
-  /**
-   * ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal
-   * to execute a legacy content-based proposal.
-   */
-  execLegacyContent(request: MsgExecLegacyContent): Promise<MsgExecLegacyContentResponse>;
-  /** Vote defines a method to add a vote on a specific proposal. */
-  vote(request: MsgVote): Promise<MsgVoteResponse>;
-  /** VoteWeighted defines a method to add a weighted vote on a specific proposal. */
-  voteWeighted(request: MsgVoteWeighted): Promise<MsgVoteWeightedResponse>;
-  /** Deposit defines a method to add deposit on a specific proposal. */
-  deposit(request: MsgDeposit): Promise<MsgDepositResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.submitProposal = this.submitProposal.bind(this);
-    this.execLegacyContent = this.execLegacyContent.bind(this);
-    this.vote = this.vote.bind(this);
-    this.voteWeighted = this.voteWeighted.bind(this);
-    this.deposit = this.deposit.bind(this);
-  }
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse> {
-    const data = MsgSubmitProposal.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Msg", "SubmitProposal", data);
-    return promise.then(data => MsgSubmitProposalResponse.decode(new BinaryReader(data)));
-  }
-  execLegacyContent(request: MsgExecLegacyContent): Promise<MsgExecLegacyContentResponse> {
-    const data = MsgExecLegacyContent.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Msg", "ExecLegacyContent", data);
-    return promise.then(data => MsgExecLegacyContentResponse.decode(new BinaryReader(data)));
-  }
-  vote(request: MsgVote): Promise<MsgVoteResponse> {
-    const data = MsgVote.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Msg", "Vote", data);
-    return promise.then(data => MsgVoteResponse.decode(new BinaryReader(data)));
-  }
-  voteWeighted(request: MsgVoteWeighted): Promise<MsgVoteWeightedResponse> {
-    const data = MsgVoteWeighted.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Msg", "VoteWeighted", data);
-    return promise.then(data => MsgVoteWeightedResponse.decode(new BinaryReader(data)));
-  }
-  deposit(request: MsgDeposit): Promise<MsgDepositResponse> {
-    const data = MsgDeposit.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1.Msg", "Deposit", data);
-    return promise.then(data => MsgDepositResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1/tx.ts b/examples/injective/src/codegen/cosmos/gov/v1/tx.ts
deleted file mode 100644
index 2750da65..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1/tx.ts
+++ /dev/null
@@ -1,1265 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { VoteOption, WeightedVoteOption, WeightedVoteOptionAmino, WeightedVoteOptionSDKType, voteOptionFromJSON, voteOptionToJSON } from "./gov";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposal {
-  messages: Any[];
-  initialDeposit: Coin[];
-  proposer: string;
-  /** metadata is any arbitrary metadata attached to the proposal. */
-  metadata: string;
-}
-export interface MsgSubmitProposalProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgSubmitProposal";
-  value: Uint8Array;
-}
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposalAmino {
-  messages: AnyAmino[];
-  initial_deposit: CoinAmino[];
-  proposer: string;
-  /** metadata is any arbitrary metadata attached to the proposal. */
-  metadata: string;
-}
-export interface MsgSubmitProposalAminoMsg {
-  type: "cosmos-sdk/v1/MsgSubmitProposal";
-  value: MsgSubmitProposalAmino;
-}
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposalSDKType {
-  messages: AnySDKType[];
-  initial_deposit: CoinSDKType[];
-  proposer: string;
-  metadata: string;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponse {
-  proposalId: bigint;
-}
-export interface MsgSubmitProposalResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgSubmitProposalResponse";
-  value: Uint8Array;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseAmino {
-  proposal_id: string;
-}
-export interface MsgSubmitProposalResponseAminoMsg {
-  type: "cosmos-sdk/v1/MsgSubmitProposalResponse";
-  value: MsgSubmitProposalResponseAmino;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseSDKType {
-  proposal_id: bigint;
-}
-/**
- * MsgExecLegacyContent is used to wrap the legacy content field into a message.
- * This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
- */
-export interface MsgExecLegacyContent {
-  /** content is the proposal's content. */
-  content: Any | undefined;
-  /** authority must be the gov module address. */
-  authority: string;
-}
-export interface MsgExecLegacyContentProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent";
-  value: Uint8Array;
-}
-/**
- * MsgExecLegacyContent is used to wrap the legacy content field into a message.
- * This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
- */
-export interface MsgExecLegacyContentAmino {
-  /** content is the proposal's content. */
-  content?: AnyAmino | undefined;
-  /** authority must be the gov module address. */
-  authority: string;
-}
-export interface MsgExecLegacyContentAminoMsg {
-  type: "cosmos-sdk/v1/MsgExecLegacyContent";
-  value: MsgExecLegacyContentAmino;
-}
-/**
- * MsgExecLegacyContent is used to wrap the legacy content field into a message.
- * This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
- */
-export interface MsgExecLegacyContentSDKType {
-  content: AnySDKType | undefined;
-  authority: string;
-}
-/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */
-export interface MsgExecLegacyContentResponse {}
-export interface MsgExecLegacyContentResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgExecLegacyContentResponse";
-  value: Uint8Array;
-}
-/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */
-export interface MsgExecLegacyContentResponseAmino {}
-export interface MsgExecLegacyContentResponseAminoMsg {
-  type: "cosmos-sdk/v1/MsgExecLegacyContentResponse";
-  value: MsgExecLegacyContentResponseAmino;
-}
-/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */
-export interface MsgExecLegacyContentResponseSDKType {}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVote {
-  proposalId: bigint;
-  voter: string;
-  option: VoteOption;
-  metadata: string;
-}
-export interface MsgVoteProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgVote";
-  value: Uint8Array;
-}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVoteAmino {
-  proposal_id: string;
-  voter: string;
-  option: VoteOption;
-  metadata: string;
-}
-export interface MsgVoteAminoMsg {
-  type: "cosmos-sdk/v1/MsgVote";
-  value: MsgVoteAmino;
-}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  option: VoteOption;
-  metadata: string;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponse {}
-export interface MsgVoteResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgVoteResponse";
-  value: Uint8Array;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponseAmino {}
-export interface MsgVoteResponseAminoMsg {
-  type: "cosmos-sdk/v1/MsgVoteResponse";
-  value: MsgVoteResponseAmino;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponseSDKType {}
-/** MsgVoteWeighted defines a message to cast a vote. */
-export interface MsgVoteWeighted {
-  proposalId: bigint;
-  voter: string;
-  options: WeightedVoteOption[];
-  metadata: string;
-}
-export interface MsgVoteWeightedProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgVoteWeighted";
-  value: Uint8Array;
-}
-/** MsgVoteWeighted defines a message to cast a vote. */
-export interface MsgVoteWeightedAmino {
-  proposal_id: string;
-  voter: string;
-  options: WeightedVoteOptionAmino[];
-  metadata: string;
-}
-export interface MsgVoteWeightedAminoMsg {
-  type: "cosmos-sdk/v1/MsgVoteWeighted";
-  value: MsgVoteWeightedAmino;
-}
-/** MsgVoteWeighted defines a message to cast a vote. */
-export interface MsgVoteWeightedSDKType {
-  proposal_id: bigint;
-  voter: string;
-  options: WeightedVoteOptionSDKType[];
-  metadata: string;
-}
-/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */
-export interface MsgVoteWeightedResponse {}
-export interface MsgVoteWeightedResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgVoteWeightedResponse";
-  value: Uint8Array;
-}
-/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */
-export interface MsgVoteWeightedResponseAmino {}
-export interface MsgVoteWeightedResponseAminoMsg {
-  type: "cosmos-sdk/v1/MsgVoteWeightedResponse";
-  value: MsgVoteWeightedResponseAmino;
-}
-/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */
-export interface MsgVoteWeightedResponseSDKType {}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDeposit {
-  proposalId: bigint;
-  depositor: string;
-  amount: Coin[];
-}
-export interface MsgDepositProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgDeposit";
-  value: Uint8Array;
-}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDepositAmino {
-  proposal_id: string;
-  depositor: string;
-  amount: CoinAmino[];
-}
-export interface MsgDepositAminoMsg {
-  type: "cosmos-sdk/v1/MsgDeposit";
-  value: MsgDepositAmino;
-}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDepositSDKType {
-  proposal_id: bigint;
-  depositor: string;
-  amount: CoinSDKType[];
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponse {}
-export interface MsgDepositResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1.MsgDepositResponse";
-  value: Uint8Array;
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponseAmino {}
-export interface MsgDepositResponseAminoMsg {
-  type: "cosmos-sdk/v1/MsgDepositResponse";
-  value: MsgDepositResponseAmino;
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponseSDKType {}
-function createBaseMsgSubmitProposal(): MsgSubmitProposal {
-  return {
-    messages: [],
-    initialDeposit: [],
-    proposer: "",
-    metadata: ""
-  };
-}
-export const MsgSubmitProposal = {
-  typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-  aminoType: "cosmos-sdk/v1/MsgSubmitProposal",
-  encode(message: MsgSubmitProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.messages) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.initialDeposit) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.proposer !== "") {
-      writer.uint32(26).string(message.proposer);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.messages.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.initialDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.proposer = reader.string();
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposal {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromJSON(e)) : [],
-      initialDeposit: Array.isArray(object?.initialDeposit) ? object.initialDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      proposer: isSet(object.proposer) ? String(object.proposer) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgSubmitProposal): unknown {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    if (message.initialDeposit) {
-      obj.initialDeposit = message.initialDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.initialDeposit = [];
-    }
-    message.proposer !== undefined && (obj.proposer = message.proposer);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposal>): MsgSubmitProposal {
-    const message = createBaseMsgSubmitProposal();
-    message.messages = object.messages?.map(e => Any.fromPartial(e)) || [];
-    message.initialDeposit = object.initialDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.proposer = object.proposer ?? "";
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalSDKType): MsgSubmitProposal {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromSDK(e)) : [],
-      initialDeposit: Array.isArray(object?.initial_deposit) ? object.initial_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      proposer: object?.proposer,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgSubmitProposal): MsgSubmitProposalSDKType {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    if (message.initialDeposit) {
-      obj.initial_deposit = message.initialDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.initial_deposit = [];
-    }
-    obj.proposer = message.proposer;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalAmino): MsgSubmitProposal {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromAmino(e)) : [],
-      initialDeposit: Array.isArray(object?.initial_deposit) ? object.initial_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      proposer: object.proposer,
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgSubmitProposal): MsgSubmitProposalAmino {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    if (message.initialDeposit) {
-      obj.initial_deposit = message.initialDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.initial_deposit = [];
-    }
-    obj.proposer = message.proposer;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalAminoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposal): MsgSubmitProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgSubmitProposal",
-      value: MsgSubmitProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalProtoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposal): Uint8Array {
-    return MsgSubmitProposal.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposal): MsgSubmitProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgSubmitProposal",
-      value: MsgSubmitProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const MsgSubmitProposalResponse = {
-  typeUrl: "/cosmos.gov.v1.MsgSubmitProposalResponse",
-  aminoType: "cosmos-sdk/v1/MsgSubmitProposalResponse",
-  encode(message: MsgSubmitProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposalResponse {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgSubmitProposalResponse): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposalResponse>): MsgSubmitProposalResponse {
-    const message = createBaseMsgSubmitProposalResponse();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalResponseSDKType): MsgSubmitProposalResponse {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalResponseAmino): MsgSubmitProposalResponse {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalResponseAminoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalResponseProtoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposalResponse): Uint8Array {
-    return MsgSubmitProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecLegacyContent(): MsgExecLegacyContent {
-  return {
-    content: Any.fromPartial({}),
-    authority: ""
-  };
-}
-export const MsgExecLegacyContent = {
-  typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-  aminoType: "cosmos-sdk/v1/MsgExecLegacyContent",
-  encode(message: MsgExecLegacyContent, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.content !== undefined) {
-      Any.encode(message.content, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.authority !== "") {
-      writer.uint32(18).string(message.authority);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecLegacyContent {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecLegacyContent();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.content = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.authority = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExecLegacyContent {
-    return {
-      content: isSet(object.content) ? Any.fromJSON(object.content) : undefined,
-      authority: isSet(object.authority) ? String(object.authority) : ""
-    };
-  },
-  toJSON(message: MsgExecLegacyContent): unknown {
-    const obj: any = {};
-    message.content !== undefined && (obj.content = message.content ? Any.toJSON(message.content) : undefined);
-    message.authority !== undefined && (obj.authority = message.authority);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExecLegacyContent>): MsgExecLegacyContent {
-    const message = createBaseMsgExecLegacyContent();
-    message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined;
-    message.authority = object.authority ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExecLegacyContentSDKType): MsgExecLegacyContent {
-    return {
-      content: object.content ? Any.fromSDK(object.content) : undefined,
-      authority: object?.authority
-    };
-  },
-  toSDK(message: MsgExecLegacyContent): MsgExecLegacyContentSDKType {
-    const obj: any = {};
-    message.content !== undefined && (obj.content = message.content ? Any.toSDK(message.content) : undefined);
-    obj.authority = message.authority;
-    return obj;
-  },
-  fromAmino(object: MsgExecLegacyContentAmino): MsgExecLegacyContent {
-    return {
-      content: object?.content ? Any.fromAmino(object.content) : undefined,
-      authority: object.authority
-    };
-  },
-  toAmino(message: MsgExecLegacyContent): MsgExecLegacyContentAmino {
-    const obj: any = {};
-    obj.content = message.content ? Any.toAmino(message.content) : undefined;
-    obj.authority = message.authority;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecLegacyContentAminoMsg): MsgExecLegacyContent {
-    return MsgExecLegacyContent.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecLegacyContent): MsgExecLegacyContentAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgExecLegacyContent",
-      value: MsgExecLegacyContent.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecLegacyContentProtoMsg): MsgExecLegacyContent {
-    return MsgExecLegacyContent.decode(message.value);
-  },
-  toProto(message: MsgExecLegacyContent): Uint8Array {
-    return MsgExecLegacyContent.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecLegacyContent): MsgExecLegacyContentProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent",
-      value: MsgExecLegacyContent.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecLegacyContentResponse(): MsgExecLegacyContentResponse {
-  return {};
-}
-export const MsgExecLegacyContentResponse = {
-  typeUrl: "/cosmos.gov.v1.MsgExecLegacyContentResponse",
-  aminoType: "cosmos-sdk/v1/MsgExecLegacyContentResponse",
-  encode(_: MsgExecLegacyContentResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecLegacyContentResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecLegacyContentResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgExecLegacyContentResponse {
-    return {};
-  },
-  toJSON(_: MsgExecLegacyContentResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgExecLegacyContentResponse>): MsgExecLegacyContentResponse {
-    const message = createBaseMsgExecLegacyContentResponse();
-    return message;
-  },
-  fromSDK(_: MsgExecLegacyContentResponseSDKType): MsgExecLegacyContentResponse {
-    return {};
-  },
-  toSDK(_: MsgExecLegacyContentResponse): MsgExecLegacyContentResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgExecLegacyContentResponseAmino): MsgExecLegacyContentResponse {
-    return {};
-  },
-  toAmino(_: MsgExecLegacyContentResponse): MsgExecLegacyContentResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecLegacyContentResponseAminoMsg): MsgExecLegacyContentResponse {
-    return MsgExecLegacyContentResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecLegacyContentResponse): MsgExecLegacyContentResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgExecLegacyContentResponse",
-      value: MsgExecLegacyContentResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecLegacyContentResponseProtoMsg): MsgExecLegacyContentResponse {
-    return MsgExecLegacyContentResponse.decode(message.value);
-  },
-  toProto(message: MsgExecLegacyContentResponse): Uint8Array {
-    return MsgExecLegacyContentResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecLegacyContentResponse): MsgExecLegacyContentResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgExecLegacyContentResponse",
-      value: MsgExecLegacyContentResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVote(): MsgVote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    option: 0,
-    metadata: ""
-  };
-}
-export const MsgVote = {
-  typeUrl: "/cosmos.gov.v1.MsgVote",
-  aminoType: "cosmos-sdk/v1/MsgVote",
-  encode(message: MsgVote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.option !== 0) {
-      writer.uint32(24).int32(message.option);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.option = (reader.int32() as any);
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgVote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVote>): MsgVote {
-    const message = createBaseMsgVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.option = object.option ?? 0;
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgVoteSDKType): MsgVote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgVote): MsgVoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgVoteAmino): MsgVote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgVote): MsgVoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    obj.option = message.option;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteAminoMsg): MsgVote {
-    return MsgVote.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVote): MsgVoteAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgVote",
-      value: MsgVote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteProtoMsg): MsgVote {
-    return MsgVote.decode(message.value);
-  },
-  toProto(message: MsgVote): Uint8Array {
-    return MsgVote.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVote): MsgVoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgVote",
-      value: MsgVote.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteResponse(): MsgVoteResponse {
-  return {};
-}
-export const MsgVoteResponse = {
-  typeUrl: "/cosmos.gov.v1.MsgVoteResponse",
-  aminoType: "cosmos-sdk/v1/MsgVoteResponse",
-  encode(_: MsgVoteResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVoteResponse {
-    return {};
-  },
-  toJSON(_: MsgVoteResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVoteResponse>): MsgVoteResponse {
-    const message = createBaseMsgVoteResponse();
-    return message;
-  },
-  fromSDK(_: MsgVoteResponseSDKType): MsgVoteResponse {
-    return {};
-  },
-  toSDK(_: MsgVoteResponse): MsgVoteResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVoteResponseAmino): MsgVoteResponse {
-    return {};
-  },
-  toAmino(_: MsgVoteResponse): MsgVoteResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteResponseAminoMsg): MsgVoteResponse {
-    return MsgVoteResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteResponse): MsgVoteResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgVoteResponse",
-      value: MsgVoteResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteResponseProtoMsg): MsgVoteResponse {
-    return MsgVoteResponse.decode(message.value);
-  },
-  toProto(message: MsgVoteResponse): Uint8Array {
-    return MsgVoteResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteResponse): MsgVoteResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgVoteResponse",
-      value: MsgVoteResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteWeighted(): MsgVoteWeighted {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    options: [],
-    metadata: ""
-  };
-}
-export const MsgVoteWeighted = {
-  typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-  aminoType: "cosmos-sdk/v1/MsgVoteWeighted",
-  encode(message: MsgVoteWeighted, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    for (const v of message.options) {
-      WeightedVoteOption.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteWeighted {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteWeighted();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.options.push(WeightedVoteOption.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVoteWeighted {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e)) : [],
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgVoteWeighted): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toJSON(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVoteWeighted>): MsgVoteWeighted {
-    const message = createBaseMsgVoteWeighted();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || [];
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgVoteWeightedSDKType): MsgVoteWeighted {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromSDK(e)) : [],
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgVoteWeighted): MsgVoteWeightedSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toSDK(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgVoteWeightedAmino): MsgVoteWeighted {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromAmino(e)) : [],
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgVoteWeighted): MsgVoteWeightedAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toAmino(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteWeightedAminoMsg): MsgVoteWeighted {
-    return MsgVoteWeighted.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteWeighted): MsgVoteWeightedAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgVoteWeighted",
-      value: MsgVoteWeighted.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteWeightedProtoMsg): MsgVoteWeighted {
-    return MsgVoteWeighted.decode(message.value);
-  },
-  toProto(message: MsgVoteWeighted): Uint8Array {
-    return MsgVoteWeighted.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteWeighted): MsgVoteWeightedProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgVoteWeighted",
-      value: MsgVoteWeighted.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteWeightedResponse(): MsgVoteWeightedResponse {
-  return {};
-}
-export const MsgVoteWeightedResponse = {
-  typeUrl: "/cosmos.gov.v1.MsgVoteWeightedResponse",
-  aminoType: "cosmos-sdk/v1/MsgVoteWeightedResponse",
-  encode(_: MsgVoteWeightedResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteWeightedResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteWeightedResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVoteWeightedResponse {
-    return {};
-  },
-  toJSON(_: MsgVoteWeightedResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVoteWeightedResponse>): MsgVoteWeightedResponse {
-    const message = createBaseMsgVoteWeightedResponse();
-    return message;
-  },
-  fromSDK(_: MsgVoteWeightedResponseSDKType): MsgVoteWeightedResponse {
-    return {};
-  },
-  toSDK(_: MsgVoteWeightedResponse): MsgVoteWeightedResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVoteWeightedResponseAmino): MsgVoteWeightedResponse {
-    return {};
-  },
-  toAmino(_: MsgVoteWeightedResponse): MsgVoteWeightedResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteWeightedResponseAminoMsg): MsgVoteWeightedResponse {
-    return MsgVoteWeightedResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteWeightedResponse): MsgVoteWeightedResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgVoteWeightedResponse",
-      value: MsgVoteWeightedResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteWeightedResponseProtoMsg): MsgVoteWeightedResponse {
-    return MsgVoteWeightedResponse.decode(message.value);
-  },
-  toProto(message: MsgVoteWeightedResponse): Uint8Array {
-    return MsgVoteWeightedResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteWeightedResponse): MsgVoteWeightedResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgVoteWeightedResponse",
-      value: MsgVoteWeightedResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDeposit(): MsgDeposit {
-  return {
-    proposalId: BigInt(0),
-    depositor: "",
-    amount: []
-  };
-}
-export const MsgDeposit = {
-  typeUrl: "/cosmos.gov.v1.MsgDeposit",
-  aminoType: "cosmos-sdk/v1/MsgDeposit",
-  encode(message: MsgDeposit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDeposit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDeposit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgDeposit {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgDeposit): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgDeposit>): MsgDeposit {
-    const message = createBaseMsgDeposit();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgDepositSDKType): MsgDeposit {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgDeposit): MsgDepositSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgDepositAmino): MsgDeposit {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgDeposit): MsgDepositAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgDepositAminoMsg): MsgDeposit {
-    return MsgDeposit.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDeposit): MsgDepositAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgDeposit",
-      value: MsgDeposit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDepositProtoMsg): MsgDeposit {
-    return MsgDeposit.decode(message.value);
-  },
-  toProto(message: MsgDeposit): Uint8Array {
-    return MsgDeposit.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDeposit): MsgDepositProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgDeposit",
-      value: MsgDeposit.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDepositResponse(): MsgDepositResponse {
-  return {};
-}
-export const MsgDepositResponse = {
-  typeUrl: "/cosmos.gov.v1.MsgDepositResponse",
-  aminoType: "cosmos-sdk/v1/MsgDepositResponse",
-  encode(_: MsgDepositResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDepositResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDepositResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgDepositResponse {
-    return {};
-  },
-  toJSON(_: MsgDepositResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgDepositResponse>): MsgDepositResponse {
-    const message = createBaseMsgDepositResponse();
-    return message;
-  },
-  fromSDK(_: MsgDepositResponseSDKType): MsgDepositResponse {
-    return {};
-  },
-  toSDK(_: MsgDepositResponse): MsgDepositResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgDepositResponseAmino): MsgDepositResponse {
-    return {};
-  },
-  toAmino(_: MsgDepositResponse): MsgDepositResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgDepositResponseAminoMsg): MsgDepositResponse {
-    return MsgDepositResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDepositResponse): MsgDepositResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/v1/MsgDepositResponse",
-      value: MsgDepositResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDepositResponseProtoMsg): MsgDepositResponse {
-    return MsgDepositResponse.decode(message.value);
-  },
-  toProto(message: MsgDepositResponse): Uint8Array {
-    return MsgDepositResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDepositResponse): MsgDepositResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1.MsgDepositResponse",
-      value: MsgDepositResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/genesis.ts
deleted file mode 100644
index 02db3e54..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/genesis.ts
+++ /dev/null
@@ -1,263 +0,0 @@
-import { Deposit, DepositAmino, DepositSDKType, Vote, VoteAmino, VoteSDKType, Proposal, ProposalAmino, ProposalSDKType, DepositParams, DepositParamsAmino, DepositParamsSDKType, VotingParams, VotingParamsAmino, VotingParamsSDKType, TallyParams, TallyParamsAmino, TallyParamsSDKType } from "./gov";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisState {
-  /** starting_proposal_id is the ID of the starting proposal. */
-  startingProposalId: bigint;
-  /** deposits defines all the deposits present at genesis. */
-  deposits: Deposit[];
-  /** votes defines all the votes present at genesis. */
-  votes: Vote[];
-  /** proposals defines all the proposals present at genesis. */
-  proposals: Proposal[];
-  /** params defines all the paramaters of related to deposit. */
-  depositParams: DepositParams | undefined;
-  /** params defines all the paramaters of related to voting. */
-  votingParams: VotingParams | undefined;
-  /** params defines all the paramaters of related to tally. */
-  tallyParams: TallyParams | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisStateAmino {
-  /** starting_proposal_id is the ID of the starting proposal. */
-  starting_proposal_id: string;
-  /** deposits defines all the deposits present at genesis. */
-  deposits: DepositAmino[];
-  /** votes defines all the votes present at genesis. */
-  votes: VoteAmino[];
-  /** proposals defines all the proposals present at genesis. */
-  proposals: ProposalAmino[];
-  /** params defines all the paramaters of related to deposit. */
-  deposit_params?: DepositParamsAmino | undefined;
-  /** params defines all the paramaters of related to voting. */
-  voting_params?: VotingParamsAmino | undefined;
-  /** params defines all the paramaters of related to tally. */
-  tally_params?: TallyParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the gov module's genesis state. */
-export interface GenesisStateSDKType {
-  starting_proposal_id: bigint;
-  deposits: DepositSDKType[];
-  votes: VoteSDKType[];
-  proposals: ProposalSDKType[];
-  deposit_params: DepositParamsSDKType | undefined;
-  voting_params: VotingParamsSDKType | undefined;
-  tally_params: TallyParamsSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    startingProposalId: BigInt(0),
-    deposits: [],
-    votes: [],
-    proposals: [],
-    depositParams: DepositParams.fromPartial({}),
-    votingParams: VotingParams.fromPartial({}),
-    tallyParams: TallyParams.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.gov.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.startingProposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.startingProposalId);
-    }
-    for (const v of message.deposits) {
-      Deposit.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.depositParams !== undefined) {
-      DepositParams.encode(message.depositParams, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.votingParams !== undefined) {
-      VotingParams.encode(message.votingParams, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.tallyParams !== undefined) {
-      TallyParams.encode(message.tallyParams, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.startingProposalId = reader.uint64();
-          break;
-        case 2:
-          message.deposits.push(Deposit.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.depositParams = DepositParams.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.votingParams = VotingParams.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.tallyParams = TallyParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      startingProposalId: isSet(object.startingProposalId) ? BigInt(object.startingProposalId.toString()) : BigInt(0),
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromJSON(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      depositParams: isSet(object.depositParams) ? DepositParams.fromJSON(object.depositParams) : undefined,
-      votingParams: isSet(object.votingParams) ? VotingParams.fromJSON(object.votingParams) : undefined,
-      tallyParams: isSet(object.tallyParams) ? TallyParams.fromJSON(object.tallyParams) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.startingProposalId !== undefined && (obj.startingProposalId = (message.startingProposalId || BigInt(0)).toString());
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toJSON(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.depositParams !== undefined && (obj.depositParams = message.depositParams ? DepositParams.toJSON(message.depositParams) : undefined);
-    message.votingParams !== undefined && (obj.votingParams = message.votingParams ? VotingParams.toJSON(message.votingParams) : undefined);
-    message.tallyParams !== undefined && (obj.tallyParams = message.tallyParams ? TallyParams.toJSON(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.startingProposalId = object.startingProposalId !== undefined && object.startingProposalId !== null ? BigInt(object.startingProposalId.toString()) : BigInt(0);
-    message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || [];
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined;
-    message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined;
-    message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      startingProposalId: object?.starting_proposal_id,
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromSDK(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      depositParams: object.deposit_params ? DepositParams.fromSDK(object.deposit_params) : undefined,
-      votingParams: object.voting_params ? VotingParams.fromSDK(object.voting_params) : undefined,
-      tallyParams: object.tally_params ? TallyParams.fromSDK(object.tally_params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.starting_proposal_id = message.startingProposalId;
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toSDK(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.depositParams !== undefined && (obj.deposit_params = message.depositParams ? DepositParams.toSDK(message.depositParams) : undefined);
-    message.votingParams !== undefined && (obj.voting_params = message.votingParams ? VotingParams.toSDK(message.votingParams) : undefined);
-    message.tallyParams !== undefined && (obj.tally_params = message.tallyParams ? TallyParams.toSDK(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      startingProposalId: BigInt(object.starting_proposal_id),
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromAmino(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      depositParams: object?.deposit_params ? DepositParams.fromAmino(object.deposit_params) : undefined,
-      votingParams: object?.voting_params ? VotingParams.fromAmino(object.voting_params) : undefined,
-      tallyParams: object?.tally_params ? TallyParams.fromAmino(object.tally_params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.starting_proposal_id = message.startingProposalId ? message.startingProposalId.toString() : undefined;
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toAmino(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    obj.deposit_params = message.depositParams ? DepositParams.toAmino(message.depositParams) : undefined;
-    obj.voting_params = message.votingParams ? VotingParams.toAmino(message.votingParams) : undefined;
-    obj.tally_params = message.tallyParams ? TallyParams.toAmino(message.tallyParams) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/gov.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/gov.ts
deleted file mode 100644
index 8756095a..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/gov.ts
+++ /dev/null
@@ -1,1612 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/** VoteOption enumerates the valid vote options for a given governance proposal. */
-export enum VoteOption {
-  /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */
-  VOTE_OPTION_UNSPECIFIED = 0,
-  /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */
-  VOTE_OPTION_YES = 1,
-  /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */
-  VOTE_OPTION_ABSTAIN = 2,
-  /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */
-  VOTE_OPTION_NO = 3,
-  /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */
-  VOTE_OPTION_NO_WITH_VETO = 4,
-  UNRECOGNIZED = -1,
-}
-export const VoteOptionSDKType = VoteOption;
-export const VoteOptionAmino = VoteOption;
-export function voteOptionFromJSON(object: any): VoteOption {
-  switch (object) {
-    case 0:
-    case "VOTE_OPTION_UNSPECIFIED":
-      return VoteOption.VOTE_OPTION_UNSPECIFIED;
-    case 1:
-    case "VOTE_OPTION_YES":
-      return VoteOption.VOTE_OPTION_YES;
-    case 2:
-    case "VOTE_OPTION_ABSTAIN":
-      return VoteOption.VOTE_OPTION_ABSTAIN;
-    case 3:
-    case "VOTE_OPTION_NO":
-      return VoteOption.VOTE_OPTION_NO;
-    case 4:
-    case "VOTE_OPTION_NO_WITH_VETO":
-      return VoteOption.VOTE_OPTION_NO_WITH_VETO;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return VoteOption.UNRECOGNIZED;
-  }
-}
-export function voteOptionToJSON(object: VoteOption): string {
-  switch (object) {
-    case VoteOption.VOTE_OPTION_UNSPECIFIED:
-      return "VOTE_OPTION_UNSPECIFIED";
-    case VoteOption.VOTE_OPTION_YES:
-      return "VOTE_OPTION_YES";
-    case VoteOption.VOTE_OPTION_ABSTAIN:
-      return "VOTE_OPTION_ABSTAIN";
-    case VoteOption.VOTE_OPTION_NO:
-      return "VOTE_OPTION_NO";
-    case VoteOption.VOTE_OPTION_NO_WITH_VETO:
-      return "VOTE_OPTION_NO_WITH_VETO";
-    case VoteOption.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ProposalStatus enumerates the valid statuses of a proposal. */
-export enum ProposalStatus {
-  /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */
-  PROPOSAL_STATUS_UNSPECIFIED = 0,
-  /**
-   * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit
-   * period.
-   */
-  PROPOSAL_STATUS_DEPOSIT_PERIOD = 1,
-  /**
-   * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting
-   * period.
-   */
-  PROPOSAL_STATUS_VOTING_PERIOD = 2,
-  /**
-   * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has
-   * passed.
-   */
-  PROPOSAL_STATUS_PASSED = 3,
-  /**
-   * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has
-   * been rejected.
-   */
-  PROPOSAL_STATUS_REJECTED = 4,
-  /**
-   * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has
-   * failed.
-   */
-  PROPOSAL_STATUS_FAILED = 5,
-  UNRECOGNIZED = -1,
-}
-export const ProposalStatusSDKType = ProposalStatus;
-export const ProposalStatusAmino = ProposalStatus;
-export function proposalStatusFromJSON(object: any): ProposalStatus {
-  switch (object) {
-    case 0:
-    case "PROPOSAL_STATUS_UNSPECIFIED":
-      return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;
-    case 1:
-    case "PROPOSAL_STATUS_DEPOSIT_PERIOD":
-      return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;
-    case 2:
-    case "PROPOSAL_STATUS_VOTING_PERIOD":
-      return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;
-    case 3:
-    case "PROPOSAL_STATUS_PASSED":
-      return ProposalStatus.PROPOSAL_STATUS_PASSED;
-    case 4:
-    case "PROPOSAL_STATUS_REJECTED":
-      return ProposalStatus.PROPOSAL_STATUS_REJECTED;
-    case 5:
-    case "PROPOSAL_STATUS_FAILED":
-      return ProposalStatus.PROPOSAL_STATUS_FAILED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ProposalStatus.UNRECOGNIZED;
-  }
-}
-export function proposalStatusToJSON(object: ProposalStatus): string {
-  switch (object) {
-    case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:
-      return "PROPOSAL_STATUS_UNSPECIFIED";
-    case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:
-      return "PROPOSAL_STATUS_DEPOSIT_PERIOD";
-    case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:
-      return "PROPOSAL_STATUS_VOTING_PERIOD";
-    case ProposalStatus.PROPOSAL_STATUS_PASSED:
-      return "PROPOSAL_STATUS_PASSED";
-    case ProposalStatus.PROPOSAL_STATUS_REJECTED:
-      return "PROPOSAL_STATUS_REJECTED";
-    case ProposalStatus.PROPOSAL_STATUS_FAILED:
-      return "PROPOSAL_STATUS_FAILED";
-    case ProposalStatus.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * WeightedVoteOption defines a unit of vote for vote split.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface WeightedVoteOption {
-  option: VoteOption;
-  weight: string;
-}
-export interface WeightedVoteOptionProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.WeightedVoteOption";
-  value: Uint8Array;
-}
-/**
- * WeightedVoteOption defines a unit of vote for vote split.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface WeightedVoteOptionAmino {
-  option: VoteOption;
-  weight: string;
-}
-export interface WeightedVoteOptionAminoMsg {
-  type: "cosmos-sdk/WeightedVoteOption";
-  value: WeightedVoteOptionAmino;
-}
-/**
- * WeightedVoteOption defines a unit of vote for vote split.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface WeightedVoteOptionSDKType {
-  option: VoteOption;
-  weight: string;
-}
-/**
- * TextProposal defines a standard text proposal whose changes need to be
- * manually updated in case of approval.
- */
-export interface TextProposal {
-  title: string;
-  description: string;
-}
-export interface TextProposalProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.TextProposal";
-  value: Uint8Array;
-}
-/**
- * TextProposal defines a standard text proposal whose changes need to be
- * manually updated in case of approval.
- */
-export interface TextProposalAmino {
-  title: string;
-  description: string;
-}
-export interface TextProposalAminoMsg {
-  type: "cosmos-sdk/TextProposal";
-  value: TextProposalAmino;
-}
-/**
- * TextProposal defines a standard text proposal whose changes need to be
- * manually updated in case of approval.
- */
-export interface TextProposalSDKType {
-  title: string;
-  description: string;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface Deposit {
-  proposalId: bigint;
-  depositor: string;
-  amount: Coin[];
-}
-export interface DepositProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.Deposit";
-  value: Uint8Array;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface DepositAmino {
-  proposal_id: string;
-  depositor: string;
-  amount: CoinAmino[];
-}
-export interface DepositAminoMsg {
-  type: "cosmos-sdk/Deposit";
-  value: DepositAmino;
-}
-/**
- * Deposit defines an amount deposited by an account address to an active
- * proposal.
- */
-export interface DepositSDKType {
-  proposal_id: bigint;
-  depositor: string;
-  amount: CoinSDKType[];
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface Proposal {
-  proposalId: bigint;
-  content: Any | undefined;
-  status: ProposalStatus;
-  /**
-   * final_tally_result is the final tally result of the proposal. When
-   * querying a proposal via gRPC, this field is not populated until the
-   * proposal's voting period has ended.
-   */
-  finalTallyResult: TallyResult | undefined;
-  submitTime: Date | undefined;
-  depositEndTime: Date | undefined;
-  totalDeposit: Coin[];
-  votingStartTime: Date | undefined;
-  votingEndTime: Date | undefined;
-}
-export interface ProposalProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.Proposal";
-  value: Uint8Array;
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface ProposalAmino {
-  proposal_id: string;
-  content?: AnyAmino | undefined;
-  status: ProposalStatus;
-  /**
-   * final_tally_result is the final tally result of the proposal. When
-   * querying a proposal via gRPC, this field is not populated until the
-   * proposal's voting period has ended.
-   */
-  final_tally_result?: TallyResultAmino | undefined;
-  submit_time?: Date | undefined;
-  deposit_end_time?: Date | undefined;
-  total_deposit: CoinAmino[];
-  voting_start_time?: Date | undefined;
-  voting_end_time?: Date | undefined;
-}
-export interface ProposalAminoMsg {
-  type: "cosmos-sdk/Proposal";
-  value: ProposalAmino;
-}
-/** Proposal defines the core field members of a governance proposal. */
-export interface ProposalSDKType {
-  proposal_id: bigint;
-  content: AnySDKType | undefined;
-  status: ProposalStatus;
-  final_tally_result: TallyResultSDKType | undefined;
-  submit_time: Date | undefined;
-  deposit_end_time: Date | undefined;
-  total_deposit: CoinSDKType[];
-  voting_start_time: Date | undefined;
-  voting_end_time: Date | undefined;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResult {
-  yes: string;
-  abstain: string;
-  no: string;
-  noWithVeto: string;
-}
-export interface TallyResultProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.TallyResult";
-  value: Uint8Array;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResultAmino {
-  yes: string;
-  abstain: string;
-  no: string;
-  no_with_veto: string;
-}
-export interface TallyResultAminoMsg {
-  type: "cosmos-sdk/TallyResult";
-  value: TallyResultAmino;
-}
-/** TallyResult defines a standard tally for a governance proposal. */
-export interface TallyResultSDKType {
-  yes: string;
-  abstain: string;
-  no: string;
-  no_with_veto: string;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface Vote {
-  proposalId: bigint;
-  voter: string;
-  /**
-   * Deprecated: Prefer to use `options` instead. This field is set in queries
-   * if and only if `len(options) == 1` and that option has weight 1. In all
-   * other cases, this field will default to VOTE_OPTION_UNSPECIFIED.
-   */
-  /** @deprecated */
-  option: VoteOption;
-  /** Since: cosmos-sdk 0.43 */
-  options: WeightedVoteOption[];
-}
-export interface VoteProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.Vote";
-  value: Uint8Array;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface VoteAmino {
-  proposal_id: string;
-  voter: string;
-  /**
-   * Deprecated: Prefer to use `options` instead. This field is set in queries
-   * if and only if `len(options) == 1` and that option has weight 1. In all
-   * other cases, this field will default to VOTE_OPTION_UNSPECIFIED.
-   */
-  /** @deprecated */
-  option: VoteOption;
-  /** Since: cosmos-sdk 0.43 */
-  options: WeightedVoteOptionAmino[];
-}
-export interface VoteAminoMsg {
-  type: "cosmos-sdk/Vote";
-  value: VoteAmino;
-}
-/**
- * Vote defines a vote on a governance proposal.
- * A Vote consists of a proposal ID, the voter, and the vote option.
- */
-export interface VoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  /** @deprecated */
-  option: VoteOption;
-  options: WeightedVoteOptionSDKType[];
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParams {
-  /** Minimum deposit for a proposal to enter voting period. */
-  minDeposit: Coin[];
-  /**
-   * Maximum period for Atom holders to deposit on a proposal. Initial value: 2
-   *  months.
-   */
-  maxDepositPeriod: Duration | undefined;
-}
-export interface DepositParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.DepositParams";
-  value: Uint8Array;
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParamsAmino {
-  /** Minimum deposit for a proposal to enter voting period. */
-  min_deposit: CoinAmino[];
-  /**
-   * Maximum period for Atom holders to deposit on a proposal. Initial value: 2
-   *  months.
-   */
-  max_deposit_period?: DurationAmino | undefined;
-}
-export interface DepositParamsAminoMsg {
-  type: "cosmos-sdk/DepositParams";
-  value: DepositParamsAmino;
-}
-/** DepositParams defines the params for deposits on governance proposals. */
-export interface DepositParamsSDKType {
-  min_deposit: CoinSDKType[];
-  max_deposit_period: DurationSDKType | undefined;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParams {
-  /** Length of the voting period. */
-  votingPeriod: Duration | undefined;
-}
-export interface VotingParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.VotingParams";
-  value: Uint8Array;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParamsAmino {
-  /** Length of the voting period. */
-  voting_period?: DurationAmino | undefined;
-}
-export interface VotingParamsAminoMsg {
-  type: "cosmos-sdk/VotingParams";
-  value: VotingParamsAmino;
-}
-/** VotingParams defines the params for voting on governance proposals. */
-export interface VotingParamsSDKType {
-  voting_period: DurationSDKType | undefined;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParams {
-  /**
-   * Minimum percentage of total stake needed to vote for a result to be
-   *  considered valid.
-   */
-  quorum: Uint8Array;
-  /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */
-  threshold: Uint8Array;
-  /**
-   * Minimum value of Veto votes to Total votes ratio for proposal to be
-   *  vetoed. Default value: 1/3.
-   */
-  vetoThreshold: Uint8Array;
-}
-export interface TallyParamsProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.TallyParams";
-  value: Uint8Array;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParamsAmino {
-  /**
-   * Minimum percentage of total stake needed to vote for a result to be
-   *  considered valid.
-   */
-  quorum: Uint8Array;
-  /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */
-  threshold: Uint8Array;
-  /**
-   * Minimum value of Veto votes to Total votes ratio for proposal to be
-   *  vetoed. Default value: 1/3.
-   */
-  veto_threshold: Uint8Array;
-}
-export interface TallyParamsAminoMsg {
-  type: "cosmos-sdk/TallyParams";
-  value: TallyParamsAmino;
-}
-/** TallyParams defines the params for tallying votes on governance proposals. */
-export interface TallyParamsSDKType {
-  quorum: Uint8Array;
-  threshold: Uint8Array;
-  veto_threshold: Uint8Array;
-}
-function createBaseWeightedVoteOption(): WeightedVoteOption {
-  return {
-    option: 0,
-    weight: ""
-  };
-}
-export const WeightedVoteOption = {
-  typeUrl: "/cosmos.gov.v1beta1.WeightedVoteOption",
-  aminoType: "cosmos-sdk/WeightedVoteOption",
-  encode(message: WeightedVoteOption, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.option !== 0) {
-      writer.uint32(8).int32(message.option);
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.weight, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): WeightedVoteOption {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseWeightedVoteOption();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.option = (reader.int32() as any);
-          break;
-        case 2:
-          message.weight = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: isSet(object.weight) ? String(object.weight) : ""
-    };
-  },
-  toJSON(message: WeightedVoteOption): unknown {
-    const obj: any = {};
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    message.weight !== undefined && (obj.weight = message.weight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<WeightedVoteOption>): WeightedVoteOption {
-    const message = createBaseWeightedVoteOption();
-    message.option = object.option ?? 0;
-    message.weight = object.weight ?? "";
-    return message;
-  },
-  fromSDK(object: WeightedVoteOptionSDKType): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: object?.weight
-    };
-  },
-  toSDK(message: WeightedVoteOption): WeightedVoteOptionSDKType {
-    const obj: any = {};
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAmino(object: WeightedVoteOptionAmino): WeightedVoteOption {
-    return {
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      weight: object.weight
-    };
-  },
-  toAmino(message: WeightedVoteOption): WeightedVoteOptionAmino {
-    const obj: any = {};
-    obj.option = message.option;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAminoMsg(object: WeightedVoteOptionAminoMsg): WeightedVoteOption {
-    return WeightedVoteOption.fromAmino(object.value);
-  },
-  toAminoMsg(message: WeightedVoteOption): WeightedVoteOptionAminoMsg {
-    return {
-      type: "cosmos-sdk/WeightedVoteOption",
-      value: WeightedVoteOption.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: WeightedVoteOptionProtoMsg): WeightedVoteOption {
-    return WeightedVoteOption.decode(message.value);
-  },
-  toProto(message: WeightedVoteOption): Uint8Array {
-    return WeightedVoteOption.encode(message).finish();
-  },
-  toProtoMsg(message: WeightedVoteOption): WeightedVoteOptionProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.WeightedVoteOption",
-      value: WeightedVoteOption.encode(message).finish()
-    };
-  }
-};
-function createBaseTextProposal(): TextProposal {
-  return {
-    title: "",
-    description: ""
-  };
-}
-export const TextProposal = {
-  typeUrl: "/cosmos.gov.v1beta1.TextProposal",
-  aminoType: "cosmos-sdk/TextProposal",
-  encode(message: TextProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TextProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTextProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TextProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : ""
-    };
-  },
-  toJSON(message: TextProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TextProposal>): TextProposal {
-    const message = createBaseTextProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    return message;
-  },
-  fromSDK(object: TextProposalSDKType): TextProposal {
-    return {
-      title: object?.title,
-      description: object?.description
-    };
-  },
-  toSDK(message: TextProposal): TextProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAmino(object: TextProposalAmino): TextProposal {
-    return {
-      title: object.title,
-      description: object.description
-    };
-  },
-  toAmino(message: TextProposal): TextProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAminoMsg(object: TextProposalAminoMsg): TextProposal {
-    return TextProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: TextProposal): TextProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/TextProposal",
-      value: TextProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TextProposalProtoMsg): TextProposal {
-    return TextProposal.decode(message.value);
-  },
-  toProto(message: TextProposal): Uint8Array {
-    return TextProposal.encode(message).finish();
-  },
-  toProtoMsg(message: TextProposal): TextProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.TextProposal",
-      value: TextProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseDeposit(): Deposit {
-  return {
-    proposalId: BigInt(0),
-    depositor: "",
-    amount: []
-  };
-}
-export const Deposit = {
-  typeUrl: "/cosmos.gov.v1beta1.Deposit",
-  aminoType: "cosmos-sdk/Deposit",
-  encode(message: Deposit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Deposit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDeposit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Deposit {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Deposit): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Deposit>): Deposit {
-    const message = createBaseDeposit();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DepositSDKType): Deposit {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Deposit): DepositSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DepositAmino): Deposit {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Deposit): DepositAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DepositAminoMsg): Deposit {
-    return Deposit.fromAmino(object.value);
-  },
-  toAminoMsg(message: Deposit): DepositAminoMsg {
-    return {
-      type: "cosmos-sdk/Deposit",
-      value: Deposit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DepositProtoMsg): Deposit {
-    return Deposit.decode(message.value);
-  },
-  toProto(message: Deposit): Uint8Array {
-    return Deposit.encode(message).finish();
-  },
-  toProtoMsg(message: Deposit): DepositProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.Deposit",
-      value: Deposit.encode(message).finish()
-    };
-  }
-};
-function createBaseProposal(): Proposal {
-  return {
-    proposalId: BigInt(0),
-    content: Any.fromPartial({}),
-    status: 0,
-    finalTallyResult: TallyResult.fromPartial({}),
-    submitTime: new Date(),
-    depositEndTime: new Date(),
-    totalDeposit: [],
-    votingStartTime: new Date(),
-    votingEndTime: new Date()
-  };
-}
-export const Proposal = {
-  typeUrl: "/cosmos.gov.v1beta1.Proposal",
-  aminoType: "cosmos-sdk/Proposal",
-  encode(message: Proposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.content !== undefined) {
-      Any.encode(message.content, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.status !== 0) {
-      writer.uint32(24).int32(message.status);
-    }
-    if (message.finalTallyResult !== undefined) {
-      TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.submitTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.depositEndTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.totalDeposit) {
-      Coin.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.votingStartTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim();
-    }
-    if (message.votingEndTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Proposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.content = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.status = (reader.int32() as any);
-          break;
-        case 4:
-          message.finalTallyResult = TallyResult.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.depositEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.totalDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.votingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 9:
-          message.votingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Proposal {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      content: isSet(object.content) ? Any.fromJSON(object.content) : undefined,
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: isSet(object.finalTallyResult) ? TallyResult.fromJSON(object.finalTallyResult) : undefined,
-      submitTime: isSet(object.submitTime) ? new Date(object.submitTime) : undefined,
-      depositEndTime: isSet(object.depositEndTime) ? new Date(object.depositEndTime) : undefined,
-      totalDeposit: Array.isArray(object?.totalDeposit) ? object.totalDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      votingStartTime: isSet(object.votingStartTime) ? new Date(object.votingStartTime) : undefined,
-      votingEndTime: isSet(object.votingEndTime) ? new Date(object.votingEndTime) : undefined
-    };
-  },
-  toJSON(message: Proposal): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.content !== undefined && (obj.content = message.content ? Any.toJSON(message.content) : undefined);
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.finalTallyResult !== undefined && (obj.finalTallyResult = message.finalTallyResult ? TallyResult.toJSON(message.finalTallyResult) : undefined);
-    message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());
-    message.depositEndTime !== undefined && (obj.depositEndTime = message.depositEndTime.toISOString());
-    if (message.totalDeposit) {
-      obj.totalDeposit = message.totalDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalDeposit = [];
-    }
-    message.votingStartTime !== undefined && (obj.votingStartTime = message.votingStartTime.toISOString());
-    message.votingEndTime !== undefined && (obj.votingEndTime = message.votingEndTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Proposal>): Proposal {
-    const message = createBaseProposal();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined;
-    message.status = object.status ?? 0;
-    message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined;
-    message.submitTime = object.submitTime ?? undefined;
-    message.depositEndTime = object.depositEndTime ?? undefined;
-    message.totalDeposit = object.totalDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.votingStartTime = object.votingStartTime ?? undefined;
-    message.votingEndTime = object.votingEndTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: ProposalSDKType): Proposal {
-    return {
-      proposalId: object?.proposal_id,
-      content: object.content ? Any.fromSDK(object.content) : undefined,
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: object.final_tally_result ? TallyResult.fromSDK(object.final_tally_result) : undefined,
-      submitTime: object.submit_time ?? undefined,
-      depositEndTime: object.deposit_end_time ?? undefined,
-      totalDeposit: Array.isArray(object?.total_deposit) ? object.total_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      votingStartTime: object.voting_start_time ?? undefined,
-      votingEndTime: object.voting_end_time ?? undefined
-    };
-  },
-  toSDK(message: Proposal): ProposalSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.content !== undefined && (obj.content = message.content ? Any.toSDK(message.content) : undefined);
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.finalTallyResult !== undefined && (obj.final_tally_result = message.finalTallyResult ? TallyResult.toSDK(message.finalTallyResult) : undefined);
-    message.submitTime !== undefined && (obj.submit_time = message.submitTime ?? undefined);
-    message.depositEndTime !== undefined && (obj.deposit_end_time = message.depositEndTime ?? undefined);
-    if (message.totalDeposit) {
-      obj.total_deposit = message.totalDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_deposit = [];
-    }
-    message.votingStartTime !== undefined && (obj.voting_start_time = message.votingStartTime ?? undefined);
-    message.votingEndTime !== undefined && (obj.voting_end_time = message.votingEndTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: ProposalAmino): Proposal {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      content: object?.content ? Any.fromAmino(object.content) : undefined,
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      finalTallyResult: object?.final_tally_result ? TallyResult.fromAmino(object.final_tally_result) : undefined,
-      submitTime: object.submit_time,
-      depositEndTime: object.deposit_end_time,
-      totalDeposit: Array.isArray(object?.total_deposit) ? object.total_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      votingStartTime: object.voting_start_time,
-      votingEndTime: object.voting_end_time
-    };
-  },
-  toAmino(message: Proposal): ProposalAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.content = message.content ? Any.toAmino(message.content) : undefined;
-    obj.status = message.status;
-    obj.final_tally_result = message.finalTallyResult ? TallyResult.toAmino(message.finalTallyResult) : undefined;
-    obj.submit_time = message.submitTime;
-    obj.deposit_end_time = message.depositEndTime;
-    if (message.totalDeposit) {
-      obj.total_deposit = message.totalDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_deposit = [];
-    }
-    obj.voting_start_time = message.votingStartTime;
-    obj.voting_end_time = message.votingEndTime;
-    return obj;
-  },
-  fromAminoMsg(object: ProposalAminoMsg): Proposal {
-    return Proposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: Proposal): ProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/Proposal",
-      value: Proposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ProposalProtoMsg): Proposal {
-    return Proposal.decode(message.value);
-  },
-  toProto(message: Proposal): Uint8Array {
-    return Proposal.encode(message).finish();
-  },
-  toProtoMsg(message: Proposal): ProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.Proposal",
-      value: Proposal.encode(message).finish()
-    };
-  }
-};
-function createBaseTallyResult(): TallyResult {
-  return {
-    yes: "",
-    abstain: "",
-    no: "",
-    noWithVeto: ""
-  };
-}
-export const TallyResult = {
-  typeUrl: "/cosmos.gov.v1beta1.TallyResult",
-  aminoType: "cosmos-sdk/TallyResult",
-  encode(message: TallyResult, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.yes !== "") {
-      writer.uint32(10).string(message.yes);
-    }
-    if (message.abstain !== "") {
-      writer.uint32(18).string(message.abstain);
-    }
-    if (message.no !== "") {
-      writer.uint32(26).string(message.no);
-    }
-    if (message.noWithVeto !== "") {
-      writer.uint32(34).string(message.noWithVeto);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TallyResult {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTallyResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.yes = reader.string();
-          break;
-        case 2:
-          message.abstain = reader.string();
-          break;
-        case 3:
-          message.no = reader.string();
-          break;
-        case 4:
-          message.noWithVeto = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TallyResult {
-    return {
-      yes: isSet(object.yes) ? String(object.yes) : "",
-      abstain: isSet(object.abstain) ? String(object.abstain) : "",
-      no: isSet(object.no) ? String(object.no) : "",
-      noWithVeto: isSet(object.noWithVeto) ? String(object.noWithVeto) : ""
-    };
-  },
-  toJSON(message: TallyResult): unknown {
-    const obj: any = {};
-    message.yes !== undefined && (obj.yes = message.yes);
-    message.abstain !== undefined && (obj.abstain = message.abstain);
-    message.no !== undefined && (obj.no = message.no);
-    message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TallyResult>): TallyResult {
-    const message = createBaseTallyResult();
-    message.yes = object.yes ?? "";
-    message.abstain = object.abstain ?? "";
-    message.no = object.no ?? "";
-    message.noWithVeto = object.noWithVeto ?? "";
-    return message;
-  },
-  fromSDK(object: TallyResultSDKType): TallyResult {
-    return {
-      yes: object?.yes,
-      abstain: object?.abstain,
-      no: object?.no,
-      noWithVeto: object?.no_with_veto
-    };
-  },
-  toSDK(message: TallyResult): TallyResultSDKType {
-    const obj: any = {};
-    obj.yes = message.yes;
-    obj.abstain = message.abstain;
-    obj.no = message.no;
-    obj.no_with_veto = message.noWithVeto;
-    return obj;
-  },
-  fromAmino(object: TallyResultAmino): TallyResult {
-    return {
-      yes: object.yes,
-      abstain: object.abstain,
-      no: object.no,
-      noWithVeto: object.no_with_veto
-    };
-  },
-  toAmino(message: TallyResult): TallyResultAmino {
-    const obj: any = {};
-    obj.yes = message.yes;
-    obj.abstain = message.abstain;
-    obj.no = message.no;
-    obj.no_with_veto = message.noWithVeto;
-    return obj;
-  },
-  fromAminoMsg(object: TallyResultAminoMsg): TallyResult {
-    return TallyResult.fromAmino(object.value);
-  },
-  toAminoMsg(message: TallyResult): TallyResultAminoMsg {
-    return {
-      type: "cosmos-sdk/TallyResult",
-      value: TallyResult.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TallyResultProtoMsg): TallyResult {
-    return TallyResult.decode(message.value);
-  },
-  toProto(message: TallyResult): Uint8Array {
-    return TallyResult.encode(message).finish();
-  },
-  toProtoMsg(message: TallyResult): TallyResultProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.TallyResult",
-      value: TallyResult.encode(message).finish()
-    };
-  }
-};
-function createBaseVote(): Vote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    option: 0,
-    options: []
-  };
-}
-export const Vote = {
-  typeUrl: "/cosmos.gov.v1beta1.Vote",
-  aminoType: "cosmos-sdk/Vote",
-  encode(message: Vote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.option !== 0) {
-      writer.uint32(24).int32(message.option);
-    }
-    for (const v of message.options) {
-      WeightedVoteOption.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Vote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.option = (reader.int32() as any);
-          break;
-        case 4:
-          message.options.push(WeightedVoteOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Vote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Vote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toJSON(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Vote>): Vote {
-    const message = createBaseVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.option = object.option ?? 0;
-    message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: VoteSDKType): Vote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Vote): VoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toSDK(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromAmino(object: VoteAmino): Vote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Vote): VoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    obj.option = message.option;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toAmino(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: VoteAminoMsg): Vote {
-    return Vote.fromAmino(object.value);
-  },
-  toAminoMsg(message: Vote): VoteAminoMsg {
-    return {
-      type: "cosmos-sdk/Vote",
-      value: Vote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VoteProtoMsg): Vote {
-    return Vote.decode(message.value);
-  },
-  toProto(message: Vote): Uint8Array {
-    return Vote.encode(message).finish();
-  },
-  toProtoMsg(message: Vote): VoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.Vote",
-      value: Vote.encode(message).finish()
-    };
-  }
-};
-function createBaseDepositParams(): DepositParams {
-  return {
-    minDeposit: [],
-    maxDepositPeriod: Duration.fromPartial({})
-  };
-}
-export const DepositParams = {
-  typeUrl: "/cosmos.gov.v1beta1.DepositParams",
-  aminoType: "cosmos-sdk/DepositParams",
-  encode(message: DepositParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.minDeposit) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.maxDepositPeriod !== undefined) {
-      Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DepositParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDepositParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.maxDepositPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.minDeposit) ? object.minDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      maxDepositPeriod: isSet(object.maxDepositPeriod) ? Duration.fromJSON(object.maxDepositPeriod) : undefined
-    };
-  },
-  toJSON(message: DepositParams): unknown {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.minDeposit = message.minDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.minDeposit = [];
-    }
-    message.maxDepositPeriod !== undefined && (obj.maxDepositPeriod = message.maxDepositPeriod ? Duration.toJSON(message.maxDepositPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DepositParams>): DepositParams {
-    const message = createBaseDepositParams();
-    message.minDeposit = object.minDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? Duration.fromPartial(object.maxDepositPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: DepositParamsSDKType): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.min_deposit) ? object.min_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      maxDepositPeriod: object.max_deposit_period ? Duration.fromSDK(object.max_deposit_period) : undefined
-    };
-  },
-  toSDK(message: DepositParams): DepositParamsSDKType {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.min_deposit = message.minDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.min_deposit = [];
-    }
-    message.maxDepositPeriod !== undefined && (obj.max_deposit_period = message.maxDepositPeriod ? Duration.toSDK(message.maxDepositPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: DepositParamsAmino): DepositParams {
-    return {
-      minDeposit: Array.isArray(object?.min_deposit) ? object.min_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      maxDepositPeriod: object?.max_deposit_period ? Duration.fromAmino(object.max_deposit_period) : undefined
-    };
-  },
-  toAmino(message: DepositParams): DepositParamsAmino {
-    const obj: any = {};
-    if (message.minDeposit) {
-      obj.min_deposit = message.minDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.min_deposit = [];
-    }
-    obj.max_deposit_period = message.maxDepositPeriod ? Duration.toAmino(message.maxDepositPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DepositParamsAminoMsg): DepositParams {
-    return DepositParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: DepositParams): DepositParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/DepositParams",
-      value: DepositParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DepositParamsProtoMsg): DepositParams {
-    return DepositParams.decode(message.value);
-  },
-  toProto(message: DepositParams): Uint8Array {
-    return DepositParams.encode(message).finish();
-  },
-  toProtoMsg(message: DepositParams): DepositParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.DepositParams",
-      value: DepositParams.encode(message).finish()
-    };
-  }
-};
-function createBaseVotingParams(): VotingParams {
-  return {
-    votingPeriod: Duration.fromPartial({})
-  };
-}
-export const VotingParams = {
-  typeUrl: "/cosmos.gov.v1beta1.VotingParams",
-  aminoType: "cosmos-sdk/VotingParams",
-  encode(message: VotingParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.votingPeriod !== undefined) {
-      Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): VotingParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVotingParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votingPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): VotingParams {
-    return {
-      votingPeriod: isSet(object.votingPeriod) ? Duration.fromJSON(object.votingPeriod) : undefined
-    };
-  },
-  toJSON(message: VotingParams): unknown {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.votingPeriod = message.votingPeriod ? Duration.toJSON(message.votingPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<VotingParams>): VotingParams {
-    const message = createBaseVotingParams();
-    message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: VotingParamsSDKType): VotingParams {
-    return {
-      votingPeriod: object.voting_period ? Duration.fromSDK(object.voting_period) : undefined
-    };
-  },
-  toSDK(message: VotingParams): VotingParamsSDKType {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.voting_period = message.votingPeriod ? Duration.toSDK(message.votingPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: VotingParamsAmino): VotingParams {
-    return {
-      votingPeriod: object?.voting_period ? Duration.fromAmino(object.voting_period) : undefined
-    };
-  },
-  toAmino(message: VotingParams): VotingParamsAmino {
-    const obj: any = {};
-    obj.voting_period = message.votingPeriod ? Duration.toAmino(message.votingPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: VotingParamsAminoMsg): VotingParams {
-    return VotingParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: VotingParams): VotingParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/VotingParams",
-      value: VotingParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VotingParamsProtoMsg): VotingParams {
-    return VotingParams.decode(message.value);
-  },
-  toProto(message: VotingParams): Uint8Array {
-    return VotingParams.encode(message).finish();
-  },
-  toProtoMsg(message: VotingParams): VotingParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.VotingParams",
-      value: VotingParams.encode(message).finish()
-    };
-  }
-};
-function createBaseTallyParams(): TallyParams {
-  return {
-    quorum: new Uint8Array(),
-    threshold: new Uint8Array(),
-    vetoThreshold: new Uint8Array()
-  };
-}
-export const TallyParams = {
-  typeUrl: "/cosmos.gov.v1beta1.TallyParams",
-  aminoType: "cosmos-sdk/TallyParams",
-  encode(message: TallyParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.quorum.length !== 0) {
-      writer.uint32(10).bytes(message.quorum);
-    }
-    if (message.threshold.length !== 0) {
-      writer.uint32(18).bytes(message.threshold);
-    }
-    if (message.vetoThreshold.length !== 0) {
-      writer.uint32(26).bytes(message.vetoThreshold);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TallyParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTallyParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.quorum = reader.bytes();
-          break;
-        case 2:
-          message.threshold = reader.bytes();
-          break;
-        case 3:
-          message.vetoThreshold = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TallyParams {
-    return {
-      quorum: isSet(object.quorum) ? bytesFromBase64(object.quorum) : new Uint8Array(),
-      threshold: isSet(object.threshold) ? bytesFromBase64(object.threshold) : new Uint8Array(),
-      vetoThreshold: isSet(object.vetoThreshold) ? bytesFromBase64(object.vetoThreshold) : new Uint8Array()
-    };
-  },
-  toJSON(message: TallyParams): unknown {
-    const obj: any = {};
-    message.quorum !== undefined && (obj.quorum = base64FromBytes(message.quorum !== undefined ? message.quorum : new Uint8Array()));
-    message.threshold !== undefined && (obj.threshold = base64FromBytes(message.threshold !== undefined ? message.threshold : new Uint8Array()));
-    message.vetoThreshold !== undefined && (obj.vetoThreshold = base64FromBytes(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TallyParams>): TallyParams {
-    const message = createBaseTallyParams();
-    message.quorum = object.quorum ?? new Uint8Array();
-    message.threshold = object.threshold ?? new Uint8Array();
-    message.vetoThreshold = object.vetoThreshold ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: TallyParamsSDKType): TallyParams {
-    return {
-      quorum: object?.quorum,
-      threshold: object?.threshold,
-      vetoThreshold: object?.veto_threshold
-    };
-  },
-  toSDK(message: TallyParams): TallyParamsSDKType {
-    const obj: any = {};
-    obj.quorum = message.quorum;
-    obj.threshold = message.threshold;
-    obj.veto_threshold = message.vetoThreshold;
-    return obj;
-  },
-  fromAmino(object: TallyParamsAmino): TallyParams {
-    return {
-      quorum: object.quorum,
-      threshold: object.threshold,
-      vetoThreshold: object.veto_threshold
-    };
-  },
-  toAmino(message: TallyParams): TallyParamsAmino {
-    const obj: any = {};
-    obj.quorum = message.quorum;
-    obj.threshold = message.threshold;
-    obj.veto_threshold = message.vetoThreshold;
-    return obj;
-  },
-  fromAminoMsg(object: TallyParamsAminoMsg): TallyParams {
-    return TallyParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: TallyParams): TallyParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/TallyParams",
-      value: TallyParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TallyParamsProtoMsg): TallyParams {
-    return TallyParams.decode(message.value);
-  },
-  toProto(message: TallyParams): Uint8Array {
-    return TallyParams.encode(message).finish();
-  },
-  toProtoMsg(message: TallyParams): TallyParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.TallyParams",
-      value: TallyParams.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 17f6cd32..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,290 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query";
-/** Query defines the gRPC querier service for gov module */
-export interface Query {
-  /** Proposal queries proposal details based on ProposalID. */
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
-  /** Proposals queries all proposals based on given status. */
-  proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
-  /** Vote queries voted information based on proposalID, voterAddr. */
-  vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
-  /** Votes queries votes of a given proposal. */
-  votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
-  /** Params queries all parameters of the gov module. */
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** Deposit queries single deposit information based proposalID, depositAddr. */
-  deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
-  /** Deposits queries all deposits of a single proposal. */
-  deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
-  /** TallyResult queries the tally of a proposal vote. */
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.proposal = this.proposal.bind(this);
-    this.proposals = this.proposals.bind(this);
-    this.vote = this.vote.bind(this);
-    this.votes = this.votes.bind(this);
-    this.params = this.params.bind(this);
-    this.deposit = this.deposit.bind(this);
-    this.deposits = this.deposits.bind(this);
-    this.tallyResult = this.tallyResult.bind(this);
-  }
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-    const data = QueryProposalRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposal", data);
-    return promise.then(data => QueryProposalResponse.decode(new BinaryReader(data)));
-  }
-  proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
-    const data = QueryProposalsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposals", data);
-    return promise.then(data => QueryProposalsResponse.decode(new BinaryReader(data)));
-  }
-  vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
-    const data = QueryVoteRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Vote", data);
-    return promise.then(data => QueryVoteResponse.decode(new BinaryReader(data)));
-  }
-  votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
-    const data = QueryVotesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Votes", data);
-    return promise.then(data => QueryVotesResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
-    const data = QueryDepositRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposit", data);
-    return promise.then(data => QueryDepositResponse.decode(new BinaryReader(data)));
-  }
-  deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
-    const data = QueryDepositsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposits", data);
-    return promise.then(data => QueryDepositsResponse.decode(new BinaryReader(data)));
-  }
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-    const data = QueryTallyResultRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "TallyResult", data);
-    return promise.then(data => QueryTallyResultResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-      return queryService.proposal(request);
-    },
-    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
-      return queryService.proposals(request);
-    },
-    vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
-      return queryService.vote(request);
-    },
-    votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
-      return queryService.votes(request);
-    },
-    params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
-      return queryService.deposit(request);
-    },
-    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
-      return queryService.deposits(request);
-    },
-    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-      return queryService.tallyResult(request);
-    }
-  };
-};
-export interface UseProposalQuery<TData> extends ReactQueryParams<QueryProposalResponse, TData> {
-  request: QueryProposalRequest;
-}
-export interface UseProposalsQuery<TData> extends ReactQueryParams<QueryProposalsResponse, TData> {
-  request: QueryProposalsRequest;
-}
-export interface UseVoteQuery<TData> extends ReactQueryParams<QueryVoteResponse, TData> {
-  request: QueryVoteRequest;
-}
-export interface UseVotesQuery<TData> extends ReactQueryParams<QueryVotesResponse, TData> {
-  request: QueryVotesRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request: QueryParamsRequest;
-}
-export interface UseDepositQuery<TData> extends ReactQueryParams<QueryDepositResponse, TData> {
-  request: QueryDepositRequest;
-}
-export interface UseDepositsQuery<TData> extends ReactQueryParams<QueryDepositsResponse, TData> {
-  request: QueryDepositsRequest;
-}
-export interface UseTallyResultQuery<TData> extends ReactQueryParams<QueryTallyResultResponse, TData> {
-  request: QueryTallyResultRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useProposal = <TData = QueryProposalResponse,>({
-    request,
-    options
-  }: UseProposalQuery<TData>) => {
-    return useQuery<QueryProposalResponse, Error, TData>(["proposalQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposal(request);
-    }, options);
-  };
-  const useProposals = <TData = QueryProposalsResponse,>({
-    request,
-    options
-  }: UseProposalsQuery<TData>) => {
-    return useQuery<QueryProposalsResponse, Error, TData>(["proposalsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposals(request);
-    }, options);
-  };
-  const useVote = <TData = QueryVoteResponse,>({
-    request,
-    options
-  }: UseVoteQuery<TData>) => {
-    return useQuery<QueryVoteResponse, Error, TData>(["voteQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.vote(request);
-    }, options);
-  };
-  const useVotes = <TData = QueryVotesResponse,>({
-    request,
-    options
-  }: UseVotesQuery<TData>) => {
-    return useQuery<QueryVotesResponse, Error, TData>(["votesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.votes(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useDeposit = <TData = QueryDepositResponse,>({
-    request,
-    options
-  }: UseDepositQuery<TData>) => {
-    return useQuery<QueryDepositResponse, Error, TData>(["depositQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.deposit(request);
-    }, options);
-  };
-  const useDeposits = <TData = QueryDepositsResponse,>({
-    request,
-    options
-  }: UseDepositsQuery<TData>) => {
-    return useQuery<QueryDepositsResponse, Error, TData>(["depositsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.deposits(request);
-    }, options);
-  };
-  const useTallyResult = <TData = QueryTallyResultResponse,>({
-    request,
-    options
-  }: UseTallyResultQuery<TData>) => {
-    return useQuery<QueryTallyResultResponse, Error, TData>(["tallyResultQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.tallyResult(request);
-    }, options);
-  };
-  return {
-    /** Proposal queries proposal details based on ProposalID. */useProposal,
-    /** Proposals queries all proposals based on given status. */useProposals,
-    /** Vote queries voted information based on proposalID, voterAddr. */useVote,
-    /** Votes queries votes of a given proposal. */useVotes,
-    /** Params queries all parameters of the gov module. */useParams,
-    /** Deposit queries single deposit information based proposalID, depositAddr. */useDeposit,
-    /** Deposits queries all deposits of a single proposal. */useDeposits,
-    /** TallyResult queries the tally of a proposal vote. */useTallyResult
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryProposalStore {
-    store = new QueryStore<QueryProposalRequest, QueryProposalResponse>(queryService?.proposal);
-    proposal(request: QueryProposalRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryProposalsStore {
-    store = new QueryStore<QueryProposalsRequest, QueryProposalsResponse>(queryService?.proposals);
-    proposals(request: QueryProposalsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVoteStore {
-    store = new QueryStore<QueryVoteRequest, QueryVoteResponse>(queryService?.vote);
-    vote(request: QueryVoteRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVotesStore {
-    store = new QueryStore<QueryVotesRequest, QueryVotesResponse>(queryService?.votes);
-    votes(request: QueryVotesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDepositStore {
-    store = new QueryStore<QueryDepositRequest, QueryDepositResponse>(queryService?.deposit);
-    deposit(request: QueryDepositRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDepositsStore {
-    store = new QueryStore<QueryDepositsRequest, QueryDepositsResponse>(queryService?.deposits);
-    deposits(request: QueryDepositsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTallyResultStore {
-    store = new QueryStore<QueryTallyResultRequest, QueryTallyResultResponse>(queryService?.tallyResult);
-    tallyResult(request: QueryTallyResultRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Proposal queries proposal details based on ProposalID. */QueryProposalStore,
-    /** Proposals queries all proposals based on given status. */QueryProposalsStore,
-    /** Vote queries voted information based on proposalID, voterAddr. */QueryVoteStore,
-    /** Votes queries votes of a given proposal. */QueryVotesStore,
-    /** Params queries all parameters of the gov module. */QueryParamsStore,
-    /** Deposit queries single deposit information based proposalID, depositAddr. */QueryDepositStore,
-    /** Deposits queries all deposits of a single proposal. */QueryDepositsStore,
-    /** TallyResult queries the tally of a proposal vote. */QueryTallyResultStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/query.ts
deleted file mode 100644
index f560158e..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/query.ts
+++ /dev/null
@@ -1,2037 +0,0 @@
-import { ProposalStatus, Proposal, ProposalAmino, ProposalSDKType, Vote, VoteAmino, VoteSDKType, VotingParams, VotingParamsAmino, VotingParamsSDKType, DepositParams, DepositParamsAmino, DepositParamsSDKType, TallyParams, TallyParamsAmino, TallyParamsSDKType, Deposit, DepositAmino, DepositSDKType, TallyResult, TallyResultAmino, TallyResultSDKType, proposalStatusFromJSON, proposalStatusToJSON } from "./gov";
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-}
-export interface QueryProposalRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalRequest";
-  value: Uint8Array;
-}
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-}
-export interface QueryProposalRequestAminoMsg {
-  type: "cosmos-sdk/QueryProposalRequest";
-  value: QueryProposalRequestAmino;
-}
-/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */
-export interface QueryProposalRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponse {
-  proposal: Proposal | undefined;
-}
-export interface QueryProposalResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalResponse";
-  value: Uint8Array;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponseAmino {
-  proposal?: ProposalAmino | undefined;
-}
-export interface QueryProposalResponseAminoMsg {
-  type: "cosmos-sdk/QueryProposalResponse";
-  value: QueryProposalResponseAmino;
-}
-/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */
-export interface QueryProposalResponseSDKType {
-  proposal: ProposalSDKType | undefined;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequest {
-  /** proposal_status defines the status of the proposals. */
-  proposalStatus: ProposalStatus;
-  /** voter defines the voter address for the proposals. */
-  voter: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryProposalsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalsRequest";
-  value: Uint8Array;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequestAmino {
-  /** proposal_status defines the status of the proposals. */
-  proposal_status: ProposalStatus;
-  /** voter defines the voter address for the proposals. */
-  voter: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryProposalsRequestAminoMsg {
-  type: "cosmos-sdk/QueryProposalsRequest";
-  value: QueryProposalsRequestAmino;
-}
-/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */
-export interface QueryProposalsRequestSDKType {
-  proposal_status: ProposalStatus;
-  voter: string;
-  depositor: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponse {
-  proposals: Proposal[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryProposalsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponseAmino {
-  proposals: ProposalAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryProposalsResponseAminoMsg {
-  type: "cosmos-sdk/QueryProposalsResponse";
-  value: QueryProposalsResponseAmino;
-}
-/**
- * QueryProposalsResponse is the response type for the Query/Proposals RPC
- * method.
- */
-export interface QueryProposalsResponseSDKType {
-  proposals: ProposalSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** voter defines the oter address for the proposals. */
-  voter: string;
-}
-export interface QueryVoteRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVoteRequest";
-  value: Uint8Array;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** voter defines the oter address for the proposals. */
-  voter: string;
-}
-export interface QueryVoteRequestAminoMsg {
-  type: "cosmos-sdk/QueryVoteRequest";
-  value: QueryVoteRequestAmino;
-}
-/** QueryVoteRequest is the request type for the Query/Vote RPC method. */
-export interface QueryVoteRequestSDKType {
-  proposal_id: bigint;
-  voter: string;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponse {
-  /** vote defined the queried vote. */
-  vote: Vote | undefined;
-}
-export interface QueryVoteResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVoteResponse";
-  value: Uint8Array;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponseAmino {
-  /** vote defined the queried vote. */
-  vote?: VoteAmino | undefined;
-}
-export interface QueryVoteResponseAminoMsg {
-  type: "cosmos-sdk/QueryVoteResponse";
-  value: QueryVoteResponseAmino;
-}
-/** QueryVoteResponse is the response type for the Query/Vote RPC method. */
-export interface QueryVoteResponseSDKType {
-  vote: VoteSDKType | undefined;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryVotesRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVotesRequest";
-  value: Uint8Array;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryVotesRequestAminoMsg {
-  type: "cosmos-sdk/QueryVotesRequest";
-  value: QueryVotesRequestAmino;
-}
-/** QueryVotesRequest is the request type for the Query/Votes RPC method. */
-export interface QueryVotesRequestSDKType {
-  proposal_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponse {
-  /** votes defined the queried votes. */
-  votes: Vote[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryVotesResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVotesResponse";
-  value: Uint8Array;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponseAmino {
-  /** votes defined the queried votes. */
-  votes: VoteAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryVotesResponseAminoMsg {
-  type: "cosmos-sdk/QueryVotesResponse";
-  value: QueryVotesResponseAmino;
-}
-/** QueryVotesResponse is the response type for the Query/Votes RPC method. */
-export interface QueryVotesResponseSDKType {
-  votes: VoteSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {
-  /**
-   * params_type defines which parameters to query for, can be one of "voting",
-   * "tallying" or "deposit".
-   */
-  paramsType: string;
-}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {
-  /**
-   * params_type defines which parameters to query for, can be one of "voting",
-   * "tallying" or "deposit".
-   */
-  params_type: string;
-}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {
-  params_type: string;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** voting_params defines the parameters related to voting. */
-  votingParams: VotingParams | undefined;
-  /** deposit_params defines the parameters related to deposit. */
-  depositParams: DepositParams | undefined;
-  /** tally_params defines the parameters related to tally. */
-  tallyParams: TallyParams | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** voting_params defines the parameters related to voting. */
-  voting_params?: VotingParamsAmino | undefined;
-  /** deposit_params defines the parameters related to deposit. */
-  deposit_params?: DepositParamsAmino | undefined;
-  /** tally_params defines the parameters related to tally. */
-  tally_params?: TallyParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  voting_params: VotingParamsSDKType | undefined;
-  deposit_params: DepositParamsSDKType | undefined;
-  tally_params: TallyParamsSDKType | undefined;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-}
-export interface QueryDepositRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositRequest";
-  value: Uint8Array;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** depositor defines the deposit addresses from the proposals. */
-  depositor: string;
-}
-export interface QueryDepositRequestAminoMsg {
-  type: "cosmos-sdk/QueryDepositRequest";
-  value: QueryDepositRequestAmino;
-}
-/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */
-export interface QueryDepositRequestSDKType {
-  proposal_id: bigint;
-  depositor: string;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponse {
-  /** deposit defines the requested deposit. */
-  deposit: Deposit | undefined;
-}
-export interface QueryDepositResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositResponse";
-  value: Uint8Array;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponseAmino {
-  /** deposit defines the requested deposit. */
-  deposit?: DepositAmino | undefined;
-}
-export interface QueryDepositResponseAminoMsg {
-  type: "cosmos-sdk/QueryDepositResponse";
-  value: QueryDepositResponseAmino;
-}
-/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */
-export interface QueryDepositResponseSDKType {
-  deposit: DepositSDKType | undefined;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDepositsRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositsRequest";
-  value: Uint8Array;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDepositsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDepositsRequest";
-  value: QueryDepositsRequestAmino;
-}
-/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */
-export interface QueryDepositsRequestSDKType {
-  proposal_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponse {
-  deposits: Deposit[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDepositsResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositsResponse";
-  value: Uint8Array;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponseAmino {
-  deposits: DepositAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDepositsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDepositsResponse";
-  value: QueryDepositsResponseAmino;
-}
-/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */
-export interface QueryDepositsResponseSDKType {
-  deposits: DepositSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequest {
-  /** proposal_id defines the unique id of the proposal. */
-  proposalId: bigint;
-}
-export interface QueryTallyResultRequestProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultRequest";
-  value: Uint8Array;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequestAmino {
-  /** proposal_id defines the unique id of the proposal. */
-  proposal_id: string;
-}
-export interface QueryTallyResultRequestAminoMsg {
-  type: "cosmos-sdk/QueryTallyResultRequest";
-  value: QueryTallyResultRequestAmino;
-}
-/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */
-export interface QueryTallyResultRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponse {
-  /** tally defines the requested tally. */
-  tally: TallyResult | undefined;
-}
-export interface QueryTallyResultResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultResponse";
-  value: Uint8Array;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponseAmino {
-  /** tally defines the requested tally. */
-  tally?: TallyResultAmino | undefined;
-}
-export interface QueryTallyResultResponseAminoMsg {
-  type: "cosmos-sdk/QueryTallyResultResponse";
-  value: QueryTallyResultResponseAmino;
-}
-/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */
-export interface QueryTallyResultResponseSDKType {
-  tally: TallyResultSDKType | undefined;
-}
-function createBaseQueryProposalRequest(): QueryProposalRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryProposalRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalRequest",
-  aminoType: "cosmos-sdk/QueryProposalRequest",
-  encode(message: QueryProposalRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryProposalRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalRequest>): QueryProposalRequest {
-    const message = createBaseQueryProposalRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryProposalRequestSDKType): QueryProposalRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryProposalRequest): QueryProposalRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryProposalRequestAmino): QueryProposalRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryProposalRequest): QueryProposalRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalRequestAminoMsg): QueryProposalRequest {
-    return QueryProposalRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalRequest): QueryProposalRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalRequest",
-      value: QueryProposalRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalRequestProtoMsg): QueryProposalRequest {
-    return QueryProposalRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalRequest): Uint8Array {
-    return QueryProposalRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalRequest): QueryProposalRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryProposalRequest",
-      value: QueryProposalRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalResponse(): QueryProposalResponse {
-  return {
-    proposal: Proposal.fromPartial({})
-  };
-}
-export const QueryProposalResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalResponse",
-  aminoType: "cosmos-sdk/QueryProposalResponse",
-  encode(message: QueryProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposal !== undefined) {
-      Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposal = Proposal.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalResponse {
-    return {
-      proposal: isSet(object.proposal) ? Proposal.fromJSON(object.proposal) : undefined
-    };
-  },
-  toJSON(message: QueryProposalResponse): unknown {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toJSON(message.proposal) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalResponse>): QueryProposalResponse {
-    const message = createBaseQueryProposalResponse();
-    message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalResponseSDKType): QueryProposalResponse {
-    return {
-      proposal: object.proposal ? Proposal.fromSDK(object.proposal) : undefined
-    };
-  },
-  toSDK(message: QueryProposalResponse): QueryProposalResponseSDKType {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toSDK(message.proposal) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalResponseAmino): QueryProposalResponse {
-    return {
-      proposal: object?.proposal ? Proposal.fromAmino(object.proposal) : undefined
-    };
-  },
-  toAmino(message: QueryProposalResponse): QueryProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal = message.proposal ? Proposal.toAmino(message.proposal) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalResponseAminoMsg): QueryProposalResponse {
-    return QueryProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalResponse): QueryProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalResponse",
-      value: QueryProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalResponseProtoMsg): QueryProposalResponse {
-    return QueryProposalResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalResponse): Uint8Array {
-    return QueryProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalResponse): QueryProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryProposalResponse",
-      value: QueryProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsRequest(): QueryProposalsRequest {
-  return {
-    proposalStatus: 0,
-    voter: "",
-    depositor: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryProposalsRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalsRequest",
-  aminoType: "cosmos-sdk/QueryProposalsRequest",
-  encode(message: QueryProposalsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalStatus !== 0) {
-      writer.uint32(8).int32(message.proposalStatus);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(26).string(message.depositor);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalStatus = (reader.int32() as any);
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.depositor = reader.string();
-          break;
-        case 4:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposalStatus) ? proposalStatusFromJSON(object.proposalStatus) : -1,
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsRequest): unknown {
-    const obj: any = {};
-    message.proposalStatus !== undefined && (obj.proposalStatus = proposalStatusToJSON(message.proposalStatus));
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsRequest>): QueryProposalsRequest {
-    const message = createBaseQueryProposalsRequest();
-    message.proposalStatus = object.proposalStatus ?? 0;
-    message.voter = object.voter ?? "";
-    message.depositor = object.depositor ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsRequestSDKType): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposal_status) ? proposalStatusFromJSON(object.proposal_status) : -1,
-      voter: object?.voter,
-      depositor: object?.depositor,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsRequest): QueryProposalsRequestSDKType {
-    const obj: any = {};
-    message.proposalStatus !== undefined && (obj.proposal_status = proposalStatusToJSON(message.proposalStatus));
-    obj.voter = message.voter;
-    obj.depositor = message.depositor;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsRequestAmino): QueryProposalsRequest {
-    return {
-      proposalStatus: isSet(object.proposal_status) ? proposalStatusFromJSON(object.proposal_status) : -1,
-      voter: object.voter,
-      depositor: object.depositor,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsRequest): QueryProposalsRequestAmino {
-    const obj: any = {};
-    obj.proposal_status = message.proposalStatus;
-    obj.voter = message.voter;
-    obj.depositor = message.depositor;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsRequestAminoMsg): QueryProposalsRequest {
-    return QueryProposalsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsRequest): QueryProposalsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalsRequest",
-      value: QueryProposalsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsRequestProtoMsg): QueryProposalsRequest {
-    return QueryProposalsRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalsRequest): Uint8Array {
-    return QueryProposalsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsRequest): QueryProposalsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryProposalsRequest",
-      value: QueryProposalsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsResponse(): QueryProposalsResponse {
-  return {
-    proposals: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryProposalsResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryProposalsResponse",
-  aminoType: "cosmos-sdk/QueryProposalsResponse",
-  encode(message: QueryProposalsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsResponse): unknown {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsResponse>): QueryProposalsResponse {
-    const message = createBaseQueryProposalsResponse();
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsResponseSDKType): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsResponse): QueryProposalsResponseSDKType {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsResponseAmino): QueryProposalsResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsResponse): QueryProposalsResponseAmino {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsResponseAminoMsg): QueryProposalsResponse {
-    return QueryProposalsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsResponse): QueryProposalsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalsResponse",
-      value: QueryProposalsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsResponseProtoMsg): QueryProposalsResponse {
-    return QueryProposalsResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalsResponse): Uint8Array {
-    return QueryProposalsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsResponse): QueryProposalsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryProposalsResponse",
-      value: QueryProposalsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteRequest(): QueryVoteRequest {
-  return {
-    proposalId: BigInt(0),
-    voter: ""
-  };
-}
-export const QueryVoteRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVoteRequest",
-  aminoType: "cosmos-sdk/QueryVoteRequest",
-  encode(message: QueryVoteRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : ""
-    };
-  },
-  toJSON(message: QueryVoteRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteRequest>): QueryVoteRequest {
-    const message = createBaseQueryVoteRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    return message;
-  },
-  fromSDK(object: QueryVoteRequestSDKType): QueryVoteRequest {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter
-    };
-  },
-  toSDK(message: QueryVoteRequest): QueryVoteRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAmino(object: QueryVoteRequestAmino): QueryVoteRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter
-    };
-  },
-  toAmino(message: QueryVoteRequest): QueryVoteRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteRequestAminoMsg): QueryVoteRequest {
-    return QueryVoteRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteRequest): QueryVoteRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVoteRequest",
-      value: QueryVoteRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteRequestProtoMsg): QueryVoteRequest {
-    return QueryVoteRequest.decode(message.value);
-  },
-  toProto(message: QueryVoteRequest): Uint8Array {
-    return QueryVoteRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteRequest): QueryVoteRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryVoteRequest",
-      value: QueryVoteRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteResponse(): QueryVoteResponse {
-  return {
-    vote: Vote.fromPartial({})
-  };
-}
-export const QueryVoteResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVoteResponse",
-  aminoType: "cosmos-sdk/QueryVoteResponse",
-  encode(message: QueryVoteResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.vote !== undefined) {
-      Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.vote = Vote.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteResponse {
-    return {
-      vote: isSet(object.vote) ? Vote.fromJSON(object.vote) : undefined
-    };
-  },
-  toJSON(message: QueryVoteResponse): unknown {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toJSON(message.vote) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteResponse>): QueryVoteResponse {
-    const message = createBaseQueryVoteResponse();
-    message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVoteResponseSDKType): QueryVoteResponse {
-    return {
-      vote: object.vote ? Vote.fromSDK(object.vote) : undefined
-    };
-  },
-  toSDK(message: QueryVoteResponse): QueryVoteResponseSDKType {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toSDK(message.vote) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVoteResponseAmino): QueryVoteResponse {
-    return {
-      vote: object?.vote ? Vote.fromAmino(object.vote) : undefined
-    };
-  },
-  toAmino(message: QueryVoteResponse): QueryVoteResponseAmino {
-    const obj: any = {};
-    obj.vote = message.vote ? Vote.toAmino(message.vote) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteResponseAminoMsg): QueryVoteResponse {
-    return QueryVoteResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteResponse): QueryVoteResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVoteResponse",
-      value: QueryVoteResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteResponseProtoMsg): QueryVoteResponse {
-    return QueryVoteResponse.decode(message.value);
-  },
-  toProto(message: QueryVoteResponse): Uint8Array {
-    return QueryVoteResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteResponse): QueryVoteResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryVoteResponse",
-      value: QueryVoteResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesRequest(): QueryVotesRequest {
-  return {
-    proposalId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryVotesRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVotesRequest",
-  aminoType: "cosmos-sdk/QueryVotesRequest",
-  encode(message: QueryVotesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesRequest>): QueryVotesRequest {
-    const message = createBaseQueryVotesRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesRequestSDKType): QueryVotesRequest {
-    return {
-      proposalId: object?.proposal_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesRequest): QueryVotesRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesRequestAmino): QueryVotesRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesRequest): QueryVotesRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesRequestAminoMsg): QueryVotesRequest {
-    return QueryVotesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesRequest): QueryVotesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesRequest",
-      value: QueryVotesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesRequestProtoMsg): QueryVotesRequest {
-    return QueryVotesRequest.decode(message.value);
-  },
-  toProto(message: QueryVotesRequest): Uint8Array {
-    return QueryVotesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesRequest): QueryVotesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryVotesRequest",
-      value: QueryVotesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesResponse(): QueryVotesResponse {
-  return {
-    votes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryVotesResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryVotesResponse",
-  aminoType: "cosmos-sdk/QueryVotesResponse",
-  encode(message: QueryVotesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesResponse): unknown {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesResponse>): QueryVotesResponse {
-    const message = createBaseQueryVotesResponse();
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesResponseSDKType): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesResponse): QueryVotesResponseSDKType {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesResponseAmino): QueryVotesResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesResponse): QueryVotesResponseAmino {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesResponseAminoMsg): QueryVotesResponse {
-    return QueryVotesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesResponse): QueryVotesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesResponse",
-      value: QueryVotesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesResponseProtoMsg): QueryVotesResponse {
-    return QueryVotesResponse.decode(message.value);
-  },
-  toProto(message: QueryVotesResponse): Uint8Array {
-    return QueryVotesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesResponse): QueryVotesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryVotesResponse",
-      value: QueryVotesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {
-    paramsType: ""
-  };
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(message: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.paramsType !== "") {
-      writer.uint32(10).string(message.paramsType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.paramsType = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsRequest {
-    return {
-      paramsType: isSet(object.paramsType) ? String(object.paramsType) : ""
-    };
-  },
-  toJSON(message: QueryParamsRequest): unknown {
-    const obj: any = {};
-    message.paramsType !== undefined && (obj.paramsType = message.paramsType);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    message.paramsType = object.paramsType ?? "";
-    return message;
-  },
-  fromSDK(object: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {
-      paramsType: object?.params_type
-    };
-  },
-  toSDK(message: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    obj.params_type = message.paramsType;
-    return obj;
-  },
-  fromAmino(object: QueryParamsRequestAmino): QueryParamsRequest {
-    return {
-      paramsType: object.params_type
-    };
-  },
-  toAmino(message: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    obj.params_type = message.paramsType;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    votingParams: VotingParams.fromPartial({}),
-    depositParams: DepositParams.fromPartial({}),
-    tallyParams: TallyParams.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.votingParams !== undefined) {
-      VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.depositParams !== undefined) {
-      DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.tallyParams !== undefined) {
-      TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votingParams = VotingParams.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.depositParams = DepositParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.tallyParams = TallyParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      votingParams: isSet(object.votingParams) ? VotingParams.fromJSON(object.votingParams) : undefined,
-      depositParams: isSet(object.depositParams) ? DepositParams.fromJSON(object.depositParams) : undefined,
-      tallyParams: isSet(object.tallyParams) ? TallyParams.fromJSON(object.tallyParams) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.votingParams !== undefined && (obj.votingParams = message.votingParams ? VotingParams.toJSON(message.votingParams) : undefined);
-    message.depositParams !== undefined && (obj.depositParams = message.depositParams ? DepositParams.toJSON(message.depositParams) : undefined);
-    message.tallyParams !== undefined && (obj.tallyParams = message.tallyParams ? TallyParams.toJSON(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined;
-    message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined;
-    message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      votingParams: object.voting_params ? VotingParams.fromSDK(object.voting_params) : undefined,
-      depositParams: object.deposit_params ? DepositParams.fromSDK(object.deposit_params) : undefined,
-      tallyParams: object.tally_params ? TallyParams.fromSDK(object.tally_params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.votingParams !== undefined && (obj.voting_params = message.votingParams ? VotingParams.toSDK(message.votingParams) : undefined);
-    message.depositParams !== undefined && (obj.deposit_params = message.depositParams ? DepositParams.toSDK(message.depositParams) : undefined);
-    message.tallyParams !== undefined && (obj.tally_params = message.tallyParams ? TallyParams.toSDK(message.tallyParams) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      votingParams: object?.voting_params ? VotingParams.fromAmino(object.voting_params) : undefined,
-      depositParams: object?.deposit_params ? DepositParams.fromAmino(object.deposit_params) : undefined,
-      tallyParams: object?.tally_params ? TallyParams.fromAmino(object.tally_params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.voting_params = message.votingParams ? VotingParams.toAmino(message.votingParams) : undefined;
-    obj.deposit_params = message.depositParams ? DepositParams.toAmino(message.depositParams) : undefined;
-    obj.tally_params = message.tallyParams ? TallyParams.toAmino(message.tallyParams) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositRequest(): QueryDepositRequest {
-  return {
-    proposalId: BigInt(0),
-    depositor: ""
-  };
-}
-export const QueryDepositRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositRequest",
-  aminoType: "cosmos-sdk/QueryDepositRequest",
-  encode(message: QueryDepositRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : ""
-    };
-  },
-  toJSON(message: QueryDepositRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositRequest>): QueryDepositRequest {
-    const message = createBaseQueryDepositRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDepositRequestSDKType): QueryDepositRequest {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor
-    };
-  },
-  toSDK(message: QueryDepositRequest): QueryDepositRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAmino(object: QueryDepositRequestAmino): QueryDepositRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor
-    };
-  },
-  toAmino(message: QueryDepositRequest): QueryDepositRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositRequestAminoMsg): QueryDepositRequest {
-    return QueryDepositRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositRequest): QueryDepositRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDepositRequest",
-      value: QueryDepositRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositRequestProtoMsg): QueryDepositRequest {
-    return QueryDepositRequest.decode(message.value);
-  },
-  toProto(message: QueryDepositRequest): Uint8Array {
-    return QueryDepositRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositRequest): QueryDepositRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryDepositRequest",
-      value: QueryDepositRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositResponse(): QueryDepositResponse {
-  return {
-    deposit: Deposit.fromPartial({})
-  };
-}
-export const QueryDepositResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositResponse",
-  aminoType: "cosmos-sdk/QueryDepositResponse",
-  encode(message: QueryDepositResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.deposit !== undefined) {
-      Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.deposit = Deposit.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositResponse {
-    return {
-      deposit: isSet(object.deposit) ? Deposit.fromJSON(object.deposit) : undefined
-    };
-  },
-  toJSON(message: QueryDepositResponse): unknown {
-    const obj: any = {};
-    message.deposit !== undefined && (obj.deposit = message.deposit ? Deposit.toJSON(message.deposit) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositResponse>): QueryDepositResponse {
-    const message = createBaseQueryDepositResponse();
-    message.deposit = object.deposit !== undefined && object.deposit !== null ? Deposit.fromPartial(object.deposit) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositResponseSDKType): QueryDepositResponse {
-    return {
-      deposit: object.deposit ? Deposit.fromSDK(object.deposit) : undefined
-    };
-  },
-  toSDK(message: QueryDepositResponse): QueryDepositResponseSDKType {
-    const obj: any = {};
-    message.deposit !== undefined && (obj.deposit = message.deposit ? Deposit.toSDK(message.deposit) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositResponseAmino): QueryDepositResponse {
-    return {
-      deposit: object?.deposit ? Deposit.fromAmino(object.deposit) : undefined
-    };
-  },
-  toAmino(message: QueryDepositResponse): QueryDepositResponseAmino {
-    const obj: any = {};
-    obj.deposit = message.deposit ? Deposit.toAmino(message.deposit) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositResponseAminoMsg): QueryDepositResponse {
-    return QueryDepositResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositResponse): QueryDepositResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDepositResponse",
-      value: QueryDepositResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositResponseProtoMsg): QueryDepositResponse {
-    return QueryDepositResponse.decode(message.value);
-  },
-  toProto(message: QueryDepositResponse): Uint8Array {
-    return QueryDepositResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositResponse): QueryDepositResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryDepositResponse",
-      value: QueryDepositResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositsRequest(): QueryDepositsRequest {
-  return {
-    proposalId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDepositsRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositsRequest",
-  aminoType: "cosmos-sdk/QueryDepositsRequest",
-  encode(message: QueryDepositsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositsRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDepositsRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositsRequest>): QueryDepositsRequest {
-    const message = createBaseQueryDepositsRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositsRequestSDKType): QueryDepositsRequest {
-    return {
-      proposalId: object?.proposal_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDepositsRequest): QueryDepositsRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositsRequestAmino): QueryDepositsRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDepositsRequest): QueryDepositsRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositsRequestAminoMsg): QueryDepositsRequest {
-    return QueryDepositsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositsRequest): QueryDepositsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDepositsRequest",
-      value: QueryDepositsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositsRequestProtoMsg): QueryDepositsRequest {
-    return QueryDepositsRequest.decode(message.value);
-  },
-  toProto(message: QueryDepositsRequest): Uint8Array {
-    return QueryDepositsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositsRequest): QueryDepositsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryDepositsRequest",
-      value: QueryDepositsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDepositsResponse(): QueryDepositsResponse {
-  return {
-    deposits: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDepositsResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryDepositsResponse",
-  aminoType: "cosmos-sdk/QueryDepositsResponse",
-  encode(message: QueryDepositsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.deposits) {
-      Deposit.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDepositsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDepositsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.deposits.push(Deposit.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDepositsResponse): unknown {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toJSON(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDepositsResponse>): QueryDepositsResponse {
-    const message = createBaseQueryDepositsResponse();
-    message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDepositsResponseSDKType): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDepositsResponse): QueryDepositsResponseSDKType {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toSDK(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDepositsResponseAmino): QueryDepositsResponse {
-    return {
-      deposits: Array.isArray(object?.deposits) ? object.deposits.map((e: any) => Deposit.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDepositsResponse): QueryDepositsResponseAmino {
-    const obj: any = {};
-    if (message.deposits) {
-      obj.deposits = message.deposits.map(e => e ? Deposit.toAmino(e) : undefined);
-    } else {
-      obj.deposits = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDepositsResponseAminoMsg): QueryDepositsResponse {
-    return QueryDepositsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDepositsResponse): QueryDepositsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDepositsResponse",
-      value: QueryDepositsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDepositsResponseProtoMsg): QueryDepositsResponse {
-    return QueryDepositsResponse.decode(message.value);
-  },
-  toProto(message: QueryDepositsResponse): Uint8Array {
-    return QueryDepositsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDepositsResponse): QueryDepositsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryDepositsResponse",
-      value: QueryDepositsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultRequest(): QueryTallyResultRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryTallyResultRequest = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultRequest",
-  aminoType: "cosmos-sdk/QueryTallyResultRequest",
-  encode(message: QueryTallyResultRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryTallyResultRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultRequest>): QueryTallyResultRequest {
-    const message = createBaseQueryTallyResultRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryTallyResultRequestSDKType): QueryTallyResultRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryTallyResultRequest): QueryTallyResultRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultRequestAmino): QueryTallyResultRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryTallyResultRequest): QueryTallyResultRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultRequestAminoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTallyResultRequest",
-      value: QueryTallyResultRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultRequestProtoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.decode(message.value);
-  },
-  toProto(message: QueryTallyResultRequest): Uint8Array {
-    return QueryTallyResultRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultRequest",
-      value: QueryTallyResultRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultResponse(): QueryTallyResultResponse {
-  return {
-    tally: TallyResult.fromPartial({})
-  };
-}
-export const QueryTallyResultResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultResponse",
-  aminoType: "cosmos-sdk/QueryTallyResultResponse",
-  encode(message: QueryTallyResultResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tally !== undefined) {
-      TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tally = TallyResult.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultResponse {
-    return {
-      tally: isSet(object.tally) ? TallyResult.fromJSON(object.tally) : undefined
-    };
-  },
-  toJSON(message: QueryTallyResultResponse): unknown {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toJSON(message.tally) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultResponse>): QueryTallyResultResponse {
-    const message = createBaseQueryTallyResultResponse();
-    message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTallyResultResponseSDKType): QueryTallyResultResponse {
-    return {
-      tally: object.tally ? TallyResult.fromSDK(object.tally) : undefined
-    };
-  },
-  toSDK(message: QueryTallyResultResponse): QueryTallyResultResponseSDKType {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toSDK(message.tally) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultResponseAmino): QueryTallyResultResponse {
-    return {
-      tally: object?.tally ? TallyResult.fromAmino(object.tally) : undefined
-    };
-  },
-  toAmino(message: QueryTallyResultResponse): QueryTallyResultResponseAmino {
-    const obj: any = {};
-    obj.tally = message.tally ? TallyResult.toAmino(message.tally) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultResponseAminoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTallyResultResponse",
-      value: QueryTallyResultResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultResponseProtoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.decode(message.value);
-  },
-  toProto(message: QueryTallyResultResponse): Uint8Array {
-    return QueryTallyResultResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultResponse",
-      value: QueryTallyResultResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.amino.ts
deleted file mode 100644
index 1d618905..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { MsgSubmitProposal, MsgVote, MsgVoteWeighted, MsgDeposit } from "./tx";
-export const AminoConverter = {
-  "/cosmos.gov.v1beta1.MsgSubmitProposal": {
-    aminoType: "cosmos-sdk/MsgSubmitProposal",
-    toAmino: MsgSubmitProposal.toAmino,
-    fromAmino: MsgSubmitProposal.fromAmino
-  },
-  "/cosmos.gov.v1beta1.MsgVote": {
-    aminoType: "cosmos-sdk/MsgVote",
-    toAmino: MsgVote.toAmino,
-    fromAmino: MsgVote.fromAmino
-  },
-  "/cosmos.gov.v1beta1.MsgVoteWeighted": {
-    aminoType: "cosmos-sdk/MsgVoteWeighted",
-    toAmino: MsgVoteWeighted.toAmino,
-    fromAmino: MsgVoteWeighted.fromAmino
-  },
-  "/cosmos.gov.v1beta1.MsgDeposit": {
-    aminoType: "cosmos-sdk/MsgDeposit",
-    toAmino: MsgDeposit.toAmino,
-    fromAmino: MsgDeposit.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.registry.ts
deleted file mode 100644
index 6b9b2807..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSubmitProposal, MsgVote, MsgVoteWeighted, MsgDeposit } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.gov.v1beta1.MsgSubmitProposal", MsgSubmitProposal], ["/cosmos.gov.v1beta1.MsgVote", MsgVote], ["/cosmos.gov.v1beta1.MsgVoteWeighted", MsgVoteWeighted], ["/cosmos.gov.v1beta1.MsgDeposit", MsgDeposit]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-        value: MsgSubmitProposal.encode(value).finish()
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-        value: MsgVote.encode(value).finish()
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-        value: MsgVoteWeighted.encode(value).finish()
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-        value: MsgDeposit.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-        value
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-        value
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-        value
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-        value
-      };
-    }
-  },
-  toJSON: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-        value: MsgSubmitProposal.toJSON(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-        value: MsgVote.toJSON(value)
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-        value: MsgVoteWeighted.toJSON(value)
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-        value: MsgDeposit.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    submitProposal(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromJSON(value)
-      };
-    },
-    vote(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-        value: MsgVote.fromJSON(value)
-      };
-    },
-    voteWeighted(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-        value: MsgVoteWeighted.fromJSON(value)
-      };
-    },
-    deposit(value: any) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-        value: MsgDeposit.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromPartial(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-        value: MsgVote.fromPartial(value)
-      };
-    },
-    voteWeighted(value: MsgVoteWeighted) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-        value: MsgVoteWeighted.fromPartial(value)
-      };
-    },
-    deposit(value: MsgDeposit) {
-      return {
-        typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-        value: MsgDeposit.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 92982883..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx";
-/** Msg defines the bank Msg service. */
-export interface Msg {
-  /** SubmitProposal defines a method to create new proposal given a content. */
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse>;
-  /** Vote defines a method to add a vote on a specific proposal. */
-  vote(request: MsgVote): Promise<MsgVoteResponse>;
-  /**
-   * VoteWeighted defines a method to add a weighted vote on a specific proposal.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  voteWeighted(request: MsgVoteWeighted): Promise<MsgVoteWeightedResponse>;
-  /** Deposit defines a method to add deposit on a specific proposal. */
-  deposit(request: MsgDeposit): Promise<MsgDepositResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.submitProposal = this.submitProposal.bind(this);
-    this.vote = this.vote.bind(this);
-    this.voteWeighted = this.voteWeighted.bind(this);
-    this.deposit = this.deposit.bind(this);
-  }
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse> {
-    const data = MsgSubmitProposal.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "SubmitProposal", data);
-    return promise.then(data => MsgSubmitProposalResponse.decode(new BinaryReader(data)));
-  }
-  vote(request: MsgVote): Promise<MsgVoteResponse> {
-    const data = MsgVote.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Vote", data);
-    return promise.then(data => MsgVoteResponse.decode(new BinaryReader(data)));
-  }
-  voteWeighted(request: MsgVoteWeighted): Promise<MsgVoteWeightedResponse> {
-    const data = MsgVoteWeighted.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "VoteWeighted", data);
-    return promise.then(data => MsgVoteWeightedResponse.decode(new BinaryReader(data)));
-  }
-  deposit(request: MsgDeposit): Promise<MsgDepositResponse> {
-    const data = MsgDeposit.encode(request).finish();
-    const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Deposit", data);
-    return promise.then(data => MsgDepositResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.ts
deleted file mode 100644
index 5eb2b014..00000000
--- a/examples/injective/src/codegen/cosmos/gov/v1beta1/tx.ts
+++ /dev/null
@@ -1,1002 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { VoteOption, WeightedVoteOption, WeightedVoteOptionAmino, WeightedVoteOptionSDKType, voteOptionFromJSON, voteOptionToJSON } from "./gov";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposal {
-  content: Any | undefined;
-  initialDeposit: Coin[];
-  proposer: string;
-}
-export interface MsgSubmitProposalProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal";
-  value: Uint8Array;
-}
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposalAmino {
-  content?: AnyAmino | undefined;
-  initial_deposit: CoinAmino[];
-  proposer: string;
-}
-export interface MsgSubmitProposalAminoMsg {
-  type: "cosmos-sdk/MsgSubmitProposal";
-  value: MsgSubmitProposalAmino;
-}
-/**
- * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
- * proposal Content.
- */
-export interface MsgSubmitProposalSDKType {
-  content: AnySDKType | undefined;
-  initial_deposit: CoinSDKType[];
-  proposer: string;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponse {
-  proposalId: bigint;
-}
-export interface MsgSubmitProposalResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposalResponse";
-  value: Uint8Array;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseAmino {
-  proposal_id: string;
-}
-export interface MsgSubmitProposalResponseAminoMsg {
-  type: "cosmos-sdk/MsgSubmitProposalResponse";
-  value: MsgSubmitProposalResponseAmino;
-}
-/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseSDKType {
-  proposal_id: bigint;
-}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVote {
-  proposalId: bigint;
-  voter: string;
-  option: VoteOption;
-}
-export interface MsgVoteProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVote";
-  value: Uint8Array;
-}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVoteAmino {
-  proposal_id: string;
-  voter: string;
-  option: VoteOption;
-}
-export interface MsgVoteAminoMsg {
-  type: "cosmos-sdk/MsgVote";
-  value: MsgVoteAmino;
-}
-/** MsgVote defines a message to cast a vote. */
-export interface MsgVoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  option: VoteOption;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponse {}
-export interface MsgVoteResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteResponse";
-  value: Uint8Array;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponseAmino {}
-export interface MsgVoteResponseAminoMsg {
-  type: "cosmos-sdk/MsgVoteResponse";
-  value: MsgVoteResponseAmino;
-}
-/** MsgVoteResponse defines the Msg/Vote response type. */
-export interface MsgVoteResponseSDKType {}
-/**
- * MsgVoteWeighted defines a message to cast a vote.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeighted {
-  proposalId: bigint;
-  voter: string;
-  options: WeightedVoteOption[];
-}
-export interface MsgVoteWeightedProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted";
-  value: Uint8Array;
-}
-/**
- * MsgVoteWeighted defines a message to cast a vote.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeightedAmino {
-  proposal_id: string;
-  voter: string;
-  options: WeightedVoteOptionAmino[];
-}
-export interface MsgVoteWeightedAminoMsg {
-  type: "cosmos-sdk/MsgVoteWeighted";
-  value: MsgVoteWeightedAmino;
-}
-/**
- * MsgVoteWeighted defines a message to cast a vote.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeightedSDKType {
-  proposal_id: bigint;
-  voter: string;
-  options: WeightedVoteOptionSDKType[];
-}
-/**
- * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeightedResponse {}
-export interface MsgVoteWeightedResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeightedResponse";
-  value: Uint8Array;
-}
-/**
- * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeightedResponseAmino {}
-export interface MsgVoteWeightedResponseAminoMsg {
-  type: "cosmos-sdk/MsgVoteWeightedResponse";
-  value: MsgVoteWeightedResponseAmino;
-}
-/**
- * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface MsgVoteWeightedResponseSDKType {}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDeposit {
-  proposalId: bigint;
-  depositor: string;
-  amount: Coin[];
-}
-export interface MsgDepositProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgDeposit";
-  value: Uint8Array;
-}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDepositAmino {
-  proposal_id: string;
-  depositor: string;
-  amount: CoinAmino[];
-}
-export interface MsgDepositAminoMsg {
-  type: "cosmos-sdk/MsgDeposit";
-  value: MsgDepositAmino;
-}
-/** MsgDeposit defines a message to submit a deposit to an existing proposal. */
-export interface MsgDepositSDKType {
-  proposal_id: bigint;
-  depositor: string;
-  amount: CoinSDKType[];
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponse {}
-export interface MsgDepositResponseProtoMsg {
-  typeUrl: "/cosmos.gov.v1beta1.MsgDepositResponse";
-  value: Uint8Array;
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponseAmino {}
-export interface MsgDepositResponseAminoMsg {
-  type: "cosmos-sdk/MsgDepositResponse";
-  value: MsgDepositResponseAmino;
-}
-/** MsgDepositResponse defines the Msg/Deposit response type. */
-export interface MsgDepositResponseSDKType {}
-function createBaseMsgSubmitProposal(): MsgSubmitProposal {
-  return {
-    content: Any.fromPartial({}),
-    initialDeposit: [],
-    proposer: ""
-  };
-}
-export const MsgSubmitProposal = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-  aminoType: "cosmos-sdk/MsgSubmitProposal",
-  encode(message: MsgSubmitProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.content !== undefined) {
-      Any.encode(message.content, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.initialDeposit) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.proposer !== "") {
-      writer.uint32(26).string(message.proposer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.content = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.initialDeposit.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.proposer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposal {
-    return {
-      content: isSet(object.content) ? Any.fromJSON(object.content) : undefined,
-      initialDeposit: Array.isArray(object?.initialDeposit) ? object.initialDeposit.map((e: any) => Coin.fromJSON(e)) : [],
-      proposer: isSet(object.proposer) ? String(object.proposer) : ""
-    };
-  },
-  toJSON(message: MsgSubmitProposal): unknown {
-    const obj: any = {};
-    message.content !== undefined && (obj.content = message.content ? Any.toJSON(message.content) : undefined);
-    if (message.initialDeposit) {
-      obj.initialDeposit = message.initialDeposit.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.initialDeposit = [];
-    }
-    message.proposer !== undefined && (obj.proposer = message.proposer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposal>): MsgSubmitProposal {
-    const message = createBaseMsgSubmitProposal();
-    message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined;
-    message.initialDeposit = object.initialDeposit?.map(e => Coin.fromPartial(e)) || [];
-    message.proposer = object.proposer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalSDKType): MsgSubmitProposal {
-    return {
-      content: object.content ? Any.fromSDK(object.content) : undefined,
-      initialDeposit: Array.isArray(object?.initial_deposit) ? object.initial_deposit.map((e: any) => Coin.fromSDK(e)) : [],
-      proposer: object?.proposer
-    };
-  },
-  toSDK(message: MsgSubmitProposal): MsgSubmitProposalSDKType {
-    const obj: any = {};
-    message.content !== undefined && (obj.content = message.content ? Any.toSDK(message.content) : undefined);
-    if (message.initialDeposit) {
-      obj.initial_deposit = message.initialDeposit.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.initial_deposit = [];
-    }
-    obj.proposer = message.proposer;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalAmino): MsgSubmitProposal {
-    return {
-      content: object?.content ? Any.fromAmino(object.content) : undefined,
-      initialDeposit: Array.isArray(object?.initial_deposit) ? object.initial_deposit.map((e: any) => Coin.fromAmino(e)) : [],
-      proposer: object.proposer
-    };
-  },
-  toAmino(message: MsgSubmitProposal): MsgSubmitProposalAmino {
-    const obj: any = {};
-    obj.content = message.content ? Any.toAmino(message.content) : undefined;
-    if (message.initialDeposit) {
-      obj.initial_deposit = message.initialDeposit.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.initial_deposit = [];
-    }
-    obj.proposer = message.proposer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalAminoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposal): MsgSubmitProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitProposal",
-      value: MsgSubmitProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalProtoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposal): Uint8Array {
-    return MsgSubmitProposal.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposal): MsgSubmitProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal",
-      value: MsgSubmitProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const MsgSubmitProposalResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposalResponse",
-  aminoType: "cosmos-sdk/MsgSubmitProposalResponse",
-  encode(message: MsgSubmitProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposalResponse {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgSubmitProposalResponse): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposalResponse>): MsgSubmitProposalResponse {
-    const message = createBaseMsgSubmitProposalResponse();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalResponseSDKType): MsgSubmitProposalResponse {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalResponseAmino): MsgSubmitProposalResponse {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalResponseAminoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalResponseProtoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposalResponse): Uint8Array {
-    return MsgSubmitProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVote(): MsgVote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    option: 0
-  };
-}
-export const MsgVote = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-  aminoType: "cosmos-sdk/MsgVote",
-  encode(message: MsgVote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.option !== 0) {
-      writer.uint32(24).int32(message.option);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.option = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1
-    };
-  },
-  toJSON(message: MsgVote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVote>): MsgVote {
-    const message = createBaseMsgVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.option = object.option ?? 0;
-    return message;
-  },
-  fromSDK(object: MsgVoteSDKType): MsgVote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1
-    };
-  },
-  toSDK(message: MsgVote): MsgVoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    return obj;
-  },
-  fromAmino(object: MsgVoteAmino): MsgVote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1
-    };
-  },
-  toAmino(message: MsgVote): MsgVoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    obj.option = message.option;
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteAminoMsg): MsgVote {
-    return MsgVote.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVote): MsgVoteAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVote",
-      value: MsgVote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteProtoMsg): MsgVote {
-    return MsgVote.decode(message.value);
-  },
-  toProto(message: MsgVote): Uint8Array {
-    return MsgVote.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVote): MsgVoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgVote",
-      value: MsgVote.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteResponse(): MsgVoteResponse {
-  return {};
-}
-export const MsgVoteResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteResponse",
-  aminoType: "cosmos-sdk/MsgVoteResponse",
-  encode(_: MsgVoteResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVoteResponse {
-    return {};
-  },
-  toJSON(_: MsgVoteResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVoteResponse>): MsgVoteResponse {
-    const message = createBaseMsgVoteResponse();
-    return message;
-  },
-  fromSDK(_: MsgVoteResponseSDKType): MsgVoteResponse {
-    return {};
-  },
-  toSDK(_: MsgVoteResponse): MsgVoteResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVoteResponseAmino): MsgVoteResponse {
-    return {};
-  },
-  toAmino(_: MsgVoteResponse): MsgVoteResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteResponseAminoMsg): MsgVoteResponse {
-    return MsgVoteResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteResponse): MsgVoteResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVoteResponse",
-      value: MsgVoteResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteResponseProtoMsg): MsgVoteResponse {
-    return MsgVoteResponse.decode(message.value);
-  },
-  toProto(message: MsgVoteResponse): Uint8Array {
-    return MsgVoteResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteResponse): MsgVoteResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgVoteResponse",
-      value: MsgVoteResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteWeighted(): MsgVoteWeighted {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    options: []
-  };
-}
-export const MsgVoteWeighted = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-  aminoType: "cosmos-sdk/MsgVoteWeighted",
-  encode(message: MsgVoteWeighted, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    for (const v of message.options) {
-      WeightedVoteOption.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteWeighted {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteWeighted();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.options.push(WeightedVoteOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVoteWeighted {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgVoteWeighted): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toJSON(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVoteWeighted>): MsgVoteWeighted {
-    const message = createBaseMsgVoteWeighted();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgVoteWeightedSDKType): MsgVoteWeighted {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgVoteWeighted): MsgVoteWeightedSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toSDK(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgVoteWeightedAmino): MsgVoteWeighted {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      options: Array.isArray(object?.options) ? object.options.map((e: any) => WeightedVoteOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgVoteWeighted): MsgVoteWeightedAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    if (message.options) {
-      obj.options = message.options.map(e => e ? WeightedVoteOption.toAmino(e) : undefined);
-    } else {
-      obj.options = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteWeightedAminoMsg): MsgVoteWeighted {
-    return MsgVoteWeighted.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteWeighted): MsgVoteWeightedAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVoteWeighted",
-      value: MsgVoteWeighted.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteWeightedProtoMsg): MsgVoteWeighted {
-    return MsgVoteWeighted.decode(message.value);
-  },
-  toProto(message: MsgVoteWeighted): Uint8Array {
-    return MsgVoteWeighted.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteWeighted): MsgVoteWeightedProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted",
-      value: MsgVoteWeighted.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteWeightedResponse(): MsgVoteWeightedResponse {
-  return {};
-}
-export const MsgVoteWeightedResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeightedResponse",
-  aminoType: "cosmos-sdk/MsgVoteWeightedResponse",
-  encode(_: MsgVoteWeightedResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteWeightedResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteWeightedResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVoteWeightedResponse {
-    return {};
-  },
-  toJSON(_: MsgVoteWeightedResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVoteWeightedResponse>): MsgVoteWeightedResponse {
-    const message = createBaseMsgVoteWeightedResponse();
-    return message;
-  },
-  fromSDK(_: MsgVoteWeightedResponseSDKType): MsgVoteWeightedResponse {
-    return {};
-  },
-  toSDK(_: MsgVoteWeightedResponse): MsgVoteWeightedResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVoteWeightedResponseAmino): MsgVoteWeightedResponse {
-    return {};
-  },
-  toAmino(_: MsgVoteWeightedResponse): MsgVoteWeightedResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteWeightedResponseAminoMsg): MsgVoteWeightedResponse {
-    return MsgVoteWeightedResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteWeightedResponse): MsgVoteWeightedResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVoteWeightedResponse",
-      value: MsgVoteWeightedResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteWeightedResponseProtoMsg): MsgVoteWeightedResponse {
-    return MsgVoteWeightedResponse.decode(message.value);
-  },
-  toProto(message: MsgVoteWeightedResponse): Uint8Array {
-    return MsgVoteWeightedResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteWeightedResponse): MsgVoteWeightedResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeightedResponse",
-      value: MsgVoteWeightedResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDeposit(): MsgDeposit {
-  return {
-    proposalId: BigInt(0),
-    depositor: "",
-    amount: []
-  };
-}
-export const MsgDeposit = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-  aminoType: "cosmos-sdk/MsgDeposit",
-  encode(message: MsgDeposit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.depositor !== "") {
-      writer.uint32(18).string(message.depositor);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDeposit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDeposit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.depositor = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgDeposit {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      depositor: isSet(object.depositor) ? String(object.depositor) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgDeposit): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.depositor !== undefined && (obj.depositor = message.depositor);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgDeposit>): MsgDeposit {
-    const message = createBaseMsgDeposit();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.depositor = object.depositor ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgDepositSDKType): MsgDeposit {
-    return {
-      proposalId: object?.proposal_id,
-      depositor: object?.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgDeposit): MsgDepositSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgDepositAmino): MsgDeposit {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      depositor: object.depositor,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgDeposit): MsgDepositAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.depositor = message.depositor;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgDepositAminoMsg): MsgDeposit {
-    return MsgDeposit.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDeposit): MsgDepositAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgDeposit",
-      value: MsgDeposit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDepositProtoMsg): MsgDeposit {
-    return MsgDeposit.decode(message.value);
-  },
-  toProto(message: MsgDeposit): Uint8Array {
-    return MsgDeposit.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDeposit): MsgDepositProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgDeposit",
-      value: MsgDeposit.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDepositResponse(): MsgDepositResponse {
-  return {};
-}
-export const MsgDepositResponse = {
-  typeUrl: "/cosmos.gov.v1beta1.MsgDepositResponse",
-  aminoType: "cosmos-sdk/MsgDepositResponse",
-  encode(_: MsgDepositResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDepositResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDepositResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgDepositResponse {
-    return {};
-  },
-  toJSON(_: MsgDepositResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgDepositResponse>): MsgDepositResponse {
-    const message = createBaseMsgDepositResponse();
-    return message;
-  },
-  fromSDK(_: MsgDepositResponseSDKType): MsgDepositResponse {
-    return {};
-  },
-  toSDK(_: MsgDepositResponse): MsgDepositResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgDepositResponseAmino): MsgDepositResponse {
-    return {};
-  },
-  toAmino(_: MsgDepositResponse): MsgDepositResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgDepositResponseAminoMsg): MsgDepositResponse {
-    return MsgDepositResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDepositResponse): MsgDepositResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgDepositResponse",
-      value: MsgDepositResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDepositResponseProtoMsg): MsgDepositResponse {
-    return MsgDepositResponse.decode(message.value);
-  },
-  toProto(message: MsgDepositResponse): Uint8Array {
-    return MsgDepositResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDepositResponse): MsgDepositResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.gov.v1beta1.MsgDepositResponse",
-      value: MsgDepositResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/events.ts b/examples/injective/src/codegen/cosmos/group/v1/events.ts
deleted file mode 100644
index 4e1032a4..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/events.ts
+++ /dev/null
@@ -1,1031 +0,0 @@
-import { ProposalExecutorResult, proposalExecutorResultFromJSON, proposalExecutorResultToJSON } from "./types";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** EventCreateGroup is an event emitted when a group is created. */
-export interface EventCreateGroup {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-}
-export interface EventCreateGroupProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventCreateGroup";
-  value: Uint8Array;
-}
-/** EventCreateGroup is an event emitted when a group is created. */
-export interface EventCreateGroupAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-}
-export interface EventCreateGroupAminoMsg {
-  type: "cosmos-sdk/EventCreateGroup";
-  value: EventCreateGroupAmino;
-}
-/** EventCreateGroup is an event emitted when a group is created. */
-export interface EventCreateGroupSDKType {
-  group_id: bigint;
-}
-/** EventUpdateGroup is an event emitted when a group is updated. */
-export interface EventUpdateGroup {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-}
-export interface EventUpdateGroupProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventUpdateGroup";
-  value: Uint8Array;
-}
-/** EventUpdateGroup is an event emitted when a group is updated. */
-export interface EventUpdateGroupAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-}
-export interface EventUpdateGroupAminoMsg {
-  type: "cosmos-sdk/EventUpdateGroup";
-  value: EventUpdateGroupAmino;
-}
-/** EventUpdateGroup is an event emitted when a group is updated. */
-export interface EventUpdateGroupSDKType {
-  group_id: bigint;
-}
-/** EventCreateGroupPolicy is an event emitted when a group policy is created. */
-export interface EventCreateGroupPolicy {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface EventCreateGroupPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventCreateGroupPolicy";
-  value: Uint8Array;
-}
-/** EventCreateGroupPolicy is an event emitted when a group policy is created. */
-export interface EventCreateGroupPolicyAmino {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface EventCreateGroupPolicyAminoMsg {
-  type: "cosmos-sdk/EventCreateGroupPolicy";
-  value: EventCreateGroupPolicyAmino;
-}
-/** EventCreateGroupPolicy is an event emitted when a group policy is created. */
-export interface EventCreateGroupPolicySDKType {
-  address: string;
-}
-/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */
-export interface EventUpdateGroupPolicy {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface EventUpdateGroupPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventUpdateGroupPolicy";
-  value: Uint8Array;
-}
-/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */
-export interface EventUpdateGroupPolicyAmino {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface EventUpdateGroupPolicyAminoMsg {
-  type: "cosmos-sdk/EventUpdateGroupPolicy";
-  value: EventUpdateGroupPolicyAmino;
-}
-/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */
-export interface EventUpdateGroupPolicySDKType {
-  address: string;
-}
-/** EventSubmitProposal is an event emitted when a proposal is created. */
-export interface EventSubmitProposal {
-  /** proposal_id is the unique ID of the proposal. */
-  proposalId: bigint;
-}
-export interface EventSubmitProposalProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventSubmitProposal";
-  value: Uint8Array;
-}
-/** EventSubmitProposal is an event emitted when a proposal is created. */
-export interface EventSubmitProposalAmino {
-  /** proposal_id is the unique ID of the proposal. */
-  proposal_id: string;
-}
-export interface EventSubmitProposalAminoMsg {
-  type: "cosmos-sdk/EventSubmitProposal";
-  value: EventSubmitProposalAmino;
-}
-/** EventSubmitProposal is an event emitted when a proposal is created. */
-export interface EventSubmitProposalSDKType {
-  proposal_id: bigint;
-}
-/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */
-export interface EventWithdrawProposal {
-  /** proposal_id is the unique ID of the proposal. */
-  proposalId: bigint;
-}
-export interface EventWithdrawProposalProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventWithdrawProposal";
-  value: Uint8Array;
-}
-/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */
-export interface EventWithdrawProposalAmino {
-  /** proposal_id is the unique ID of the proposal. */
-  proposal_id: string;
-}
-export interface EventWithdrawProposalAminoMsg {
-  type: "cosmos-sdk/EventWithdrawProposal";
-  value: EventWithdrawProposalAmino;
-}
-/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */
-export interface EventWithdrawProposalSDKType {
-  proposal_id: bigint;
-}
-/** EventVote is an event emitted when a voter votes on a proposal. */
-export interface EventVote {
-  /** proposal_id is the unique ID of the proposal. */
-  proposalId: bigint;
-}
-export interface EventVoteProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventVote";
-  value: Uint8Array;
-}
-/** EventVote is an event emitted when a voter votes on a proposal. */
-export interface EventVoteAmino {
-  /** proposal_id is the unique ID of the proposal. */
-  proposal_id: string;
-}
-export interface EventVoteAminoMsg {
-  type: "cosmos-sdk/EventVote";
-  value: EventVoteAmino;
-}
-/** EventVote is an event emitted when a voter votes on a proposal. */
-export interface EventVoteSDKType {
-  proposal_id: bigint;
-}
-/** EventExec is an event emitted when a proposal is executed. */
-export interface EventExec {
-  /** proposal_id is the unique ID of the proposal. */
-  proposalId: bigint;
-  /** result is the proposal execution result. */
-  result: ProposalExecutorResult;
-}
-export interface EventExecProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventExec";
-  value: Uint8Array;
-}
-/** EventExec is an event emitted when a proposal is executed. */
-export interface EventExecAmino {
-  /** proposal_id is the unique ID of the proposal. */
-  proposal_id: string;
-  /** result is the proposal execution result. */
-  result: ProposalExecutorResult;
-}
-export interface EventExecAminoMsg {
-  type: "cosmos-sdk/EventExec";
-  value: EventExecAmino;
-}
-/** EventExec is an event emitted when a proposal is executed. */
-export interface EventExecSDKType {
-  proposal_id: bigint;
-  result: ProposalExecutorResult;
-}
-/** EventLeaveGroup is an event emitted when group member leaves the group. */
-export interface EventLeaveGroup {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** address is the account address of the group member. */
-  address: string;
-}
-export interface EventLeaveGroupProtoMsg {
-  typeUrl: "/cosmos.group.v1.EventLeaveGroup";
-  value: Uint8Array;
-}
-/** EventLeaveGroup is an event emitted when group member leaves the group. */
-export interface EventLeaveGroupAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** address is the account address of the group member. */
-  address: string;
-}
-export interface EventLeaveGroupAminoMsg {
-  type: "cosmos-sdk/EventLeaveGroup";
-  value: EventLeaveGroupAmino;
-}
-/** EventLeaveGroup is an event emitted when group member leaves the group. */
-export interface EventLeaveGroupSDKType {
-  group_id: bigint;
-  address: string;
-}
-function createBaseEventCreateGroup(): EventCreateGroup {
-  return {
-    groupId: BigInt(0)
-  };
-}
-export const EventCreateGroup = {
-  typeUrl: "/cosmos.group.v1.EventCreateGroup",
-  aminoType: "cosmos-sdk/EventCreateGroup",
-  encode(message: EventCreateGroup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventCreateGroup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventCreateGroup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventCreateGroup {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EventCreateGroup): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventCreateGroup>): EventCreateGroup {
-    const message = createBaseEventCreateGroup();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EventCreateGroupSDKType): EventCreateGroup {
-    return {
-      groupId: object?.group_id
-    };
-  },
-  toSDK(message: EventCreateGroup): EventCreateGroupSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    return obj;
-  },
-  fromAmino(object: EventCreateGroupAmino): EventCreateGroup {
-    return {
-      groupId: BigInt(object.group_id)
-    };
-  },
-  toAmino(message: EventCreateGroup): EventCreateGroupAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EventCreateGroupAminoMsg): EventCreateGroup {
-    return EventCreateGroup.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventCreateGroup): EventCreateGroupAminoMsg {
-    return {
-      type: "cosmos-sdk/EventCreateGroup",
-      value: EventCreateGroup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventCreateGroupProtoMsg): EventCreateGroup {
-    return EventCreateGroup.decode(message.value);
-  },
-  toProto(message: EventCreateGroup): Uint8Array {
-    return EventCreateGroup.encode(message).finish();
-  },
-  toProtoMsg(message: EventCreateGroup): EventCreateGroupProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventCreateGroup",
-      value: EventCreateGroup.encode(message).finish()
-    };
-  }
-};
-function createBaseEventUpdateGroup(): EventUpdateGroup {
-  return {
-    groupId: BigInt(0)
-  };
-}
-export const EventUpdateGroup = {
-  typeUrl: "/cosmos.group.v1.EventUpdateGroup",
-  aminoType: "cosmos-sdk/EventUpdateGroup",
-  encode(message: EventUpdateGroup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventUpdateGroup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventUpdateGroup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventUpdateGroup {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EventUpdateGroup): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventUpdateGroup>): EventUpdateGroup {
-    const message = createBaseEventUpdateGroup();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EventUpdateGroupSDKType): EventUpdateGroup {
-    return {
-      groupId: object?.group_id
-    };
-  },
-  toSDK(message: EventUpdateGroup): EventUpdateGroupSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    return obj;
-  },
-  fromAmino(object: EventUpdateGroupAmino): EventUpdateGroup {
-    return {
-      groupId: BigInt(object.group_id)
-    };
-  },
-  toAmino(message: EventUpdateGroup): EventUpdateGroupAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EventUpdateGroupAminoMsg): EventUpdateGroup {
-    return EventUpdateGroup.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventUpdateGroup): EventUpdateGroupAminoMsg {
-    return {
-      type: "cosmos-sdk/EventUpdateGroup",
-      value: EventUpdateGroup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventUpdateGroupProtoMsg): EventUpdateGroup {
-    return EventUpdateGroup.decode(message.value);
-  },
-  toProto(message: EventUpdateGroup): Uint8Array {
-    return EventUpdateGroup.encode(message).finish();
-  },
-  toProtoMsg(message: EventUpdateGroup): EventUpdateGroupProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventUpdateGroup",
-      value: EventUpdateGroup.encode(message).finish()
-    };
-  }
-};
-function createBaseEventCreateGroupPolicy(): EventCreateGroupPolicy {
-  return {
-    address: ""
-  };
-}
-export const EventCreateGroupPolicy = {
-  typeUrl: "/cosmos.group.v1.EventCreateGroupPolicy",
-  aminoType: "cosmos-sdk/EventCreateGroupPolicy",
-  encode(message: EventCreateGroupPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventCreateGroupPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventCreateGroupPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventCreateGroupPolicy {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: EventCreateGroupPolicy): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventCreateGroupPolicy>): EventCreateGroupPolicy {
-    const message = createBaseEventCreateGroupPolicy();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: EventCreateGroupPolicySDKType): EventCreateGroupPolicy {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: EventCreateGroupPolicy): EventCreateGroupPolicySDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: EventCreateGroupPolicyAmino): EventCreateGroupPolicy {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: EventCreateGroupPolicy): EventCreateGroupPolicyAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: EventCreateGroupPolicyAminoMsg): EventCreateGroupPolicy {
-    return EventCreateGroupPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventCreateGroupPolicy): EventCreateGroupPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/EventCreateGroupPolicy",
-      value: EventCreateGroupPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventCreateGroupPolicyProtoMsg): EventCreateGroupPolicy {
-    return EventCreateGroupPolicy.decode(message.value);
-  },
-  toProto(message: EventCreateGroupPolicy): Uint8Array {
-    return EventCreateGroupPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: EventCreateGroupPolicy): EventCreateGroupPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventCreateGroupPolicy",
-      value: EventCreateGroupPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseEventUpdateGroupPolicy(): EventUpdateGroupPolicy {
-  return {
-    address: ""
-  };
-}
-export const EventUpdateGroupPolicy = {
-  typeUrl: "/cosmos.group.v1.EventUpdateGroupPolicy",
-  aminoType: "cosmos-sdk/EventUpdateGroupPolicy",
-  encode(message: EventUpdateGroupPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventUpdateGroupPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventUpdateGroupPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventUpdateGroupPolicy {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: EventUpdateGroupPolicy): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventUpdateGroupPolicy>): EventUpdateGroupPolicy {
-    const message = createBaseEventUpdateGroupPolicy();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: EventUpdateGroupPolicySDKType): EventUpdateGroupPolicy {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: EventUpdateGroupPolicy): EventUpdateGroupPolicySDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: EventUpdateGroupPolicyAmino): EventUpdateGroupPolicy {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: EventUpdateGroupPolicy): EventUpdateGroupPolicyAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: EventUpdateGroupPolicyAminoMsg): EventUpdateGroupPolicy {
-    return EventUpdateGroupPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventUpdateGroupPolicy): EventUpdateGroupPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/EventUpdateGroupPolicy",
-      value: EventUpdateGroupPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventUpdateGroupPolicyProtoMsg): EventUpdateGroupPolicy {
-    return EventUpdateGroupPolicy.decode(message.value);
-  },
-  toProto(message: EventUpdateGroupPolicy): Uint8Array {
-    return EventUpdateGroupPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: EventUpdateGroupPolicy): EventUpdateGroupPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventUpdateGroupPolicy",
-      value: EventUpdateGroupPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseEventSubmitProposal(): EventSubmitProposal {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const EventSubmitProposal = {
-  typeUrl: "/cosmos.group.v1.EventSubmitProposal",
-  aminoType: "cosmos-sdk/EventSubmitProposal",
-  encode(message: EventSubmitProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventSubmitProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventSubmitProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventSubmitProposal {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EventSubmitProposal): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventSubmitProposal>): EventSubmitProposal {
-    const message = createBaseEventSubmitProposal();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EventSubmitProposalSDKType): EventSubmitProposal {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: EventSubmitProposal): EventSubmitProposalSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: EventSubmitProposalAmino): EventSubmitProposal {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: EventSubmitProposal): EventSubmitProposalAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EventSubmitProposalAminoMsg): EventSubmitProposal {
-    return EventSubmitProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventSubmitProposal): EventSubmitProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/EventSubmitProposal",
-      value: EventSubmitProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventSubmitProposalProtoMsg): EventSubmitProposal {
-    return EventSubmitProposal.decode(message.value);
-  },
-  toProto(message: EventSubmitProposal): Uint8Array {
-    return EventSubmitProposal.encode(message).finish();
-  },
-  toProtoMsg(message: EventSubmitProposal): EventSubmitProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventSubmitProposal",
-      value: EventSubmitProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseEventWithdrawProposal(): EventWithdrawProposal {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const EventWithdrawProposal = {
-  typeUrl: "/cosmos.group.v1.EventWithdrawProposal",
-  aminoType: "cosmos-sdk/EventWithdrawProposal",
-  encode(message: EventWithdrawProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventWithdrawProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventWithdrawProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventWithdrawProposal {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EventWithdrawProposal): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventWithdrawProposal>): EventWithdrawProposal {
-    const message = createBaseEventWithdrawProposal();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EventWithdrawProposalSDKType): EventWithdrawProposal {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: EventWithdrawProposal): EventWithdrawProposalSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: EventWithdrawProposalAmino): EventWithdrawProposal {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: EventWithdrawProposal): EventWithdrawProposalAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EventWithdrawProposalAminoMsg): EventWithdrawProposal {
-    return EventWithdrawProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventWithdrawProposal): EventWithdrawProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/EventWithdrawProposal",
-      value: EventWithdrawProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventWithdrawProposalProtoMsg): EventWithdrawProposal {
-    return EventWithdrawProposal.decode(message.value);
-  },
-  toProto(message: EventWithdrawProposal): Uint8Array {
-    return EventWithdrawProposal.encode(message).finish();
-  },
-  toProtoMsg(message: EventWithdrawProposal): EventWithdrawProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventWithdrawProposal",
-      value: EventWithdrawProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseEventVote(): EventVote {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const EventVote = {
-  typeUrl: "/cosmos.group.v1.EventVote",
-  aminoType: "cosmos-sdk/EventVote",
-  encode(message: EventVote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventVote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventVote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EventVote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventVote>): EventVote {
-    const message = createBaseEventVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EventVoteSDKType): EventVote {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: EventVote): EventVoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: EventVoteAmino): EventVote {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: EventVote): EventVoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EventVoteAminoMsg): EventVote {
-    return EventVote.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventVote): EventVoteAminoMsg {
-    return {
-      type: "cosmos-sdk/EventVote",
-      value: EventVote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventVoteProtoMsg): EventVote {
-    return EventVote.decode(message.value);
-  },
-  toProto(message: EventVote): Uint8Array {
-    return EventVote.encode(message).finish();
-  },
-  toProtoMsg(message: EventVote): EventVoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventVote",
-      value: EventVote.encode(message).finish()
-    };
-  }
-};
-function createBaseEventExec(): EventExec {
-  return {
-    proposalId: BigInt(0),
-    result: 0
-  };
-}
-export const EventExec = {
-  typeUrl: "/cosmos.group.v1.EventExec",
-  aminoType: "cosmos-sdk/EventExec",
-  encode(message: EventExec, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.result !== 0) {
-      writer.uint32(16).int32(message.result);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventExec {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventExec();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.result = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventExec {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      result: isSet(object.result) ? proposalExecutorResultFromJSON(object.result) : -1
-    };
-  },
-  toJSON(message: EventExec): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.result !== undefined && (obj.result = proposalExecutorResultToJSON(message.result));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventExec>): EventExec {
-    const message = createBaseEventExec();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.result = object.result ?? 0;
-    return message;
-  },
-  fromSDK(object: EventExecSDKType): EventExec {
-    return {
-      proposalId: object?.proposal_id,
-      result: isSet(object.result) ? proposalExecutorResultFromJSON(object.result) : -1
-    };
-  },
-  toSDK(message: EventExec): EventExecSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.result !== undefined && (obj.result = proposalExecutorResultToJSON(message.result));
-    return obj;
-  },
-  fromAmino(object: EventExecAmino): EventExec {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      result: isSet(object.result) ? proposalExecutorResultFromJSON(object.result) : -1
-    };
-  },
-  toAmino(message: EventExec): EventExecAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.result = message.result;
-    return obj;
-  },
-  fromAminoMsg(object: EventExecAminoMsg): EventExec {
-    return EventExec.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventExec): EventExecAminoMsg {
-    return {
-      type: "cosmos-sdk/EventExec",
-      value: EventExec.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventExecProtoMsg): EventExec {
-    return EventExec.decode(message.value);
-  },
-  toProto(message: EventExec): Uint8Array {
-    return EventExec.encode(message).finish();
-  },
-  toProtoMsg(message: EventExec): EventExecProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventExec",
-      value: EventExec.encode(message).finish()
-    };
-  }
-};
-function createBaseEventLeaveGroup(): EventLeaveGroup {
-  return {
-    groupId: BigInt(0),
-    address: ""
-  };
-}
-export const EventLeaveGroup = {
-  typeUrl: "/cosmos.group.v1.EventLeaveGroup",
-  aminoType: "cosmos-sdk/EventLeaveGroup",
-  encode(message: EventLeaveGroup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventLeaveGroup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventLeaveGroup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventLeaveGroup {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: EventLeaveGroup): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventLeaveGroup>): EventLeaveGroup {
-    const message = createBaseEventLeaveGroup();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: EventLeaveGroupSDKType): EventLeaveGroup {
-    return {
-      groupId: object?.group_id,
-      address: object?.address
-    };
-  },
-  toSDK(message: EventLeaveGroup): EventLeaveGroupSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: EventLeaveGroupAmino): EventLeaveGroup {
-    return {
-      groupId: BigInt(object.group_id),
-      address: object.address
-    };
-  },
-  toAmino(message: EventLeaveGroup): EventLeaveGroupAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: EventLeaveGroupAminoMsg): EventLeaveGroup {
-    return EventLeaveGroup.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventLeaveGroup): EventLeaveGroupAminoMsg {
-    return {
-      type: "cosmos-sdk/EventLeaveGroup",
-      value: EventLeaveGroup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventLeaveGroupProtoMsg): EventLeaveGroup {
-    return EventLeaveGroup.decode(message.value);
-  },
-  toProto(message: EventLeaveGroup): Uint8Array {
-    return EventLeaveGroup.encode(message).finish();
-  },
-  toProtoMsg(message: EventLeaveGroup): EventLeaveGroupProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.EventLeaveGroup",
-      value: EventLeaveGroup.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/genesis.ts b/examples/injective/src/codegen/cosmos/group/v1/genesis.ts
deleted file mode 100644
index 61ad77c9..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/genesis.ts
+++ /dev/null
@@ -1,324 +0,0 @@
-import { GroupInfo, GroupInfoAmino, GroupInfoSDKType, GroupMember, GroupMemberAmino, GroupMemberSDKType, GroupPolicyInfo, GroupPolicyInfoAmino, GroupPolicyInfoSDKType, Proposal, ProposalAmino, ProposalSDKType, Vote, VoteAmino, VoteSDKType } from "./types";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the group module's genesis state. */
-export interface GenesisState {
-  /**
-   * group_seq is the group table orm.Sequence,
-   * it is used to get the next group ID.
-   */
-  groupSeq: bigint;
-  /** groups is the list of groups info. */
-  groups: GroupInfo[];
-  /** group_members is the list of groups members. */
-  groupMembers: GroupMember[];
-  /**
-   * group_policy_seq is the group policy table orm.Sequence,
-   * it is used to generate the next group policy account address.
-   */
-  groupPolicySeq: bigint;
-  /** group_policies is the list of group policies info. */
-  groupPolicies: GroupPolicyInfo[];
-  /**
-   * proposal_seq is the proposal table orm.Sequence,
-   * it is used to get the next proposal ID.
-   */
-  proposalSeq: bigint;
-  /** proposals is the list of proposals. */
-  proposals: Proposal[];
-  /** votes is the list of votes. */
-  votes: Vote[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.group.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the group module's genesis state. */
-export interface GenesisStateAmino {
-  /**
-   * group_seq is the group table orm.Sequence,
-   * it is used to get the next group ID.
-   */
-  group_seq: string;
-  /** groups is the list of groups info. */
-  groups: GroupInfoAmino[];
-  /** group_members is the list of groups members. */
-  group_members: GroupMemberAmino[];
-  /**
-   * group_policy_seq is the group policy table orm.Sequence,
-   * it is used to generate the next group policy account address.
-   */
-  group_policy_seq: string;
-  /** group_policies is the list of group policies info. */
-  group_policies: GroupPolicyInfoAmino[];
-  /**
-   * proposal_seq is the proposal table orm.Sequence,
-   * it is used to get the next proposal ID.
-   */
-  proposal_seq: string;
-  /** proposals is the list of proposals. */
-  proposals: ProposalAmino[];
-  /** votes is the list of votes. */
-  votes: VoteAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the group module's genesis state. */
-export interface GenesisStateSDKType {
-  group_seq: bigint;
-  groups: GroupInfoSDKType[];
-  group_members: GroupMemberSDKType[];
-  group_policy_seq: bigint;
-  group_policies: GroupPolicyInfoSDKType[];
-  proposal_seq: bigint;
-  proposals: ProposalSDKType[];
-  votes: VoteSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    groupSeq: BigInt(0),
-    groups: [],
-    groupMembers: [],
-    groupPolicySeq: BigInt(0),
-    groupPolicies: [],
-    proposalSeq: BigInt(0),
-    proposals: [],
-    votes: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.group.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupSeq !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupSeq);
-    }
-    for (const v of message.groups) {
-      GroupInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.groupMembers) {
-      GroupMember.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.groupPolicySeq !== BigInt(0)) {
-      writer.uint32(32).uint64(message.groupPolicySeq);
-    }
-    for (const v of message.groupPolicies) {
-      GroupPolicyInfo.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.proposalSeq !== BigInt(0)) {
-      writer.uint32(48).uint64(message.proposalSeq);
-    }
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupSeq = reader.uint64();
-          break;
-        case 2:
-          message.groups.push(GroupInfo.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.groupMembers.push(GroupMember.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.groupPolicySeq = reader.uint64();
-          break;
-        case 5:
-          message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.proposalSeq = reader.uint64();
-          break;
-        case 7:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      groupSeq: isSet(object.groupSeq) ? BigInt(object.groupSeq.toString()) : BigInt(0),
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromJSON(e)) : [],
-      groupMembers: Array.isArray(object?.groupMembers) ? object.groupMembers.map((e: any) => GroupMember.fromJSON(e)) : [],
-      groupPolicySeq: isSet(object.groupPolicySeq) ? BigInt(object.groupPolicySeq.toString()) : BigInt(0),
-      groupPolicies: Array.isArray(object?.groupPolicies) ? object.groupPolicies.map((e: any) => GroupPolicyInfo.fromJSON(e)) : [],
-      proposalSeq: isSet(object.proposalSeq) ? BigInt(object.proposalSeq.toString()) : BigInt(0),
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.groupSeq !== undefined && (obj.groupSeq = (message.groupSeq || BigInt(0)).toString());
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toJSON(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    if (message.groupMembers) {
-      obj.groupMembers = message.groupMembers.map(e => e ? GroupMember.toJSON(e) : undefined);
-    } else {
-      obj.groupMembers = [];
-    }
-    message.groupPolicySeq !== undefined && (obj.groupPolicySeq = (message.groupPolicySeq || BigInt(0)).toString());
-    if (message.groupPolicies) {
-      obj.groupPolicies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toJSON(e) : undefined);
-    } else {
-      obj.groupPolicies = [];
-    }
-    message.proposalSeq !== undefined && (obj.proposalSeq = (message.proposalSeq || BigInt(0)).toString());
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.groupSeq = object.groupSeq !== undefined && object.groupSeq !== null ? BigInt(object.groupSeq.toString()) : BigInt(0);
-    message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || [];
-    message.groupMembers = object.groupMembers?.map(e => GroupMember.fromPartial(e)) || [];
-    message.groupPolicySeq = object.groupPolicySeq !== undefined && object.groupPolicySeq !== null ? BigInt(object.groupPolicySeq.toString()) : BigInt(0);
-    message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || [];
-    message.proposalSeq = object.proposalSeq !== undefined && object.proposalSeq !== null ? BigInt(object.proposalSeq.toString()) : BigInt(0);
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      groupSeq: object?.group_seq,
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromSDK(e)) : [],
-      groupMembers: Array.isArray(object?.group_members) ? object.group_members.map((e: any) => GroupMember.fromSDK(e)) : [],
-      groupPolicySeq: object?.group_policy_seq,
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromSDK(e)) : [],
-      proposalSeq: object?.proposal_seq,
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.group_seq = message.groupSeq;
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toSDK(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    if (message.groupMembers) {
-      obj.group_members = message.groupMembers.map(e => e ? GroupMember.toSDK(e) : undefined);
-    } else {
-      obj.group_members = [];
-    }
-    obj.group_policy_seq = message.groupPolicySeq;
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toSDK(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    obj.proposal_seq = message.proposalSeq;
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      groupSeq: BigInt(object.group_seq),
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromAmino(e)) : [],
-      groupMembers: Array.isArray(object?.group_members) ? object.group_members.map((e: any) => GroupMember.fromAmino(e)) : [],
-      groupPolicySeq: BigInt(object.group_policy_seq),
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromAmino(e)) : [],
-      proposalSeq: BigInt(object.proposal_seq),
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.group_seq = message.groupSeq ? message.groupSeq.toString() : undefined;
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toAmino(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    if (message.groupMembers) {
-      obj.group_members = message.groupMembers.map(e => e ? GroupMember.toAmino(e) : undefined);
-    } else {
-      obj.group_members = [];
-    }
-    obj.group_policy_seq = message.groupPolicySeq ? message.groupPolicySeq.toString() : undefined;
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toAmino(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    obj.proposal_seq = message.proposalSeq ? message.proposalSeq.toString() : undefined;
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/group/v1/query.rpc.Query.ts
deleted file mode 100644
index c81e656b..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,445 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryGroupInfoRequest, QueryGroupInfoResponse, QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponse, QueryGroupMembersRequest, QueryGroupMembersResponse, QueryGroupsByAdminRequest, QueryGroupsByAdminResponse, QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponse, QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponse, QueryProposalRequest, QueryProposalResponse, QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponse, QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponse, QueryVotesByProposalRequest, QueryVotesByProposalResponse, QueryVotesByVoterRequest, QueryVotesByVoterResponse, QueryGroupsByMemberRequest, QueryGroupsByMemberResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query";
-/** Query is the cosmos.group.v1 Query service. */
-export interface Query {
-  /** GroupInfo queries group info based on group id. */
-  groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
-  /** GroupPolicyInfo queries group policy info based on account address of group policy. */
-  groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
-  /** GroupMembers queries members of a group */
-  groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
-  /** GroupsByAdmin queries groups by admin address. */
-  groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
-  /** GroupPoliciesByGroup queries group policies by group id. */
-  groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
-  /** GroupsByAdmin queries group policies by admin address. */
-  groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
-  /** Proposal queries a proposal based on proposal id. */
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
-  /** ProposalsByGroupPolicy queries proposals based on account address of group policy. */
-  proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
-  /** VoteByProposalVoter queries a vote by proposal id and voter. */
-  voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
-  /** VotesByProposal queries a vote by proposal. */
-  votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
-  /** VotesByVoter queries a vote by voter. */
-  votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
-  /** GroupsByMember queries groups by member address. */
-  groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
-  /** TallyResult queries the tally of a proposal votes. */
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.groupInfo = this.groupInfo.bind(this);
-    this.groupPolicyInfo = this.groupPolicyInfo.bind(this);
-    this.groupMembers = this.groupMembers.bind(this);
-    this.groupsByAdmin = this.groupsByAdmin.bind(this);
-    this.groupPoliciesByGroup = this.groupPoliciesByGroup.bind(this);
-    this.groupPoliciesByAdmin = this.groupPoliciesByAdmin.bind(this);
-    this.proposal = this.proposal.bind(this);
-    this.proposalsByGroupPolicy = this.proposalsByGroupPolicy.bind(this);
-    this.voteByProposalVoter = this.voteByProposalVoter.bind(this);
-    this.votesByProposal = this.votesByProposal.bind(this);
-    this.votesByVoter = this.votesByVoter.bind(this);
-    this.groupsByMember = this.groupsByMember.bind(this);
-    this.tallyResult = this.tallyResult.bind(this);
-  }
-  groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse> {
-    const data = QueryGroupInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupInfo", data);
-    return promise.then(data => QueryGroupInfoResponse.decode(new BinaryReader(data)));
-  }
-  groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse> {
-    const data = QueryGroupPolicyInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPolicyInfo", data);
-    return promise.then(data => QueryGroupPolicyInfoResponse.decode(new BinaryReader(data)));
-  }
-  groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse> {
-    const data = QueryGroupMembersRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupMembers", data);
-    return promise.then(data => QueryGroupMembersResponse.decode(new BinaryReader(data)));
-  }
-  groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse> {
-    const data = QueryGroupsByAdminRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupsByAdmin", data);
-    return promise.then(data => QueryGroupsByAdminResponse.decode(new BinaryReader(data)));
-  }
-  groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse> {
-    const data = QueryGroupPoliciesByGroupRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPoliciesByGroup", data);
-    return promise.then(data => QueryGroupPoliciesByGroupResponse.decode(new BinaryReader(data)));
-  }
-  groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse> {
-    const data = QueryGroupPoliciesByAdminRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPoliciesByAdmin", data);
-    return promise.then(data => QueryGroupPoliciesByAdminResponse.decode(new BinaryReader(data)));
-  }
-  proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-    const data = QueryProposalRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "Proposal", data);
-    return promise.then(data => QueryProposalResponse.decode(new BinaryReader(data)));
-  }
-  proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse> {
-    const data = QueryProposalsByGroupPolicyRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "ProposalsByGroupPolicy", data);
-    return promise.then(data => QueryProposalsByGroupPolicyResponse.decode(new BinaryReader(data)));
-  }
-  voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse> {
-    const data = QueryVoteByProposalVoterRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "VoteByProposalVoter", data);
-    return promise.then(data => QueryVoteByProposalVoterResponse.decode(new BinaryReader(data)));
-  }
-  votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse> {
-    const data = QueryVotesByProposalRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "VotesByProposal", data);
-    return promise.then(data => QueryVotesByProposalResponse.decode(new BinaryReader(data)));
-  }
-  votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse> {
-    const data = QueryVotesByVoterRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "VotesByVoter", data);
-    return promise.then(data => QueryVotesByVoterResponse.decode(new BinaryReader(data)));
-  }
-  groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse> {
-    const data = QueryGroupsByMemberRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "GroupsByMember", data);
-    return promise.then(data => QueryGroupsByMemberResponse.decode(new BinaryReader(data)));
-  }
-  tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-    const data = QueryTallyResultRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Query", "TallyResult", data);
-    return promise.then(data => QueryTallyResultResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse> {
-      return queryService.groupInfo(request);
-    },
-    groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse> {
-      return queryService.groupPolicyInfo(request);
-    },
-    groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse> {
-      return queryService.groupMembers(request);
-    },
-    groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse> {
-      return queryService.groupsByAdmin(request);
-    },
-    groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse> {
-      return queryService.groupPoliciesByGroup(request);
-    },
-    groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse> {
-      return queryService.groupPoliciesByAdmin(request);
-    },
-    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
-      return queryService.proposal(request);
-    },
-    proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse> {
-      return queryService.proposalsByGroupPolicy(request);
-    },
-    voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse> {
-      return queryService.voteByProposalVoter(request);
-    },
-    votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse> {
-      return queryService.votesByProposal(request);
-    },
-    votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse> {
-      return queryService.votesByVoter(request);
-    },
-    groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse> {
-      return queryService.groupsByMember(request);
-    },
-    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
-      return queryService.tallyResult(request);
-    }
-  };
-};
-export interface UseGroupInfoQuery<TData> extends ReactQueryParams<QueryGroupInfoResponse, TData> {
-  request: QueryGroupInfoRequest;
-}
-export interface UseGroupPolicyInfoQuery<TData> extends ReactQueryParams<QueryGroupPolicyInfoResponse, TData> {
-  request: QueryGroupPolicyInfoRequest;
-}
-export interface UseGroupMembersQuery<TData> extends ReactQueryParams<QueryGroupMembersResponse, TData> {
-  request: QueryGroupMembersRequest;
-}
-export interface UseGroupsByAdminQuery<TData> extends ReactQueryParams<QueryGroupsByAdminResponse, TData> {
-  request: QueryGroupsByAdminRequest;
-}
-export interface UseGroupPoliciesByGroupQuery<TData> extends ReactQueryParams<QueryGroupPoliciesByGroupResponse, TData> {
-  request: QueryGroupPoliciesByGroupRequest;
-}
-export interface UseGroupPoliciesByAdminQuery<TData> extends ReactQueryParams<QueryGroupPoliciesByAdminResponse, TData> {
-  request: QueryGroupPoliciesByAdminRequest;
-}
-export interface UseProposalQuery<TData> extends ReactQueryParams<QueryProposalResponse, TData> {
-  request: QueryProposalRequest;
-}
-export interface UseProposalsByGroupPolicyQuery<TData> extends ReactQueryParams<QueryProposalsByGroupPolicyResponse, TData> {
-  request: QueryProposalsByGroupPolicyRequest;
-}
-export interface UseVoteByProposalVoterQuery<TData> extends ReactQueryParams<QueryVoteByProposalVoterResponse, TData> {
-  request: QueryVoteByProposalVoterRequest;
-}
-export interface UseVotesByProposalQuery<TData> extends ReactQueryParams<QueryVotesByProposalResponse, TData> {
-  request: QueryVotesByProposalRequest;
-}
-export interface UseVotesByVoterQuery<TData> extends ReactQueryParams<QueryVotesByVoterResponse, TData> {
-  request: QueryVotesByVoterRequest;
-}
-export interface UseGroupsByMemberQuery<TData> extends ReactQueryParams<QueryGroupsByMemberResponse, TData> {
-  request: QueryGroupsByMemberRequest;
-}
-export interface UseTallyResultQuery<TData> extends ReactQueryParams<QueryTallyResultResponse, TData> {
-  request: QueryTallyResultRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useGroupInfo = <TData = QueryGroupInfoResponse,>({
-    request,
-    options
-  }: UseGroupInfoQuery<TData>) => {
-    return useQuery<QueryGroupInfoResponse, Error, TData>(["groupInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupInfo(request);
-    }, options);
-  };
-  const useGroupPolicyInfo = <TData = QueryGroupPolicyInfoResponse,>({
-    request,
-    options
-  }: UseGroupPolicyInfoQuery<TData>) => {
-    return useQuery<QueryGroupPolicyInfoResponse, Error, TData>(["groupPolicyInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupPolicyInfo(request);
-    }, options);
-  };
-  const useGroupMembers = <TData = QueryGroupMembersResponse,>({
-    request,
-    options
-  }: UseGroupMembersQuery<TData>) => {
-    return useQuery<QueryGroupMembersResponse, Error, TData>(["groupMembersQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupMembers(request);
-    }, options);
-  };
-  const useGroupsByAdmin = <TData = QueryGroupsByAdminResponse,>({
-    request,
-    options
-  }: UseGroupsByAdminQuery<TData>) => {
-    return useQuery<QueryGroupsByAdminResponse, Error, TData>(["groupsByAdminQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupsByAdmin(request);
-    }, options);
-  };
-  const useGroupPoliciesByGroup = <TData = QueryGroupPoliciesByGroupResponse,>({
-    request,
-    options
-  }: UseGroupPoliciesByGroupQuery<TData>) => {
-    return useQuery<QueryGroupPoliciesByGroupResponse, Error, TData>(["groupPoliciesByGroupQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupPoliciesByGroup(request);
-    }, options);
-  };
-  const useGroupPoliciesByAdmin = <TData = QueryGroupPoliciesByAdminResponse,>({
-    request,
-    options
-  }: UseGroupPoliciesByAdminQuery<TData>) => {
-    return useQuery<QueryGroupPoliciesByAdminResponse, Error, TData>(["groupPoliciesByAdminQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupPoliciesByAdmin(request);
-    }, options);
-  };
-  const useProposal = <TData = QueryProposalResponse,>({
-    request,
-    options
-  }: UseProposalQuery<TData>) => {
-    return useQuery<QueryProposalResponse, Error, TData>(["proposalQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposal(request);
-    }, options);
-  };
-  const useProposalsByGroupPolicy = <TData = QueryProposalsByGroupPolicyResponse,>({
-    request,
-    options
-  }: UseProposalsByGroupPolicyQuery<TData>) => {
-    return useQuery<QueryProposalsByGroupPolicyResponse, Error, TData>(["proposalsByGroupPolicyQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.proposalsByGroupPolicy(request);
-    }, options);
-  };
-  const useVoteByProposalVoter = <TData = QueryVoteByProposalVoterResponse,>({
-    request,
-    options
-  }: UseVoteByProposalVoterQuery<TData>) => {
-    return useQuery<QueryVoteByProposalVoterResponse, Error, TData>(["voteByProposalVoterQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.voteByProposalVoter(request);
-    }, options);
-  };
-  const useVotesByProposal = <TData = QueryVotesByProposalResponse,>({
-    request,
-    options
-  }: UseVotesByProposalQuery<TData>) => {
-    return useQuery<QueryVotesByProposalResponse, Error, TData>(["votesByProposalQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.votesByProposal(request);
-    }, options);
-  };
-  const useVotesByVoter = <TData = QueryVotesByVoterResponse,>({
-    request,
-    options
-  }: UseVotesByVoterQuery<TData>) => {
-    return useQuery<QueryVotesByVoterResponse, Error, TData>(["votesByVoterQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.votesByVoter(request);
-    }, options);
-  };
-  const useGroupsByMember = <TData = QueryGroupsByMemberResponse,>({
-    request,
-    options
-  }: UseGroupsByMemberQuery<TData>) => {
-    return useQuery<QueryGroupsByMemberResponse, Error, TData>(["groupsByMemberQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.groupsByMember(request);
-    }, options);
-  };
-  const useTallyResult = <TData = QueryTallyResultResponse,>({
-    request,
-    options
-  }: UseTallyResultQuery<TData>) => {
-    return useQuery<QueryTallyResultResponse, Error, TData>(["tallyResultQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.tallyResult(request);
-    }, options);
-  };
-  return {
-    /** GroupInfo queries group info based on group id. */useGroupInfo,
-    /** GroupPolicyInfo queries group policy info based on account address of group policy. */useGroupPolicyInfo,
-    /** GroupMembers queries members of a group */useGroupMembers,
-    /** GroupsByAdmin queries groups by admin address. */useGroupsByAdmin,
-    /** GroupPoliciesByGroup queries group policies by group id. */useGroupPoliciesByGroup,
-    /** GroupsByAdmin queries group policies by admin address. */useGroupPoliciesByAdmin,
-    /** Proposal queries a proposal based on proposal id. */useProposal,
-    /** ProposalsByGroupPolicy queries proposals based on account address of group policy. */useProposalsByGroupPolicy,
-    /** VoteByProposalVoter queries a vote by proposal id and voter. */useVoteByProposalVoter,
-    /** VotesByProposal queries a vote by proposal. */useVotesByProposal,
-    /** VotesByVoter queries a vote by voter. */useVotesByVoter,
-    /** GroupsByMember queries groups by member address. */useGroupsByMember,
-    /** TallyResult queries the tally of a proposal votes. */useTallyResult
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryGroupInfoStore {
-    store = new QueryStore<QueryGroupInfoRequest, QueryGroupInfoResponse>(queryService?.groupInfo);
-    groupInfo(request: QueryGroupInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupPolicyInfoStore {
-    store = new QueryStore<QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponse>(queryService?.groupPolicyInfo);
-    groupPolicyInfo(request: QueryGroupPolicyInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupMembersStore {
-    store = new QueryStore<QueryGroupMembersRequest, QueryGroupMembersResponse>(queryService?.groupMembers);
-    groupMembers(request: QueryGroupMembersRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupsByAdminStore {
-    store = new QueryStore<QueryGroupsByAdminRequest, QueryGroupsByAdminResponse>(queryService?.groupsByAdmin);
-    groupsByAdmin(request: QueryGroupsByAdminRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupPoliciesByGroupStore {
-    store = new QueryStore<QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponse>(queryService?.groupPoliciesByGroup);
-    groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupPoliciesByAdminStore {
-    store = new QueryStore<QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponse>(queryService?.groupPoliciesByAdmin);
-    groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryProposalStore {
-    store = new QueryStore<QueryProposalRequest, QueryProposalResponse>(queryService?.proposal);
-    proposal(request: QueryProposalRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryProposalsByGroupPolicyStore {
-    store = new QueryStore<QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponse>(queryService?.proposalsByGroupPolicy);
-    proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVoteByProposalVoterStore {
-    store = new QueryStore<QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponse>(queryService?.voteByProposalVoter);
-    voteByProposalVoter(request: QueryVoteByProposalVoterRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVotesByProposalStore {
-    store = new QueryStore<QueryVotesByProposalRequest, QueryVotesByProposalResponse>(queryService?.votesByProposal);
-    votesByProposal(request: QueryVotesByProposalRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryVotesByVoterStore {
-    store = new QueryStore<QueryVotesByVoterRequest, QueryVotesByVoterResponse>(queryService?.votesByVoter);
-    votesByVoter(request: QueryVotesByVoterRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGroupsByMemberStore {
-    store = new QueryStore<QueryGroupsByMemberRequest, QueryGroupsByMemberResponse>(queryService?.groupsByMember);
-    groupsByMember(request: QueryGroupsByMemberRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTallyResultStore {
-    store = new QueryStore<QueryTallyResultRequest, QueryTallyResultResponse>(queryService?.tallyResult);
-    tallyResult(request: QueryTallyResultRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** GroupInfo queries group info based on group id. */QueryGroupInfoStore,
-    /** GroupPolicyInfo queries group policy info based on account address of group policy. */QueryGroupPolicyInfoStore,
-    /** GroupMembers queries members of a group */QueryGroupMembersStore,
-    /** GroupsByAdmin queries groups by admin address. */QueryGroupsByAdminStore,
-    /** GroupPoliciesByGroup queries group policies by group id. */QueryGroupPoliciesByGroupStore,
-    /** GroupsByAdmin queries group policies by admin address. */QueryGroupPoliciesByAdminStore,
-    /** Proposal queries a proposal based on proposal id. */QueryProposalStore,
-    /** ProposalsByGroupPolicy queries proposals based on account address of group policy. */QueryProposalsByGroupPolicyStore,
-    /** VoteByProposalVoter queries a vote by proposal id and voter. */QueryVoteByProposalVoterStore,
-    /** VotesByProposal queries a vote by proposal. */QueryVotesByProposalStore,
-    /** VotesByVoter queries a vote by voter. */QueryVotesByVoterStore,
-    /** GroupsByMember queries groups by member address. */QueryGroupsByMemberStore,
-    /** TallyResult queries the tally of a proposal votes. */QueryTallyResultStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/query.ts b/examples/injective/src/codegen/cosmos/group/v1/query.ts
deleted file mode 100644
index 405db341..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/query.ts
+++ /dev/null
@@ -1,3283 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { GroupInfo, GroupInfoAmino, GroupInfoSDKType, GroupPolicyInfo, GroupPolicyInfoAmino, GroupPolicyInfoSDKType, GroupMember, GroupMemberAmino, GroupMemberSDKType, Proposal, ProposalAmino, ProposalSDKType, Vote, VoteAmino, VoteSDKType, TallyResult, TallyResultAmino, TallyResultSDKType } from "./types";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryGroupInfoRequest is the Query/GroupInfo request type. */
-export interface QueryGroupInfoRequest {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-}
-export interface QueryGroupInfoRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupInfoRequest";
-  value: Uint8Array;
-}
-/** QueryGroupInfoRequest is the Query/GroupInfo request type. */
-export interface QueryGroupInfoRequestAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-}
-export interface QueryGroupInfoRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupInfoRequest";
-  value: QueryGroupInfoRequestAmino;
-}
-/** QueryGroupInfoRequest is the Query/GroupInfo request type. */
-export interface QueryGroupInfoRequestSDKType {
-  group_id: bigint;
-}
-/** QueryGroupInfoResponse is the Query/GroupInfo response type. */
-export interface QueryGroupInfoResponse {
-  /** info is the GroupInfo for the group. */
-  info: GroupInfo | undefined;
-}
-export interface QueryGroupInfoResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupInfoResponse";
-  value: Uint8Array;
-}
-/** QueryGroupInfoResponse is the Query/GroupInfo response type. */
-export interface QueryGroupInfoResponseAmino {
-  /** info is the GroupInfo for the group. */
-  info?: GroupInfoAmino | undefined;
-}
-export interface QueryGroupInfoResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupInfoResponse";
-  value: QueryGroupInfoResponseAmino;
-}
-/** QueryGroupInfoResponse is the Query/GroupInfo response type. */
-export interface QueryGroupInfoResponseSDKType {
-  info: GroupInfoSDKType | undefined;
-}
-/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */
-export interface QueryGroupPolicyInfoRequest {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface QueryGroupPolicyInfoRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoRequest";
-  value: Uint8Array;
-}
-/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */
-export interface QueryGroupPolicyInfoRequestAmino {
-  /** address is the account address of the group policy. */
-  address: string;
-}
-export interface QueryGroupPolicyInfoRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupPolicyInfoRequest";
-  value: QueryGroupPolicyInfoRequestAmino;
-}
-/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */
-export interface QueryGroupPolicyInfoRequestSDKType {
-  address: string;
-}
-/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */
-export interface QueryGroupPolicyInfoResponse {
-  /** info is the GroupPolicyInfo for the group policy. */
-  info: GroupPolicyInfo | undefined;
-}
-export interface QueryGroupPolicyInfoResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoResponse";
-  value: Uint8Array;
-}
-/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */
-export interface QueryGroupPolicyInfoResponseAmino {
-  /** info is the GroupPolicyInfo for the group policy. */
-  info?: GroupPolicyInfoAmino | undefined;
-}
-export interface QueryGroupPolicyInfoResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupPolicyInfoResponse";
-  value: QueryGroupPolicyInfoResponseAmino;
-}
-/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */
-export interface QueryGroupPolicyInfoResponseSDKType {
-  info: GroupPolicyInfoSDKType | undefined;
-}
-/** QueryGroupMembersRequest is the Query/GroupMembers request type. */
-export interface QueryGroupMembersRequest {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGroupMembersRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupMembersRequest";
-  value: Uint8Array;
-}
-/** QueryGroupMembersRequest is the Query/GroupMembers request type. */
-export interface QueryGroupMembersRequestAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGroupMembersRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupMembersRequest";
-  value: QueryGroupMembersRequestAmino;
-}
-/** QueryGroupMembersRequest is the Query/GroupMembers request type. */
-export interface QueryGroupMembersRequestSDKType {
-  group_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */
-export interface QueryGroupMembersResponse {
-  /** members are the members of the group with given group_id. */
-  members: GroupMember[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGroupMembersResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupMembersResponse";
-  value: Uint8Array;
-}
-/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */
-export interface QueryGroupMembersResponseAmino {
-  /** members are the members of the group with given group_id. */
-  members: GroupMemberAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGroupMembersResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupMembersResponse";
-  value: QueryGroupMembersResponseAmino;
-}
-/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */
-export interface QueryGroupMembersResponseSDKType {
-  members: GroupMemberSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */
-export interface QueryGroupsByAdminRequest {
-  /** admin is the account address of a group's admin. */
-  admin: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGroupsByAdminRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByAdminRequest";
-  value: Uint8Array;
-}
-/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */
-export interface QueryGroupsByAdminRequestAmino {
-  /** admin is the account address of a group's admin. */
-  admin: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGroupsByAdminRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupsByAdminRequest";
-  value: QueryGroupsByAdminRequestAmino;
-}
-/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */
-export interface QueryGroupsByAdminRequestSDKType {
-  admin: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */
-export interface QueryGroupsByAdminResponse {
-  /** groups are the groups info with the provided admin. */
-  groups: GroupInfo[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGroupsByAdminResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByAdminResponse";
-  value: Uint8Array;
-}
-/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */
-export interface QueryGroupsByAdminResponseAmino {
-  /** groups are the groups info with the provided admin. */
-  groups: GroupInfoAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGroupsByAdminResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupsByAdminResponse";
-  value: QueryGroupsByAdminResponseAmino;
-}
-/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */
-export interface QueryGroupsByAdminResponseSDKType {
-  groups: GroupInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */
-export interface QueryGroupPoliciesByGroupRequest {
-  /** group_id is the unique ID of the group policy's group. */
-  groupId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGroupPoliciesByGroupRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupRequest";
-  value: Uint8Array;
-}
-/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */
-export interface QueryGroupPoliciesByGroupRequestAmino {
-  /** group_id is the unique ID of the group policy's group. */
-  group_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGroupPoliciesByGroupRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupPoliciesByGroupRequest";
-  value: QueryGroupPoliciesByGroupRequestAmino;
-}
-/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */
-export interface QueryGroupPoliciesByGroupRequestSDKType {
-  group_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */
-export interface QueryGroupPoliciesByGroupResponse {
-  /** group_policies are the group policies info associated with the provided group. */
-  groupPolicies: GroupPolicyInfo[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGroupPoliciesByGroupResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupResponse";
-  value: Uint8Array;
-}
-/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */
-export interface QueryGroupPoliciesByGroupResponseAmino {
-  /** group_policies are the group policies info associated with the provided group. */
-  group_policies: GroupPolicyInfoAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGroupPoliciesByGroupResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupPoliciesByGroupResponse";
-  value: QueryGroupPoliciesByGroupResponseAmino;
-}
-/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */
-export interface QueryGroupPoliciesByGroupResponseSDKType {
-  group_policies: GroupPolicyInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */
-export interface QueryGroupPoliciesByAdminRequest {
-  /** admin is the admin address of the group policy. */
-  admin: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGroupPoliciesByAdminRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminRequest";
-  value: Uint8Array;
-}
-/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */
-export interface QueryGroupPoliciesByAdminRequestAmino {
-  /** admin is the admin address of the group policy. */
-  admin: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGroupPoliciesByAdminRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupPoliciesByAdminRequest";
-  value: QueryGroupPoliciesByAdminRequestAmino;
-}
-/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */
-export interface QueryGroupPoliciesByAdminRequestSDKType {
-  admin: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */
-export interface QueryGroupPoliciesByAdminResponse {
-  /** group_policies are the group policies info with provided admin. */
-  groupPolicies: GroupPolicyInfo[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGroupPoliciesByAdminResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminResponse";
-  value: Uint8Array;
-}
-/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */
-export interface QueryGroupPoliciesByAdminResponseAmino {
-  /** group_policies are the group policies info with provided admin. */
-  group_policies: GroupPolicyInfoAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGroupPoliciesByAdminResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupPoliciesByAdminResponse";
-  value: QueryGroupPoliciesByAdminResponseAmino;
-}
-/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */
-export interface QueryGroupPoliciesByAdminResponseSDKType {
-  group_policies: GroupPolicyInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryProposalRequest is the Query/Proposal request type. */
-export interface QueryProposalRequest {
-  /** proposal_id is the unique ID of a proposal. */
-  proposalId: bigint;
-}
-export interface QueryProposalRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryProposalRequest";
-  value: Uint8Array;
-}
-/** QueryProposalRequest is the Query/Proposal request type. */
-export interface QueryProposalRequestAmino {
-  /** proposal_id is the unique ID of a proposal. */
-  proposal_id: string;
-}
-export interface QueryProposalRequestAminoMsg {
-  type: "cosmos-sdk/QueryProposalRequest";
-  value: QueryProposalRequestAmino;
-}
-/** QueryProposalRequest is the Query/Proposal request type. */
-export interface QueryProposalRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryProposalResponse is the Query/Proposal response type. */
-export interface QueryProposalResponse {
-  /** proposal is the proposal info. */
-  proposal: Proposal | undefined;
-}
-export interface QueryProposalResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryProposalResponse";
-  value: Uint8Array;
-}
-/** QueryProposalResponse is the Query/Proposal response type. */
-export interface QueryProposalResponseAmino {
-  /** proposal is the proposal info. */
-  proposal?: ProposalAmino | undefined;
-}
-export interface QueryProposalResponseAminoMsg {
-  type: "cosmos-sdk/QueryProposalResponse";
-  value: QueryProposalResponseAmino;
-}
-/** QueryProposalResponse is the Query/Proposal response type. */
-export interface QueryProposalResponseSDKType {
-  proposal: ProposalSDKType | undefined;
-}
-/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */
-export interface QueryProposalsByGroupPolicyRequest {
-  /** address is the account address of the group policy related to proposals. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryProposalsByGroupPolicyRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyRequest";
-  value: Uint8Array;
-}
-/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */
-export interface QueryProposalsByGroupPolicyRequestAmino {
-  /** address is the account address of the group policy related to proposals. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryProposalsByGroupPolicyRequestAminoMsg {
-  type: "cosmos-sdk/QueryProposalsByGroupPolicyRequest";
-  value: QueryProposalsByGroupPolicyRequestAmino;
-}
-/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */
-export interface QueryProposalsByGroupPolicyRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */
-export interface QueryProposalsByGroupPolicyResponse {
-  /** proposals are the proposals with given group policy. */
-  proposals: Proposal[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryProposalsByGroupPolicyResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyResponse";
-  value: Uint8Array;
-}
-/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */
-export interface QueryProposalsByGroupPolicyResponseAmino {
-  /** proposals are the proposals with given group policy. */
-  proposals: ProposalAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryProposalsByGroupPolicyResponseAminoMsg {
-  type: "cosmos-sdk/QueryProposalsByGroupPolicyResponse";
-  value: QueryProposalsByGroupPolicyResponseAmino;
-}
-/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */
-export interface QueryProposalsByGroupPolicyResponseSDKType {
-  proposals: ProposalSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */
-export interface QueryVoteByProposalVoterRequest {
-  /** proposal_id is the unique ID of a proposal. */
-  proposalId: bigint;
-  /** voter is a proposal voter account address. */
-  voter: string;
-}
-export interface QueryVoteByProposalVoterRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterRequest";
-  value: Uint8Array;
-}
-/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */
-export interface QueryVoteByProposalVoterRequestAmino {
-  /** proposal_id is the unique ID of a proposal. */
-  proposal_id: string;
-  /** voter is a proposal voter account address. */
-  voter: string;
-}
-export interface QueryVoteByProposalVoterRequestAminoMsg {
-  type: "cosmos-sdk/QueryVoteByProposalVoterRequest";
-  value: QueryVoteByProposalVoterRequestAmino;
-}
-/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */
-export interface QueryVoteByProposalVoterRequestSDKType {
-  proposal_id: bigint;
-  voter: string;
-}
-/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */
-export interface QueryVoteByProposalVoterResponse {
-  /** vote is the vote with given proposal_id and voter. */
-  vote: Vote | undefined;
-}
-export interface QueryVoteByProposalVoterResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterResponse";
-  value: Uint8Array;
-}
-/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */
-export interface QueryVoteByProposalVoterResponseAmino {
-  /** vote is the vote with given proposal_id and voter. */
-  vote?: VoteAmino | undefined;
-}
-export interface QueryVoteByProposalVoterResponseAminoMsg {
-  type: "cosmos-sdk/QueryVoteByProposalVoterResponse";
-  value: QueryVoteByProposalVoterResponseAmino;
-}
-/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */
-export interface QueryVoteByProposalVoterResponseSDKType {
-  vote: VoteSDKType | undefined;
-}
-/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */
-export interface QueryVotesByProposalRequest {
-  /** proposal_id is the unique ID of a proposal. */
-  proposalId: bigint;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryVotesByProposalRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVotesByProposalRequest";
-  value: Uint8Array;
-}
-/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */
-export interface QueryVotesByProposalRequestAmino {
-  /** proposal_id is the unique ID of a proposal. */
-  proposal_id: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryVotesByProposalRequestAminoMsg {
-  type: "cosmos-sdk/QueryVotesByProposalRequest";
-  value: QueryVotesByProposalRequestAmino;
-}
-/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */
-export interface QueryVotesByProposalRequestSDKType {
-  proposal_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */
-export interface QueryVotesByProposalResponse {
-  /** votes are the list of votes for given proposal_id. */
-  votes: Vote[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryVotesByProposalResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVotesByProposalResponse";
-  value: Uint8Array;
-}
-/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */
-export interface QueryVotesByProposalResponseAmino {
-  /** votes are the list of votes for given proposal_id. */
-  votes: VoteAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryVotesByProposalResponseAminoMsg {
-  type: "cosmos-sdk/QueryVotesByProposalResponse";
-  value: QueryVotesByProposalResponseAmino;
-}
-/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */
-export interface QueryVotesByProposalResponseSDKType {
-  votes: VoteSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */
-export interface QueryVotesByVoterRequest {
-  /** voter is a proposal voter account address. */
-  voter: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryVotesByVoterRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVotesByVoterRequest";
-  value: Uint8Array;
-}
-/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */
-export interface QueryVotesByVoterRequestAmino {
-  /** voter is a proposal voter account address. */
-  voter: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryVotesByVoterRequestAminoMsg {
-  type: "cosmos-sdk/QueryVotesByVoterRequest";
-  value: QueryVotesByVoterRequestAmino;
-}
-/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */
-export interface QueryVotesByVoterRequestSDKType {
-  voter: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */
-export interface QueryVotesByVoterResponse {
-  /** votes are the list of votes by given voter. */
-  votes: Vote[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryVotesByVoterResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryVotesByVoterResponse";
-  value: Uint8Array;
-}
-/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */
-export interface QueryVotesByVoterResponseAmino {
-  /** votes are the list of votes by given voter. */
-  votes: VoteAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryVotesByVoterResponseAminoMsg {
-  type: "cosmos-sdk/QueryVotesByVoterResponse";
-  value: QueryVotesByVoterResponseAmino;
-}
-/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */
-export interface QueryVotesByVoterResponseSDKType {
-  votes: VoteSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */
-export interface QueryGroupsByMemberRequest {
-  /** address is the group member address. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryGroupsByMemberRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByMemberRequest";
-  value: Uint8Array;
-}
-/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */
-export interface QueryGroupsByMemberRequestAmino {
-  /** address is the group member address. */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryGroupsByMemberRequestAminoMsg {
-  type: "cosmos-sdk/QueryGroupsByMemberRequest";
-  value: QueryGroupsByMemberRequestAmino;
-}
-/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */
-export interface QueryGroupsByMemberRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */
-export interface QueryGroupsByMemberResponse {
-  /** groups are the groups info with the provided group member. */
-  groups: GroupInfo[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryGroupsByMemberResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByMemberResponse";
-  value: Uint8Array;
-}
-/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */
-export interface QueryGroupsByMemberResponseAmino {
-  /** groups are the groups info with the provided group member. */
-  groups: GroupInfoAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryGroupsByMemberResponseAminoMsg {
-  type: "cosmos-sdk/QueryGroupsByMemberResponse";
-  value: QueryGroupsByMemberResponseAmino;
-}
-/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */
-export interface QueryGroupsByMemberResponseSDKType {
-  groups: GroupInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryTallyResultRequest is the Query/TallyResult request type. */
-export interface QueryTallyResultRequest {
-  /** proposal_id is the unique id of a proposal. */
-  proposalId: bigint;
-}
-export interface QueryTallyResultRequestProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryTallyResultRequest";
-  value: Uint8Array;
-}
-/** QueryTallyResultRequest is the Query/TallyResult request type. */
-export interface QueryTallyResultRequestAmino {
-  /** proposal_id is the unique id of a proposal. */
-  proposal_id: string;
-}
-export interface QueryTallyResultRequestAminoMsg {
-  type: "cosmos-sdk/QueryTallyResultRequest";
-  value: QueryTallyResultRequestAmino;
-}
-/** QueryTallyResultRequest is the Query/TallyResult request type. */
-export interface QueryTallyResultRequestSDKType {
-  proposal_id: bigint;
-}
-/** QueryTallyResultResponse is the Query/TallyResult response type. */
-export interface QueryTallyResultResponse {
-  /** tally defines the requested tally. */
-  tally: TallyResult | undefined;
-}
-export interface QueryTallyResultResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.QueryTallyResultResponse";
-  value: Uint8Array;
-}
-/** QueryTallyResultResponse is the Query/TallyResult response type. */
-export interface QueryTallyResultResponseAmino {
-  /** tally defines the requested tally. */
-  tally?: TallyResultAmino | undefined;
-}
-export interface QueryTallyResultResponseAminoMsg {
-  type: "cosmos-sdk/QueryTallyResultResponse";
-  value: QueryTallyResultResponseAmino;
-}
-/** QueryTallyResultResponse is the Query/TallyResult response type. */
-export interface QueryTallyResultResponseSDKType {
-  tally: TallyResultSDKType | undefined;
-}
-function createBaseQueryGroupInfoRequest(): QueryGroupInfoRequest {
-  return {
-    groupId: BigInt(0)
-  };
-}
-export const QueryGroupInfoRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupInfoRequest",
-  aminoType: "cosmos-sdk/QueryGroupInfoRequest",
-  encode(message: QueryGroupInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupInfoRequest {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryGroupInfoRequest): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupInfoRequest>): QueryGroupInfoRequest {
-    const message = createBaseQueryGroupInfoRequest();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryGroupInfoRequestSDKType): QueryGroupInfoRequest {
-    return {
-      groupId: object?.group_id
-    };
-  },
-  toSDK(message: QueryGroupInfoRequest): QueryGroupInfoRequestSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    return obj;
-  },
-  fromAmino(object: QueryGroupInfoRequestAmino): QueryGroupInfoRequest {
-    return {
-      groupId: BigInt(object.group_id)
-    };
-  },
-  toAmino(message: QueryGroupInfoRequest): QueryGroupInfoRequestAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupInfoRequestAminoMsg): QueryGroupInfoRequest {
-    return QueryGroupInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupInfoRequest): QueryGroupInfoRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupInfoRequest",
-      value: QueryGroupInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupInfoRequestProtoMsg): QueryGroupInfoRequest {
-    return QueryGroupInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupInfoRequest): Uint8Array {
-    return QueryGroupInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupInfoRequest): QueryGroupInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupInfoRequest",
-      value: QueryGroupInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupInfoResponse(): QueryGroupInfoResponse {
-  return {
-    info: GroupInfo.fromPartial({})
-  };
-}
-export const QueryGroupInfoResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupInfoResponse",
-  aminoType: "cosmos-sdk/QueryGroupInfoResponse",
-  encode(message: QueryGroupInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.info !== undefined) {
-      GroupInfo.encode(message.info, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.info = GroupInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupInfoResponse {
-    return {
-      info: isSet(object.info) ? GroupInfo.fromJSON(object.info) : undefined
-    };
-  },
-  toJSON(message: QueryGroupInfoResponse): unknown {
-    const obj: any = {};
-    message.info !== undefined && (obj.info = message.info ? GroupInfo.toJSON(message.info) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupInfoResponse>): QueryGroupInfoResponse {
-    const message = createBaseQueryGroupInfoResponse();
-    message.info = object.info !== undefined && object.info !== null ? GroupInfo.fromPartial(object.info) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupInfoResponseSDKType): QueryGroupInfoResponse {
-    return {
-      info: object.info ? GroupInfo.fromSDK(object.info) : undefined
-    };
-  },
-  toSDK(message: QueryGroupInfoResponse): QueryGroupInfoResponseSDKType {
-    const obj: any = {};
-    message.info !== undefined && (obj.info = message.info ? GroupInfo.toSDK(message.info) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupInfoResponseAmino): QueryGroupInfoResponse {
-    return {
-      info: object?.info ? GroupInfo.fromAmino(object.info) : undefined
-    };
-  },
-  toAmino(message: QueryGroupInfoResponse): QueryGroupInfoResponseAmino {
-    const obj: any = {};
-    obj.info = message.info ? GroupInfo.toAmino(message.info) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupInfoResponseAminoMsg): QueryGroupInfoResponse {
-    return QueryGroupInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupInfoResponse): QueryGroupInfoResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupInfoResponse",
-      value: QueryGroupInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupInfoResponseProtoMsg): QueryGroupInfoResponse {
-    return QueryGroupInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupInfoResponse): Uint8Array {
-    return QueryGroupInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupInfoResponse): QueryGroupInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupInfoResponse",
-      value: QueryGroupInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPolicyInfoRequest(): QueryGroupPolicyInfoRequest {
-  return {
-    address: ""
-  };
-}
-export const QueryGroupPolicyInfoRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoRequest",
-  aminoType: "cosmos-sdk/QueryGroupPolicyInfoRequest",
-  encode(message: QueryGroupPolicyInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPolicyInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPolicyInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPolicyInfoRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryGroupPolicyInfoRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPolicyInfoRequest>): QueryGroupPolicyInfoRequest {
-    const message = createBaseQueryGroupPolicyInfoRequest();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryGroupPolicyInfoRequestSDKType): QueryGroupPolicyInfoRequest {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryGroupPolicyInfoRequest): QueryGroupPolicyInfoRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryGroupPolicyInfoRequestAmino): QueryGroupPolicyInfoRequest {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryGroupPolicyInfoRequest): QueryGroupPolicyInfoRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPolicyInfoRequestAminoMsg): QueryGroupPolicyInfoRequest {
-    return QueryGroupPolicyInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPolicyInfoRequest): QueryGroupPolicyInfoRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPolicyInfoRequest",
-      value: QueryGroupPolicyInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPolicyInfoRequestProtoMsg): QueryGroupPolicyInfoRequest {
-    return QueryGroupPolicyInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupPolicyInfoRequest): Uint8Array {
-    return QueryGroupPolicyInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPolicyInfoRequest): QueryGroupPolicyInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoRequest",
-      value: QueryGroupPolicyInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPolicyInfoResponse(): QueryGroupPolicyInfoResponse {
-  return {
-    info: GroupPolicyInfo.fromPartial({})
-  };
-}
-export const QueryGroupPolicyInfoResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoResponse",
-  aminoType: "cosmos-sdk/QueryGroupPolicyInfoResponse",
-  encode(message: QueryGroupPolicyInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.info !== undefined) {
-      GroupPolicyInfo.encode(message.info, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPolicyInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPolicyInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.info = GroupPolicyInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPolicyInfoResponse {
-    return {
-      info: isSet(object.info) ? GroupPolicyInfo.fromJSON(object.info) : undefined
-    };
-  },
-  toJSON(message: QueryGroupPolicyInfoResponse): unknown {
-    const obj: any = {};
-    message.info !== undefined && (obj.info = message.info ? GroupPolicyInfo.toJSON(message.info) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPolicyInfoResponse>): QueryGroupPolicyInfoResponse {
-    const message = createBaseQueryGroupPolicyInfoResponse();
-    message.info = object.info !== undefined && object.info !== null ? GroupPolicyInfo.fromPartial(object.info) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupPolicyInfoResponseSDKType): QueryGroupPolicyInfoResponse {
-    return {
-      info: object.info ? GroupPolicyInfo.fromSDK(object.info) : undefined
-    };
-  },
-  toSDK(message: QueryGroupPolicyInfoResponse): QueryGroupPolicyInfoResponseSDKType {
-    const obj: any = {};
-    message.info !== undefined && (obj.info = message.info ? GroupPolicyInfo.toSDK(message.info) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupPolicyInfoResponseAmino): QueryGroupPolicyInfoResponse {
-    return {
-      info: object?.info ? GroupPolicyInfo.fromAmino(object.info) : undefined
-    };
-  },
-  toAmino(message: QueryGroupPolicyInfoResponse): QueryGroupPolicyInfoResponseAmino {
-    const obj: any = {};
-    obj.info = message.info ? GroupPolicyInfo.toAmino(message.info) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPolicyInfoResponseAminoMsg): QueryGroupPolicyInfoResponse {
-    return QueryGroupPolicyInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPolicyInfoResponse): QueryGroupPolicyInfoResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPolicyInfoResponse",
-      value: QueryGroupPolicyInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPolicyInfoResponseProtoMsg): QueryGroupPolicyInfoResponse {
-    return QueryGroupPolicyInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupPolicyInfoResponse): Uint8Array {
-    return QueryGroupPolicyInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPolicyInfoResponse): QueryGroupPolicyInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPolicyInfoResponse",
-      value: QueryGroupPolicyInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupMembersRequest(): QueryGroupMembersRequest {
-  return {
-    groupId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGroupMembersRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupMembersRequest",
-  aminoType: "cosmos-sdk/QueryGroupMembersRequest",
-  encode(message: QueryGroupMembersRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupMembersRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupMembersRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupMembersRequest {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupMembersRequest): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupMembersRequest>): QueryGroupMembersRequest {
-    const message = createBaseQueryGroupMembersRequest();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupMembersRequestSDKType): QueryGroupMembersRequest {
-    return {
-      groupId: object?.group_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupMembersRequest): QueryGroupMembersRequestSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupMembersRequestAmino): QueryGroupMembersRequest {
-    return {
-      groupId: BigInt(object.group_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupMembersRequest): QueryGroupMembersRequestAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupMembersRequestAminoMsg): QueryGroupMembersRequest {
-    return QueryGroupMembersRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupMembersRequest): QueryGroupMembersRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupMembersRequest",
-      value: QueryGroupMembersRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupMembersRequestProtoMsg): QueryGroupMembersRequest {
-    return QueryGroupMembersRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupMembersRequest): Uint8Array {
-    return QueryGroupMembersRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupMembersRequest): QueryGroupMembersRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupMembersRequest",
-      value: QueryGroupMembersRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupMembersResponse(): QueryGroupMembersResponse {
-  return {
-    members: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGroupMembersResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupMembersResponse",
-  aminoType: "cosmos-sdk/QueryGroupMembersResponse",
-  encode(message: QueryGroupMembersResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.members) {
-      GroupMember.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupMembersResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupMembersResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.members.push(GroupMember.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupMembersResponse {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => GroupMember.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupMembersResponse): unknown {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? GroupMember.toJSON(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupMembersResponse>): QueryGroupMembersResponse {
-    const message = createBaseQueryGroupMembersResponse();
-    message.members = object.members?.map(e => GroupMember.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupMembersResponseSDKType): QueryGroupMembersResponse {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => GroupMember.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupMembersResponse): QueryGroupMembersResponseSDKType {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? GroupMember.toSDK(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupMembersResponseAmino): QueryGroupMembersResponse {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => GroupMember.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupMembersResponse): QueryGroupMembersResponseAmino {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? GroupMember.toAmino(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupMembersResponseAminoMsg): QueryGroupMembersResponse {
-    return QueryGroupMembersResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupMembersResponse): QueryGroupMembersResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupMembersResponse",
-      value: QueryGroupMembersResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupMembersResponseProtoMsg): QueryGroupMembersResponse {
-    return QueryGroupMembersResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupMembersResponse): Uint8Array {
-    return QueryGroupMembersResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupMembersResponse): QueryGroupMembersResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupMembersResponse",
-      value: QueryGroupMembersResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupsByAdminRequest(): QueryGroupsByAdminRequest {
-  return {
-    admin: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGroupsByAdminRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByAdminRequest",
-  aminoType: "cosmos-sdk/QueryGroupsByAdminRequest",
-  encode(message: QueryGroupsByAdminRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupsByAdminRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupsByAdminRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupsByAdminRequest {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupsByAdminRequest): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupsByAdminRequest>): QueryGroupsByAdminRequest {
-    const message = createBaseQueryGroupsByAdminRequest();
-    message.admin = object.admin ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupsByAdminRequestSDKType): QueryGroupsByAdminRequest {
-    return {
-      admin: object?.admin,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupsByAdminRequest): QueryGroupsByAdminRequestSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupsByAdminRequestAmino): QueryGroupsByAdminRequest {
-    return {
-      admin: object.admin,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupsByAdminRequest): QueryGroupsByAdminRequestAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupsByAdminRequestAminoMsg): QueryGroupsByAdminRequest {
-    return QueryGroupsByAdminRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupsByAdminRequest): QueryGroupsByAdminRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupsByAdminRequest",
-      value: QueryGroupsByAdminRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupsByAdminRequestProtoMsg): QueryGroupsByAdminRequest {
-    return QueryGroupsByAdminRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupsByAdminRequest): Uint8Array {
-    return QueryGroupsByAdminRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupsByAdminRequest): QueryGroupsByAdminRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupsByAdminRequest",
-      value: QueryGroupsByAdminRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupsByAdminResponse(): QueryGroupsByAdminResponse {
-  return {
-    groups: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGroupsByAdminResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByAdminResponse",
-  aminoType: "cosmos-sdk/QueryGroupsByAdminResponse",
-  encode(message: QueryGroupsByAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.groups) {
-      GroupInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupsByAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupsByAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groups.push(GroupInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupsByAdminResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupsByAdminResponse): unknown {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toJSON(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupsByAdminResponse>): QueryGroupsByAdminResponse {
-    const message = createBaseQueryGroupsByAdminResponse();
-    message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupsByAdminResponseSDKType): QueryGroupsByAdminResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupsByAdminResponse): QueryGroupsByAdminResponseSDKType {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toSDK(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupsByAdminResponseAmino): QueryGroupsByAdminResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupsByAdminResponse): QueryGroupsByAdminResponseAmino {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toAmino(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupsByAdminResponseAminoMsg): QueryGroupsByAdminResponse {
-    return QueryGroupsByAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupsByAdminResponse): QueryGroupsByAdminResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupsByAdminResponse",
-      value: QueryGroupsByAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupsByAdminResponseProtoMsg): QueryGroupsByAdminResponse {
-    return QueryGroupsByAdminResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupsByAdminResponse): Uint8Array {
-    return QueryGroupsByAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupsByAdminResponse): QueryGroupsByAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupsByAdminResponse",
-      value: QueryGroupsByAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPoliciesByGroupRequest(): QueryGroupPoliciesByGroupRequest {
-  return {
-    groupId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGroupPoliciesByGroupRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupRequest",
-  aminoType: "cosmos-sdk/QueryGroupPoliciesByGroupRequest",
-  encode(message: QueryGroupPoliciesByGroupRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPoliciesByGroupRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPoliciesByGroupRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPoliciesByGroupRequest {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupPoliciesByGroupRequest): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPoliciesByGroupRequest>): QueryGroupPoliciesByGroupRequest {
-    const message = createBaseQueryGroupPoliciesByGroupRequest();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupPoliciesByGroupRequestSDKType): QueryGroupPoliciesByGroupRequest {
-    return {
-      groupId: object?.group_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupPoliciesByGroupRequest): QueryGroupPoliciesByGroupRequestSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupPoliciesByGroupRequestAmino): QueryGroupPoliciesByGroupRequest {
-    return {
-      groupId: BigInt(object.group_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupPoliciesByGroupRequest): QueryGroupPoliciesByGroupRequestAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPoliciesByGroupRequestAminoMsg): QueryGroupPoliciesByGroupRequest {
-    return QueryGroupPoliciesByGroupRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPoliciesByGroupRequest): QueryGroupPoliciesByGroupRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPoliciesByGroupRequest",
-      value: QueryGroupPoliciesByGroupRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPoliciesByGroupRequestProtoMsg): QueryGroupPoliciesByGroupRequest {
-    return QueryGroupPoliciesByGroupRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupPoliciesByGroupRequest): Uint8Array {
-    return QueryGroupPoliciesByGroupRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPoliciesByGroupRequest): QueryGroupPoliciesByGroupRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupRequest",
-      value: QueryGroupPoliciesByGroupRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPoliciesByGroupResponse(): QueryGroupPoliciesByGroupResponse {
-  return {
-    groupPolicies: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGroupPoliciesByGroupResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupResponse",
-  aminoType: "cosmos-sdk/QueryGroupPoliciesByGroupResponse",
-  encode(message: QueryGroupPoliciesByGroupResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.groupPolicies) {
-      GroupPolicyInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPoliciesByGroupResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPoliciesByGroupResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPoliciesByGroupResponse {
-    return {
-      groupPolicies: Array.isArray(object?.groupPolicies) ? object.groupPolicies.map((e: any) => GroupPolicyInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupPoliciesByGroupResponse): unknown {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.groupPolicies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toJSON(e) : undefined);
-    } else {
-      obj.groupPolicies = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPoliciesByGroupResponse>): QueryGroupPoliciesByGroupResponse {
-    const message = createBaseQueryGroupPoliciesByGroupResponse();
-    message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupPoliciesByGroupResponseSDKType): QueryGroupPoliciesByGroupResponse {
-    return {
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupPoliciesByGroupResponse): QueryGroupPoliciesByGroupResponseSDKType {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toSDK(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupPoliciesByGroupResponseAmino): QueryGroupPoliciesByGroupResponse {
-    return {
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupPoliciesByGroupResponse): QueryGroupPoliciesByGroupResponseAmino {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toAmino(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPoliciesByGroupResponseAminoMsg): QueryGroupPoliciesByGroupResponse {
-    return QueryGroupPoliciesByGroupResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPoliciesByGroupResponse): QueryGroupPoliciesByGroupResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPoliciesByGroupResponse",
-      value: QueryGroupPoliciesByGroupResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPoliciesByGroupResponseProtoMsg): QueryGroupPoliciesByGroupResponse {
-    return QueryGroupPoliciesByGroupResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupPoliciesByGroupResponse): Uint8Array {
-    return QueryGroupPoliciesByGroupResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPoliciesByGroupResponse): QueryGroupPoliciesByGroupResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByGroupResponse",
-      value: QueryGroupPoliciesByGroupResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPoliciesByAdminRequest(): QueryGroupPoliciesByAdminRequest {
-  return {
-    admin: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGroupPoliciesByAdminRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminRequest",
-  aminoType: "cosmos-sdk/QueryGroupPoliciesByAdminRequest",
-  encode(message: QueryGroupPoliciesByAdminRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPoliciesByAdminRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPoliciesByAdminRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPoliciesByAdminRequest {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupPoliciesByAdminRequest): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPoliciesByAdminRequest>): QueryGroupPoliciesByAdminRequest {
-    const message = createBaseQueryGroupPoliciesByAdminRequest();
-    message.admin = object.admin ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupPoliciesByAdminRequestSDKType): QueryGroupPoliciesByAdminRequest {
-    return {
-      admin: object?.admin,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupPoliciesByAdminRequest): QueryGroupPoliciesByAdminRequestSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupPoliciesByAdminRequestAmino): QueryGroupPoliciesByAdminRequest {
-    return {
-      admin: object.admin,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupPoliciesByAdminRequest): QueryGroupPoliciesByAdminRequestAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPoliciesByAdminRequestAminoMsg): QueryGroupPoliciesByAdminRequest {
-    return QueryGroupPoliciesByAdminRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPoliciesByAdminRequest): QueryGroupPoliciesByAdminRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPoliciesByAdminRequest",
-      value: QueryGroupPoliciesByAdminRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPoliciesByAdminRequestProtoMsg): QueryGroupPoliciesByAdminRequest {
-    return QueryGroupPoliciesByAdminRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupPoliciesByAdminRequest): Uint8Array {
-    return QueryGroupPoliciesByAdminRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPoliciesByAdminRequest): QueryGroupPoliciesByAdminRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminRequest",
-      value: QueryGroupPoliciesByAdminRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupPoliciesByAdminResponse(): QueryGroupPoliciesByAdminResponse {
-  return {
-    groupPolicies: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGroupPoliciesByAdminResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminResponse",
-  aminoType: "cosmos-sdk/QueryGroupPoliciesByAdminResponse",
-  encode(message: QueryGroupPoliciesByAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.groupPolicies) {
-      GroupPolicyInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupPoliciesByAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupPoliciesByAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupPoliciesByAdminResponse {
-    return {
-      groupPolicies: Array.isArray(object?.groupPolicies) ? object.groupPolicies.map((e: any) => GroupPolicyInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupPoliciesByAdminResponse): unknown {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.groupPolicies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toJSON(e) : undefined);
-    } else {
-      obj.groupPolicies = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupPoliciesByAdminResponse>): QueryGroupPoliciesByAdminResponse {
-    const message = createBaseQueryGroupPoliciesByAdminResponse();
-    message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupPoliciesByAdminResponseSDKType): QueryGroupPoliciesByAdminResponse {
-    return {
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupPoliciesByAdminResponse): QueryGroupPoliciesByAdminResponseSDKType {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toSDK(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupPoliciesByAdminResponseAmino): QueryGroupPoliciesByAdminResponse {
-    return {
-      groupPolicies: Array.isArray(object?.group_policies) ? object.group_policies.map((e: any) => GroupPolicyInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupPoliciesByAdminResponse): QueryGroupPoliciesByAdminResponseAmino {
-    const obj: any = {};
-    if (message.groupPolicies) {
-      obj.group_policies = message.groupPolicies.map(e => e ? GroupPolicyInfo.toAmino(e) : undefined);
-    } else {
-      obj.group_policies = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupPoliciesByAdminResponseAminoMsg): QueryGroupPoliciesByAdminResponse {
-    return QueryGroupPoliciesByAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupPoliciesByAdminResponse): QueryGroupPoliciesByAdminResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupPoliciesByAdminResponse",
-      value: QueryGroupPoliciesByAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupPoliciesByAdminResponseProtoMsg): QueryGroupPoliciesByAdminResponse {
-    return QueryGroupPoliciesByAdminResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupPoliciesByAdminResponse): Uint8Array {
-    return QueryGroupPoliciesByAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupPoliciesByAdminResponse): QueryGroupPoliciesByAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupPoliciesByAdminResponse",
-      value: QueryGroupPoliciesByAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalRequest(): QueryProposalRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryProposalRequest = {
-  typeUrl: "/cosmos.group.v1.QueryProposalRequest",
-  aminoType: "cosmos-sdk/QueryProposalRequest",
-  encode(message: QueryProposalRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryProposalRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalRequest>): QueryProposalRequest {
-    const message = createBaseQueryProposalRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryProposalRequestSDKType): QueryProposalRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryProposalRequest): QueryProposalRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryProposalRequestAmino): QueryProposalRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryProposalRequest): QueryProposalRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalRequestAminoMsg): QueryProposalRequest {
-    return QueryProposalRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalRequest): QueryProposalRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalRequest",
-      value: QueryProposalRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalRequestProtoMsg): QueryProposalRequest {
-    return QueryProposalRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalRequest): Uint8Array {
-    return QueryProposalRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalRequest): QueryProposalRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryProposalRequest",
-      value: QueryProposalRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalResponse(): QueryProposalResponse {
-  return {
-    proposal: Proposal.fromPartial({})
-  };
-}
-export const QueryProposalResponse = {
-  typeUrl: "/cosmos.group.v1.QueryProposalResponse",
-  aminoType: "cosmos-sdk/QueryProposalResponse",
-  encode(message: QueryProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposal !== undefined) {
-      Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposal = Proposal.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalResponse {
-    return {
-      proposal: isSet(object.proposal) ? Proposal.fromJSON(object.proposal) : undefined
-    };
-  },
-  toJSON(message: QueryProposalResponse): unknown {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toJSON(message.proposal) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalResponse>): QueryProposalResponse {
-    const message = createBaseQueryProposalResponse();
-    message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalResponseSDKType): QueryProposalResponse {
-    return {
-      proposal: object.proposal ? Proposal.fromSDK(object.proposal) : undefined
-    };
-  },
-  toSDK(message: QueryProposalResponse): QueryProposalResponseSDKType {
-    const obj: any = {};
-    message.proposal !== undefined && (obj.proposal = message.proposal ? Proposal.toSDK(message.proposal) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalResponseAmino): QueryProposalResponse {
-    return {
-      proposal: object?.proposal ? Proposal.fromAmino(object.proposal) : undefined
-    };
-  },
-  toAmino(message: QueryProposalResponse): QueryProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal = message.proposal ? Proposal.toAmino(message.proposal) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalResponseAminoMsg): QueryProposalResponse {
-    return QueryProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalResponse): QueryProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalResponse",
-      value: QueryProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalResponseProtoMsg): QueryProposalResponse {
-    return QueryProposalResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalResponse): Uint8Array {
-    return QueryProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalResponse): QueryProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryProposalResponse",
-      value: QueryProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsByGroupPolicyRequest(): QueryProposalsByGroupPolicyRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryProposalsByGroupPolicyRequest = {
-  typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyRequest",
-  aminoType: "cosmos-sdk/QueryProposalsByGroupPolicyRequest",
-  encode(message: QueryProposalsByGroupPolicyRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsByGroupPolicyRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsByGroupPolicyRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsByGroupPolicyRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsByGroupPolicyRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsByGroupPolicyRequest>): QueryProposalsByGroupPolicyRequest {
-    const message = createBaseQueryProposalsByGroupPolicyRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsByGroupPolicyRequestSDKType): QueryProposalsByGroupPolicyRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsByGroupPolicyRequest): QueryProposalsByGroupPolicyRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsByGroupPolicyRequestAmino): QueryProposalsByGroupPolicyRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsByGroupPolicyRequest): QueryProposalsByGroupPolicyRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsByGroupPolicyRequestAminoMsg): QueryProposalsByGroupPolicyRequest {
-    return QueryProposalsByGroupPolicyRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsByGroupPolicyRequest): QueryProposalsByGroupPolicyRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalsByGroupPolicyRequest",
-      value: QueryProposalsByGroupPolicyRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsByGroupPolicyRequestProtoMsg): QueryProposalsByGroupPolicyRequest {
-    return QueryProposalsByGroupPolicyRequest.decode(message.value);
-  },
-  toProto(message: QueryProposalsByGroupPolicyRequest): Uint8Array {
-    return QueryProposalsByGroupPolicyRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsByGroupPolicyRequest): QueryProposalsByGroupPolicyRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyRequest",
-      value: QueryProposalsByGroupPolicyRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryProposalsByGroupPolicyResponse(): QueryProposalsByGroupPolicyResponse {
-  return {
-    proposals: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryProposalsByGroupPolicyResponse = {
-  typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyResponse",
-  aminoType: "cosmos-sdk/QueryProposalsByGroupPolicyResponse",
-  encode(message: QueryProposalsByGroupPolicyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.proposals) {
-      Proposal.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryProposalsByGroupPolicyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryProposalsByGroupPolicyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposals.push(Proposal.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryProposalsByGroupPolicyResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryProposalsByGroupPolicyResponse): unknown {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toJSON(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryProposalsByGroupPolicyResponse>): QueryProposalsByGroupPolicyResponse {
-    const message = createBaseQueryProposalsByGroupPolicyResponse();
-    message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryProposalsByGroupPolicyResponseSDKType): QueryProposalsByGroupPolicyResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryProposalsByGroupPolicyResponse): QueryProposalsByGroupPolicyResponseSDKType {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toSDK(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryProposalsByGroupPolicyResponseAmino): QueryProposalsByGroupPolicyResponse {
-    return {
-      proposals: Array.isArray(object?.proposals) ? object.proposals.map((e: any) => Proposal.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryProposalsByGroupPolicyResponse): QueryProposalsByGroupPolicyResponseAmino {
-    const obj: any = {};
-    if (message.proposals) {
-      obj.proposals = message.proposals.map(e => e ? Proposal.toAmino(e) : undefined);
-    } else {
-      obj.proposals = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryProposalsByGroupPolicyResponseAminoMsg): QueryProposalsByGroupPolicyResponse {
-    return QueryProposalsByGroupPolicyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryProposalsByGroupPolicyResponse): QueryProposalsByGroupPolicyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryProposalsByGroupPolicyResponse",
-      value: QueryProposalsByGroupPolicyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryProposalsByGroupPolicyResponseProtoMsg): QueryProposalsByGroupPolicyResponse {
-    return QueryProposalsByGroupPolicyResponse.decode(message.value);
-  },
-  toProto(message: QueryProposalsByGroupPolicyResponse): Uint8Array {
-    return QueryProposalsByGroupPolicyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryProposalsByGroupPolicyResponse): QueryProposalsByGroupPolicyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryProposalsByGroupPolicyResponse",
-      value: QueryProposalsByGroupPolicyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteByProposalVoterRequest(): QueryVoteByProposalVoterRequest {
-  return {
-    proposalId: BigInt(0),
-    voter: ""
-  };
-}
-export const QueryVoteByProposalVoterRequest = {
-  typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterRequest",
-  aminoType: "cosmos-sdk/QueryVoteByProposalVoterRequest",
-  encode(message: QueryVoteByProposalVoterRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteByProposalVoterRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteByProposalVoterRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteByProposalVoterRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : ""
-    };
-  },
-  toJSON(message: QueryVoteByProposalVoterRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteByProposalVoterRequest>): QueryVoteByProposalVoterRequest {
-    const message = createBaseQueryVoteByProposalVoterRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    return message;
-  },
-  fromSDK(object: QueryVoteByProposalVoterRequestSDKType): QueryVoteByProposalVoterRequest {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter
-    };
-  },
-  toSDK(message: QueryVoteByProposalVoterRequest): QueryVoteByProposalVoterRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAmino(object: QueryVoteByProposalVoterRequestAmino): QueryVoteByProposalVoterRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter
-    };
-  },
-  toAmino(message: QueryVoteByProposalVoterRequest): QueryVoteByProposalVoterRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteByProposalVoterRequestAminoMsg): QueryVoteByProposalVoterRequest {
-    return QueryVoteByProposalVoterRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteByProposalVoterRequest): QueryVoteByProposalVoterRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVoteByProposalVoterRequest",
-      value: QueryVoteByProposalVoterRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteByProposalVoterRequestProtoMsg): QueryVoteByProposalVoterRequest {
-    return QueryVoteByProposalVoterRequest.decode(message.value);
-  },
-  toProto(message: QueryVoteByProposalVoterRequest): Uint8Array {
-    return QueryVoteByProposalVoterRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteByProposalVoterRequest): QueryVoteByProposalVoterRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterRequest",
-      value: QueryVoteByProposalVoterRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVoteByProposalVoterResponse(): QueryVoteByProposalVoterResponse {
-  return {
-    vote: Vote.fromPartial({})
-  };
-}
-export const QueryVoteByProposalVoterResponse = {
-  typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterResponse",
-  aminoType: "cosmos-sdk/QueryVoteByProposalVoterResponse",
-  encode(message: QueryVoteByProposalVoterResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.vote !== undefined) {
-      Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVoteByProposalVoterResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVoteByProposalVoterResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.vote = Vote.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVoteByProposalVoterResponse {
-    return {
-      vote: isSet(object.vote) ? Vote.fromJSON(object.vote) : undefined
-    };
-  },
-  toJSON(message: QueryVoteByProposalVoterResponse): unknown {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toJSON(message.vote) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVoteByProposalVoterResponse>): QueryVoteByProposalVoterResponse {
-    const message = createBaseQueryVoteByProposalVoterResponse();
-    message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVoteByProposalVoterResponseSDKType): QueryVoteByProposalVoterResponse {
-    return {
-      vote: object.vote ? Vote.fromSDK(object.vote) : undefined
-    };
-  },
-  toSDK(message: QueryVoteByProposalVoterResponse): QueryVoteByProposalVoterResponseSDKType {
-    const obj: any = {};
-    message.vote !== undefined && (obj.vote = message.vote ? Vote.toSDK(message.vote) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVoteByProposalVoterResponseAmino): QueryVoteByProposalVoterResponse {
-    return {
-      vote: object?.vote ? Vote.fromAmino(object.vote) : undefined
-    };
-  },
-  toAmino(message: QueryVoteByProposalVoterResponse): QueryVoteByProposalVoterResponseAmino {
-    const obj: any = {};
-    obj.vote = message.vote ? Vote.toAmino(message.vote) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVoteByProposalVoterResponseAminoMsg): QueryVoteByProposalVoterResponse {
-    return QueryVoteByProposalVoterResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVoteByProposalVoterResponse): QueryVoteByProposalVoterResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVoteByProposalVoterResponse",
-      value: QueryVoteByProposalVoterResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVoteByProposalVoterResponseProtoMsg): QueryVoteByProposalVoterResponse {
-    return QueryVoteByProposalVoterResponse.decode(message.value);
-  },
-  toProto(message: QueryVoteByProposalVoterResponse): Uint8Array {
-    return QueryVoteByProposalVoterResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVoteByProposalVoterResponse): QueryVoteByProposalVoterResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVoteByProposalVoterResponse",
-      value: QueryVoteByProposalVoterResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesByProposalRequest(): QueryVotesByProposalRequest {
-  return {
-    proposalId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryVotesByProposalRequest = {
-  typeUrl: "/cosmos.group.v1.QueryVotesByProposalRequest",
-  aminoType: "cosmos-sdk/QueryVotesByProposalRequest",
-  encode(message: QueryVotesByProposalRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesByProposalRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesByProposalRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesByProposalRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesByProposalRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesByProposalRequest>): QueryVotesByProposalRequest {
-    const message = createBaseQueryVotesByProposalRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesByProposalRequestSDKType): QueryVotesByProposalRequest {
-    return {
-      proposalId: object?.proposal_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesByProposalRequest): QueryVotesByProposalRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesByProposalRequestAmino): QueryVotesByProposalRequest {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesByProposalRequest): QueryVotesByProposalRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesByProposalRequestAminoMsg): QueryVotesByProposalRequest {
-    return QueryVotesByProposalRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesByProposalRequest): QueryVotesByProposalRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesByProposalRequest",
-      value: QueryVotesByProposalRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesByProposalRequestProtoMsg): QueryVotesByProposalRequest {
-    return QueryVotesByProposalRequest.decode(message.value);
-  },
-  toProto(message: QueryVotesByProposalRequest): Uint8Array {
-    return QueryVotesByProposalRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesByProposalRequest): QueryVotesByProposalRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVotesByProposalRequest",
-      value: QueryVotesByProposalRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesByProposalResponse(): QueryVotesByProposalResponse {
-  return {
-    votes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryVotesByProposalResponse = {
-  typeUrl: "/cosmos.group.v1.QueryVotesByProposalResponse",
-  aminoType: "cosmos-sdk/QueryVotesByProposalResponse",
-  encode(message: QueryVotesByProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesByProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesByProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesByProposalResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesByProposalResponse): unknown {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesByProposalResponse>): QueryVotesByProposalResponse {
-    const message = createBaseQueryVotesByProposalResponse();
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesByProposalResponseSDKType): QueryVotesByProposalResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesByProposalResponse): QueryVotesByProposalResponseSDKType {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesByProposalResponseAmino): QueryVotesByProposalResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesByProposalResponse): QueryVotesByProposalResponseAmino {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesByProposalResponseAminoMsg): QueryVotesByProposalResponse {
-    return QueryVotesByProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesByProposalResponse): QueryVotesByProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesByProposalResponse",
-      value: QueryVotesByProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesByProposalResponseProtoMsg): QueryVotesByProposalResponse {
-    return QueryVotesByProposalResponse.decode(message.value);
-  },
-  toProto(message: QueryVotesByProposalResponse): Uint8Array {
-    return QueryVotesByProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesByProposalResponse): QueryVotesByProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVotesByProposalResponse",
-      value: QueryVotesByProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesByVoterRequest(): QueryVotesByVoterRequest {
-  return {
-    voter: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryVotesByVoterRequest = {
-  typeUrl: "/cosmos.group.v1.QueryVotesByVoterRequest",
-  aminoType: "cosmos-sdk/QueryVotesByVoterRequest",
-  encode(message: QueryVotesByVoterRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.voter !== "") {
-      writer.uint32(10).string(message.voter);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesByVoterRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesByVoterRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.voter = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesByVoterRequest {
-    return {
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesByVoterRequest): unknown {
-    const obj: any = {};
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesByVoterRequest>): QueryVotesByVoterRequest {
-    const message = createBaseQueryVotesByVoterRequest();
-    message.voter = object.voter ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesByVoterRequestSDKType): QueryVotesByVoterRequest {
-    return {
-      voter: object?.voter,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesByVoterRequest): QueryVotesByVoterRequestSDKType {
-    const obj: any = {};
-    obj.voter = message.voter;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesByVoterRequestAmino): QueryVotesByVoterRequest {
-    return {
-      voter: object.voter,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesByVoterRequest): QueryVotesByVoterRequestAmino {
-    const obj: any = {};
-    obj.voter = message.voter;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesByVoterRequestAminoMsg): QueryVotesByVoterRequest {
-    return QueryVotesByVoterRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesByVoterRequest): QueryVotesByVoterRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesByVoterRequest",
-      value: QueryVotesByVoterRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesByVoterRequestProtoMsg): QueryVotesByVoterRequest {
-    return QueryVotesByVoterRequest.decode(message.value);
-  },
-  toProto(message: QueryVotesByVoterRequest): Uint8Array {
-    return QueryVotesByVoterRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesByVoterRequest): QueryVotesByVoterRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVotesByVoterRequest",
-      value: QueryVotesByVoterRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryVotesByVoterResponse(): QueryVotesByVoterResponse {
-  return {
-    votes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryVotesByVoterResponse = {
-  typeUrl: "/cosmos.group.v1.QueryVotesByVoterResponse",
-  aminoType: "cosmos-sdk/QueryVotesByVoterResponse",
-  encode(message: QueryVotesByVoterResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.votes) {
-      Vote.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryVotesByVoterResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryVotesByVoterResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votes.push(Vote.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryVotesByVoterResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryVotesByVoterResponse): unknown {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryVotesByVoterResponse>): QueryVotesByVoterResponse {
-    const message = createBaseQueryVotesByVoterResponse();
-    message.votes = object.votes?.map(e => Vote.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryVotesByVoterResponseSDKType): QueryVotesByVoterResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryVotesByVoterResponse): QueryVotesByVoterResponseSDKType {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryVotesByVoterResponseAmino): QueryVotesByVoterResponse {
-    return {
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => Vote.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryVotesByVoterResponse): QueryVotesByVoterResponseAmino {
-    const obj: any = {};
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? Vote.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryVotesByVoterResponseAminoMsg): QueryVotesByVoterResponse {
-    return QueryVotesByVoterResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryVotesByVoterResponse): QueryVotesByVoterResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryVotesByVoterResponse",
-      value: QueryVotesByVoterResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryVotesByVoterResponseProtoMsg): QueryVotesByVoterResponse {
-    return QueryVotesByVoterResponse.decode(message.value);
-  },
-  toProto(message: QueryVotesByVoterResponse): Uint8Array {
-    return QueryVotesByVoterResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryVotesByVoterResponse): QueryVotesByVoterResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryVotesByVoterResponse",
-      value: QueryVotesByVoterResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupsByMemberRequest(): QueryGroupsByMemberRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryGroupsByMemberRequest = {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByMemberRequest",
-  aminoType: "cosmos-sdk/QueryGroupsByMemberRequest",
-  encode(message: QueryGroupsByMemberRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupsByMemberRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupsByMemberRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupsByMemberRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupsByMemberRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupsByMemberRequest>): QueryGroupsByMemberRequest {
-    const message = createBaseQueryGroupsByMemberRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupsByMemberRequestSDKType): QueryGroupsByMemberRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupsByMemberRequest): QueryGroupsByMemberRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupsByMemberRequestAmino): QueryGroupsByMemberRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupsByMemberRequest): QueryGroupsByMemberRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupsByMemberRequestAminoMsg): QueryGroupsByMemberRequest {
-    return QueryGroupsByMemberRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupsByMemberRequest): QueryGroupsByMemberRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupsByMemberRequest",
-      value: QueryGroupsByMemberRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupsByMemberRequestProtoMsg): QueryGroupsByMemberRequest {
-    return QueryGroupsByMemberRequest.decode(message.value);
-  },
-  toProto(message: QueryGroupsByMemberRequest): Uint8Array {
-    return QueryGroupsByMemberRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupsByMemberRequest): QueryGroupsByMemberRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupsByMemberRequest",
-      value: QueryGroupsByMemberRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGroupsByMemberResponse(): QueryGroupsByMemberResponse {
-  return {
-    groups: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryGroupsByMemberResponse = {
-  typeUrl: "/cosmos.group.v1.QueryGroupsByMemberResponse",
-  aminoType: "cosmos-sdk/QueryGroupsByMemberResponse",
-  encode(message: QueryGroupsByMemberResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.groups) {
-      GroupInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGroupsByMemberResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGroupsByMemberResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groups.push(GroupInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGroupsByMemberResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryGroupsByMemberResponse): unknown {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toJSON(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGroupsByMemberResponse>): QueryGroupsByMemberResponse {
-    const message = createBaseQueryGroupsByMemberResponse();
-    message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryGroupsByMemberResponseSDKType): QueryGroupsByMemberResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryGroupsByMemberResponse): QueryGroupsByMemberResponseSDKType {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toSDK(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryGroupsByMemberResponseAmino): QueryGroupsByMemberResponse {
-    return {
-      groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => GroupInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryGroupsByMemberResponse): QueryGroupsByMemberResponseAmino {
-    const obj: any = {};
-    if (message.groups) {
-      obj.groups = message.groups.map(e => e ? GroupInfo.toAmino(e) : undefined);
-    } else {
-      obj.groups = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGroupsByMemberResponseAminoMsg): QueryGroupsByMemberResponse {
-    return QueryGroupsByMemberResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGroupsByMemberResponse): QueryGroupsByMemberResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryGroupsByMemberResponse",
-      value: QueryGroupsByMemberResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGroupsByMemberResponseProtoMsg): QueryGroupsByMemberResponse {
-    return QueryGroupsByMemberResponse.decode(message.value);
-  },
-  toProto(message: QueryGroupsByMemberResponse): Uint8Array {
-    return QueryGroupsByMemberResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGroupsByMemberResponse): QueryGroupsByMemberResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryGroupsByMemberResponse",
-      value: QueryGroupsByMemberResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultRequest(): QueryTallyResultRequest {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const QueryTallyResultRequest = {
-  typeUrl: "/cosmos.group.v1.QueryTallyResultRequest",
-  aminoType: "cosmos-sdk/QueryTallyResultRequest",
-  encode(message: QueryTallyResultRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultRequest {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryTallyResultRequest): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultRequest>): QueryTallyResultRequest {
-    const message = createBaseQueryTallyResultRequest();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryTallyResultRequestSDKType): QueryTallyResultRequest {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: QueryTallyResultRequest): QueryTallyResultRequestSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultRequestAmino): QueryTallyResultRequest {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: QueryTallyResultRequest): QueryTallyResultRequestAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultRequestAminoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTallyResultRequest",
-      value: QueryTallyResultRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultRequestProtoMsg): QueryTallyResultRequest {
-    return QueryTallyResultRequest.decode(message.value);
-  },
-  toProto(message: QueryTallyResultRequest): Uint8Array {
-    return QueryTallyResultRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultRequest): QueryTallyResultRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryTallyResultRequest",
-      value: QueryTallyResultRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTallyResultResponse(): QueryTallyResultResponse {
-  return {
-    tally: TallyResult.fromPartial({})
-  };
-}
-export const QueryTallyResultResponse = {
-  typeUrl: "/cosmos.group.v1.QueryTallyResultResponse",
-  aminoType: "cosmos-sdk/QueryTallyResultResponse",
-  encode(message: QueryTallyResultResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tally !== undefined) {
-      TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTallyResultResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTallyResultResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tally = TallyResult.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTallyResultResponse {
-    return {
-      tally: isSet(object.tally) ? TallyResult.fromJSON(object.tally) : undefined
-    };
-  },
-  toJSON(message: QueryTallyResultResponse): unknown {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toJSON(message.tally) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTallyResultResponse>): QueryTallyResultResponse {
-    const message = createBaseQueryTallyResultResponse();
-    message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTallyResultResponseSDKType): QueryTallyResultResponse {
-    return {
-      tally: object.tally ? TallyResult.fromSDK(object.tally) : undefined
-    };
-  },
-  toSDK(message: QueryTallyResultResponse): QueryTallyResultResponseSDKType {
-    const obj: any = {};
-    message.tally !== undefined && (obj.tally = message.tally ? TallyResult.toSDK(message.tally) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTallyResultResponseAmino): QueryTallyResultResponse {
-    return {
-      tally: object?.tally ? TallyResult.fromAmino(object.tally) : undefined
-    };
-  },
-  toAmino(message: QueryTallyResultResponse): QueryTallyResultResponseAmino {
-    const obj: any = {};
-    obj.tally = message.tally ? TallyResult.toAmino(message.tally) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTallyResultResponseAminoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryTallyResultResponse",
-      value: QueryTallyResultResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTallyResultResponseProtoMsg): QueryTallyResultResponse {
-    return QueryTallyResultResponse.decode(message.value);
-  },
-  toProto(message: QueryTallyResultResponse): Uint8Array {
-    return QueryTallyResultResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTallyResultResponse): QueryTallyResultResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.QueryTallyResultResponse",
-      value: QueryTallyResultResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/tx.amino.ts b/examples/injective/src/codegen/cosmos/group/v1/tx.amino.ts
deleted file mode 100644
index 25e97c5e..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/tx.amino.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { MsgCreateGroup, MsgUpdateGroupMembers, MsgUpdateGroupAdmin, MsgUpdateGroupMetadata, MsgCreateGroupPolicy, MsgCreateGroupWithPolicy, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyMetadata, MsgSubmitProposal, MsgWithdrawProposal, MsgVote, MsgExec, MsgLeaveGroup } from "./tx";
-export const AminoConverter = {
-  "/cosmos.group.v1.MsgCreateGroup": {
-    aminoType: "cosmos-sdk/MsgCreateGroup",
-    toAmino: MsgCreateGroup.toAmino,
-    fromAmino: MsgCreateGroup.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupMembers": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupMembers",
-    toAmino: MsgUpdateGroupMembers.toAmino,
-    fromAmino: MsgUpdateGroupMembers.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupAdmin": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupAdmin",
-    toAmino: MsgUpdateGroupAdmin.toAmino,
-    fromAmino: MsgUpdateGroupAdmin.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupMetadata": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupMetadata",
-    toAmino: MsgUpdateGroupMetadata.toAmino,
-    fromAmino: MsgUpdateGroupMetadata.fromAmino
-  },
-  "/cosmos.group.v1.MsgCreateGroupPolicy": {
-    aminoType: "cosmos-sdk/MsgCreateGroupPolicy",
-    toAmino: MsgCreateGroupPolicy.toAmino,
-    fromAmino: MsgCreateGroupPolicy.fromAmino
-  },
-  "/cosmos.group.v1.MsgCreateGroupWithPolicy": {
-    aminoType: "cosmos-sdk/MsgCreateGroupWithPolicy",
-    toAmino: MsgCreateGroupWithPolicy.toAmino,
-    fromAmino: MsgCreateGroupWithPolicy.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupPolicyAdmin",
-    toAmino: MsgUpdateGroupPolicyAdmin.toAmino,
-    fromAmino: MsgUpdateGroupPolicyAdmin.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicy",
-    toAmino: MsgUpdateGroupPolicyDecisionPolicy.toAmino,
-    fromAmino: MsgUpdateGroupPolicyDecisionPolicy.fromAmino
-  },
-  "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata": {
-    aminoType: "cosmos-sdk/MsgUpdateGroupPolicyMetadata",
-    toAmino: MsgUpdateGroupPolicyMetadata.toAmino,
-    fromAmino: MsgUpdateGroupPolicyMetadata.fromAmino
-  },
-  "/cosmos.group.v1.MsgSubmitProposal": {
-    aminoType: "cosmos-sdk/group/MsgSubmitProposal",
-    toAmino: MsgSubmitProposal.toAmino,
-    fromAmino: MsgSubmitProposal.fromAmino
-  },
-  "/cosmos.group.v1.MsgWithdrawProposal": {
-    aminoType: "cosmos-sdk/group/MsgWithdrawProposal",
-    toAmino: MsgWithdrawProposal.toAmino,
-    fromAmino: MsgWithdrawProposal.fromAmino
-  },
-  "/cosmos.group.v1.MsgVote": {
-    aminoType: "cosmos-sdk/group/MsgVote",
-    toAmino: MsgVote.toAmino,
-    fromAmino: MsgVote.fromAmino
-  },
-  "/cosmos.group.v1.MsgExec": {
-    aminoType: "cosmos-sdk/group/MsgExec",
-    toAmino: MsgExec.toAmino,
-    fromAmino: MsgExec.fromAmino
-  },
-  "/cosmos.group.v1.MsgLeaveGroup": {
-    aminoType: "cosmos-sdk/group/MsgLeaveGroup",
-    toAmino: MsgLeaveGroup.toAmino,
-    fromAmino: MsgLeaveGroup.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/tx.registry.ts b/examples/injective/src/codegen/cosmos/group/v1/tx.registry.ts
deleted file mode 100644
index fab710b0..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/tx.registry.ts
+++ /dev/null
@@ -1,441 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateGroup, MsgUpdateGroupMembers, MsgUpdateGroupAdmin, MsgUpdateGroupMetadata, MsgCreateGroupPolicy, MsgCreateGroupWithPolicy, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyMetadata, MsgSubmitProposal, MsgWithdrawProposal, MsgVote, MsgExec, MsgLeaveGroup } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.group.v1.MsgCreateGroup", MsgCreateGroup], ["/cosmos.group.v1.MsgUpdateGroupMembers", MsgUpdateGroupMembers], ["/cosmos.group.v1.MsgUpdateGroupAdmin", MsgUpdateGroupAdmin], ["/cosmos.group.v1.MsgUpdateGroupMetadata", MsgUpdateGroupMetadata], ["/cosmos.group.v1.MsgCreateGroupPolicy", MsgCreateGroupPolicy], ["/cosmos.group.v1.MsgCreateGroupWithPolicy", MsgCreateGroupWithPolicy], ["/cosmos.group.v1.MsgUpdateGroupPolicyAdmin", MsgUpdateGroupPolicyAdmin], ["/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy", MsgUpdateGroupPolicyDecisionPolicy], ["/cosmos.group.v1.MsgUpdateGroupPolicyMetadata", MsgUpdateGroupPolicyMetadata], ["/cosmos.group.v1.MsgSubmitProposal", MsgSubmitProposal], ["/cosmos.group.v1.MsgWithdrawProposal", MsgWithdrawProposal], ["/cosmos.group.v1.MsgVote", MsgVote], ["/cosmos.group.v1.MsgExec", MsgExec], ["/cosmos.group.v1.MsgLeaveGroup", MsgLeaveGroup]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createGroup(value: MsgCreateGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-        value: MsgCreateGroup.encode(value).finish()
-      };
-    },
-    updateGroupMembers(value: MsgUpdateGroupMembers) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-        value: MsgUpdateGroupMembers.encode(value).finish()
-      };
-    },
-    updateGroupAdmin(value: MsgUpdateGroupAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-        value: MsgUpdateGroupAdmin.encode(value).finish()
-      };
-    },
-    updateGroupMetadata(value: MsgUpdateGroupMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-        value: MsgUpdateGroupMetadata.encode(value).finish()
-      };
-    },
-    createGroupPolicy(value: MsgCreateGroupPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-        value: MsgCreateGroupPolicy.encode(value).finish()
-      };
-    },
-    createGroupWithPolicy(value: MsgCreateGroupWithPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-        value: MsgCreateGroupWithPolicy.encode(value).finish()
-      };
-    },
-    updateGroupPolicyAdmin(value: MsgUpdateGroupPolicyAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-        value: MsgUpdateGroupPolicyAdmin.encode(value).finish()
-      };
-    },
-    updateGroupPolicyDecisionPolicy(value: MsgUpdateGroupPolicyDecisionPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-        value: MsgUpdateGroupPolicyDecisionPolicy.encode(value).finish()
-      };
-    },
-    updateGroupPolicyMetadata(value: MsgUpdateGroupPolicyMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-        value: MsgUpdateGroupPolicyMetadata.encode(value).finish()
-      };
-    },
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.encode(value).finish()
-      };
-    },
-    withdrawProposal(value: MsgWithdrawProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-        value: MsgWithdrawProposal.encode(value).finish()
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgVote",
-        value: MsgVote.encode(value).finish()
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgExec",
-        value: MsgExec.encode(value).finish()
-      };
-    },
-    leaveGroup(value: MsgLeaveGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-        value: MsgLeaveGroup.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createGroup(value: MsgCreateGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-        value
-      };
-    },
-    updateGroupMembers(value: MsgUpdateGroupMembers) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-        value
-      };
-    },
-    updateGroupAdmin(value: MsgUpdateGroupAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-        value
-      };
-    },
-    updateGroupMetadata(value: MsgUpdateGroupMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-        value
-      };
-    },
-    createGroupPolicy(value: MsgCreateGroupPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-        value
-      };
-    },
-    createGroupWithPolicy(value: MsgCreateGroupWithPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-        value
-      };
-    },
-    updateGroupPolicyAdmin(value: MsgUpdateGroupPolicyAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-        value
-      };
-    },
-    updateGroupPolicyDecisionPolicy(value: MsgUpdateGroupPolicyDecisionPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-        value
-      };
-    },
-    updateGroupPolicyMetadata(value: MsgUpdateGroupPolicyMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-        value
-      };
-    },
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-        value
-      };
-    },
-    withdrawProposal(value: MsgWithdrawProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-        value
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgVote",
-        value
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgExec",
-        value
-      };
-    },
-    leaveGroup(value: MsgLeaveGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createGroup(value: MsgCreateGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-        value: MsgCreateGroup.toJSON(value)
-      };
-    },
-    updateGroupMembers(value: MsgUpdateGroupMembers) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-        value: MsgUpdateGroupMembers.toJSON(value)
-      };
-    },
-    updateGroupAdmin(value: MsgUpdateGroupAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-        value: MsgUpdateGroupAdmin.toJSON(value)
-      };
-    },
-    updateGroupMetadata(value: MsgUpdateGroupMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-        value: MsgUpdateGroupMetadata.toJSON(value)
-      };
-    },
-    createGroupPolicy(value: MsgCreateGroupPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-        value: MsgCreateGroupPolicy.toJSON(value)
-      };
-    },
-    createGroupWithPolicy(value: MsgCreateGroupWithPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-        value: MsgCreateGroupWithPolicy.toJSON(value)
-      };
-    },
-    updateGroupPolicyAdmin(value: MsgUpdateGroupPolicyAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-        value: MsgUpdateGroupPolicyAdmin.toJSON(value)
-      };
-    },
-    updateGroupPolicyDecisionPolicy(value: MsgUpdateGroupPolicyDecisionPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-        value: MsgUpdateGroupPolicyDecisionPolicy.toJSON(value)
-      };
-    },
-    updateGroupPolicyMetadata(value: MsgUpdateGroupPolicyMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-        value: MsgUpdateGroupPolicyMetadata.toJSON(value)
-      };
-    },
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.toJSON(value)
-      };
-    },
-    withdrawProposal(value: MsgWithdrawProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-        value: MsgWithdrawProposal.toJSON(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgVote",
-        value: MsgVote.toJSON(value)
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgExec",
-        value: MsgExec.toJSON(value)
-      };
-    },
-    leaveGroup(value: MsgLeaveGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-        value: MsgLeaveGroup.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createGroup(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-        value: MsgCreateGroup.fromJSON(value)
-      };
-    },
-    updateGroupMembers(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-        value: MsgUpdateGroupMembers.fromJSON(value)
-      };
-    },
-    updateGroupAdmin(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-        value: MsgUpdateGroupAdmin.fromJSON(value)
-      };
-    },
-    updateGroupMetadata(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-        value: MsgUpdateGroupMetadata.fromJSON(value)
-      };
-    },
-    createGroupPolicy(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-        value: MsgCreateGroupPolicy.fromJSON(value)
-      };
-    },
-    createGroupWithPolicy(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-        value: MsgCreateGroupWithPolicy.fromJSON(value)
-      };
-    },
-    updateGroupPolicyAdmin(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-        value: MsgUpdateGroupPolicyAdmin.fromJSON(value)
-      };
-    },
-    updateGroupPolicyDecisionPolicy(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-        value: MsgUpdateGroupPolicyDecisionPolicy.fromJSON(value)
-      };
-    },
-    updateGroupPolicyMetadata(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-        value: MsgUpdateGroupPolicyMetadata.fromJSON(value)
-      };
-    },
-    submitProposal(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromJSON(value)
-      };
-    },
-    withdrawProposal(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-        value: MsgWithdrawProposal.fromJSON(value)
-      };
-    },
-    vote(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgVote",
-        value: MsgVote.fromJSON(value)
-      };
-    },
-    exec(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgExec",
-        value: MsgExec.fromJSON(value)
-      };
-    },
-    leaveGroup(value: any) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-        value: MsgLeaveGroup.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createGroup(value: MsgCreateGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-        value: MsgCreateGroup.fromPartial(value)
-      };
-    },
-    updateGroupMembers(value: MsgUpdateGroupMembers) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-        value: MsgUpdateGroupMembers.fromPartial(value)
-      };
-    },
-    updateGroupAdmin(value: MsgUpdateGroupAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-        value: MsgUpdateGroupAdmin.fromPartial(value)
-      };
-    },
-    updateGroupMetadata(value: MsgUpdateGroupMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-        value: MsgUpdateGroupMetadata.fromPartial(value)
-      };
-    },
-    createGroupPolicy(value: MsgCreateGroupPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-        value: MsgCreateGroupPolicy.fromPartial(value)
-      };
-    },
-    createGroupWithPolicy(value: MsgCreateGroupWithPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-        value: MsgCreateGroupWithPolicy.fromPartial(value)
-      };
-    },
-    updateGroupPolicyAdmin(value: MsgUpdateGroupPolicyAdmin) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-        value: MsgUpdateGroupPolicyAdmin.fromPartial(value)
-      };
-    },
-    updateGroupPolicyDecisionPolicy(value: MsgUpdateGroupPolicyDecisionPolicy) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-        value: MsgUpdateGroupPolicyDecisionPolicy.fromPartial(value)
-      };
-    },
-    updateGroupPolicyMetadata(value: MsgUpdateGroupPolicyMetadata) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-        value: MsgUpdateGroupPolicyMetadata.fromPartial(value)
-      };
-    },
-    submitProposal(value: MsgSubmitProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-        value: MsgSubmitProposal.fromPartial(value)
-      };
-    },
-    withdrawProposal(value: MsgWithdrawProposal) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-        value: MsgWithdrawProposal.fromPartial(value)
-      };
-    },
-    vote(value: MsgVote) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgVote",
-        value: MsgVote.fromPartial(value)
-      };
-    },
-    exec(value: MsgExec) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgExec",
-        value: MsgExec.fromPartial(value)
-      };
-    },
-    leaveGroup(value: MsgLeaveGroup) {
-      return {
-        typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-        value: MsgLeaveGroup.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/group/v1/tx.rpc.msg.ts
deleted file mode 100644
index e6c8ed8c..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgCreateGroup, MsgCreateGroupResponse, MsgUpdateGroupMembers, MsgUpdateGroupMembersResponse, MsgUpdateGroupAdmin, MsgUpdateGroupAdminResponse, MsgUpdateGroupMetadata, MsgUpdateGroupMetadataResponse, MsgCreateGroupPolicy, MsgCreateGroupPolicyResponse, MsgCreateGroupWithPolicy, MsgCreateGroupWithPolicyResponse, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyAdminResponse, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyDecisionPolicyResponse, MsgUpdateGroupPolicyMetadata, MsgUpdateGroupPolicyMetadataResponse, MsgSubmitProposal, MsgSubmitProposalResponse, MsgWithdrawProposal, MsgWithdrawProposalResponse, MsgVote, MsgVoteResponse, MsgExec, MsgExecResponse, MsgLeaveGroup, MsgLeaveGroupResponse } from "./tx";
-/** Msg is the cosmos.group.v1 Msg service. */
-export interface Msg {
-  /** CreateGroup creates a new group with an admin account address, a list of members and some optional metadata. */
-  createGroup(request: MsgCreateGroup): Promise<MsgCreateGroupResponse>;
-  /** UpdateGroupMembers updates the group members with given group id and admin address. */
-  updateGroupMembers(request: MsgUpdateGroupMembers): Promise<MsgUpdateGroupMembersResponse>;
-  /** UpdateGroupAdmin updates the group admin with given group id and previous admin address. */
-  updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise<MsgUpdateGroupAdminResponse>;
-  /** UpdateGroupMetadata updates the group metadata with given group id and admin address. */
-  updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise<MsgUpdateGroupMetadataResponse>;
-  /** CreateGroupPolicy creates a new group policy using given DecisionPolicy. */
-  createGroupPolicy(request: MsgCreateGroupPolicy): Promise<MsgCreateGroupPolicyResponse>;
-  /** CreateGroupWithPolicy creates a new group with policy. */
-  createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise<MsgCreateGroupWithPolicyResponse>;
-  /** UpdateGroupPolicyAdmin updates a group policy admin. */
-  updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise<MsgUpdateGroupPolicyAdminResponse>;
-  /** UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated. */
-  updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise<MsgUpdateGroupPolicyDecisionPolicyResponse>;
-  /** UpdateGroupPolicyMetadata updates a group policy metadata. */
-  updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise<MsgUpdateGroupPolicyMetadataResponse>;
-  /** SubmitProposal submits a new proposal. */
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse>;
-  /** WithdrawProposal aborts a proposal. */
-  withdrawProposal(request: MsgWithdrawProposal): Promise<MsgWithdrawProposalResponse>;
-  /** Vote allows a voter to vote on a proposal. */
-  vote(request: MsgVote): Promise<MsgVoteResponse>;
-  /** Exec executes a proposal. */
-  exec(request: MsgExec): Promise<MsgExecResponse>;
-  /** LeaveGroup allows a group member to leave the group. */
-  leaveGroup(request: MsgLeaveGroup): Promise<MsgLeaveGroupResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createGroup = this.createGroup.bind(this);
-    this.updateGroupMembers = this.updateGroupMembers.bind(this);
-    this.updateGroupAdmin = this.updateGroupAdmin.bind(this);
-    this.updateGroupMetadata = this.updateGroupMetadata.bind(this);
-    this.createGroupPolicy = this.createGroupPolicy.bind(this);
-    this.createGroupWithPolicy = this.createGroupWithPolicy.bind(this);
-    this.updateGroupPolicyAdmin = this.updateGroupPolicyAdmin.bind(this);
-    this.updateGroupPolicyDecisionPolicy = this.updateGroupPolicyDecisionPolicy.bind(this);
-    this.updateGroupPolicyMetadata = this.updateGroupPolicyMetadata.bind(this);
-    this.submitProposal = this.submitProposal.bind(this);
-    this.withdrawProposal = this.withdrawProposal.bind(this);
-    this.vote = this.vote.bind(this);
-    this.exec = this.exec.bind(this);
-    this.leaveGroup = this.leaveGroup.bind(this);
-  }
-  createGroup(request: MsgCreateGroup): Promise<MsgCreateGroupResponse> {
-    const data = MsgCreateGroup.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroup", data);
-    return promise.then(data => MsgCreateGroupResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupMembers(request: MsgUpdateGroupMembers): Promise<MsgUpdateGroupMembersResponse> {
-    const data = MsgUpdateGroupMembers.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMembers", data);
-    return promise.then(data => MsgUpdateGroupMembersResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise<MsgUpdateGroupAdminResponse> {
-    const data = MsgUpdateGroupAdmin.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupAdmin", data);
-    return promise.then(data => MsgUpdateGroupAdminResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise<MsgUpdateGroupMetadataResponse> {
-    const data = MsgUpdateGroupMetadata.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMetadata", data);
-    return promise.then(data => MsgUpdateGroupMetadataResponse.decode(new BinaryReader(data)));
-  }
-  createGroupPolicy(request: MsgCreateGroupPolicy): Promise<MsgCreateGroupPolicyResponse> {
-    const data = MsgCreateGroupPolicy.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupPolicy", data);
-    return promise.then(data => MsgCreateGroupPolicyResponse.decode(new BinaryReader(data)));
-  }
-  createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise<MsgCreateGroupWithPolicyResponse> {
-    const data = MsgCreateGroupWithPolicy.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupWithPolicy", data);
-    return promise.then(data => MsgCreateGroupWithPolicyResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise<MsgUpdateGroupPolicyAdminResponse> {
-    const data = MsgUpdateGroupPolicyAdmin.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyAdmin", data);
-    return promise.then(data => MsgUpdateGroupPolicyAdminResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise<MsgUpdateGroupPolicyDecisionPolicyResponse> {
-    const data = MsgUpdateGroupPolicyDecisionPolicy.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyDecisionPolicy", data);
-    return promise.then(data => MsgUpdateGroupPolicyDecisionPolicyResponse.decode(new BinaryReader(data)));
-  }
-  updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise<MsgUpdateGroupPolicyMetadataResponse> {
-    const data = MsgUpdateGroupPolicyMetadata.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyMetadata", data);
-    return promise.then(data => MsgUpdateGroupPolicyMetadataResponse.decode(new BinaryReader(data)));
-  }
-  submitProposal(request: MsgSubmitProposal): Promise<MsgSubmitProposalResponse> {
-    const data = MsgSubmitProposal.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "SubmitProposal", data);
-    return promise.then(data => MsgSubmitProposalResponse.decode(new BinaryReader(data)));
-  }
-  withdrawProposal(request: MsgWithdrawProposal): Promise<MsgWithdrawProposalResponse> {
-    const data = MsgWithdrawProposal.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "WithdrawProposal", data);
-    return promise.then(data => MsgWithdrawProposalResponse.decode(new BinaryReader(data)));
-  }
-  vote(request: MsgVote): Promise<MsgVoteResponse> {
-    const data = MsgVote.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "Vote", data);
-    return promise.then(data => MsgVoteResponse.decode(new BinaryReader(data)));
-  }
-  exec(request: MsgExec): Promise<MsgExecResponse> {
-    const data = MsgExec.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "Exec", data);
-    return promise.then(data => MsgExecResponse.decode(new BinaryReader(data)));
-  }
-  leaveGroup(request: MsgLeaveGroup): Promise<MsgLeaveGroupResponse> {
-    const data = MsgLeaveGroup.encode(request).finish();
-    const promise = this.rpc.request("cosmos.group.v1.Msg", "LeaveGroup", data);
-    return promise.then(data => MsgLeaveGroupResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/tx.ts b/examples/injective/src/codegen/cosmos/group/v1/tx.ts
deleted file mode 100644
index 78b2a6c9..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/tx.ts
+++ /dev/null
@@ -1,3599 +0,0 @@
-import { Member, MemberAmino, MemberSDKType, VoteOption, voteOptionFromJSON, voteOptionToJSON } from "./types";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Exec defines modes of execution of a proposal on creation or on new vote. */
-export enum Exec {
-  /**
-   * EXEC_UNSPECIFIED - An empty value means that there should be a separate
-   * MsgExec request for the proposal to execute.
-   */
-  EXEC_UNSPECIFIED = 0,
-  /**
-   * EXEC_TRY - Try to execute the proposal immediately.
-   * If the proposal is not allowed per the DecisionPolicy,
-   * the proposal will still be open and could
-   * be executed at a later point.
-   */
-  EXEC_TRY = 1,
-  UNRECOGNIZED = -1,
-}
-export const ExecSDKType = Exec;
-export const ExecAmino = Exec;
-export function execFromJSON(object: any): Exec {
-  switch (object) {
-    case 0:
-    case "EXEC_UNSPECIFIED":
-      return Exec.EXEC_UNSPECIFIED;
-    case 1:
-    case "EXEC_TRY":
-      return Exec.EXEC_TRY;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return Exec.UNRECOGNIZED;
-  }
-}
-export function execToJSON(object: Exec): string {
-  switch (object) {
-    case Exec.EXEC_UNSPECIFIED:
-      return "EXEC_UNSPECIFIED";
-    case Exec.EXEC_TRY:
-      return "EXEC_TRY";
-    case Exec.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** MsgCreateGroup is the Msg/CreateGroup request type. */
-export interface MsgCreateGroup {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** members defines the group members. */
-  members: Member[];
-  /** metadata is any arbitrary metadata to attached to the group. */
-  metadata: string;
-}
-export interface MsgCreateGroupProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroup";
-  value: Uint8Array;
-}
-/** MsgCreateGroup is the Msg/CreateGroup request type. */
-export interface MsgCreateGroupAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** members defines the group members. */
-  members: MemberAmino[];
-  /** metadata is any arbitrary metadata to attached to the group. */
-  metadata: string;
-}
-export interface MsgCreateGroupAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroup";
-  value: MsgCreateGroupAmino;
-}
-/** MsgCreateGroup is the Msg/CreateGroup request type. */
-export interface MsgCreateGroupSDKType {
-  admin: string;
-  members: MemberSDKType[];
-  metadata: string;
-}
-/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */
-export interface MsgCreateGroupResponse {
-  /** group_id is the unique ID of the newly created group. */
-  groupId: bigint;
-}
-export interface MsgCreateGroupResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupResponse";
-  value: Uint8Array;
-}
-/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */
-export interface MsgCreateGroupResponseAmino {
-  /** group_id is the unique ID of the newly created group. */
-  group_id: string;
-}
-export interface MsgCreateGroupResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroupResponse";
-  value: MsgCreateGroupResponseAmino;
-}
-/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */
-export interface MsgCreateGroupResponseSDKType {
-  group_id: bigint;
-}
-/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */
-export interface MsgUpdateGroupMembers {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /**
-   * member_updates is the list of members to update,
-   * set weight to 0 to remove a member.
-   */
-  memberUpdates: Member[];
-}
-export interface MsgUpdateGroupMembersProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */
-export interface MsgUpdateGroupMembersAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /**
-   * member_updates is the list of members to update,
-   * set weight to 0 to remove a member.
-   */
-  member_updates: MemberAmino[];
-}
-export interface MsgUpdateGroupMembersAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupMembers";
-  value: MsgUpdateGroupMembersAmino;
-}
-/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */
-export interface MsgUpdateGroupMembersSDKType {
-  admin: string;
-  group_id: bigint;
-  member_updates: MemberSDKType[];
-}
-/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */
-export interface MsgUpdateGroupMembersResponse {}
-export interface MsgUpdateGroupMembersResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembersResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */
-export interface MsgUpdateGroupMembersResponseAmino {}
-export interface MsgUpdateGroupMembersResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupMembersResponse";
-  value: MsgUpdateGroupMembersResponseAmino;
-}
-/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */
-export interface MsgUpdateGroupMembersResponseSDKType {}
-/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */
-export interface MsgUpdateGroupAdmin {
-  /** admin is the current account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** new_admin is the group new admin account address. */
-  newAdmin: string;
-}
-export interface MsgUpdateGroupAdminProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */
-export interface MsgUpdateGroupAdminAmino {
-  /** admin is the current account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** new_admin is the group new admin account address. */
-  new_admin: string;
-}
-export interface MsgUpdateGroupAdminAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupAdmin";
-  value: MsgUpdateGroupAdminAmino;
-}
-/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */
-export interface MsgUpdateGroupAdminSDKType {
-  admin: string;
-  group_id: bigint;
-  new_admin: string;
-}
-/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */
-export interface MsgUpdateGroupAdminResponse {}
-export interface MsgUpdateGroupAdminResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdminResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */
-export interface MsgUpdateGroupAdminResponseAmino {}
-export interface MsgUpdateGroupAdminResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupAdminResponse";
-  value: MsgUpdateGroupAdminResponseAmino;
-}
-/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */
-export interface MsgUpdateGroupAdminResponseSDKType {}
-/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */
-export interface MsgUpdateGroupMetadata {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** metadata is the updated group's metadata. */
-  metadata: string;
-}
-export interface MsgUpdateGroupMetadataProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */
-export interface MsgUpdateGroupMetadataAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** metadata is the updated group's metadata. */
-  metadata: string;
-}
-export interface MsgUpdateGroupMetadataAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupMetadata";
-  value: MsgUpdateGroupMetadataAmino;
-}
-/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */
-export interface MsgUpdateGroupMetadataSDKType {
-  admin: string;
-  group_id: bigint;
-  metadata: string;
-}
-/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */
-export interface MsgUpdateGroupMetadataResponse {}
-export interface MsgUpdateGroupMetadataResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadataResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */
-export interface MsgUpdateGroupMetadataResponseAmino {}
-export interface MsgUpdateGroupMetadataResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupMetadataResponse";
-  value: MsgUpdateGroupMetadataResponseAmino;
-}
-/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */
-export interface MsgUpdateGroupMetadataResponseSDKType {}
-/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */
-export interface MsgCreateGroupPolicy {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** metadata is any arbitrary metadata attached to the group policy. */
-  metadata: string;
-  /** decision_policy specifies the group policy's decision policy. */
-  decisionPolicy: Any | undefined;
-}
-export interface MsgCreateGroupPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy";
-  value: Uint8Array;
-}
-/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */
-export interface MsgCreateGroupPolicyAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** metadata is any arbitrary metadata attached to the group policy. */
-  metadata: string;
-  /** decision_policy specifies the group policy's decision policy. */
-  decision_policy?: AnyAmino | undefined;
-}
-export interface MsgCreateGroupPolicyAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroupPolicy";
-  value: MsgCreateGroupPolicyAmino;
-}
-/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */
-export interface MsgCreateGroupPolicySDKType {
-  admin: string;
-  group_id: bigint;
-  metadata: string;
-  decision_policy: AnySDKType | undefined;
-}
-/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */
-export interface MsgCreateGroupPolicyResponse {
-  /** address is the account address of the newly created group policy. */
-  address: string;
-}
-export interface MsgCreateGroupPolicyResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicyResponse";
-  value: Uint8Array;
-}
-/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */
-export interface MsgCreateGroupPolicyResponseAmino {
-  /** address is the account address of the newly created group policy. */
-  address: string;
-}
-export interface MsgCreateGroupPolicyResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroupPolicyResponse";
-  value: MsgCreateGroupPolicyResponseAmino;
-}
-/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */
-export interface MsgCreateGroupPolicyResponseSDKType {
-  address: string;
-}
-/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */
-export interface MsgUpdateGroupPolicyAdmin {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of the group policy. */
-  address: string;
-  /** new_admin is the new group policy admin. */
-  newAdmin: string;
-}
-export interface MsgUpdateGroupPolicyAdminProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */
-export interface MsgUpdateGroupPolicyAdminAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of the group policy. */
-  address: string;
-  /** new_admin is the new group policy admin. */
-  new_admin: string;
-}
-export interface MsgUpdateGroupPolicyAdminAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyAdmin";
-  value: MsgUpdateGroupPolicyAdminAmino;
-}
-/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */
-export interface MsgUpdateGroupPolicyAdminSDKType {
-  admin: string;
-  address: string;
-  new_admin: string;
-}
-/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */
-export interface MsgCreateGroupWithPolicy {
-  /** admin is the account address of the group and group policy admin. */
-  admin: string;
-  /** members defines the group members. */
-  members: Member[];
-  /** group_metadata is any arbitrary metadata attached to the group. */
-  groupMetadata: string;
-  /** group_policy_metadata is any arbitrary metadata attached to the group policy. */
-  groupPolicyMetadata: string;
-  /** group_policy_as_admin is a boolean field, if set to true, the group policy account address will be used as group and group policy admin. */
-  groupPolicyAsAdmin: boolean;
-  /** decision_policy specifies the group policy's decision policy. */
-  decisionPolicy: Any | undefined;
-}
-export interface MsgCreateGroupWithPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy";
-  value: Uint8Array;
-}
-/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */
-export interface MsgCreateGroupWithPolicyAmino {
-  /** admin is the account address of the group and group policy admin. */
-  admin: string;
-  /** members defines the group members. */
-  members: MemberAmino[];
-  /** group_metadata is any arbitrary metadata attached to the group. */
-  group_metadata: string;
-  /** group_policy_metadata is any arbitrary metadata attached to the group policy. */
-  group_policy_metadata: string;
-  /** group_policy_as_admin is a boolean field, if set to true, the group policy account address will be used as group and group policy admin. */
-  group_policy_as_admin: boolean;
-  /** decision_policy specifies the group policy's decision policy. */
-  decision_policy?: AnyAmino | undefined;
-}
-export interface MsgCreateGroupWithPolicyAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroupWithPolicy";
-  value: MsgCreateGroupWithPolicyAmino;
-}
-/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */
-export interface MsgCreateGroupWithPolicySDKType {
-  admin: string;
-  members: MemberSDKType[];
-  group_metadata: string;
-  group_policy_metadata: string;
-  group_policy_as_admin: boolean;
-  decision_policy: AnySDKType | undefined;
-}
-/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */
-export interface MsgCreateGroupWithPolicyResponse {
-  /** group_id is the unique ID of the newly created group with policy. */
-  groupId: bigint;
-  /** group_policy_address is the account address of the newly created group policy. */
-  groupPolicyAddress: string;
-}
-export interface MsgCreateGroupWithPolicyResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicyResponse";
-  value: Uint8Array;
-}
-/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */
-export interface MsgCreateGroupWithPolicyResponseAmino {
-  /** group_id is the unique ID of the newly created group with policy. */
-  group_id: string;
-  /** group_policy_address is the account address of the newly created group policy. */
-  group_policy_address: string;
-}
-export interface MsgCreateGroupWithPolicyResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateGroupWithPolicyResponse";
-  value: MsgCreateGroupWithPolicyResponseAmino;
-}
-/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */
-export interface MsgCreateGroupWithPolicyResponseSDKType {
-  group_id: bigint;
-  group_policy_address: string;
-}
-/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */
-export interface MsgUpdateGroupPolicyAdminResponse {}
-export interface MsgUpdateGroupPolicyAdminResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */
-export interface MsgUpdateGroupPolicyAdminResponseAmino {}
-export interface MsgUpdateGroupPolicyAdminResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyAdminResponse";
-  value: MsgUpdateGroupPolicyAdminResponseAmino;
-}
-/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */
-export interface MsgUpdateGroupPolicyAdminResponseSDKType {}
-/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */
-export interface MsgUpdateGroupPolicyDecisionPolicy {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of group policy. */
-  address: string;
-  /** decision_policy is the updated group policy's decision policy. */
-  decisionPolicy: Any | undefined;
-}
-export interface MsgUpdateGroupPolicyDecisionPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */
-export interface MsgUpdateGroupPolicyDecisionPolicyAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of group policy. */
-  address: string;
-  /** decision_policy is the updated group policy's decision policy. */
-  decision_policy?: AnyAmino | undefined;
-}
-export interface MsgUpdateGroupPolicyDecisionPolicyAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicy";
-  value: MsgUpdateGroupPolicyDecisionPolicyAmino;
-}
-/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */
-export interface MsgUpdateGroupPolicyDecisionPolicySDKType {
-  admin: string;
-  address: string;
-  decision_policy: AnySDKType | undefined;
-}
-/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */
-export interface MsgUpdateGroupPolicyDecisionPolicyResponse {}
-export interface MsgUpdateGroupPolicyDecisionPolicyResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */
-export interface MsgUpdateGroupPolicyDecisionPolicyResponseAmino {}
-export interface MsgUpdateGroupPolicyDecisionPolicyResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicyResponse";
-  value: MsgUpdateGroupPolicyDecisionPolicyResponseAmino;
-}
-/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */
-export interface MsgUpdateGroupPolicyDecisionPolicyResponseSDKType {}
-/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */
-export interface MsgUpdateGroupPolicyMetadata {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of group policy. */
-  address: string;
-  /** metadata is the updated group policy metadata. */
-  metadata: string;
-}
-export interface MsgUpdateGroupPolicyMetadataProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */
-export interface MsgUpdateGroupPolicyMetadataAmino {
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** address is the account address of group policy. */
-  address: string;
-  /** metadata is the updated group policy metadata. */
-  metadata: string;
-}
-export interface MsgUpdateGroupPolicyMetadataAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyMetadata";
-  value: MsgUpdateGroupPolicyMetadataAmino;
-}
-/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */
-export interface MsgUpdateGroupPolicyMetadataSDKType {
-  admin: string;
-  address: string;
-  metadata: string;
-}
-/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */
-export interface MsgUpdateGroupPolicyMetadataResponse {}
-export interface MsgUpdateGroupPolicyMetadataResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */
-export interface MsgUpdateGroupPolicyMetadataResponseAmino {}
-export interface MsgUpdateGroupPolicyMetadataResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateGroupPolicyMetadataResponse";
-  value: MsgUpdateGroupPolicyMetadataResponseAmino;
-}
-/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */
-export interface MsgUpdateGroupPolicyMetadataResponseSDKType {}
-/** MsgSubmitProposal is the Msg/SubmitProposal request type. */
-export interface MsgSubmitProposal {
-  /** address is the account address of group policy. */
-  address: string;
-  /**
-   * proposers are the account addresses of the proposers.
-   * Proposers signatures will be counted as yes votes.
-   */
-  proposers: string[];
-  /** metadata is any arbitrary metadata to attached to the proposal. */
-  metadata: string;
-  /** messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */
-  messages: Any[];
-  /**
-   * exec defines the mode of execution of the proposal,
-   * whether it should be executed immediately on creation or not.
-   * If so, proposers signatures are considered as Yes votes.
-   */
-  exec: Exec;
-}
-export interface MsgSubmitProposalProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgSubmitProposal";
-  value: Uint8Array;
-}
-/** MsgSubmitProposal is the Msg/SubmitProposal request type. */
-export interface MsgSubmitProposalAmino {
-  /** address is the account address of group policy. */
-  address: string;
-  /**
-   * proposers are the account addresses of the proposers.
-   * Proposers signatures will be counted as yes votes.
-   */
-  proposers: string[];
-  /** metadata is any arbitrary metadata to attached to the proposal. */
-  metadata: string;
-  /** messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */
-  messages: AnyAmino[];
-  /**
-   * exec defines the mode of execution of the proposal,
-   * whether it should be executed immediately on creation or not.
-   * If so, proposers signatures are considered as Yes votes.
-   */
-  exec: Exec;
-}
-export interface MsgSubmitProposalAminoMsg {
-  type: "cosmos-sdk/group/MsgSubmitProposal";
-  value: MsgSubmitProposalAmino;
-}
-/** MsgSubmitProposal is the Msg/SubmitProposal request type. */
-export interface MsgSubmitProposalSDKType {
-  address: string;
-  proposers: string[];
-  metadata: string;
-  messages: AnySDKType[];
-  exec: Exec;
-}
-/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponse {
-  /** proposal is the unique ID of the proposal. */
-  proposalId: bigint;
-}
-export interface MsgSubmitProposalResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgSubmitProposalResponse";
-  value: Uint8Array;
-}
-/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseAmino {
-  /** proposal is the unique ID of the proposal. */
-  proposal_id: string;
-}
-export interface MsgSubmitProposalResponseAminoMsg {
-  type: "cosmos-sdk/MsgSubmitProposalResponse";
-  value: MsgSubmitProposalResponseAmino;
-}
-/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */
-export interface MsgSubmitProposalResponseSDKType {
-  proposal_id: bigint;
-}
-/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */
-export interface MsgWithdrawProposal {
-  /** proposal is the unique ID of the proposal. */
-  proposalId: bigint;
-  /** address is the admin of the group policy or one of the proposer of the proposal. */
-  address: string;
-}
-export interface MsgWithdrawProposalProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgWithdrawProposal";
-  value: Uint8Array;
-}
-/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */
-export interface MsgWithdrawProposalAmino {
-  /** proposal is the unique ID of the proposal. */
-  proposal_id: string;
-  /** address is the admin of the group policy or one of the proposer of the proposal. */
-  address: string;
-}
-export interface MsgWithdrawProposalAminoMsg {
-  type: "cosmos-sdk/group/MsgWithdrawProposal";
-  value: MsgWithdrawProposalAmino;
-}
-/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */
-export interface MsgWithdrawProposalSDKType {
-  proposal_id: bigint;
-  address: string;
-}
-/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */
-export interface MsgWithdrawProposalResponse {}
-export interface MsgWithdrawProposalResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgWithdrawProposalResponse";
-  value: Uint8Array;
-}
-/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */
-export interface MsgWithdrawProposalResponseAmino {}
-export interface MsgWithdrawProposalResponseAminoMsg {
-  type: "cosmos-sdk/MsgWithdrawProposalResponse";
-  value: MsgWithdrawProposalResponseAmino;
-}
-/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */
-export interface MsgWithdrawProposalResponseSDKType {}
-/** MsgVote is the Msg/Vote request type. */
-export interface MsgVote {
-  /** proposal is the unique ID of the proposal. */
-  proposalId: bigint;
-  /** voter is the voter account address. */
-  voter: string;
-  /** option is the voter's choice on the proposal. */
-  option: VoteOption;
-  /** metadata is any arbitrary metadata to attached to the vote. */
-  metadata: string;
-  /**
-   * exec defines whether the proposal should be executed
-   * immediately after voting or not.
-   */
-  exec: Exec;
-}
-export interface MsgVoteProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgVote";
-  value: Uint8Array;
-}
-/** MsgVote is the Msg/Vote request type. */
-export interface MsgVoteAmino {
-  /** proposal is the unique ID of the proposal. */
-  proposal_id: string;
-  /** voter is the voter account address. */
-  voter: string;
-  /** option is the voter's choice on the proposal. */
-  option: VoteOption;
-  /** metadata is any arbitrary metadata to attached to the vote. */
-  metadata: string;
-  /**
-   * exec defines whether the proposal should be executed
-   * immediately after voting or not.
-   */
-  exec: Exec;
-}
-export interface MsgVoteAminoMsg {
-  type: "cosmos-sdk/group/MsgVote";
-  value: MsgVoteAmino;
-}
-/** MsgVote is the Msg/Vote request type. */
-export interface MsgVoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  option: VoteOption;
-  metadata: string;
-  exec: Exec;
-}
-/** MsgVoteResponse is the Msg/Vote response type. */
-export interface MsgVoteResponse {}
-export interface MsgVoteResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgVoteResponse";
-  value: Uint8Array;
-}
-/** MsgVoteResponse is the Msg/Vote response type. */
-export interface MsgVoteResponseAmino {}
-export interface MsgVoteResponseAminoMsg {
-  type: "cosmos-sdk/MsgVoteResponse";
-  value: MsgVoteResponseAmino;
-}
-/** MsgVoteResponse is the Msg/Vote response type. */
-export interface MsgVoteResponseSDKType {}
-/** MsgExec is the Msg/Exec request type. */
-export interface MsgExec {
-  /** proposal is the unique ID of the proposal. */
-  proposalId: bigint;
-  /** signer is the account address used to execute the proposal. */
-  signer: string;
-}
-export interface MsgExecProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgExec";
-  value: Uint8Array;
-}
-/** MsgExec is the Msg/Exec request type. */
-export interface MsgExecAmino {
-  /** proposal is the unique ID of the proposal. */
-  proposal_id: string;
-  /** signer is the account address used to execute the proposal. */
-  signer: string;
-}
-export interface MsgExecAminoMsg {
-  type: "cosmos-sdk/group/MsgExec";
-  value: MsgExecAmino;
-}
-/** MsgExec is the Msg/Exec request type. */
-export interface MsgExecSDKType {
-  proposal_id: bigint;
-  signer: string;
-}
-/** MsgExecResponse is the Msg/Exec request type. */
-export interface MsgExecResponse {}
-export interface MsgExecResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgExecResponse";
-  value: Uint8Array;
-}
-/** MsgExecResponse is the Msg/Exec request type. */
-export interface MsgExecResponseAmino {}
-export interface MsgExecResponseAminoMsg {
-  type: "cosmos-sdk/MsgExecResponse";
-  value: MsgExecResponseAmino;
-}
-/** MsgExecResponse is the Msg/Exec request type. */
-export interface MsgExecResponseSDKType {}
-/** MsgLeaveGroup is the Msg/LeaveGroup request type. */
-export interface MsgLeaveGroup {
-  /** address is the account address of the group member. */
-  address: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-}
-export interface MsgLeaveGroupProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgLeaveGroup";
-  value: Uint8Array;
-}
-/** MsgLeaveGroup is the Msg/LeaveGroup request type. */
-export interface MsgLeaveGroupAmino {
-  /** address is the account address of the group member. */
-  address: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-}
-export interface MsgLeaveGroupAminoMsg {
-  type: "cosmos-sdk/group/MsgLeaveGroup";
-  value: MsgLeaveGroupAmino;
-}
-/** MsgLeaveGroup is the Msg/LeaveGroup request type. */
-export interface MsgLeaveGroupSDKType {
-  address: string;
-  group_id: bigint;
-}
-/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */
-export interface MsgLeaveGroupResponse {}
-export interface MsgLeaveGroupResponseProtoMsg {
-  typeUrl: "/cosmos.group.v1.MsgLeaveGroupResponse";
-  value: Uint8Array;
-}
-/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */
-export interface MsgLeaveGroupResponseAmino {}
-export interface MsgLeaveGroupResponseAminoMsg {
-  type: "cosmos-sdk/MsgLeaveGroupResponse";
-  value: MsgLeaveGroupResponseAmino;
-}
-/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */
-export interface MsgLeaveGroupResponseSDKType {}
-function createBaseMsgCreateGroup(): MsgCreateGroup {
-  return {
-    admin: "",
-    members: [],
-    metadata: ""
-  };
-}
-export const MsgCreateGroup = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-  aminoType: "cosmos-sdk/MsgCreateGroup",
-  encode(message: MsgCreateGroup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    for (const v of message.members) {
-      Member.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.members.push(Member.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroup {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromJSON(e)) : [],
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgCreateGroup): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toJSON(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroup>): MsgCreateGroup {
-    const message = createBaseMsgCreateGroup();
-    message.admin = object.admin ?? "";
-    message.members = object.members?.map(e => Member.fromPartial(e)) || [];
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupSDKType): MsgCreateGroup {
-    return {
-      admin: object?.admin,
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromSDK(e)) : [],
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgCreateGroup): MsgCreateGroupSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toSDK(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupAmino): MsgCreateGroup {
-    return {
-      admin: object.admin,
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromAmino(e)) : [],
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgCreateGroup): MsgCreateGroupAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toAmino(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupAminoMsg): MsgCreateGroup {
-    return MsgCreateGroup.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroup): MsgCreateGroupAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroup",
-      value: MsgCreateGroup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupProtoMsg): MsgCreateGroup {
-    return MsgCreateGroup.decode(message.value);
-  },
-  toProto(message: MsgCreateGroup): Uint8Array {
-    return MsgCreateGroup.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroup): MsgCreateGroupProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroup",
-      value: MsgCreateGroup.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGroupResponse(): MsgCreateGroupResponse {
-  return {
-    groupId: BigInt(0)
-  };
-}
-export const MsgCreateGroupResponse = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupResponse",
-  aminoType: "cosmos-sdk/MsgCreateGroupResponse",
-  encode(message: MsgCreateGroupResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroupResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroupResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroupResponse {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgCreateGroupResponse): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroupResponse>): MsgCreateGroupResponse {
-    const message = createBaseMsgCreateGroupResponse();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupResponseSDKType): MsgCreateGroupResponse {
-    return {
-      groupId: object?.group_id
-    };
-  },
-  toSDK(message: MsgCreateGroupResponse): MsgCreateGroupResponseSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupResponseAmino): MsgCreateGroupResponse {
-    return {
-      groupId: BigInt(object.group_id)
-    };
-  },
-  toAmino(message: MsgCreateGroupResponse): MsgCreateGroupResponseAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupResponseAminoMsg): MsgCreateGroupResponse {
-    return MsgCreateGroupResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroupResponse): MsgCreateGroupResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroupResponse",
-      value: MsgCreateGroupResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupResponseProtoMsg): MsgCreateGroupResponse {
-    return MsgCreateGroupResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateGroupResponse): Uint8Array {
-    return MsgCreateGroupResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroupResponse): MsgCreateGroupResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroupResponse",
-      value: MsgCreateGroupResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupMembers(): MsgUpdateGroupMembers {
-  return {
-    admin: "",
-    groupId: BigInt(0),
-    memberUpdates: []
-  };
-}
-export const MsgUpdateGroupMembers = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-  aminoType: "cosmos-sdk/MsgUpdateGroupMembers",
-  encode(message: MsgUpdateGroupMembers, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    for (const v of message.memberUpdates) {
-      Member.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupMembers {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupMembers();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        case 3:
-          message.memberUpdates.push(Member.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupMembers {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      memberUpdates: Array.isArray(object?.memberUpdates) ? object.memberUpdates.map((e: any) => Member.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgUpdateGroupMembers): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    if (message.memberUpdates) {
-      obj.memberUpdates = message.memberUpdates.map(e => e ? Member.toJSON(e) : undefined);
-    } else {
-      obj.memberUpdates = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupMembers>): MsgUpdateGroupMembers {
-    const message = createBaseMsgUpdateGroupMembers();
-    message.admin = object.admin ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.memberUpdates = object.memberUpdates?.map(e => Member.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupMembersSDKType): MsgUpdateGroupMembers {
-    return {
-      admin: object?.admin,
-      groupId: object?.group_id,
-      memberUpdates: Array.isArray(object?.member_updates) ? object.member_updates.map((e: any) => Member.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgUpdateGroupMembers): MsgUpdateGroupMembersSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId;
-    if (message.memberUpdates) {
-      obj.member_updates = message.memberUpdates.map(e => e ? Member.toSDK(e) : undefined);
-    } else {
-      obj.member_updates = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupMembersAmino): MsgUpdateGroupMembers {
-    return {
-      admin: object.admin,
-      groupId: BigInt(object.group_id),
-      memberUpdates: Array.isArray(object?.member_updates) ? object.member_updates.map((e: any) => Member.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgUpdateGroupMembers): MsgUpdateGroupMembersAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    if (message.memberUpdates) {
-      obj.member_updates = message.memberUpdates.map(e => e ? Member.toAmino(e) : undefined);
-    } else {
-      obj.member_updates = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupMembersAminoMsg): MsgUpdateGroupMembers {
-    return MsgUpdateGroupMembers.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupMembers): MsgUpdateGroupMembersAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupMembers",
-      value: MsgUpdateGroupMembers.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupMembersProtoMsg): MsgUpdateGroupMembers {
-    return MsgUpdateGroupMembers.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupMembers): Uint8Array {
-    return MsgUpdateGroupMembers.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupMembers): MsgUpdateGroupMembersProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers",
-      value: MsgUpdateGroupMembers.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupMembersResponse(): MsgUpdateGroupMembersResponse {
-  return {};
-}
-export const MsgUpdateGroupMembersResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembersResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupMembersResponse",
-  encode(_: MsgUpdateGroupMembersResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupMembersResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupMembersResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupMembersResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupMembersResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupMembersResponse>): MsgUpdateGroupMembersResponse {
-    const message = createBaseMsgUpdateGroupMembersResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupMembersResponseSDKType): MsgUpdateGroupMembersResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupMembersResponse): MsgUpdateGroupMembersResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupMembersResponseAmino): MsgUpdateGroupMembersResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupMembersResponse): MsgUpdateGroupMembersResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupMembersResponseAminoMsg): MsgUpdateGroupMembersResponse {
-    return MsgUpdateGroupMembersResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupMembersResponse): MsgUpdateGroupMembersResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupMembersResponse",
-      value: MsgUpdateGroupMembersResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupMembersResponseProtoMsg): MsgUpdateGroupMembersResponse {
-    return MsgUpdateGroupMembersResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupMembersResponse): Uint8Array {
-    return MsgUpdateGroupMembersResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupMembersResponse): MsgUpdateGroupMembersResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembersResponse",
-      value: MsgUpdateGroupMembersResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupAdmin(): MsgUpdateGroupAdmin {
-  return {
-    admin: "",
-    groupId: BigInt(0),
-    newAdmin: ""
-  };
-}
-export const MsgUpdateGroupAdmin = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-  aminoType: "cosmos-sdk/MsgUpdateGroupAdmin",
-  encode(message: MsgUpdateGroupAdmin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    if (message.newAdmin !== "") {
-      writer.uint32(26).string(message.newAdmin);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupAdmin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupAdmin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        case 3:
-          message.newAdmin = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupAdmin {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      newAdmin: isSet(object.newAdmin) ? String(object.newAdmin) : ""
-    };
-  },
-  toJSON(message: MsgUpdateGroupAdmin): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupAdmin>): MsgUpdateGroupAdmin {
-    const message = createBaseMsgUpdateGroupAdmin();
-    message.admin = object.admin ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.newAdmin = object.newAdmin ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupAdminSDKType): MsgUpdateGroupAdmin {
-    return {
-      admin: object?.admin,
-      groupId: object?.group_id,
-      newAdmin: object?.new_admin
-    };
-  },
-  toSDK(message: MsgUpdateGroupAdmin): MsgUpdateGroupAdminSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupAdminAmino): MsgUpdateGroupAdmin {
-    return {
-      admin: object.admin,
-      groupId: BigInt(object.group_id),
-      newAdmin: object.new_admin
-    };
-  },
-  toAmino(message: MsgUpdateGroupAdmin): MsgUpdateGroupAdminAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupAdminAminoMsg): MsgUpdateGroupAdmin {
-    return MsgUpdateGroupAdmin.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupAdmin): MsgUpdateGroupAdminAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupAdmin",
-      value: MsgUpdateGroupAdmin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupAdminProtoMsg): MsgUpdateGroupAdmin {
-    return MsgUpdateGroupAdmin.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupAdmin): Uint8Array {
-    return MsgUpdateGroupAdmin.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupAdmin): MsgUpdateGroupAdminProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin",
-      value: MsgUpdateGroupAdmin.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupAdminResponse(): MsgUpdateGroupAdminResponse {
-  return {};
-}
-export const MsgUpdateGroupAdminResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdminResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupAdminResponse",
-  encode(_: MsgUpdateGroupAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupAdminResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupAdminResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupAdminResponse>): MsgUpdateGroupAdminResponse {
-    const message = createBaseMsgUpdateGroupAdminResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupAdminResponseSDKType): MsgUpdateGroupAdminResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupAdminResponse): MsgUpdateGroupAdminResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupAdminResponseAmino): MsgUpdateGroupAdminResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupAdminResponse): MsgUpdateGroupAdminResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupAdminResponseAminoMsg): MsgUpdateGroupAdminResponse {
-    return MsgUpdateGroupAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupAdminResponse): MsgUpdateGroupAdminResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupAdminResponse",
-      value: MsgUpdateGroupAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupAdminResponseProtoMsg): MsgUpdateGroupAdminResponse {
-    return MsgUpdateGroupAdminResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupAdminResponse): Uint8Array {
-    return MsgUpdateGroupAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupAdminResponse): MsgUpdateGroupAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdminResponse",
-      value: MsgUpdateGroupAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupMetadata(): MsgUpdateGroupMetadata {
-  return {
-    admin: "",
-    groupId: BigInt(0),
-    metadata: ""
-  };
-}
-export const MsgUpdateGroupMetadata = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-  aminoType: "cosmos-sdk/MsgUpdateGroupMetadata",
-  encode(message: MsgUpdateGroupMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupMetadata {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgUpdateGroupMetadata): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupMetadata>): MsgUpdateGroupMetadata {
-    const message = createBaseMsgUpdateGroupMetadata();
-    message.admin = object.admin ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupMetadataSDKType): MsgUpdateGroupMetadata {
-    return {
-      admin: object?.admin,
-      groupId: object?.group_id,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgUpdateGroupMetadata): MsgUpdateGroupMetadataSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupMetadataAmino): MsgUpdateGroupMetadata {
-    return {
-      admin: object.admin,
-      groupId: BigInt(object.group_id),
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgUpdateGroupMetadata): MsgUpdateGroupMetadataAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupMetadataAminoMsg): MsgUpdateGroupMetadata {
-    return MsgUpdateGroupMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupMetadata): MsgUpdateGroupMetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupMetadata",
-      value: MsgUpdateGroupMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupMetadataProtoMsg): MsgUpdateGroupMetadata {
-    return MsgUpdateGroupMetadata.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupMetadata): Uint8Array {
-    return MsgUpdateGroupMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupMetadata): MsgUpdateGroupMetadataProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata",
-      value: MsgUpdateGroupMetadata.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupMetadataResponse(): MsgUpdateGroupMetadataResponse {
-  return {};
-}
-export const MsgUpdateGroupMetadataResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadataResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupMetadataResponse",
-  encode(_: MsgUpdateGroupMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupMetadataResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupMetadataResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupMetadataResponse>): MsgUpdateGroupMetadataResponse {
-    const message = createBaseMsgUpdateGroupMetadataResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupMetadataResponseSDKType): MsgUpdateGroupMetadataResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupMetadataResponse): MsgUpdateGroupMetadataResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupMetadataResponseAmino): MsgUpdateGroupMetadataResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupMetadataResponse): MsgUpdateGroupMetadataResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupMetadataResponseAminoMsg): MsgUpdateGroupMetadataResponse {
-    return MsgUpdateGroupMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupMetadataResponse): MsgUpdateGroupMetadataResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupMetadataResponse",
-      value: MsgUpdateGroupMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupMetadataResponseProtoMsg): MsgUpdateGroupMetadataResponse {
-    return MsgUpdateGroupMetadataResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupMetadataResponse): Uint8Array {
-    return MsgUpdateGroupMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupMetadataResponse): MsgUpdateGroupMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadataResponse",
-      value: MsgUpdateGroupMetadataResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGroupPolicy(): MsgCreateGroupPolicy {
-  return {
-    admin: "",
-    groupId: BigInt(0),
-    metadata: "",
-    decisionPolicy: Any.fromPartial({})
-  };
-}
-export const MsgCreateGroupPolicy = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-  aminoType: "cosmos-sdk/MsgCreateGroupPolicy",
-  encode(message: MsgCreateGroupPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    if (message.decisionPolicy !== undefined) {
-      Any.encode(message.decisionPolicy, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroupPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroupPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        case 4:
-          message.decisionPolicy = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroupPolicy {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      decisionPolicy: isSet(object.decisionPolicy) ? Any.fromJSON(object.decisionPolicy) : undefined
-    };
-  },
-  toJSON(message: MsgCreateGroupPolicy): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.decisionPolicy !== undefined && (obj.decisionPolicy = message.decisionPolicy ? Any.toJSON(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroupPolicy>): MsgCreateGroupPolicy {
-    const message = createBaseMsgCreateGroupPolicy();
-    message.admin = object.admin ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.metadata = object.metadata ?? "";
-    message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupPolicySDKType): MsgCreateGroupPolicy {
-    return {
-      admin: object?.admin,
-      groupId: object?.group_id,
-      metadata: object?.metadata,
-      decisionPolicy: object.decision_policy ? Any.fromSDK(object.decision_policy) : undefined
-    };
-  },
-  toSDK(message: MsgCreateGroupPolicy): MsgCreateGroupPolicySDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId;
-    obj.metadata = message.metadata;
-    message.decisionPolicy !== undefined && (obj.decision_policy = message.decisionPolicy ? Any.toSDK(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupPolicyAmino): MsgCreateGroupPolicy {
-    return {
-      admin: object.admin,
-      groupId: BigInt(object.group_id),
-      metadata: object.metadata,
-      decisionPolicy: object?.decision_policy ? Any.fromAmino(object.decision_policy) : undefined
-    };
-  },
-  toAmino(message: MsgCreateGroupPolicy): MsgCreateGroupPolicyAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.metadata = message.metadata;
-    obj.decision_policy = message.decisionPolicy ? Any.toAmino(message.decisionPolicy) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupPolicyAminoMsg): MsgCreateGroupPolicy {
-    return MsgCreateGroupPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroupPolicy): MsgCreateGroupPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroupPolicy",
-      value: MsgCreateGroupPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupPolicyProtoMsg): MsgCreateGroupPolicy {
-    return MsgCreateGroupPolicy.decode(message.value);
-  },
-  toProto(message: MsgCreateGroupPolicy): Uint8Array {
-    return MsgCreateGroupPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroupPolicy): MsgCreateGroupPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy",
-      value: MsgCreateGroupPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGroupPolicyResponse(): MsgCreateGroupPolicyResponse {
-  return {
-    address: ""
-  };
-}
-export const MsgCreateGroupPolicyResponse = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicyResponse",
-  aminoType: "cosmos-sdk/MsgCreateGroupPolicyResponse",
-  encode(message: MsgCreateGroupPolicyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroupPolicyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroupPolicyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroupPolicyResponse {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: MsgCreateGroupPolicyResponse): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroupPolicyResponse>): MsgCreateGroupPolicyResponse {
-    const message = createBaseMsgCreateGroupPolicyResponse();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupPolicyResponseSDKType): MsgCreateGroupPolicyResponse {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: MsgCreateGroupPolicyResponse): MsgCreateGroupPolicyResponseSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupPolicyResponseAmino): MsgCreateGroupPolicyResponse {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: MsgCreateGroupPolicyResponse): MsgCreateGroupPolicyResponseAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupPolicyResponseAminoMsg): MsgCreateGroupPolicyResponse {
-    return MsgCreateGroupPolicyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroupPolicyResponse): MsgCreateGroupPolicyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroupPolicyResponse",
-      value: MsgCreateGroupPolicyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupPolicyResponseProtoMsg): MsgCreateGroupPolicyResponse {
-    return MsgCreateGroupPolicyResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateGroupPolicyResponse): Uint8Array {
-    return MsgCreateGroupPolicyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroupPolicyResponse): MsgCreateGroupPolicyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicyResponse",
-      value: MsgCreateGroupPolicyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyAdmin(): MsgUpdateGroupPolicyAdmin {
-  return {
-    admin: "",
-    address: "",
-    newAdmin: ""
-  };
-}
-export const MsgUpdateGroupPolicyAdmin = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyAdmin",
-  encode(message: MsgUpdateGroupPolicyAdmin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    if (message.newAdmin !== "") {
-      writer.uint32(26).string(message.newAdmin);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdmin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyAdmin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        case 3:
-          message.newAdmin = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupPolicyAdmin {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      address: isSet(object.address) ? String(object.address) : "",
-      newAdmin: isSet(object.newAdmin) ? String(object.newAdmin) : ""
-    };
-  },
-  toJSON(message: MsgUpdateGroupPolicyAdmin): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.address !== undefined && (obj.address = message.address);
-    message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupPolicyAdmin>): MsgUpdateGroupPolicyAdmin {
-    const message = createBaseMsgUpdateGroupPolicyAdmin();
-    message.admin = object.admin ?? "";
-    message.address = object.address ?? "";
-    message.newAdmin = object.newAdmin ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupPolicyAdminSDKType): MsgUpdateGroupPolicyAdmin {
-    return {
-      admin: object?.admin,
-      address: object?.address,
-      newAdmin: object?.new_admin
-    };
-  },
-  toSDK(message: MsgUpdateGroupPolicyAdmin): MsgUpdateGroupPolicyAdminSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupPolicyAdminAmino): MsgUpdateGroupPolicyAdmin {
-    return {
-      admin: object.admin,
-      address: object.address,
-      newAdmin: object.new_admin
-    };
-  },
-  toAmino(message: MsgUpdateGroupPolicyAdmin): MsgUpdateGroupPolicyAdminAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyAdminAminoMsg): MsgUpdateGroupPolicyAdmin {
-    return MsgUpdateGroupPolicyAdmin.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyAdmin): MsgUpdateGroupPolicyAdminAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyAdmin",
-      value: MsgUpdateGroupPolicyAdmin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyAdminProtoMsg): MsgUpdateGroupPolicyAdmin {
-    return MsgUpdateGroupPolicyAdmin.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyAdmin): Uint8Array {
-    return MsgUpdateGroupPolicyAdmin.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyAdmin): MsgUpdateGroupPolicyAdminProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin",
-      value: MsgUpdateGroupPolicyAdmin.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGroupWithPolicy(): MsgCreateGroupWithPolicy {
-  return {
-    admin: "",
-    members: [],
-    groupMetadata: "",
-    groupPolicyMetadata: "",
-    groupPolicyAsAdmin: false,
-    decisionPolicy: Any.fromPartial({})
-  };
-}
-export const MsgCreateGroupWithPolicy = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-  aminoType: "cosmos-sdk/MsgCreateGroupWithPolicy",
-  encode(message: MsgCreateGroupWithPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    for (const v of message.members) {
-      Member.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.groupMetadata !== "") {
-      writer.uint32(26).string(message.groupMetadata);
-    }
-    if (message.groupPolicyMetadata !== "") {
-      writer.uint32(34).string(message.groupPolicyMetadata);
-    }
-    if (message.groupPolicyAsAdmin === true) {
-      writer.uint32(40).bool(message.groupPolicyAsAdmin);
-    }
-    if (message.decisionPolicy !== undefined) {
-      Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroupWithPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroupWithPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.members.push(Member.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.groupMetadata = reader.string();
-          break;
-        case 4:
-          message.groupPolicyMetadata = reader.string();
-          break;
-        case 5:
-          message.groupPolicyAsAdmin = reader.bool();
-          break;
-        case 6:
-          message.decisionPolicy = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroupWithPolicy {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromJSON(e)) : [],
-      groupMetadata: isSet(object.groupMetadata) ? String(object.groupMetadata) : "",
-      groupPolicyMetadata: isSet(object.groupPolicyMetadata) ? String(object.groupPolicyMetadata) : "",
-      groupPolicyAsAdmin: isSet(object.groupPolicyAsAdmin) ? Boolean(object.groupPolicyAsAdmin) : false,
-      decisionPolicy: isSet(object.decisionPolicy) ? Any.fromJSON(object.decisionPolicy) : undefined
-    };
-  },
-  toJSON(message: MsgCreateGroupWithPolicy): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toJSON(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    message.groupMetadata !== undefined && (obj.groupMetadata = message.groupMetadata);
-    message.groupPolicyMetadata !== undefined && (obj.groupPolicyMetadata = message.groupPolicyMetadata);
-    message.groupPolicyAsAdmin !== undefined && (obj.groupPolicyAsAdmin = message.groupPolicyAsAdmin);
-    message.decisionPolicy !== undefined && (obj.decisionPolicy = message.decisionPolicy ? Any.toJSON(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroupWithPolicy>): MsgCreateGroupWithPolicy {
-    const message = createBaseMsgCreateGroupWithPolicy();
-    message.admin = object.admin ?? "";
-    message.members = object.members?.map(e => Member.fromPartial(e)) || [];
-    message.groupMetadata = object.groupMetadata ?? "";
-    message.groupPolicyMetadata = object.groupPolicyMetadata ?? "";
-    message.groupPolicyAsAdmin = object.groupPolicyAsAdmin ?? false;
-    message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupWithPolicySDKType): MsgCreateGroupWithPolicy {
-    return {
-      admin: object?.admin,
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromSDK(e)) : [],
-      groupMetadata: object?.group_metadata,
-      groupPolicyMetadata: object?.group_policy_metadata,
-      groupPolicyAsAdmin: object?.group_policy_as_admin,
-      decisionPolicy: object.decision_policy ? Any.fromSDK(object.decision_policy) : undefined
-    };
-  },
-  toSDK(message: MsgCreateGroupWithPolicy): MsgCreateGroupWithPolicySDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toSDK(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    obj.group_metadata = message.groupMetadata;
-    obj.group_policy_metadata = message.groupPolicyMetadata;
-    obj.group_policy_as_admin = message.groupPolicyAsAdmin;
-    message.decisionPolicy !== undefined && (obj.decision_policy = message.decisionPolicy ? Any.toSDK(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupWithPolicyAmino): MsgCreateGroupWithPolicy {
-    return {
-      admin: object.admin,
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromAmino(e)) : [],
-      groupMetadata: object.group_metadata,
-      groupPolicyMetadata: object.group_policy_metadata,
-      groupPolicyAsAdmin: object.group_policy_as_admin,
-      decisionPolicy: object?.decision_policy ? Any.fromAmino(object.decision_policy) : undefined
-    };
-  },
-  toAmino(message: MsgCreateGroupWithPolicy): MsgCreateGroupWithPolicyAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toAmino(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    obj.group_metadata = message.groupMetadata;
-    obj.group_policy_metadata = message.groupPolicyMetadata;
-    obj.group_policy_as_admin = message.groupPolicyAsAdmin;
-    obj.decision_policy = message.decisionPolicy ? Any.toAmino(message.decisionPolicy) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupWithPolicyAminoMsg): MsgCreateGroupWithPolicy {
-    return MsgCreateGroupWithPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroupWithPolicy): MsgCreateGroupWithPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroupWithPolicy",
-      value: MsgCreateGroupWithPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupWithPolicyProtoMsg): MsgCreateGroupWithPolicy {
-    return MsgCreateGroupWithPolicy.decode(message.value);
-  },
-  toProto(message: MsgCreateGroupWithPolicy): Uint8Array {
-    return MsgCreateGroupWithPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroupWithPolicy): MsgCreateGroupWithPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy",
-      value: MsgCreateGroupWithPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGroupWithPolicyResponse(): MsgCreateGroupWithPolicyResponse {
-  return {
-    groupId: BigInt(0),
-    groupPolicyAddress: ""
-  };
-}
-export const MsgCreateGroupWithPolicyResponse = {
-  typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicyResponse",
-  aminoType: "cosmos-sdk/MsgCreateGroupWithPolicyResponse",
-  encode(message: MsgCreateGroupWithPolicyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    if (message.groupPolicyAddress !== "") {
-      writer.uint32(18).string(message.groupPolicyAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGroupWithPolicyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGroupWithPolicyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        case 2:
-          message.groupPolicyAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGroupWithPolicyResponse {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      groupPolicyAddress: isSet(object.groupPolicyAddress) ? String(object.groupPolicyAddress) : ""
-    };
-  },
-  toJSON(message: MsgCreateGroupWithPolicyResponse): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGroupWithPolicyResponse>): MsgCreateGroupWithPolicyResponse {
-    const message = createBaseMsgCreateGroupWithPolicyResponse();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.groupPolicyAddress = object.groupPolicyAddress ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateGroupWithPolicyResponseSDKType): MsgCreateGroupWithPolicyResponse {
-    return {
-      groupId: object?.group_id,
-      groupPolicyAddress: object?.group_policy_address
-    };
-  },
-  toSDK(message: MsgCreateGroupWithPolicyResponse): MsgCreateGroupWithPolicyResponseSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    obj.group_policy_address = message.groupPolicyAddress;
-    return obj;
-  },
-  fromAmino(object: MsgCreateGroupWithPolicyResponseAmino): MsgCreateGroupWithPolicyResponse {
-    return {
-      groupId: BigInt(object.group_id),
-      groupPolicyAddress: object.group_policy_address
-    };
-  },
-  toAmino(message: MsgCreateGroupWithPolicyResponse): MsgCreateGroupWithPolicyResponseAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.group_policy_address = message.groupPolicyAddress;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGroupWithPolicyResponseAminoMsg): MsgCreateGroupWithPolicyResponse {
-    return MsgCreateGroupWithPolicyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGroupWithPolicyResponse): MsgCreateGroupWithPolicyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateGroupWithPolicyResponse",
-      value: MsgCreateGroupWithPolicyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGroupWithPolicyResponseProtoMsg): MsgCreateGroupWithPolicyResponse {
-    return MsgCreateGroupWithPolicyResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateGroupWithPolicyResponse): Uint8Array {
-    return MsgCreateGroupWithPolicyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGroupWithPolicyResponse): MsgCreateGroupWithPolicyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicyResponse",
-      value: MsgCreateGroupWithPolicyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyAdminResponse(): MsgUpdateGroupPolicyAdminResponse {
-  return {};
-}
-export const MsgUpdateGroupPolicyAdminResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyAdminResponse",
-  encode(_: MsgUpdateGroupPolicyAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupPolicyAdminResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupPolicyAdminResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupPolicyAdminResponse>): MsgUpdateGroupPolicyAdminResponse {
-    const message = createBaseMsgUpdateGroupPolicyAdminResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupPolicyAdminResponseSDKType): MsgUpdateGroupPolicyAdminResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupPolicyAdminResponse): MsgUpdateGroupPolicyAdminResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupPolicyAdminResponseAmino): MsgUpdateGroupPolicyAdminResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupPolicyAdminResponse): MsgUpdateGroupPolicyAdminResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyAdminResponseAminoMsg): MsgUpdateGroupPolicyAdminResponse {
-    return MsgUpdateGroupPolicyAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyAdminResponse): MsgUpdateGroupPolicyAdminResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyAdminResponse",
-      value: MsgUpdateGroupPolicyAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyAdminResponseProtoMsg): MsgUpdateGroupPolicyAdminResponse {
-    return MsgUpdateGroupPolicyAdminResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyAdminResponse): Uint8Array {
-    return MsgUpdateGroupPolicyAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyAdminResponse): MsgUpdateGroupPolicyAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse",
-      value: MsgUpdateGroupPolicyAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyDecisionPolicy(): MsgUpdateGroupPolicyDecisionPolicy {
-  return {
-    admin: "",
-    address: "",
-    decisionPolicy: Any.fromPartial({})
-  };
-}
-export const MsgUpdateGroupPolicyDecisionPolicy = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicy",
-  encode(message: MsgUpdateGroupPolicyDecisionPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    if (message.decisionPolicy !== undefined) {
-      Any.encode(message.decisionPolicy, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        case 3:
-          message.decisionPolicy = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupPolicyDecisionPolicy {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      address: isSet(object.address) ? String(object.address) : "",
-      decisionPolicy: isSet(object.decisionPolicy) ? Any.fromJSON(object.decisionPolicy) : undefined
-    };
-  },
-  toJSON(message: MsgUpdateGroupPolicyDecisionPolicy): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.address !== undefined && (obj.address = message.address);
-    message.decisionPolicy !== undefined && (obj.decisionPolicy = message.decisionPolicy ? Any.toJSON(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupPolicyDecisionPolicy>): MsgUpdateGroupPolicyDecisionPolicy {
-    const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();
-    message.admin = object.admin ?? "";
-    message.address = object.address ?? "";
-    message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupPolicyDecisionPolicySDKType): MsgUpdateGroupPolicyDecisionPolicy {
-    return {
-      admin: object?.admin,
-      address: object?.address,
-      decisionPolicy: object.decision_policy ? Any.fromSDK(object.decision_policy) : undefined
-    };
-  },
-  toSDK(message: MsgUpdateGroupPolicyDecisionPolicy): MsgUpdateGroupPolicyDecisionPolicySDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    message.decisionPolicy !== undefined && (obj.decision_policy = message.decisionPolicy ? Any.toSDK(message.decisionPolicy) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupPolicyDecisionPolicyAmino): MsgUpdateGroupPolicyDecisionPolicy {
-    return {
-      admin: object.admin,
-      address: object.address,
-      decisionPolicy: object?.decision_policy ? Any.fromAmino(object.decision_policy) : undefined
-    };
-  },
-  toAmino(message: MsgUpdateGroupPolicyDecisionPolicy): MsgUpdateGroupPolicyDecisionPolicyAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    obj.decision_policy = message.decisionPolicy ? Any.toAmino(message.decisionPolicy) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyDecisionPolicyAminoMsg): MsgUpdateGroupPolicyDecisionPolicy {
-    return MsgUpdateGroupPolicyDecisionPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyDecisionPolicy): MsgUpdateGroupPolicyDecisionPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicy",
-      value: MsgUpdateGroupPolicyDecisionPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyDecisionPolicyProtoMsg): MsgUpdateGroupPolicyDecisionPolicy {
-    return MsgUpdateGroupPolicyDecisionPolicy.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyDecisionPolicy): Uint8Array {
-    return MsgUpdateGroupPolicyDecisionPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyDecisionPolicy): MsgUpdateGroupPolicyDecisionPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy",
-      value: MsgUpdateGroupPolicyDecisionPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(): MsgUpdateGroupPolicyDecisionPolicyResponse {
-  return {};
-}
-export const MsgUpdateGroupPolicyDecisionPolicyResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicyResponse",
-  encode(_: MsgUpdateGroupPolicyDecisionPolicyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupPolicyDecisionPolicyResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupPolicyDecisionPolicyResponse>): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupPolicyDecisionPolicyResponseSDKType): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupPolicyDecisionPolicyResponse): MsgUpdateGroupPolicyDecisionPolicyResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupPolicyDecisionPolicyResponseAmino): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupPolicyDecisionPolicyResponse): MsgUpdateGroupPolicyDecisionPolicyResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyDecisionPolicyResponseAminoMsg): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    return MsgUpdateGroupPolicyDecisionPolicyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyDecisionPolicyResponse): MsgUpdateGroupPolicyDecisionPolicyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyDecisionPolicyResponse",
-      value: MsgUpdateGroupPolicyDecisionPolicyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyDecisionPolicyResponseProtoMsg): MsgUpdateGroupPolicyDecisionPolicyResponse {
-    return MsgUpdateGroupPolicyDecisionPolicyResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyDecisionPolicyResponse): Uint8Array {
-    return MsgUpdateGroupPolicyDecisionPolicyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyDecisionPolicyResponse): MsgUpdateGroupPolicyDecisionPolicyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse",
-      value: MsgUpdateGroupPolicyDecisionPolicyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyMetadata(): MsgUpdateGroupPolicyMetadata {
-  return {
-    admin: "",
-    address: "",
-    metadata: ""
-  };
-}
-export const MsgUpdateGroupPolicyMetadata = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyMetadata",
-  encode(message: MsgUpdateGroupPolicyMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateGroupPolicyMetadata {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      address: isSet(object.address) ? String(object.address) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : ""
-    };
-  },
-  toJSON(message: MsgUpdateGroupPolicyMetadata): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.address !== undefined && (obj.address = message.address);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateGroupPolicyMetadata>): MsgUpdateGroupPolicyMetadata {
-    const message = createBaseMsgUpdateGroupPolicyMetadata();
-    message.admin = object.admin ?? "";
-    message.address = object.address ?? "";
-    message.metadata = object.metadata ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateGroupPolicyMetadataSDKType): MsgUpdateGroupPolicyMetadata {
-    return {
-      admin: object?.admin,
-      address: object?.address,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: MsgUpdateGroupPolicyMetadata): MsgUpdateGroupPolicyMetadataSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateGroupPolicyMetadataAmino): MsgUpdateGroupPolicyMetadata {
-    return {
-      admin: object.admin,
-      address: object.address,
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: MsgUpdateGroupPolicyMetadata): MsgUpdateGroupPolicyMetadataAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    obj.address = message.address;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyMetadataAminoMsg): MsgUpdateGroupPolicyMetadata {
-    return MsgUpdateGroupPolicyMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyMetadata): MsgUpdateGroupPolicyMetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyMetadata",
-      value: MsgUpdateGroupPolicyMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyMetadataProtoMsg): MsgUpdateGroupPolicyMetadata {
-    return MsgUpdateGroupPolicyMetadata.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyMetadata): Uint8Array {
-    return MsgUpdateGroupPolicyMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyMetadata): MsgUpdateGroupPolicyMetadataProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata",
-      value: MsgUpdateGroupPolicyMetadata.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateGroupPolicyMetadataResponse(): MsgUpdateGroupPolicyMetadataResponse {
-  return {};
-}
-export const MsgUpdateGroupPolicyMetadataResponse = {
-  typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse",
-  aminoType: "cosmos-sdk/MsgUpdateGroupPolicyMetadataResponse",
-  encode(_: MsgUpdateGroupPolicyMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateGroupPolicyMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateGroupPolicyMetadataResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateGroupPolicyMetadataResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateGroupPolicyMetadataResponse>): MsgUpdateGroupPolicyMetadataResponse {
-    const message = createBaseMsgUpdateGroupPolicyMetadataResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateGroupPolicyMetadataResponseSDKType): MsgUpdateGroupPolicyMetadataResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateGroupPolicyMetadataResponse): MsgUpdateGroupPolicyMetadataResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateGroupPolicyMetadataResponseAmino): MsgUpdateGroupPolicyMetadataResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateGroupPolicyMetadataResponse): MsgUpdateGroupPolicyMetadataResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateGroupPolicyMetadataResponseAminoMsg): MsgUpdateGroupPolicyMetadataResponse {
-    return MsgUpdateGroupPolicyMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateGroupPolicyMetadataResponse): MsgUpdateGroupPolicyMetadataResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateGroupPolicyMetadataResponse",
-      value: MsgUpdateGroupPolicyMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateGroupPolicyMetadataResponseProtoMsg): MsgUpdateGroupPolicyMetadataResponse {
-    return MsgUpdateGroupPolicyMetadataResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateGroupPolicyMetadataResponse): Uint8Array {
-    return MsgUpdateGroupPolicyMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateGroupPolicyMetadataResponse): MsgUpdateGroupPolicyMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse",
-      value: MsgUpdateGroupPolicyMetadataResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitProposal(): MsgSubmitProposal {
-  return {
-    address: "",
-    proposers: [],
-    metadata: "",
-    messages: [],
-    exec: 0
-  };
-}
-export const MsgSubmitProposal = {
-  typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-  aminoType: "cosmos-sdk/group/MsgSubmitProposal",
-  encode(message: MsgSubmitProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.proposers) {
-      writer.uint32(18).string(v!);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    for (const v of message.messages) {
-      Any.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.exec !== 0) {
-      writer.uint32(40).int32(message.exec);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.proposers.push(reader.string());
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        case 4:
-          message.messages.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.exec = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposal {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => String(e)) : [],
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromJSON(e)) : [],
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toJSON(message: MsgSubmitProposal): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    message.exec !== undefined && (obj.exec = execToJSON(message.exec));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposal>): MsgSubmitProposal {
-    const message = createBaseMsgSubmitProposal();
-    message.address = object.address ?? "";
-    message.proposers = object.proposers?.map(e => e) || [];
-    message.metadata = object.metadata ?? "";
-    message.messages = object.messages?.map(e => Any.fromPartial(e)) || [];
-    message.exec = object.exec ?? 0;
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalSDKType): MsgSubmitProposal {
-    return {
-      address: object?.address,
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => e) : [],
-      metadata: object?.metadata,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromSDK(e)) : [],
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toSDK(message: MsgSubmitProposal): MsgSubmitProposalSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    obj.metadata = message.metadata;
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    message.exec !== undefined && (obj.exec = execToJSON(message.exec));
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalAmino): MsgSubmitProposal {
-    return {
-      address: object.address,
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => e) : [],
-      metadata: object.metadata,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromAmino(e)) : [],
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toAmino(message: MsgSubmitProposal): MsgSubmitProposalAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    obj.metadata = message.metadata;
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    obj.exec = message.exec;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalAminoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposal): MsgSubmitProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/group/MsgSubmitProposal",
-      value: MsgSubmitProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalProtoMsg): MsgSubmitProposal {
-    return MsgSubmitProposal.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposal): Uint8Array {
-    return MsgSubmitProposal.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposal): MsgSubmitProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgSubmitProposal",
-      value: MsgSubmitProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse {
-  return {
-    proposalId: BigInt(0)
-  };
-}
-export const MsgSubmitProposalResponse = {
-  typeUrl: "/cosmos.group.v1.MsgSubmitProposalResponse",
-  aminoType: "cosmos-sdk/MsgSubmitProposalResponse",
-  encode(message: MsgSubmitProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitProposalResponse {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgSubmitProposalResponse): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitProposalResponse>): MsgSubmitProposalResponse {
-    const message = createBaseMsgSubmitProposalResponse();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgSubmitProposalResponseSDKType): MsgSubmitProposalResponse {
-    return {
-      proposalId: object?.proposal_id
-    };
-  },
-  toSDK(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitProposalResponseAmino): MsgSubmitProposalResponse {
-    return {
-      proposalId: BigInt(object.proposal_id)
-    };
-  },
-  toAmino(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitProposalResponseAminoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitProposalResponseProtoMsg): MsgSubmitProposalResponse {
-    return MsgSubmitProposalResponse.decode(message.value);
-  },
-  toProto(message: MsgSubmitProposalResponse): Uint8Array {
-    return MsgSubmitProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitProposalResponse): MsgSubmitProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgSubmitProposalResponse",
-      value: MsgSubmitProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawProposal(): MsgWithdrawProposal {
-  return {
-    proposalId: BigInt(0),
-    address: ""
-  };
-}
-export const MsgWithdrawProposal = {
-  typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-  aminoType: "cosmos-sdk/group/MsgWithdrawProposal",
-  encode(message: MsgWithdrawProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgWithdrawProposal {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: MsgWithdrawProposal): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgWithdrawProposal>): MsgWithdrawProposal {
-    const message = createBaseMsgWithdrawProposal();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: MsgWithdrawProposalSDKType): MsgWithdrawProposal {
-    return {
-      proposalId: object?.proposal_id,
-      address: object?.address
-    };
-  },
-  toSDK(message: MsgWithdrawProposal): MsgWithdrawProposalSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: MsgWithdrawProposalAmino): MsgWithdrawProposal {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      address: object.address
-    };
-  },
-  toAmino(message: MsgWithdrawProposal): MsgWithdrawProposalAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawProposalAminoMsg): MsgWithdrawProposal {
-    return MsgWithdrawProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawProposal): MsgWithdrawProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/group/MsgWithdrawProposal",
-      value: MsgWithdrawProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawProposalProtoMsg): MsgWithdrawProposal {
-    return MsgWithdrawProposal.decode(message.value);
-  },
-  toProto(message: MsgWithdrawProposal): Uint8Array {
-    return MsgWithdrawProposal.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawProposal): MsgWithdrawProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgWithdrawProposal",
-      value: MsgWithdrawProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgWithdrawProposalResponse(): MsgWithdrawProposalResponse {
-  return {};
-}
-export const MsgWithdrawProposalResponse = {
-  typeUrl: "/cosmos.group.v1.MsgWithdrawProposalResponse",
-  aminoType: "cosmos-sdk/MsgWithdrawProposalResponse",
-  encode(_: MsgWithdrawProposalResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawProposalResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgWithdrawProposalResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgWithdrawProposalResponse {
-    return {};
-  },
-  toJSON(_: MsgWithdrawProposalResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgWithdrawProposalResponse>): MsgWithdrawProposalResponse {
-    const message = createBaseMsgWithdrawProposalResponse();
-    return message;
-  },
-  fromSDK(_: MsgWithdrawProposalResponseSDKType): MsgWithdrawProposalResponse {
-    return {};
-  },
-  toSDK(_: MsgWithdrawProposalResponse): MsgWithdrawProposalResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgWithdrawProposalResponseAmino): MsgWithdrawProposalResponse {
-    return {};
-  },
-  toAmino(_: MsgWithdrawProposalResponse): MsgWithdrawProposalResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgWithdrawProposalResponseAminoMsg): MsgWithdrawProposalResponse {
-    return MsgWithdrawProposalResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgWithdrawProposalResponse): MsgWithdrawProposalResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgWithdrawProposalResponse",
-      value: MsgWithdrawProposalResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgWithdrawProposalResponseProtoMsg): MsgWithdrawProposalResponse {
-    return MsgWithdrawProposalResponse.decode(message.value);
-  },
-  toProto(message: MsgWithdrawProposalResponse): Uint8Array {
-    return MsgWithdrawProposalResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgWithdrawProposalResponse): MsgWithdrawProposalResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgWithdrawProposalResponse",
-      value: MsgWithdrawProposalResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVote(): MsgVote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    option: 0,
-    metadata: "",
-    exec: 0
-  };
-}
-export const MsgVote = {
-  typeUrl: "/cosmos.group.v1.MsgVote",
-  aminoType: "cosmos-sdk/group/MsgVote",
-  encode(message: MsgVote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.option !== 0) {
-      writer.uint32(24).int32(message.option);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    if (message.exec !== 0) {
-      writer.uint32(40).int32(message.exec);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.option = (reader.int32() as any);
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        case 5:
-          message.exec = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgVote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toJSON(message: MsgVote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.exec !== undefined && (obj.exec = execToJSON(message.exec));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgVote>): MsgVote {
-    const message = createBaseMsgVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.option = object.option ?? 0;
-    message.metadata = object.metadata ?? "";
-    message.exec = object.exec ?? 0;
-    return message;
-  },
-  fromSDK(object: MsgVoteSDKType): MsgVote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object?.metadata,
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toSDK(message: MsgVote): MsgVoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    obj.metadata = message.metadata;
-    message.exec !== undefined && (obj.exec = execToJSON(message.exec));
-    return obj;
-  },
-  fromAmino(object: MsgVoteAmino): MsgVote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object.metadata,
-      exec: isSet(object.exec) ? execFromJSON(object.exec) : -1
-    };
-  },
-  toAmino(message: MsgVote): MsgVoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    obj.option = message.option;
-    obj.metadata = message.metadata;
-    obj.exec = message.exec;
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteAminoMsg): MsgVote {
-    return MsgVote.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVote): MsgVoteAminoMsg {
-    return {
-      type: "cosmos-sdk/group/MsgVote",
-      value: MsgVote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteProtoMsg): MsgVote {
-    return MsgVote.decode(message.value);
-  },
-  toProto(message: MsgVote): Uint8Array {
-    return MsgVote.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVote): MsgVoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgVote",
-      value: MsgVote.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgVoteResponse(): MsgVoteResponse {
-  return {};
-}
-export const MsgVoteResponse = {
-  typeUrl: "/cosmos.group.v1.MsgVoteResponse",
-  aminoType: "cosmos-sdk/MsgVoteResponse",
-  encode(_: MsgVoteResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgVoteResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgVoteResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgVoteResponse {
-    return {};
-  },
-  toJSON(_: MsgVoteResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgVoteResponse>): MsgVoteResponse {
-    const message = createBaseMsgVoteResponse();
-    return message;
-  },
-  fromSDK(_: MsgVoteResponseSDKType): MsgVoteResponse {
-    return {};
-  },
-  toSDK(_: MsgVoteResponse): MsgVoteResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgVoteResponseAmino): MsgVoteResponse {
-    return {};
-  },
-  toAmino(_: MsgVoteResponse): MsgVoteResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgVoteResponseAminoMsg): MsgVoteResponse {
-    return MsgVoteResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgVoteResponse): MsgVoteResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgVoteResponse",
-      value: MsgVoteResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgVoteResponseProtoMsg): MsgVoteResponse {
-    return MsgVoteResponse.decode(message.value);
-  },
-  toProto(message: MsgVoteResponse): Uint8Array {
-    return MsgVoteResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgVoteResponse): MsgVoteResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgVoteResponse",
-      value: MsgVoteResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExec(): MsgExec {
-  return {
-    proposalId: BigInt(0),
-    signer: ""
-  };
-}
-export const MsgExec = {
-  typeUrl: "/cosmos.group.v1.MsgExec",
-  aminoType: "cosmos-sdk/group/MsgExec",
-  encode(message: MsgExec, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.signer !== "") {
-      writer.uint32(18).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExec {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExec();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExec {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgExec): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExec>): MsgExec {
-    const message = createBaseMsgExec();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExecSDKType): MsgExec {
-    return {
-      proposalId: object?.proposal_id,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgExec): MsgExecSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgExecAmino): MsgExec {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgExec): MsgExecAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecAminoMsg): MsgExec {
-    return MsgExec.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExec): MsgExecAminoMsg {
-    return {
-      type: "cosmos-sdk/group/MsgExec",
-      value: MsgExec.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecProtoMsg): MsgExec {
-    return MsgExec.decode(message.value);
-  },
-  toProto(message: MsgExec): Uint8Array {
-    return MsgExec.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExec): MsgExecProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgExec",
-      value: MsgExec.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecResponse(): MsgExecResponse {
-  return {};
-}
-export const MsgExecResponse = {
-  typeUrl: "/cosmos.group.v1.MsgExecResponse",
-  aminoType: "cosmos-sdk/MsgExecResponse",
-  encode(_: MsgExecResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgExecResponse {
-    return {};
-  },
-  toJSON(_: MsgExecResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgExecResponse>): MsgExecResponse {
-    const message = createBaseMsgExecResponse();
-    return message;
-  },
-  fromSDK(_: MsgExecResponseSDKType): MsgExecResponse {
-    return {};
-  },
-  toSDK(_: MsgExecResponse): MsgExecResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgExecResponseAmino): MsgExecResponse {
-    return {};
-  },
-  toAmino(_: MsgExecResponse): MsgExecResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecResponseAminoMsg): MsgExecResponse {
-    return MsgExecResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecResponse): MsgExecResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgExecResponse",
-      value: MsgExecResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecResponseProtoMsg): MsgExecResponse {
-    return MsgExecResponse.decode(message.value);
-  },
-  toProto(message: MsgExecResponse): Uint8Array {
-    return MsgExecResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecResponse): MsgExecResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgExecResponse",
-      value: MsgExecResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgLeaveGroup(): MsgLeaveGroup {
-  return {
-    address: "",
-    groupId: BigInt(0)
-  };
-}
-export const MsgLeaveGroup = {
-  typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-  aminoType: "cosmos-sdk/group/MsgLeaveGroup",
-  encode(message: MsgLeaveGroup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLeaveGroup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLeaveGroup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgLeaveGroup {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgLeaveGroup): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgLeaveGroup>): MsgLeaveGroup {
-    const message = createBaseMsgLeaveGroup();
-    message.address = object.address ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgLeaveGroupSDKType): MsgLeaveGroup {
-    return {
-      address: object?.address,
-      groupId: object?.group_id
-    };
-  },
-  toSDK(message: MsgLeaveGroup): MsgLeaveGroupSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.group_id = message.groupId;
-    return obj;
-  },
-  fromAmino(object: MsgLeaveGroupAmino): MsgLeaveGroup {
-    return {
-      address: object.address,
-      groupId: BigInt(object.group_id)
-    };
-  },
-  toAmino(message: MsgLeaveGroup): MsgLeaveGroupAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgLeaveGroupAminoMsg): MsgLeaveGroup {
-    return MsgLeaveGroup.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLeaveGroup): MsgLeaveGroupAminoMsg {
-    return {
-      type: "cosmos-sdk/group/MsgLeaveGroup",
-      value: MsgLeaveGroup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLeaveGroupProtoMsg): MsgLeaveGroup {
-    return MsgLeaveGroup.decode(message.value);
-  },
-  toProto(message: MsgLeaveGroup): Uint8Array {
-    return MsgLeaveGroup.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLeaveGroup): MsgLeaveGroupProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgLeaveGroup",
-      value: MsgLeaveGroup.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgLeaveGroupResponse(): MsgLeaveGroupResponse {
-  return {};
-}
-export const MsgLeaveGroupResponse = {
-  typeUrl: "/cosmos.group.v1.MsgLeaveGroupResponse",
-  aminoType: "cosmos-sdk/MsgLeaveGroupResponse",
-  encode(_: MsgLeaveGroupResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLeaveGroupResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLeaveGroupResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgLeaveGroupResponse {
-    return {};
-  },
-  toJSON(_: MsgLeaveGroupResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgLeaveGroupResponse>): MsgLeaveGroupResponse {
-    const message = createBaseMsgLeaveGroupResponse();
-    return message;
-  },
-  fromSDK(_: MsgLeaveGroupResponseSDKType): MsgLeaveGroupResponse {
-    return {};
-  },
-  toSDK(_: MsgLeaveGroupResponse): MsgLeaveGroupResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgLeaveGroupResponseAmino): MsgLeaveGroupResponse {
-    return {};
-  },
-  toAmino(_: MsgLeaveGroupResponse): MsgLeaveGroupResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgLeaveGroupResponseAminoMsg): MsgLeaveGroupResponse {
-    return MsgLeaveGroupResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLeaveGroupResponse): MsgLeaveGroupResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgLeaveGroupResponse",
-      value: MsgLeaveGroupResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLeaveGroupResponseProtoMsg): MsgLeaveGroupResponse {
-    return MsgLeaveGroupResponse.decode(message.value);
-  },
-  toProto(message: MsgLeaveGroupResponse): Uint8Array {
-    return MsgLeaveGroupResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLeaveGroupResponse): MsgLeaveGroupResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.MsgLeaveGroupResponse",
-      value: MsgLeaveGroupResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/group/v1/types.ts b/examples/injective/src/codegen/cosmos/group/v1/types.ts
deleted file mode 100644
index d7a72a8b..00000000
--- a/examples/injective/src/codegen/cosmos/group/v1/types.ts
+++ /dev/null
@@ -1,2277 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-/** VoteOption enumerates the valid vote options for a given proposal. */
-export enum VoteOption {
-  /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */
-  VOTE_OPTION_UNSPECIFIED = 0,
-  /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */
-  VOTE_OPTION_YES = 1,
-  /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */
-  VOTE_OPTION_ABSTAIN = 2,
-  /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */
-  VOTE_OPTION_NO = 3,
-  /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */
-  VOTE_OPTION_NO_WITH_VETO = 4,
-  UNRECOGNIZED = -1,
-}
-export const VoteOptionSDKType = VoteOption;
-export const VoteOptionAmino = VoteOption;
-export function voteOptionFromJSON(object: any): VoteOption {
-  switch (object) {
-    case 0:
-    case "VOTE_OPTION_UNSPECIFIED":
-      return VoteOption.VOTE_OPTION_UNSPECIFIED;
-    case 1:
-    case "VOTE_OPTION_YES":
-      return VoteOption.VOTE_OPTION_YES;
-    case 2:
-    case "VOTE_OPTION_ABSTAIN":
-      return VoteOption.VOTE_OPTION_ABSTAIN;
-    case 3:
-    case "VOTE_OPTION_NO":
-      return VoteOption.VOTE_OPTION_NO;
-    case 4:
-    case "VOTE_OPTION_NO_WITH_VETO":
-      return VoteOption.VOTE_OPTION_NO_WITH_VETO;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return VoteOption.UNRECOGNIZED;
-  }
-}
-export function voteOptionToJSON(object: VoteOption): string {
-  switch (object) {
-    case VoteOption.VOTE_OPTION_UNSPECIFIED:
-      return "VOTE_OPTION_UNSPECIFIED";
-    case VoteOption.VOTE_OPTION_YES:
-      return "VOTE_OPTION_YES";
-    case VoteOption.VOTE_OPTION_ABSTAIN:
-      return "VOTE_OPTION_ABSTAIN";
-    case VoteOption.VOTE_OPTION_NO:
-      return "VOTE_OPTION_NO";
-    case VoteOption.VOTE_OPTION_NO_WITH_VETO:
-      return "VOTE_OPTION_NO_WITH_VETO";
-    case VoteOption.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ProposalStatus defines proposal statuses. */
-export enum ProposalStatus {
-  /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */
-  PROPOSAL_STATUS_UNSPECIFIED = 0,
-  /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when persisted. */
-  PROPOSAL_STATUS_SUBMITTED = 1,
-  /** PROPOSAL_STATUS_CLOSED - Final status of a proposal when the final tally was executed. */
-  PROPOSAL_STATUS_CLOSED = 2,
-  /** PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group was modified before the final tally. */
-  PROPOSAL_STATUS_ABORTED = 3,
-  /**
-   * PROPOSAL_STATUS_WITHDRAWN - A proposal can be deleted before the voting start time by the owner. When this happens the final status
-   * is Withdrawn.
-   */
-  PROPOSAL_STATUS_WITHDRAWN = 4,
-  UNRECOGNIZED = -1,
-}
-export const ProposalStatusSDKType = ProposalStatus;
-export const ProposalStatusAmino = ProposalStatus;
-export function proposalStatusFromJSON(object: any): ProposalStatus {
-  switch (object) {
-    case 0:
-    case "PROPOSAL_STATUS_UNSPECIFIED":
-      return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;
-    case 1:
-    case "PROPOSAL_STATUS_SUBMITTED":
-      return ProposalStatus.PROPOSAL_STATUS_SUBMITTED;
-    case 2:
-    case "PROPOSAL_STATUS_CLOSED":
-      return ProposalStatus.PROPOSAL_STATUS_CLOSED;
-    case 3:
-    case "PROPOSAL_STATUS_ABORTED":
-      return ProposalStatus.PROPOSAL_STATUS_ABORTED;
-    case 4:
-    case "PROPOSAL_STATUS_WITHDRAWN":
-      return ProposalStatus.PROPOSAL_STATUS_WITHDRAWN;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ProposalStatus.UNRECOGNIZED;
-  }
-}
-export function proposalStatusToJSON(object: ProposalStatus): string {
-  switch (object) {
-    case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:
-      return "PROPOSAL_STATUS_UNSPECIFIED";
-    case ProposalStatus.PROPOSAL_STATUS_SUBMITTED:
-      return "PROPOSAL_STATUS_SUBMITTED";
-    case ProposalStatus.PROPOSAL_STATUS_CLOSED:
-      return "PROPOSAL_STATUS_CLOSED";
-    case ProposalStatus.PROPOSAL_STATUS_ABORTED:
-      return "PROPOSAL_STATUS_ABORTED";
-    case ProposalStatus.PROPOSAL_STATUS_WITHDRAWN:
-      return "PROPOSAL_STATUS_WITHDRAWN";
-    case ProposalStatus.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ProposalResult defines types of proposal results. */
-export enum ProposalResult {
-  /** PROPOSAL_RESULT_UNSPECIFIED - An empty value is invalid and not allowed */
-  PROPOSAL_RESULT_UNSPECIFIED = 0,
-  /** PROPOSAL_RESULT_UNFINALIZED - Until a final tally has happened the status is unfinalized */
-  PROPOSAL_RESULT_UNFINALIZED = 1,
-  /** PROPOSAL_RESULT_ACCEPTED - Final result of the tally */
-  PROPOSAL_RESULT_ACCEPTED = 2,
-  /** PROPOSAL_RESULT_REJECTED - Final result of the tally */
-  PROPOSAL_RESULT_REJECTED = 3,
-  UNRECOGNIZED = -1,
-}
-export const ProposalResultSDKType = ProposalResult;
-export const ProposalResultAmino = ProposalResult;
-export function proposalResultFromJSON(object: any): ProposalResult {
-  switch (object) {
-    case 0:
-    case "PROPOSAL_RESULT_UNSPECIFIED":
-      return ProposalResult.PROPOSAL_RESULT_UNSPECIFIED;
-    case 1:
-    case "PROPOSAL_RESULT_UNFINALIZED":
-      return ProposalResult.PROPOSAL_RESULT_UNFINALIZED;
-    case 2:
-    case "PROPOSAL_RESULT_ACCEPTED":
-      return ProposalResult.PROPOSAL_RESULT_ACCEPTED;
-    case 3:
-    case "PROPOSAL_RESULT_REJECTED":
-      return ProposalResult.PROPOSAL_RESULT_REJECTED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ProposalResult.UNRECOGNIZED;
-  }
-}
-export function proposalResultToJSON(object: ProposalResult): string {
-  switch (object) {
-    case ProposalResult.PROPOSAL_RESULT_UNSPECIFIED:
-      return "PROPOSAL_RESULT_UNSPECIFIED";
-    case ProposalResult.PROPOSAL_RESULT_UNFINALIZED:
-      return "PROPOSAL_RESULT_UNFINALIZED";
-    case ProposalResult.PROPOSAL_RESULT_ACCEPTED:
-      return "PROPOSAL_RESULT_ACCEPTED";
-    case ProposalResult.PROPOSAL_RESULT_REJECTED:
-      return "PROPOSAL_RESULT_REJECTED";
-    case ProposalResult.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ProposalExecutorResult defines types of proposal executor results. */
-export enum ProposalExecutorResult {
-  /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */
-  PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0,
-  /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */
-  PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1,
-  /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */
-  PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2,
-  /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */
-  PROPOSAL_EXECUTOR_RESULT_FAILURE = 3,
-  UNRECOGNIZED = -1,
-}
-export const ProposalExecutorResultSDKType = ProposalExecutorResult;
-export const ProposalExecutorResultAmino = ProposalExecutorResult;
-export function proposalExecutorResultFromJSON(object: any): ProposalExecutorResult {
-  switch (object) {
-    case 0:
-    case "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED":
-      return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED;
-    case 1:
-    case "PROPOSAL_EXECUTOR_RESULT_NOT_RUN":
-      return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN;
-    case 2:
-    case "PROPOSAL_EXECUTOR_RESULT_SUCCESS":
-      return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS;
-    case 3:
-    case "PROPOSAL_EXECUTOR_RESULT_FAILURE":
-      return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ProposalExecutorResult.UNRECOGNIZED;
-  }
-}
-export function proposalExecutorResultToJSON(object: ProposalExecutorResult): string {
-  switch (object) {
-    case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED:
-      return "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED";
-    case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN:
-      return "PROPOSAL_EXECUTOR_RESULT_NOT_RUN";
-    case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS:
-      return "PROPOSAL_EXECUTOR_RESULT_SUCCESS";
-    case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE:
-      return "PROPOSAL_EXECUTOR_RESULT_FAILURE";
-    case ProposalExecutorResult.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * Member represents a group member with an account address,
- * non-zero weight and metadata.
- */
-export interface Member {
-  /** address is the member's account address. */
-  address: string;
-  /** weight is the member's voting weight that should be greater than 0. */
-  weight: string;
-  /** metadata is any arbitrary metadata to attached to the member. */
-  metadata: string;
-  /** added_at is a timestamp specifying when a member was added. */
-  addedAt: Date | undefined;
-}
-export interface MemberProtoMsg {
-  typeUrl: "/cosmos.group.v1.Member";
-  value: Uint8Array;
-}
-/**
- * Member represents a group member with an account address,
- * non-zero weight and metadata.
- */
-export interface MemberAmino {
-  /** address is the member's account address. */
-  address: string;
-  /** weight is the member's voting weight that should be greater than 0. */
-  weight: string;
-  /** metadata is any arbitrary metadata to attached to the member. */
-  metadata: string;
-  /** added_at is a timestamp specifying when a member was added. */
-  added_at?: Date | undefined;
-}
-export interface MemberAminoMsg {
-  type: "cosmos-sdk/Member";
-  value: MemberAmino;
-}
-/**
- * Member represents a group member with an account address,
- * non-zero weight and metadata.
- */
-export interface MemberSDKType {
-  address: string;
-  weight: string;
-  metadata: string;
-  added_at: Date | undefined;
-}
-/** Members defines a repeated slice of Member objects. */
-export interface Members {
-  /** members is the list of members. */
-  members: Member[];
-}
-export interface MembersProtoMsg {
-  typeUrl: "/cosmos.group.v1.Members";
-  value: Uint8Array;
-}
-/** Members defines a repeated slice of Member objects. */
-export interface MembersAmino {
-  /** members is the list of members. */
-  members: MemberAmino[];
-}
-export interface MembersAminoMsg {
-  type: "cosmos-sdk/Members";
-  value: MembersAmino;
-}
-/** Members defines a repeated slice of Member objects. */
-export interface MembersSDKType {
-  members: MemberSDKType[];
-}
-/** ThresholdDecisionPolicy implements the DecisionPolicy interface */
-export interface ThresholdDecisionPolicy {
-  /** threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed. */
-  threshold: string;
-  /** windows defines the different windows for voting and execution. */
-  windows: DecisionPolicyWindows | undefined;
-}
-export interface ThresholdDecisionPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.ThresholdDecisionPolicy";
-  value: Uint8Array;
-}
-/** ThresholdDecisionPolicy implements the DecisionPolicy interface */
-export interface ThresholdDecisionPolicyAmino {
-  /** threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed. */
-  threshold: string;
-  /** windows defines the different windows for voting and execution. */
-  windows?: DecisionPolicyWindowsAmino | undefined;
-}
-export interface ThresholdDecisionPolicyAminoMsg {
-  type: "cosmos-sdk/ThresholdDecisionPolicy";
-  value: ThresholdDecisionPolicyAmino;
-}
-/** ThresholdDecisionPolicy implements the DecisionPolicy interface */
-export interface ThresholdDecisionPolicySDKType {
-  threshold: string;
-  windows: DecisionPolicyWindowsSDKType | undefined;
-}
-/** PercentageDecisionPolicy implements the DecisionPolicy interface */
-export interface PercentageDecisionPolicy {
-  /** percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed. */
-  percentage: string;
-  /** windows defines the different windows for voting and execution. */
-  windows: DecisionPolicyWindows | undefined;
-}
-export interface PercentageDecisionPolicyProtoMsg {
-  typeUrl: "/cosmos.group.v1.PercentageDecisionPolicy";
-  value: Uint8Array;
-}
-/** PercentageDecisionPolicy implements the DecisionPolicy interface */
-export interface PercentageDecisionPolicyAmino {
-  /** percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed. */
-  percentage: string;
-  /** windows defines the different windows for voting and execution. */
-  windows?: DecisionPolicyWindowsAmino | undefined;
-}
-export interface PercentageDecisionPolicyAminoMsg {
-  type: "cosmos-sdk/PercentageDecisionPolicy";
-  value: PercentageDecisionPolicyAmino;
-}
-/** PercentageDecisionPolicy implements the DecisionPolicy interface */
-export interface PercentageDecisionPolicySDKType {
-  percentage: string;
-  windows: DecisionPolicyWindowsSDKType | undefined;
-}
-/** DecisionPolicyWindows defines the different windows for voting and execution. */
-export interface DecisionPolicyWindows {
-  /**
-   * voting_period is the duration from submission of a proposal to the end of voting period
-   * Within this times votes can be submitted with MsgVote.
-   */
-  votingPeriod: Duration | undefined;
-  /**
-   * min_execution_period is the minimum duration after the proposal submission
-   * where members can start sending MsgExec. This means that the window for
-   * sending a MsgExec transaction is:
-   * `[ submission + min_execution_period ; submission + voting_period + max_execution_period]`
-   * where max_execution_period is a app-specific config, defined in the keeper.
-   * If not set, min_execution_period will default to 0.
-   * 
-   * Please make sure to set a `min_execution_period` that is smaller than
-   * `voting_period + max_execution_period`, or else the above execution window
-   * is empty, meaning that all proposals created with this decision policy
-   * won't be able to be executed.
-   */
-  minExecutionPeriod: Duration | undefined;
-}
-export interface DecisionPolicyWindowsProtoMsg {
-  typeUrl: "/cosmos.group.v1.DecisionPolicyWindows";
-  value: Uint8Array;
-}
-/** DecisionPolicyWindows defines the different windows for voting and execution. */
-export interface DecisionPolicyWindowsAmino {
-  /**
-   * voting_period is the duration from submission of a proposal to the end of voting period
-   * Within this times votes can be submitted with MsgVote.
-   */
-  voting_period?: DurationAmino | undefined;
-  /**
-   * min_execution_period is the minimum duration after the proposal submission
-   * where members can start sending MsgExec. This means that the window for
-   * sending a MsgExec transaction is:
-   * `[ submission + min_execution_period ; submission + voting_period + max_execution_period]`
-   * where max_execution_period is a app-specific config, defined in the keeper.
-   * If not set, min_execution_period will default to 0.
-   * 
-   * Please make sure to set a `min_execution_period` that is smaller than
-   * `voting_period + max_execution_period`, or else the above execution window
-   * is empty, meaning that all proposals created with this decision policy
-   * won't be able to be executed.
-   */
-  min_execution_period?: DurationAmino | undefined;
-}
-export interface DecisionPolicyWindowsAminoMsg {
-  type: "cosmos-sdk/DecisionPolicyWindows";
-  value: DecisionPolicyWindowsAmino;
-}
-/** DecisionPolicyWindows defines the different windows for voting and execution. */
-export interface DecisionPolicyWindowsSDKType {
-  voting_period: DurationSDKType | undefined;
-  min_execution_period: DurationSDKType | undefined;
-}
-/** GroupInfo represents the high-level on-chain information for a group. */
-export interface GroupInfo {
-  /** id is the unique ID of the group. */
-  id: bigint;
-  /** admin is the account address of the group's admin. */
-  admin: string;
-  /** metadata is any arbitrary metadata to attached to the group. */
-  metadata: string;
-  /**
-   * version is used to track changes to a group's membership structure that
-   * would break existing proposals. Whenever any members weight is changed,
-   * or any member is added or removed this version is incremented and will
-   * cause proposals based on older versions of this group to fail
-   */
-  version: bigint;
-  /** total_weight is the sum of the group members' weights. */
-  totalWeight: string;
-  /** created_at is a timestamp specifying when a group was created. */
-  createdAt: Date | undefined;
-}
-export interface GroupInfoProtoMsg {
-  typeUrl: "/cosmos.group.v1.GroupInfo";
-  value: Uint8Array;
-}
-/** GroupInfo represents the high-level on-chain information for a group. */
-export interface GroupInfoAmino {
-  /** id is the unique ID of the group. */
-  id: string;
-  /** admin is the account address of the group's admin. */
-  admin: string;
-  /** metadata is any arbitrary metadata to attached to the group. */
-  metadata: string;
-  /**
-   * version is used to track changes to a group's membership structure that
-   * would break existing proposals. Whenever any members weight is changed,
-   * or any member is added or removed this version is incremented and will
-   * cause proposals based on older versions of this group to fail
-   */
-  version: string;
-  /** total_weight is the sum of the group members' weights. */
-  total_weight: string;
-  /** created_at is a timestamp specifying when a group was created. */
-  created_at?: Date | undefined;
-}
-export interface GroupInfoAminoMsg {
-  type: "cosmos-sdk/GroupInfo";
-  value: GroupInfoAmino;
-}
-/** GroupInfo represents the high-level on-chain information for a group. */
-export interface GroupInfoSDKType {
-  id: bigint;
-  admin: string;
-  metadata: string;
-  version: bigint;
-  total_weight: string;
-  created_at: Date | undefined;
-}
-/** GroupMember represents the relationship between a group and a member. */
-export interface GroupMember {
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** member is the member data. */
-  member: Member | undefined;
-}
-export interface GroupMemberProtoMsg {
-  typeUrl: "/cosmos.group.v1.GroupMember";
-  value: Uint8Array;
-}
-/** GroupMember represents the relationship between a group and a member. */
-export interface GroupMemberAmino {
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** member is the member data. */
-  member?: MemberAmino | undefined;
-}
-export interface GroupMemberAminoMsg {
-  type: "cosmos-sdk/GroupMember";
-  value: GroupMemberAmino;
-}
-/** GroupMember represents the relationship between a group and a member. */
-export interface GroupMemberSDKType {
-  group_id: bigint;
-  member: MemberSDKType | undefined;
-}
-/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */
-export interface GroupPolicyInfo {
-  /** address is the account address of group policy. */
-  address: string;
-  /** group_id is the unique ID of the group. */
-  groupId: bigint;
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** metadata is any arbitrary metadata to attached to the group policy. */
-  metadata: string;
-  /**
-   * version is used to track changes to a group's GroupPolicyInfo structure that
-   * would create a different result on a running proposal.
-   */
-  version: bigint;
-  /** decision_policy specifies the group policy's decision policy. */
-  decisionPolicy: Any | undefined;
-  /** created_at is a timestamp specifying when a group policy was created. */
-  createdAt: Date | undefined;
-}
-export interface GroupPolicyInfoProtoMsg {
-  typeUrl: "/cosmos.group.v1.GroupPolicyInfo";
-  value: Uint8Array;
-}
-/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */
-export interface GroupPolicyInfoAmino {
-  /** address is the account address of group policy. */
-  address: string;
-  /** group_id is the unique ID of the group. */
-  group_id: string;
-  /** admin is the account address of the group admin. */
-  admin: string;
-  /** metadata is any arbitrary metadata to attached to the group policy. */
-  metadata: string;
-  /**
-   * version is used to track changes to a group's GroupPolicyInfo structure that
-   * would create a different result on a running proposal.
-   */
-  version: string;
-  /** decision_policy specifies the group policy's decision policy. */
-  decision_policy?: AnyAmino | undefined;
-  /** created_at is a timestamp specifying when a group policy was created. */
-  created_at?: Date | undefined;
-}
-export interface GroupPolicyInfoAminoMsg {
-  type: "cosmos-sdk/GroupPolicyInfo";
-  value: GroupPolicyInfoAmino;
-}
-/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */
-export interface GroupPolicyInfoSDKType {
-  address: string;
-  group_id: bigint;
-  admin: string;
-  metadata: string;
-  version: bigint;
-  decision_policy: AnySDKType | undefined;
-  created_at: Date | undefined;
-}
-/**
- * Proposal defines a group proposal. Any member of a group can submit a proposal
- * for a group policy to decide upon.
- * A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal
- * passes as well as some optional metadata associated with the proposal.
- */
-export interface Proposal {
-  /** id is the unique id of the proposal. */
-  id: bigint;
-  /** address is the account address of group policy. */
-  address: string;
-  /** metadata is any arbitrary metadata to attached to the proposal. */
-  metadata: string;
-  /** proposers are the account addresses of the proposers. */
-  proposers: string[];
-  /** submit_time is a timestamp specifying when a proposal was submitted. */
-  submitTime: Date | undefined;
-  /**
-   * group_version tracks the version of the group that this proposal corresponds to.
-   * When group membership is changed, existing proposals from previous group versions will become invalid.
-   */
-  groupVersion: bigint;
-  /**
-   * group_policy_version tracks the version of the group policy that this proposal corresponds to.
-   * When a decision policy is changed, existing proposals from previous policy versions will become invalid.
-   */
-  groupPolicyVersion: bigint;
-  /** status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */
-  status: ProposalStatus;
-  /**
-   * result is the final result based on the votes and election rule. Initial value is unfinalized.
-   * The result is persisted so that clients can always rely on this state and not have to replicate the logic.
-   */
-  result: ProposalResult;
-  /**
-   * final_tally_result contains the sums of all weighted votes for this
-   * proposal for each vote option, after tallying. When querying a proposal
-   * via gRPC, this field is not populated until the proposal's voting period
-   * has ended.
-   */
-  finalTallyResult: TallyResult | undefined;
-  /**
-   * voting_period_end is the timestamp before which voting must be done.
-   * Unless a successfull MsgExec is called before (to execute a proposal whose
-   * tally is successful before the voting period ends), tallying will be done
-   * at this point, and the `final_tally_result`, as well
-   * as `status` and `result` fields will be accordingly updated.
-   */
-  votingPeriodEnd: Date | undefined;
-  /** executor_result is the final result based on the votes and election rule. Initial value is NotRun. */
-  executorResult: ProposalExecutorResult;
-  /** messages is a list of Msgs that will be executed if the proposal passes. */
-  messages: Any[];
-}
-export interface ProposalProtoMsg {
-  typeUrl: "/cosmos.group.v1.Proposal";
-  value: Uint8Array;
-}
-/**
- * Proposal defines a group proposal. Any member of a group can submit a proposal
- * for a group policy to decide upon.
- * A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal
- * passes as well as some optional metadata associated with the proposal.
- */
-export interface ProposalAmino {
-  /** id is the unique id of the proposal. */
-  id: string;
-  /** address is the account address of group policy. */
-  address: string;
-  /** metadata is any arbitrary metadata to attached to the proposal. */
-  metadata: string;
-  /** proposers are the account addresses of the proposers. */
-  proposers: string[];
-  /** submit_time is a timestamp specifying when a proposal was submitted. */
-  submit_time?: Date | undefined;
-  /**
-   * group_version tracks the version of the group that this proposal corresponds to.
-   * When group membership is changed, existing proposals from previous group versions will become invalid.
-   */
-  group_version: string;
-  /**
-   * group_policy_version tracks the version of the group policy that this proposal corresponds to.
-   * When a decision policy is changed, existing proposals from previous policy versions will become invalid.
-   */
-  group_policy_version: string;
-  /** status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */
-  status: ProposalStatus;
-  /**
-   * result is the final result based on the votes and election rule. Initial value is unfinalized.
-   * The result is persisted so that clients can always rely on this state and not have to replicate the logic.
-   */
-  result: ProposalResult;
-  /**
-   * final_tally_result contains the sums of all weighted votes for this
-   * proposal for each vote option, after tallying. When querying a proposal
-   * via gRPC, this field is not populated until the proposal's voting period
-   * has ended.
-   */
-  final_tally_result?: TallyResultAmino | undefined;
-  /**
-   * voting_period_end is the timestamp before which voting must be done.
-   * Unless a successfull MsgExec is called before (to execute a proposal whose
-   * tally is successful before the voting period ends), tallying will be done
-   * at this point, and the `final_tally_result`, as well
-   * as `status` and `result` fields will be accordingly updated.
-   */
-  voting_period_end?: Date | undefined;
-  /** executor_result is the final result based on the votes and election rule. Initial value is NotRun. */
-  executor_result: ProposalExecutorResult;
-  /** messages is a list of Msgs that will be executed if the proposal passes. */
-  messages: AnyAmino[];
-}
-export interface ProposalAminoMsg {
-  type: "cosmos-sdk/Proposal";
-  value: ProposalAmino;
-}
-/**
- * Proposal defines a group proposal. Any member of a group can submit a proposal
- * for a group policy to decide upon.
- * A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal
- * passes as well as some optional metadata associated with the proposal.
- */
-export interface ProposalSDKType {
-  id: bigint;
-  address: string;
-  metadata: string;
-  proposers: string[];
-  submit_time: Date | undefined;
-  group_version: bigint;
-  group_policy_version: bigint;
-  status: ProposalStatus;
-  result: ProposalResult;
-  final_tally_result: TallyResultSDKType | undefined;
-  voting_period_end: Date | undefined;
-  executor_result: ProposalExecutorResult;
-  messages: AnySDKType[];
-}
-/** TallyResult represents the sum of weighted votes for each vote option. */
-export interface TallyResult {
-  /** yes_count is the weighted sum of yes votes. */
-  yesCount: string;
-  /** abstain_count is the weighted sum of abstainers. */
-  abstainCount: string;
-  /** no is the weighted sum of no votes. */
-  noCount: string;
-  /** no_with_veto_count is the weighted sum of veto. */
-  noWithVetoCount: string;
-}
-export interface TallyResultProtoMsg {
-  typeUrl: "/cosmos.group.v1.TallyResult";
-  value: Uint8Array;
-}
-/** TallyResult represents the sum of weighted votes for each vote option. */
-export interface TallyResultAmino {
-  /** yes_count is the weighted sum of yes votes. */
-  yes_count: string;
-  /** abstain_count is the weighted sum of abstainers. */
-  abstain_count: string;
-  /** no is the weighted sum of no votes. */
-  no_count: string;
-  /** no_with_veto_count is the weighted sum of veto. */
-  no_with_veto_count: string;
-}
-export interface TallyResultAminoMsg {
-  type: "cosmos-sdk/TallyResult";
-  value: TallyResultAmino;
-}
-/** TallyResult represents the sum of weighted votes for each vote option. */
-export interface TallyResultSDKType {
-  yes_count: string;
-  abstain_count: string;
-  no_count: string;
-  no_with_veto_count: string;
-}
-/** Vote represents a vote for a proposal. */
-export interface Vote {
-  /** proposal is the unique ID of the proposal. */
-  proposalId: bigint;
-  /** voter is the account address of the voter. */
-  voter: string;
-  /** option is the voter's choice on the proposal. */
-  option: VoteOption;
-  /** metadata is any arbitrary metadata to attached to the vote. */
-  metadata: string;
-  /** submit_time is the timestamp when the vote was submitted. */
-  submitTime: Date | undefined;
-}
-export interface VoteProtoMsg {
-  typeUrl: "/cosmos.group.v1.Vote";
-  value: Uint8Array;
-}
-/** Vote represents a vote for a proposal. */
-export interface VoteAmino {
-  /** proposal is the unique ID of the proposal. */
-  proposal_id: string;
-  /** voter is the account address of the voter. */
-  voter: string;
-  /** option is the voter's choice on the proposal. */
-  option: VoteOption;
-  /** metadata is any arbitrary metadata to attached to the vote. */
-  metadata: string;
-  /** submit_time is the timestamp when the vote was submitted. */
-  submit_time?: Date | undefined;
-}
-export interface VoteAminoMsg {
-  type: "cosmos-sdk/Vote";
-  value: VoteAmino;
-}
-/** Vote represents a vote for a proposal. */
-export interface VoteSDKType {
-  proposal_id: bigint;
-  voter: string;
-  option: VoteOption;
-  metadata: string;
-  submit_time: Date | undefined;
-}
-function createBaseMember(): Member {
-  return {
-    address: "",
-    weight: "",
-    metadata: "",
-    addedAt: new Date()
-  };
-}
-export const Member = {
-  typeUrl: "/cosmos.group.v1.Member",
-  aminoType: "cosmos-sdk/Member",
-  encode(message: Member, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(message.weight);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    if (message.addedAt !== undefined) {
-      Timestamp.encode(toTimestamp(message.addedAt), writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Member {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMember();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.weight = reader.string();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        case 4:
-          message.addedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Member {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      weight: isSet(object.weight) ? String(object.weight) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      addedAt: isSet(object.addedAt) ? new Date(object.addedAt) : undefined
-    };
-  },
-  toJSON(message: Member): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.weight !== undefined && (obj.weight = message.weight);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.addedAt !== undefined && (obj.addedAt = message.addedAt.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Member>): Member {
-    const message = createBaseMember();
-    message.address = object.address ?? "";
-    message.weight = object.weight ?? "";
-    message.metadata = object.metadata ?? "";
-    message.addedAt = object.addedAt ?? undefined;
-    return message;
-  },
-  fromSDK(object: MemberSDKType): Member {
-    return {
-      address: object?.address,
-      weight: object?.weight,
-      metadata: object?.metadata,
-      addedAt: object.added_at ?? undefined
-    };
-  },
-  toSDK(message: Member): MemberSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.weight = message.weight;
-    obj.metadata = message.metadata;
-    message.addedAt !== undefined && (obj.added_at = message.addedAt ?? undefined);
-    return obj;
-  },
-  fromAmino(object: MemberAmino): Member {
-    return {
-      address: object.address,
-      weight: object.weight,
-      metadata: object.metadata,
-      addedAt: object.added_at
-    };
-  },
-  toAmino(message: Member): MemberAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.weight = message.weight;
-    obj.metadata = message.metadata;
-    obj.added_at = message.addedAt;
-    return obj;
-  },
-  fromAminoMsg(object: MemberAminoMsg): Member {
-    return Member.fromAmino(object.value);
-  },
-  toAminoMsg(message: Member): MemberAminoMsg {
-    return {
-      type: "cosmos-sdk/Member",
-      value: Member.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MemberProtoMsg): Member {
-    return Member.decode(message.value);
-  },
-  toProto(message: Member): Uint8Array {
-    return Member.encode(message).finish();
-  },
-  toProtoMsg(message: Member): MemberProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.Member",
-      value: Member.encode(message).finish()
-    };
-  }
-};
-function createBaseMembers(): Members {
-  return {
-    members: []
-  };
-}
-export const Members = {
-  typeUrl: "/cosmos.group.v1.Members",
-  aminoType: "cosmos-sdk/Members",
-  encode(message: Members, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.members) {
-      Member.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Members {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMembers();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.members.push(Member.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Members {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Members): unknown {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toJSON(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Members>): Members {
-    const message = createBaseMembers();
-    message.members = object.members?.map(e => Member.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MembersSDKType): Members {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Members): MembersSDKType {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toSDK(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MembersAmino): Members {
-    return {
-      members: Array.isArray(object?.members) ? object.members.map((e: any) => Member.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Members): MembersAmino {
-    const obj: any = {};
-    if (message.members) {
-      obj.members = message.members.map(e => e ? Member.toAmino(e) : undefined);
-    } else {
-      obj.members = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MembersAminoMsg): Members {
-    return Members.fromAmino(object.value);
-  },
-  toAminoMsg(message: Members): MembersAminoMsg {
-    return {
-      type: "cosmos-sdk/Members",
-      value: Members.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MembersProtoMsg): Members {
-    return Members.decode(message.value);
-  },
-  toProto(message: Members): Uint8Array {
-    return Members.encode(message).finish();
-  },
-  toProtoMsg(message: Members): MembersProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.Members",
-      value: Members.encode(message).finish()
-    };
-  }
-};
-function createBaseThresholdDecisionPolicy(): ThresholdDecisionPolicy {
-  return {
-    threshold: "",
-    windows: DecisionPolicyWindows.fromPartial({})
-  };
-}
-export const ThresholdDecisionPolicy = {
-  typeUrl: "/cosmos.group.v1.ThresholdDecisionPolicy",
-  aminoType: "cosmos-sdk/ThresholdDecisionPolicy",
-  encode(message: ThresholdDecisionPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.threshold !== "") {
-      writer.uint32(10).string(message.threshold);
-    }
-    if (message.windows !== undefined) {
-      DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ThresholdDecisionPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseThresholdDecisionPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.threshold = reader.string();
-          break;
-        case 2:
-          message.windows = DecisionPolicyWindows.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ThresholdDecisionPolicy {
-    return {
-      threshold: isSet(object.threshold) ? String(object.threshold) : "",
-      windows: isSet(object.windows) ? DecisionPolicyWindows.fromJSON(object.windows) : undefined
-    };
-  },
-  toJSON(message: ThresholdDecisionPolicy): unknown {
-    const obj: any = {};
-    message.threshold !== undefined && (obj.threshold = message.threshold);
-    message.windows !== undefined && (obj.windows = message.windows ? DecisionPolicyWindows.toJSON(message.windows) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ThresholdDecisionPolicy>): ThresholdDecisionPolicy {
-    const message = createBaseThresholdDecisionPolicy();
-    message.threshold = object.threshold ?? "";
-    message.windows = object.windows !== undefined && object.windows !== null ? DecisionPolicyWindows.fromPartial(object.windows) : undefined;
-    return message;
-  },
-  fromSDK(object: ThresholdDecisionPolicySDKType): ThresholdDecisionPolicy {
-    return {
-      threshold: object?.threshold,
-      windows: object.windows ? DecisionPolicyWindows.fromSDK(object.windows) : undefined
-    };
-  },
-  toSDK(message: ThresholdDecisionPolicy): ThresholdDecisionPolicySDKType {
-    const obj: any = {};
-    obj.threshold = message.threshold;
-    message.windows !== undefined && (obj.windows = message.windows ? DecisionPolicyWindows.toSDK(message.windows) : undefined);
-    return obj;
-  },
-  fromAmino(object: ThresholdDecisionPolicyAmino): ThresholdDecisionPolicy {
-    return {
-      threshold: object.threshold,
-      windows: object?.windows ? DecisionPolicyWindows.fromAmino(object.windows) : undefined
-    };
-  },
-  toAmino(message: ThresholdDecisionPolicy): ThresholdDecisionPolicyAmino {
-    const obj: any = {};
-    obj.threshold = message.threshold;
-    obj.windows = message.windows ? DecisionPolicyWindows.toAmino(message.windows) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ThresholdDecisionPolicyAminoMsg): ThresholdDecisionPolicy {
-    return ThresholdDecisionPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: ThresholdDecisionPolicy): ThresholdDecisionPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/ThresholdDecisionPolicy",
-      value: ThresholdDecisionPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ThresholdDecisionPolicyProtoMsg): ThresholdDecisionPolicy {
-    return ThresholdDecisionPolicy.decode(message.value);
-  },
-  toProto(message: ThresholdDecisionPolicy): Uint8Array {
-    return ThresholdDecisionPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: ThresholdDecisionPolicy): ThresholdDecisionPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.ThresholdDecisionPolicy",
-      value: ThresholdDecisionPolicy.encode(message).finish()
-    };
-  }
-};
-function createBasePercentageDecisionPolicy(): PercentageDecisionPolicy {
-  return {
-    percentage: "",
-    windows: DecisionPolicyWindows.fromPartial({})
-  };
-}
-export const PercentageDecisionPolicy = {
-  typeUrl: "/cosmos.group.v1.PercentageDecisionPolicy",
-  aminoType: "cosmos-sdk/PercentageDecisionPolicy",
-  encode(message: PercentageDecisionPolicy, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.percentage !== "") {
-      writer.uint32(10).string(message.percentage);
-    }
-    if (message.windows !== undefined) {
-      DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PercentageDecisionPolicy {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePercentageDecisionPolicy();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.percentage = reader.string();
-          break;
-        case 2:
-          message.windows = DecisionPolicyWindows.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PercentageDecisionPolicy {
-    return {
-      percentage: isSet(object.percentage) ? String(object.percentage) : "",
-      windows: isSet(object.windows) ? DecisionPolicyWindows.fromJSON(object.windows) : undefined
-    };
-  },
-  toJSON(message: PercentageDecisionPolicy): unknown {
-    const obj: any = {};
-    message.percentage !== undefined && (obj.percentage = message.percentage);
-    message.windows !== undefined && (obj.windows = message.windows ? DecisionPolicyWindows.toJSON(message.windows) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PercentageDecisionPolicy>): PercentageDecisionPolicy {
-    const message = createBasePercentageDecisionPolicy();
-    message.percentage = object.percentage ?? "";
-    message.windows = object.windows !== undefined && object.windows !== null ? DecisionPolicyWindows.fromPartial(object.windows) : undefined;
-    return message;
-  },
-  fromSDK(object: PercentageDecisionPolicySDKType): PercentageDecisionPolicy {
-    return {
-      percentage: object?.percentage,
-      windows: object.windows ? DecisionPolicyWindows.fromSDK(object.windows) : undefined
-    };
-  },
-  toSDK(message: PercentageDecisionPolicy): PercentageDecisionPolicySDKType {
-    const obj: any = {};
-    obj.percentage = message.percentage;
-    message.windows !== undefined && (obj.windows = message.windows ? DecisionPolicyWindows.toSDK(message.windows) : undefined);
-    return obj;
-  },
-  fromAmino(object: PercentageDecisionPolicyAmino): PercentageDecisionPolicy {
-    return {
-      percentage: object.percentage,
-      windows: object?.windows ? DecisionPolicyWindows.fromAmino(object.windows) : undefined
-    };
-  },
-  toAmino(message: PercentageDecisionPolicy): PercentageDecisionPolicyAmino {
-    const obj: any = {};
-    obj.percentage = message.percentage;
-    obj.windows = message.windows ? DecisionPolicyWindows.toAmino(message.windows) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PercentageDecisionPolicyAminoMsg): PercentageDecisionPolicy {
-    return PercentageDecisionPolicy.fromAmino(object.value);
-  },
-  toAminoMsg(message: PercentageDecisionPolicy): PercentageDecisionPolicyAminoMsg {
-    return {
-      type: "cosmos-sdk/PercentageDecisionPolicy",
-      value: PercentageDecisionPolicy.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PercentageDecisionPolicyProtoMsg): PercentageDecisionPolicy {
-    return PercentageDecisionPolicy.decode(message.value);
-  },
-  toProto(message: PercentageDecisionPolicy): Uint8Array {
-    return PercentageDecisionPolicy.encode(message).finish();
-  },
-  toProtoMsg(message: PercentageDecisionPolicy): PercentageDecisionPolicyProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.PercentageDecisionPolicy",
-      value: PercentageDecisionPolicy.encode(message).finish()
-    };
-  }
-};
-function createBaseDecisionPolicyWindows(): DecisionPolicyWindows {
-  return {
-    votingPeriod: Duration.fromPartial({}),
-    minExecutionPeriod: Duration.fromPartial({})
-  };
-}
-export const DecisionPolicyWindows = {
-  typeUrl: "/cosmos.group.v1.DecisionPolicyWindows",
-  aminoType: "cosmos-sdk/DecisionPolicyWindows",
-  encode(message: DecisionPolicyWindows, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.votingPeriod !== undefined) {
-      Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.minExecutionPeriod !== undefined) {
-      Duration.encode(message.minExecutionPeriod, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DecisionPolicyWindows {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDecisionPolicyWindows();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.votingPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.minExecutionPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DecisionPolicyWindows {
-    return {
-      votingPeriod: isSet(object.votingPeriod) ? Duration.fromJSON(object.votingPeriod) : undefined,
-      minExecutionPeriod: isSet(object.minExecutionPeriod) ? Duration.fromJSON(object.minExecutionPeriod) : undefined
-    };
-  },
-  toJSON(message: DecisionPolicyWindows): unknown {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.votingPeriod = message.votingPeriod ? Duration.toJSON(message.votingPeriod) : undefined);
-    message.minExecutionPeriod !== undefined && (obj.minExecutionPeriod = message.minExecutionPeriod ? Duration.toJSON(message.minExecutionPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DecisionPolicyWindows>): DecisionPolicyWindows {
-    const message = createBaseDecisionPolicyWindows();
-    message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined;
-    message.minExecutionPeriod = object.minExecutionPeriod !== undefined && object.minExecutionPeriod !== null ? Duration.fromPartial(object.minExecutionPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: DecisionPolicyWindowsSDKType): DecisionPolicyWindows {
-    return {
-      votingPeriod: object.voting_period ? Duration.fromSDK(object.voting_period) : undefined,
-      minExecutionPeriod: object.min_execution_period ? Duration.fromSDK(object.min_execution_period) : undefined
-    };
-  },
-  toSDK(message: DecisionPolicyWindows): DecisionPolicyWindowsSDKType {
-    const obj: any = {};
-    message.votingPeriod !== undefined && (obj.voting_period = message.votingPeriod ? Duration.toSDK(message.votingPeriod) : undefined);
-    message.minExecutionPeriod !== undefined && (obj.min_execution_period = message.minExecutionPeriod ? Duration.toSDK(message.minExecutionPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: DecisionPolicyWindowsAmino): DecisionPolicyWindows {
-    return {
-      votingPeriod: object?.voting_period ? Duration.fromAmino(object.voting_period) : undefined,
-      minExecutionPeriod: object?.min_execution_period ? Duration.fromAmino(object.min_execution_period) : undefined
-    };
-  },
-  toAmino(message: DecisionPolicyWindows): DecisionPolicyWindowsAmino {
-    const obj: any = {};
-    obj.voting_period = message.votingPeriod ? Duration.toAmino(message.votingPeriod) : undefined;
-    obj.min_execution_period = message.minExecutionPeriod ? Duration.toAmino(message.minExecutionPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DecisionPolicyWindowsAminoMsg): DecisionPolicyWindows {
-    return DecisionPolicyWindows.fromAmino(object.value);
-  },
-  toAminoMsg(message: DecisionPolicyWindows): DecisionPolicyWindowsAminoMsg {
-    return {
-      type: "cosmos-sdk/DecisionPolicyWindows",
-      value: DecisionPolicyWindows.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DecisionPolicyWindowsProtoMsg): DecisionPolicyWindows {
-    return DecisionPolicyWindows.decode(message.value);
-  },
-  toProto(message: DecisionPolicyWindows): Uint8Array {
-    return DecisionPolicyWindows.encode(message).finish();
-  },
-  toProtoMsg(message: DecisionPolicyWindows): DecisionPolicyWindowsProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.DecisionPolicyWindows",
-      value: DecisionPolicyWindows.encode(message).finish()
-    };
-  }
-};
-function createBaseGroupInfo(): GroupInfo {
-  return {
-    id: BigInt(0),
-    admin: "",
-    metadata: "",
-    version: BigInt(0),
-    totalWeight: "",
-    createdAt: new Date()
-  };
-}
-export const GroupInfo = {
-  typeUrl: "/cosmos.group.v1.GroupInfo",
-  aminoType: "cosmos-sdk/GroupInfo",
-  encode(message: GroupInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== BigInt(0)) {
-      writer.uint32(8).uint64(message.id);
-    }
-    if (message.admin !== "") {
-      writer.uint32(18).string(message.admin);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    if (message.version !== BigInt(0)) {
-      writer.uint32(32).uint64(message.version);
-    }
-    if (message.totalWeight !== "") {
-      writer.uint32(42).string(message.totalWeight);
-    }
-    if (message.createdAt !== undefined) {
-      Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GroupInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGroupInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint64();
-          break;
-        case 2:
-          message.admin = reader.string();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        case 4:
-          message.version = reader.uint64();
-          break;
-        case 5:
-          message.totalWeight = reader.string();
-          break;
-        case 6:
-          message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GroupInfo {
-    return {
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0),
-      totalWeight: isSet(object.totalWeight) ? String(object.totalWeight) : "",
-      createdAt: isSet(object.createdAt) ? new Date(object.createdAt) : undefined
-    };
-  },
-  toJSON(message: GroupInfo): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight);
-    message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GroupInfo>): GroupInfo {
-    const message = createBaseGroupInfo();
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.admin = object.admin ?? "";
-    message.metadata = object.metadata ?? "";
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    message.totalWeight = object.totalWeight ?? "";
-    message.createdAt = object.createdAt ?? undefined;
-    return message;
-  },
-  fromSDK(object: GroupInfoSDKType): GroupInfo {
-    return {
-      id: object?.id,
-      admin: object?.admin,
-      metadata: object?.metadata,
-      version: object?.version,
-      totalWeight: object?.total_weight,
-      createdAt: object.created_at ?? undefined
-    };
-  },
-  toSDK(message: GroupInfo): GroupInfoSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.admin = message.admin;
-    obj.metadata = message.metadata;
-    obj.version = message.version;
-    obj.total_weight = message.totalWeight;
-    message.createdAt !== undefined && (obj.created_at = message.createdAt ?? undefined);
-    return obj;
-  },
-  fromAmino(object: GroupInfoAmino): GroupInfo {
-    return {
-      id: BigInt(object.id),
-      admin: object.admin,
-      metadata: object.metadata,
-      version: BigInt(object.version),
-      totalWeight: object.total_weight,
-      createdAt: object.created_at
-    };
-  },
-  toAmino(message: GroupInfo): GroupInfoAmino {
-    const obj: any = {};
-    obj.id = message.id ? message.id.toString() : undefined;
-    obj.admin = message.admin;
-    obj.metadata = message.metadata;
-    obj.version = message.version ? message.version.toString() : undefined;
-    obj.total_weight = message.totalWeight;
-    obj.created_at = message.createdAt;
-    return obj;
-  },
-  fromAminoMsg(object: GroupInfoAminoMsg): GroupInfo {
-    return GroupInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: GroupInfo): GroupInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/GroupInfo",
-      value: GroupInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GroupInfoProtoMsg): GroupInfo {
-    return GroupInfo.decode(message.value);
-  },
-  toProto(message: GroupInfo): Uint8Array {
-    return GroupInfo.encode(message).finish();
-  },
-  toProtoMsg(message: GroupInfo): GroupInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.GroupInfo",
-      value: GroupInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseGroupMember(): GroupMember {
-  return {
-    groupId: BigInt(0),
-    member: Member.fromPartial({})
-  };
-}
-export const GroupMember = {
-  typeUrl: "/cosmos.group.v1.GroupMember",
-  aminoType: "cosmos-sdk/GroupMember",
-  encode(message: GroupMember, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.groupId);
-    }
-    if (message.member !== undefined) {
-      Member.encode(message.member, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GroupMember {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGroupMember();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.groupId = reader.uint64();
-          break;
-        case 2:
-          message.member = Member.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GroupMember {
-    return {
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      member: isSet(object.member) ? Member.fromJSON(object.member) : undefined
-    };
-  },
-  toJSON(message: GroupMember): unknown {
-    const obj: any = {};
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.member !== undefined && (obj.member = message.member ? Member.toJSON(message.member) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GroupMember>): GroupMember {
-    const message = createBaseGroupMember();
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.member = object.member !== undefined && object.member !== null ? Member.fromPartial(object.member) : undefined;
-    return message;
-  },
-  fromSDK(object: GroupMemberSDKType): GroupMember {
-    return {
-      groupId: object?.group_id,
-      member: object.member ? Member.fromSDK(object.member) : undefined
-    };
-  },
-  toSDK(message: GroupMember): GroupMemberSDKType {
-    const obj: any = {};
-    obj.group_id = message.groupId;
-    message.member !== undefined && (obj.member = message.member ? Member.toSDK(message.member) : undefined);
-    return obj;
-  },
-  fromAmino(object: GroupMemberAmino): GroupMember {
-    return {
-      groupId: BigInt(object.group_id),
-      member: object?.member ? Member.fromAmino(object.member) : undefined
-    };
-  },
-  toAmino(message: GroupMember): GroupMemberAmino {
-    const obj: any = {};
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.member = message.member ? Member.toAmino(message.member) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GroupMemberAminoMsg): GroupMember {
-    return GroupMember.fromAmino(object.value);
-  },
-  toAminoMsg(message: GroupMember): GroupMemberAminoMsg {
-    return {
-      type: "cosmos-sdk/GroupMember",
-      value: GroupMember.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GroupMemberProtoMsg): GroupMember {
-    return GroupMember.decode(message.value);
-  },
-  toProto(message: GroupMember): Uint8Array {
-    return GroupMember.encode(message).finish();
-  },
-  toProtoMsg(message: GroupMember): GroupMemberProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.GroupMember",
-      value: GroupMember.encode(message).finish()
-    };
-  }
-};
-function createBaseGroupPolicyInfo(): GroupPolicyInfo {
-  return {
-    address: "",
-    groupId: BigInt(0),
-    admin: "",
-    metadata: "",
-    version: BigInt(0),
-    decisionPolicy: Any.fromPartial({}),
-    createdAt: new Date()
-  };
-}
-export const GroupPolicyInfo = {
-  typeUrl: "/cosmos.group.v1.GroupPolicyInfo",
-  aminoType: "cosmos-sdk/GroupPolicyInfo",
-  encode(message: GroupPolicyInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.groupId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.groupId);
-    }
-    if (message.admin !== "") {
-      writer.uint32(26).string(message.admin);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    if (message.version !== BigInt(0)) {
-      writer.uint32(40).uint64(message.version);
-    }
-    if (message.decisionPolicy !== undefined) {
-      Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.createdAt !== undefined) {
-      Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GroupPolicyInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGroupPolicyInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.groupId = reader.uint64();
-          break;
-        case 3:
-          message.admin = reader.string();
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        case 5:
-          message.version = reader.uint64();
-          break;
-        case 6:
-          message.decisionPolicy = Any.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GroupPolicyInfo {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      groupId: isSet(object.groupId) ? BigInt(object.groupId.toString()) : BigInt(0),
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0),
-      decisionPolicy: isSet(object.decisionPolicy) ? Any.fromJSON(object.decisionPolicy) : undefined,
-      createdAt: isSet(object.createdAt) ? new Date(object.createdAt) : undefined
-    };
-  },
-  toJSON(message: GroupPolicyInfo): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    message.decisionPolicy !== undefined && (obj.decisionPolicy = message.decisionPolicy ? Any.toJSON(message.decisionPolicy) : undefined);
-    message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GroupPolicyInfo>): GroupPolicyInfo {
-    const message = createBaseGroupPolicyInfo();
-    message.address = object.address ?? "";
-    message.groupId = object.groupId !== undefined && object.groupId !== null ? BigInt(object.groupId.toString()) : BigInt(0);
-    message.admin = object.admin ?? "";
-    message.metadata = object.metadata ?? "";
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined;
-    message.createdAt = object.createdAt ?? undefined;
-    return message;
-  },
-  fromSDK(object: GroupPolicyInfoSDKType): GroupPolicyInfo {
-    return {
-      address: object?.address,
-      groupId: object?.group_id,
-      admin: object?.admin,
-      metadata: object?.metadata,
-      version: object?.version,
-      decisionPolicy: object.decision_policy ? Any.fromSDK(object.decision_policy) : undefined,
-      createdAt: object.created_at ?? undefined
-    };
-  },
-  toSDK(message: GroupPolicyInfo): GroupPolicyInfoSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.group_id = message.groupId;
-    obj.admin = message.admin;
-    obj.metadata = message.metadata;
-    obj.version = message.version;
-    message.decisionPolicy !== undefined && (obj.decision_policy = message.decisionPolicy ? Any.toSDK(message.decisionPolicy) : undefined);
-    message.createdAt !== undefined && (obj.created_at = message.createdAt ?? undefined);
-    return obj;
-  },
-  fromAmino(object: GroupPolicyInfoAmino): GroupPolicyInfo {
-    return {
-      address: object.address,
-      groupId: BigInt(object.group_id),
-      admin: object.admin,
-      metadata: object.metadata,
-      version: BigInt(object.version),
-      decisionPolicy: object?.decision_policy ? Any.fromAmino(object.decision_policy) : undefined,
-      createdAt: object.created_at
-    };
-  },
-  toAmino(message: GroupPolicyInfo): GroupPolicyInfoAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.group_id = message.groupId ? message.groupId.toString() : undefined;
-    obj.admin = message.admin;
-    obj.metadata = message.metadata;
-    obj.version = message.version ? message.version.toString() : undefined;
-    obj.decision_policy = message.decisionPolicy ? Any.toAmino(message.decisionPolicy) : undefined;
-    obj.created_at = message.createdAt;
-    return obj;
-  },
-  fromAminoMsg(object: GroupPolicyInfoAminoMsg): GroupPolicyInfo {
-    return GroupPolicyInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: GroupPolicyInfo): GroupPolicyInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/GroupPolicyInfo",
-      value: GroupPolicyInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GroupPolicyInfoProtoMsg): GroupPolicyInfo {
-    return GroupPolicyInfo.decode(message.value);
-  },
-  toProto(message: GroupPolicyInfo): Uint8Array {
-    return GroupPolicyInfo.encode(message).finish();
-  },
-  toProtoMsg(message: GroupPolicyInfo): GroupPolicyInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.GroupPolicyInfo",
-      value: GroupPolicyInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseProposal(): Proposal {
-  return {
-    id: BigInt(0),
-    address: "",
-    metadata: "",
-    proposers: [],
-    submitTime: new Date(),
-    groupVersion: BigInt(0),
-    groupPolicyVersion: BigInt(0),
-    status: 0,
-    result: 0,
-    finalTallyResult: TallyResult.fromPartial({}),
-    votingPeriodEnd: new Date(),
-    executorResult: 0,
-    messages: []
-  };
-}
-export const Proposal = {
-  typeUrl: "/cosmos.group.v1.Proposal",
-  aminoType: "cosmos-sdk/Proposal",
-  encode(message: Proposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== BigInt(0)) {
-      writer.uint32(8).uint64(message.id);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(26).string(message.metadata);
-    }
-    for (const v of message.proposers) {
-      writer.uint32(34).string(v!);
-    }
-    if (message.submitTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.groupVersion !== BigInt(0)) {
-      writer.uint32(48).uint64(message.groupVersion);
-    }
-    if (message.groupPolicyVersion !== BigInt(0)) {
-      writer.uint32(56).uint64(message.groupPolicyVersion);
-    }
-    if (message.status !== 0) {
-      writer.uint32(64).int32(message.status);
-    }
-    if (message.result !== 0) {
-      writer.uint32(72).int32(message.result);
-    }
-    if (message.finalTallyResult !== undefined) {
-      TallyResult.encode(message.finalTallyResult, writer.uint32(82).fork()).ldelim();
-    }
-    if (message.votingPeriodEnd !== undefined) {
-      Timestamp.encode(toTimestamp(message.votingPeriodEnd), writer.uint32(90).fork()).ldelim();
-    }
-    if (message.executorResult !== 0) {
-      writer.uint32(96).int32(message.executorResult);
-    }
-    for (const v of message.messages) {
-      Any.encode(v!, writer.uint32(106).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Proposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint64();
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        case 3:
-          message.metadata = reader.string();
-          break;
-        case 4:
-          message.proposers.push(reader.string());
-          break;
-        case 5:
-          message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.groupVersion = reader.uint64();
-          break;
-        case 7:
-          message.groupPolicyVersion = reader.uint64();
-          break;
-        case 8:
-          message.status = (reader.int32() as any);
-          break;
-        case 9:
-          message.result = (reader.int32() as any);
-          break;
-        case 10:
-          message.finalTallyResult = TallyResult.decode(reader, reader.uint32());
-          break;
-        case 11:
-          message.votingPeriodEnd = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 12:
-          message.executorResult = (reader.int32() as any);
-          break;
-        case 13:
-          message.messages.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Proposal {
-    return {
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      address: isSet(object.address) ? String(object.address) : "",
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => String(e)) : [],
-      submitTime: isSet(object.submitTime) ? new Date(object.submitTime) : undefined,
-      groupVersion: isSet(object.groupVersion) ? BigInt(object.groupVersion.toString()) : BigInt(0),
-      groupPolicyVersion: isSet(object.groupPolicyVersion) ? BigInt(object.groupPolicyVersion.toString()) : BigInt(0),
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      result: isSet(object.result) ? proposalResultFromJSON(object.result) : -1,
-      finalTallyResult: isSet(object.finalTallyResult) ? TallyResult.fromJSON(object.finalTallyResult) : undefined,
-      votingPeriodEnd: isSet(object.votingPeriodEnd) ? new Date(object.votingPeriodEnd) : undefined,
-      executorResult: isSet(object.executorResult) ? proposalExecutorResultFromJSON(object.executorResult) : -1,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Proposal): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    message.address !== undefined && (obj.address = message.address);
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());
-    message.groupVersion !== undefined && (obj.groupVersion = (message.groupVersion || BigInt(0)).toString());
-    message.groupPolicyVersion !== undefined && (obj.groupPolicyVersion = (message.groupPolicyVersion || BigInt(0)).toString());
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.result !== undefined && (obj.result = proposalResultToJSON(message.result));
-    message.finalTallyResult !== undefined && (obj.finalTallyResult = message.finalTallyResult ? TallyResult.toJSON(message.finalTallyResult) : undefined);
-    message.votingPeriodEnd !== undefined && (obj.votingPeriodEnd = message.votingPeriodEnd.toISOString());
-    message.executorResult !== undefined && (obj.executorResult = proposalExecutorResultToJSON(message.executorResult));
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Proposal>): Proposal {
-    const message = createBaseProposal();
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.address = object.address ?? "";
-    message.metadata = object.metadata ?? "";
-    message.proposers = object.proposers?.map(e => e) || [];
-    message.submitTime = object.submitTime ?? undefined;
-    message.groupVersion = object.groupVersion !== undefined && object.groupVersion !== null ? BigInt(object.groupVersion.toString()) : BigInt(0);
-    message.groupPolicyVersion = object.groupPolicyVersion !== undefined && object.groupPolicyVersion !== null ? BigInt(object.groupPolicyVersion.toString()) : BigInt(0);
-    message.status = object.status ?? 0;
-    message.result = object.result ?? 0;
-    message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined;
-    message.votingPeriodEnd = object.votingPeriodEnd ?? undefined;
-    message.executorResult = object.executorResult ?? 0;
-    message.messages = object.messages?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ProposalSDKType): Proposal {
-    return {
-      id: object?.id,
-      address: object?.address,
-      metadata: object?.metadata,
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => e) : [],
-      submitTime: object.submit_time ?? undefined,
-      groupVersion: object?.group_version,
-      groupPolicyVersion: object?.group_policy_version,
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      result: isSet(object.result) ? proposalResultFromJSON(object.result) : -1,
-      finalTallyResult: object.final_tally_result ? TallyResult.fromSDK(object.final_tally_result) : undefined,
-      votingPeriodEnd: object.voting_period_end ?? undefined,
-      executorResult: isSet(object.executor_result) ? proposalExecutorResultFromJSON(object.executor_result) : -1,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Proposal): ProposalSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.address = message.address;
-    obj.metadata = message.metadata;
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    message.submitTime !== undefined && (obj.submit_time = message.submitTime ?? undefined);
-    obj.group_version = message.groupVersion;
-    obj.group_policy_version = message.groupPolicyVersion;
-    message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));
-    message.result !== undefined && (obj.result = proposalResultToJSON(message.result));
-    message.finalTallyResult !== undefined && (obj.final_tally_result = message.finalTallyResult ? TallyResult.toSDK(message.finalTallyResult) : undefined);
-    message.votingPeriodEnd !== undefined && (obj.voting_period_end = message.votingPeriodEnd ?? undefined);
-    message.executorResult !== undefined && (obj.executor_result = proposalExecutorResultToJSON(message.executorResult));
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ProposalAmino): Proposal {
-    return {
-      id: BigInt(object.id),
-      address: object.address,
-      metadata: object.metadata,
-      proposers: Array.isArray(object?.proposers) ? object.proposers.map((e: any) => e) : [],
-      submitTime: object.submit_time,
-      groupVersion: BigInt(object.group_version),
-      groupPolicyVersion: BigInt(object.group_policy_version),
-      status: isSet(object.status) ? proposalStatusFromJSON(object.status) : -1,
-      result: isSet(object.result) ? proposalResultFromJSON(object.result) : -1,
-      finalTallyResult: object?.final_tally_result ? TallyResult.fromAmino(object.final_tally_result) : undefined,
-      votingPeriodEnd: object.voting_period_end,
-      executorResult: isSet(object.executor_result) ? proposalExecutorResultFromJSON(object.executor_result) : -1,
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Proposal): ProposalAmino {
-    const obj: any = {};
-    obj.id = message.id ? message.id.toString() : undefined;
-    obj.address = message.address;
-    obj.metadata = message.metadata;
-    if (message.proposers) {
-      obj.proposers = message.proposers.map(e => e);
-    } else {
-      obj.proposers = [];
-    }
-    obj.submit_time = message.submitTime;
-    obj.group_version = message.groupVersion ? message.groupVersion.toString() : undefined;
-    obj.group_policy_version = message.groupPolicyVersion ? message.groupPolicyVersion.toString() : undefined;
-    obj.status = message.status;
-    obj.result = message.result;
-    obj.final_tally_result = message.finalTallyResult ? TallyResult.toAmino(message.finalTallyResult) : undefined;
-    obj.voting_period_end = message.votingPeriodEnd;
-    obj.executor_result = message.executorResult;
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ProposalAminoMsg): Proposal {
-    return Proposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: Proposal): ProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/Proposal",
-      value: Proposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ProposalProtoMsg): Proposal {
-    return Proposal.decode(message.value);
-  },
-  toProto(message: Proposal): Uint8Array {
-    return Proposal.encode(message).finish();
-  },
-  toProtoMsg(message: Proposal): ProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.Proposal",
-      value: Proposal.encode(message).finish()
-    };
-  }
-};
-function createBaseTallyResult(): TallyResult {
-  return {
-    yesCount: "",
-    abstainCount: "",
-    noCount: "",
-    noWithVetoCount: ""
-  };
-}
-export const TallyResult = {
-  typeUrl: "/cosmos.group.v1.TallyResult",
-  aminoType: "cosmos-sdk/TallyResult",
-  encode(message: TallyResult, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.yesCount !== "") {
-      writer.uint32(10).string(message.yesCount);
-    }
-    if (message.abstainCount !== "") {
-      writer.uint32(18).string(message.abstainCount);
-    }
-    if (message.noCount !== "") {
-      writer.uint32(26).string(message.noCount);
-    }
-    if (message.noWithVetoCount !== "") {
-      writer.uint32(34).string(message.noWithVetoCount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TallyResult {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTallyResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.yesCount = reader.string();
-          break;
-        case 2:
-          message.abstainCount = reader.string();
-          break;
-        case 3:
-          message.noCount = reader.string();
-          break;
-        case 4:
-          message.noWithVetoCount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TallyResult {
-    return {
-      yesCount: isSet(object.yesCount) ? String(object.yesCount) : "",
-      abstainCount: isSet(object.abstainCount) ? String(object.abstainCount) : "",
-      noCount: isSet(object.noCount) ? String(object.noCount) : "",
-      noWithVetoCount: isSet(object.noWithVetoCount) ? String(object.noWithVetoCount) : ""
-    };
-  },
-  toJSON(message: TallyResult): unknown {
-    const obj: any = {};
-    message.yesCount !== undefined && (obj.yesCount = message.yesCount);
-    message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);
-    message.noCount !== undefined && (obj.noCount = message.noCount);
-    message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TallyResult>): TallyResult {
-    const message = createBaseTallyResult();
-    message.yesCount = object.yesCount ?? "";
-    message.abstainCount = object.abstainCount ?? "";
-    message.noCount = object.noCount ?? "";
-    message.noWithVetoCount = object.noWithVetoCount ?? "";
-    return message;
-  },
-  fromSDK(object: TallyResultSDKType): TallyResult {
-    return {
-      yesCount: object?.yes_count,
-      abstainCount: object?.abstain_count,
-      noCount: object?.no_count,
-      noWithVetoCount: object?.no_with_veto_count
-    };
-  },
-  toSDK(message: TallyResult): TallyResultSDKType {
-    const obj: any = {};
-    obj.yes_count = message.yesCount;
-    obj.abstain_count = message.abstainCount;
-    obj.no_count = message.noCount;
-    obj.no_with_veto_count = message.noWithVetoCount;
-    return obj;
-  },
-  fromAmino(object: TallyResultAmino): TallyResult {
-    return {
-      yesCount: object.yes_count,
-      abstainCount: object.abstain_count,
-      noCount: object.no_count,
-      noWithVetoCount: object.no_with_veto_count
-    };
-  },
-  toAmino(message: TallyResult): TallyResultAmino {
-    const obj: any = {};
-    obj.yes_count = message.yesCount;
-    obj.abstain_count = message.abstainCount;
-    obj.no_count = message.noCount;
-    obj.no_with_veto_count = message.noWithVetoCount;
-    return obj;
-  },
-  fromAminoMsg(object: TallyResultAminoMsg): TallyResult {
-    return TallyResult.fromAmino(object.value);
-  },
-  toAminoMsg(message: TallyResult): TallyResultAminoMsg {
-    return {
-      type: "cosmos-sdk/TallyResult",
-      value: TallyResult.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TallyResultProtoMsg): TallyResult {
-    return TallyResult.decode(message.value);
-  },
-  toProto(message: TallyResult): Uint8Array {
-    return TallyResult.encode(message).finish();
-  },
-  toProtoMsg(message: TallyResult): TallyResultProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.TallyResult",
-      value: TallyResult.encode(message).finish()
-    };
-  }
-};
-function createBaseVote(): Vote {
-  return {
-    proposalId: BigInt(0),
-    voter: "",
-    option: 0,
-    metadata: "",
-    submitTime: new Date()
-  };
-}
-export const Vote = {
-  typeUrl: "/cosmos.group.v1.Vote",
-  aminoType: "cosmos-sdk/Vote",
-  encode(message: Vote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.proposalId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.proposalId);
-    }
-    if (message.voter !== "") {
-      writer.uint32(18).string(message.voter);
-    }
-    if (message.option !== 0) {
-      writer.uint32(24).int32(message.option);
-    }
-    if (message.metadata !== "") {
-      writer.uint32(34).string(message.metadata);
-    }
-    if (message.submitTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Vote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proposalId = reader.uint64();
-          break;
-        case 2:
-          message.voter = reader.string();
-          break;
-        case 3:
-          message.option = (reader.int32() as any);
-          break;
-        case 4:
-          message.metadata = reader.string();
-          break;
-        case 5:
-          message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Vote {
-    return {
-      proposalId: isSet(object.proposalId) ? BigInt(object.proposalId.toString()) : BigInt(0),
-      voter: isSet(object.voter) ? String(object.voter) : "",
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: isSet(object.metadata) ? String(object.metadata) : "",
-      submitTime: isSet(object.submitTime) ? new Date(object.submitTime) : undefined
-    };
-  },
-  toJSON(message: Vote): unknown {
-    const obj: any = {};
-    message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());
-    message.voter !== undefined && (obj.voter = message.voter);
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    message.metadata !== undefined && (obj.metadata = message.metadata);
-    message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Vote>): Vote {
-    const message = createBaseVote();
-    message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? BigInt(object.proposalId.toString()) : BigInt(0);
-    message.voter = object.voter ?? "";
-    message.option = object.option ?? 0;
-    message.metadata = object.metadata ?? "";
-    message.submitTime = object.submitTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: VoteSDKType): Vote {
-    return {
-      proposalId: object?.proposal_id,
-      voter: object?.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object?.metadata,
-      submitTime: object.submit_time ?? undefined
-    };
-  },
-  toSDK(message: Vote): VoteSDKType {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId;
-    obj.voter = message.voter;
-    message.option !== undefined && (obj.option = voteOptionToJSON(message.option));
-    obj.metadata = message.metadata;
-    message.submitTime !== undefined && (obj.submit_time = message.submitTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: VoteAmino): Vote {
-    return {
-      proposalId: BigInt(object.proposal_id),
-      voter: object.voter,
-      option: isSet(object.option) ? voteOptionFromJSON(object.option) : -1,
-      metadata: object.metadata,
-      submitTime: object.submit_time
-    };
-  },
-  toAmino(message: Vote): VoteAmino {
-    const obj: any = {};
-    obj.proposal_id = message.proposalId ? message.proposalId.toString() : undefined;
-    obj.voter = message.voter;
-    obj.option = message.option;
-    obj.metadata = message.metadata;
-    obj.submit_time = message.submitTime;
-    return obj;
-  },
-  fromAminoMsg(object: VoteAminoMsg): Vote {
-    return Vote.fromAmino(object.value);
-  },
-  toAminoMsg(message: Vote): VoteAminoMsg {
-    return {
-      type: "cosmos-sdk/Vote",
-      value: Vote.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VoteProtoMsg): Vote {
-    return Vote.decode(message.value);
-  },
-  toProto(message: Vote): Uint8Array {
-    return Vote.encode(message).finish();
-  },
-  toProtoMsg(message: Vote): VoteProtoMsg {
-    return {
-      typeUrl: "/cosmos.group.v1.Vote",
-      value: Vote.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/mint/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/mint/v1beta1/genesis.ts
deleted file mode 100644
index cccdbbab..00000000
--- a/examples/injective/src/codegen/cosmos/mint/v1beta1/genesis.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import { Minter, MinterAmino, MinterSDKType, Params, ParamsAmino, ParamsSDKType } from "./mint";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisState {
-  /** minter is a space for holding current inflation information. */
-  minter: Minter | undefined;
-  /** params defines all the paramaters of the module. */
-  params: Params | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisStateAmino {
-  /** minter is a space for holding current inflation information. */
-  minter?: MinterAmino | undefined;
-  /** params defines all the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisStateSDKType {
-  minter: MinterSDKType | undefined;
-  params: ParamsSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    minter: Minter.fromPartial({}),
-    params: Params.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.mint.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.minter !== undefined) {
-      Minter.encode(message.minter, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minter = Minter.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      minter: isSet(object.minter) ? Minter.fromJSON(object.minter) : undefined,
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.minter !== undefined && (obj.minter = message.minter ? Minter.toJSON(message.minter) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.minter = object.minter !== undefined && object.minter !== null ? Minter.fromPartial(object.minter) : undefined;
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      minter: object.minter ? Minter.fromSDK(object.minter) : undefined,
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.minter !== undefined && (obj.minter = message.minter ? Minter.toSDK(message.minter) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      minter: object?.minter ? Minter.fromAmino(object.minter) : undefined,
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.minter = message.minter ? Minter.toAmino(message.minter) : undefined;
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/mint/v1beta1/mint.ts b/examples/injective/src/codegen/cosmos/mint/v1beta1/mint.ts
deleted file mode 100644
index 5dca9391..00000000
--- a/examples/injective/src/codegen/cosmos/mint/v1beta1/mint.ts
+++ /dev/null
@@ -1,337 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Minter represents the minting state. */
-export interface Minter {
-  /** current annual inflation rate */
-  inflation: string;
-  /** current annual expected provisions */
-  annualProvisions: string;
-}
-export interface MinterProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.Minter";
-  value: Uint8Array;
-}
-/** Minter represents the minting state. */
-export interface MinterAmino {
-  /** current annual inflation rate */
-  inflation: string;
-  /** current annual expected provisions */
-  annual_provisions: string;
-}
-export interface MinterAminoMsg {
-  type: "cosmos-sdk/Minter";
-  value: MinterAmino;
-}
-/** Minter represents the minting state. */
-export interface MinterSDKType {
-  inflation: string;
-  annual_provisions: string;
-}
-/** Params holds parameters for the mint module. */
-export interface Params {
-  /** type of coin to mint */
-  mintDenom: string;
-  /** maximum annual change in inflation rate */
-  inflationRateChange: string;
-  /** maximum inflation rate */
-  inflationMax: string;
-  /** minimum inflation rate */
-  inflationMin: string;
-  /** goal of percent bonded atoms */
-  goalBonded: string;
-  /** expected blocks per year */
-  blocksPerYear: bigint;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the mint module. */
-export interface ParamsAmino {
-  /** type of coin to mint */
-  mint_denom: string;
-  /** maximum annual change in inflation rate */
-  inflation_rate_change: string;
-  /** maximum inflation rate */
-  inflation_max: string;
-  /** minimum inflation rate */
-  inflation_min: string;
-  /** goal of percent bonded atoms */
-  goal_bonded: string;
-  /** expected blocks per year */
-  blocks_per_year: string;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the mint module. */
-export interface ParamsSDKType {
-  mint_denom: string;
-  inflation_rate_change: string;
-  inflation_max: string;
-  inflation_min: string;
-  goal_bonded: string;
-  blocks_per_year: bigint;
-}
-function createBaseMinter(): Minter {
-  return {
-    inflation: "",
-    annualProvisions: ""
-  };
-}
-export const Minter = {
-  typeUrl: "/cosmos.mint.v1beta1.Minter",
-  aminoType: "cosmos-sdk/Minter",
-  encode(message: Minter, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.inflation !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.inflation, 18).atomics);
-    }
-    if (message.annualProvisions !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.annualProvisions, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Minter {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMinter();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.inflation = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.annualProvisions = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Minter {
-    return {
-      inflation: isSet(object.inflation) ? String(object.inflation) : "",
-      annualProvisions: isSet(object.annualProvisions) ? String(object.annualProvisions) : ""
-    };
-  },
-  toJSON(message: Minter): unknown {
-    const obj: any = {};
-    message.inflation !== undefined && (obj.inflation = message.inflation);
-    message.annualProvisions !== undefined && (obj.annualProvisions = message.annualProvisions);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Minter>): Minter {
-    const message = createBaseMinter();
-    message.inflation = object.inflation ?? "";
-    message.annualProvisions = object.annualProvisions ?? "";
-    return message;
-  },
-  fromSDK(object: MinterSDKType): Minter {
-    return {
-      inflation: object?.inflation,
-      annualProvisions: object?.annual_provisions
-    };
-  },
-  toSDK(message: Minter): MinterSDKType {
-    const obj: any = {};
-    obj.inflation = message.inflation;
-    obj.annual_provisions = message.annualProvisions;
-    return obj;
-  },
-  fromAmino(object: MinterAmino): Minter {
-    return {
-      inflation: object.inflation,
-      annualProvisions: object.annual_provisions
-    };
-  },
-  toAmino(message: Minter): MinterAmino {
-    const obj: any = {};
-    obj.inflation = message.inflation;
-    obj.annual_provisions = message.annualProvisions;
-    return obj;
-  },
-  fromAminoMsg(object: MinterAminoMsg): Minter {
-    return Minter.fromAmino(object.value);
-  },
-  toAminoMsg(message: Minter): MinterAminoMsg {
-    return {
-      type: "cosmos-sdk/Minter",
-      value: Minter.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MinterProtoMsg): Minter {
-    return Minter.decode(message.value);
-  },
-  toProto(message: Minter): Uint8Array {
-    return Minter.encode(message).finish();
-  },
-  toProtoMsg(message: Minter): MinterProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.Minter",
-      value: Minter.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    mintDenom: "",
-    inflationRateChange: "",
-    inflationMax: "",
-    inflationMin: "",
-    goalBonded: "",
-    blocksPerYear: BigInt(0)
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.mint.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.mintDenom !== "") {
-      writer.uint32(10).string(message.mintDenom);
-    }
-    if (message.inflationRateChange !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.inflationRateChange, 18).atomics);
-    }
-    if (message.inflationMax !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.inflationMax, 18).atomics);
-    }
-    if (message.inflationMin !== "") {
-      writer.uint32(34).string(Decimal.fromUserInput(message.inflationMin, 18).atomics);
-    }
-    if (message.goalBonded !== "") {
-      writer.uint32(42).string(Decimal.fromUserInput(message.goalBonded, 18).atomics);
-    }
-    if (message.blocksPerYear !== BigInt(0)) {
-      writer.uint32(48).uint64(message.blocksPerYear);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.mintDenom = reader.string();
-          break;
-        case 2:
-          message.inflationRateChange = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.inflationMax = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 4:
-          message.inflationMin = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 5:
-          message.goalBonded = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 6:
-          message.blocksPerYear = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      mintDenom: isSet(object.mintDenom) ? String(object.mintDenom) : "",
-      inflationRateChange: isSet(object.inflationRateChange) ? String(object.inflationRateChange) : "",
-      inflationMax: isSet(object.inflationMax) ? String(object.inflationMax) : "",
-      inflationMin: isSet(object.inflationMin) ? String(object.inflationMin) : "",
-      goalBonded: isSet(object.goalBonded) ? String(object.goalBonded) : "",
-      blocksPerYear: isSet(object.blocksPerYear) ? BigInt(object.blocksPerYear.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);
-    message.inflationRateChange !== undefined && (obj.inflationRateChange = message.inflationRateChange);
-    message.inflationMax !== undefined && (obj.inflationMax = message.inflationMax);
-    message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin);
-    message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded);
-    message.blocksPerYear !== undefined && (obj.blocksPerYear = (message.blocksPerYear || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.mintDenom = object.mintDenom ?? "";
-    message.inflationRateChange = object.inflationRateChange ?? "";
-    message.inflationMax = object.inflationMax ?? "";
-    message.inflationMin = object.inflationMin ?? "";
-    message.goalBonded = object.goalBonded ?? "";
-    message.blocksPerYear = object.blocksPerYear !== undefined && object.blocksPerYear !== null ? BigInt(object.blocksPerYear.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      mintDenom: object?.mint_denom,
-      inflationRateChange: object?.inflation_rate_change,
-      inflationMax: object?.inflation_max,
-      inflationMin: object?.inflation_min,
-      goalBonded: object?.goal_bonded,
-      blocksPerYear: object?.blocks_per_year
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.mint_denom = message.mintDenom;
-    obj.inflation_rate_change = message.inflationRateChange;
-    obj.inflation_max = message.inflationMax;
-    obj.inflation_min = message.inflationMin;
-    obj.goal_bonded = message.goalBonded;
-    obj.blocks_per_year = message.blocksPerYear;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      mintDenom: object.mint_denom,
-      inflationRateChange: object.inflation_rate_change,
-      inflationMax: object.inflation_max,
-      inflationMin: object.inflation_min,
-      goalBonded: object.goal_bonded,
-      blocksPerYear: BigInt(object.blocks_per_year)
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.mint_denom = message.mintDenom;
-    obj.inflation_rate_change = message.inflationRateChange;
-    obj.inflation_max = message.inflationMax;
-    obj.inflation_min = message.inflationMin;
-    obj.goal_bonded = message.goalBonded;
-    obj.blocks_per_year = message.blocksPerYear ? message.blocksPerYear.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/mint/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/mint/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 54f8e781..00000000
--- a/examples/injective/src/codegen/cosmos/mint/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QueryInflationRequest, QueryInflationResponse, QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponse } from "./query";
-/** Query provides defines the gRPC querier service. */
-export interface Query {
-  /** Params returns the total set of minting parameters. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** Inflation returns the current minting inflation value. */
-  inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
-  /** AnnualProvisions current minting annual provisions value. */
-  annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.inflation = this.inflation.bind(this);
-    this.annualProvisions = this.annualProvisions.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  inflation(request: QueryInflationRequest = {}): Promise<QueryInflationResponse> {
-    const data = QueryInflationRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Inflation", data);
-    return promise.then(data => QueryInflationResponse.decode(new BinaryReader(data)));
-  }
-  annualProvisions(request: QueryAnnualProvisionsRequest = {}): Promise<QueryAnnualProvisionsResponse> {
-    const data = QueryAnnualProvisionsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "AnnualProvisions", data);
-    return promise.then(data => QueryAnnualProvisionsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse> {
-      return queryService.inflation(request);
-    },
-    annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse> {
-      return queryService.annualProvisions(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseInflationQuery<TData> extends ReactQueryParams<QueryInflationResponse, TData> {
-  request?: QueryInflationRequest;
-}
-export interface UseAnnualProvisionsQuery<TData> extends ReactQueryParams<QueryAnnualProvisionsResponse, TData> {
-  request?: QueryAnnualProvisionsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useInflation = <TData = QueryInflationResponse,>({
-    request,
-    options
-  }: UseInflationQuery<TData>) => {
-    return useQuery<QueryInflationResponse, Error, TData>(["inflationQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.inflation(request);
-    }, options);
-  };
-  const useAnnualProvisions = <TData = QueryAnnualProvisionsResponse,>({
-    request,
-    options
-  }: UseAnnualProvisionsQuery<TData>) => {
-    return useQuery<QueryAnnualProvisionsResponse, Error, TData>(["annualProvisionsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.annualProvisions(request);
-    }, options);
-  };
-  return {
-    /** Params returns the total set of minting parameters. */useParams,
-    /** Inflation returns the current minting inflation value. */useInflation,
-    /** AnnualProvisions current minting annual provisions value. */useAnnualProvisions
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryInflationStore {
-    store = new QueryStore<QueryInflationRequest, QueryInflationResponse>(queryService?.inflation);
-    inflation(request: QueryInflationRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAnnualProvisionsStore {
-    store = new QueryStore<QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponse>(queryService?.annualProvisions);
-    annualProvisions(request: QueryAnnualProvisionsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Params returns the total set of minting parameters. */QueryParamsStore,
-    /** Inflation returns the current minting inflation value. */QueryInflationStore,
-    /** AnnualProvisions current minting annual provisions value. */QueryAnnualProvisionsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/mint/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/mint/v1beta1/query.ts
deleted file mode 100644
index 26b3bc21..00000000
--- a/examples/injective/src/codegen/cosmos/mint/v1beta1/query.ts
+++ /dev/null
@@ -1,612 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./mint";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */
-export interface QueryInflationRequest {}
-export interface QueryInflationRequestProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryInflationRequest";
-  value: Uint8Array;
-}
-/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */
-export interface QueryInflationRequestAmino {}
-export interface QueryInflationRequestAminoMsg {
-  type: "cosmos-sdk/QueryInflationRequest";
-  value: QueryInflationRequestAmino;
-}
-/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */
-export interface QueryInflationRequestSDKType {}
-/**
- * QueryInflationResponse is the response type for the Query/Inflation RPC
- * method.
- */
-export interface QueryInflationResponse {
-  /** inflation is the current minting inflation value. */
-  inflation: Uint8Array;
-}
-export interface QueryInflationResponseProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryInflationResponse";
-  value: Uint8Array;
-}
-/**
- * QueryInflationResponse is the response type for the Query/Inflation RPC
- * method.
- */
-export interface QueryInflationResponseAmino {
-  /** inflation is the current minting inflation value. */
-  inflation: Uint8Array;
-}
-export interface QueryInflationResponseAminoMsg {
-  type: "cosmos-sdk/QueryInflationResponse";
-  value: QueryInflationResponseAmino;
-}
-/**
- * QueryInflationResponse is the response type for the Query/Inflation RPC
- * method.
- */
-export interface QueryInflationResponseSDKType {
-  inflation: Uint8Array;
-}
-/**
- * QueryAnnualProvisionsRequest is the request type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsRequest {}
-export interface QueryAnnualProvisionsRequestProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryAnnualProvisionsRequest is the request type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsRequestAmino {}
-export interface QueryAnnualProvisionsRequestAminoMsg {
-  type: "cosmos-sdk/QueryAnnualProvisionsRequest";
-  value: QueryAnnualProvisionsRequestAmino;
-}
-/**
- * QueryAnnualProvisionsRequest is the request type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsRequestSDKType {}
-/**
- * QueryAnnualProvisionsResponse is the response type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsResponse {
-  /** annual_provisions is the current minting annual provisions value. */
-  annualProvisions: Uint8Array;
-}
-export interface QueryAnnualProvisionsResponseProtoMsg {
-  typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAnnualProvisionsResponse is the response type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsResponseAmino {
-  /** annual_provisions is the current minting annual provisions value. */
-  annual_provisions: Uint8Array;
-}
-export interface QueryAnnualProvisionsResponseAminoMsg {
-  type: "cosmos-sdk/QueryAnnualProvisionsResponse";
-  value: QueryAnnualProvisionsResponseAmino;
-}
-/**
- * QueryAnnualProvisionsResponse is the response type for the
- * Query/AnnualProvisions RPC method.
- */
-export interface QueryAnnualProvisionsResponseSDKType {
-  annual_provisions: Uint8Array;
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryInflationRequest(): QueryInflationRequest {
-  return {};
-}
-export const QueryInflationRequest = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryInflationRequest",
-  aminoType: "cosmos-sdk/QueryInflationRequest",
-  encode(_: QueryInflationRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryInflationRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryInflationRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryInflationRequest {
-    return {};
-  },
-  toJSON(_: QueryInflationRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryInflationRequest>): QueryInflationRequest {
-    const message = createBaseQueryInflationRequest();
-    return message;
-  },
-  fromSDK(_: QueryInflationRequestSDKType): QueryInflationRequest {
-    return {};
-  },
-  toSDK(_: QueryInflationRequest): QueryInflationRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryInflationRequestAmino): QueryInflationRequest {
-    return {};
-  },
-  toAmino(_: QueryInflationRequest): QueryInflationRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryInflationRequestAminoMsg): QueryInflationRequest {
-    return QueryInflationRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryInflationRequest): QueryInflationRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryInflationRequest",
-      value: QueryInflationRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryInflationRequestProtoMsg): QueryInflationRequest {
-    return QueryInflationRequest.decode(message.value);
-  },
-  toProto(message: QueryInflationRequest): Uint8Array {
-    return QueryInflationRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryInflationRequest): QueryInflationRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryInflationRequest",
-      value: QueryInflationRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryInflationResponse(): QueryInflationResponse {
-  return {
-    inflation: new Uint8Array()
-  };
-}
-export const QueryInflationResponse = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryInflationResponse",
-  aminoType: "cosmos-sdk/QueryInflationResponse",
-  encode(message: QueryInflationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.inflation.length !== 0) {
-      writer.uint32(10).bytes(message.inflation);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryInflationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryInflationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.inflation = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryInflationResponse {
-    return {
-      inflation: isSet(object.inflation) ? bytesFromBase64(object.inflation) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryInflationResponse): unknown {
-    const obj: any = {};
-    message.inflation !== undefined && (obj.inflation = base64FromBytes(message.inflation !== undefined ? message.inflation : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryInflationResponse>): QueryInflationResponse {
-    const message = createBaseQueryInflationResponse();
-    message.inflation = object.inflation ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryInflationResponseSDKType): QueryInflationResponse {
-    return {
-      inflation: object?.inflation
-    };
-  },
-  toSDK(message: QueryInflationResponse): QueryInflationResponseSDKType {
-    const obj: any = {};
-    obj.inflation = message.inflation;
-    return obj;
-  },
-  fromAmino(object: QueryInflationResponseAmino): QueryInflationResponse {
-    return {
-      inflation: object.inflation
-    };
-  },
-  toAmino(message: QueryInflationResponse): QueryInflationResponseAmino {
-    const obj: any = {};
-    obj.inflation = message.inflation;
-    return obj;
-  },
-  fromAminoMsg(object: QueryInflationResponseAminoMsg): QueryInflationResponse {
-    return QueryInflationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryInflationResponse): QueryInflationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryInflationResponse",
-      value: QueryInflationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryInflationResponseProtoMsg): QueryInflationResponse {
-    return QueryInflationResponse.decode(message.value);
-  },
-  toProto(message: QueryInflationResponse): Uint8Array {
-    return QueryInflationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryInflationResponse): QueryInflationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryInflationResponse",
-      value: QueryInflationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAnnualProvisionsRequest(): QueryAnnualProvisionsRequest {
-  return {};
-}
-export const QueryAnnualProvisionsRequest = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest",
-  aminoType: "cosmos-sdk/QueryAnnualProvisionsRequest",
-  encode(_: QueryAnnualProvisionsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAnnualProvisionsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAnnualProvisionsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryAnnualProvisionsRequest {
-    return {};
-  },
-  toJSON(_: QueryAnnualProvisionsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryAnnualProvisionsRequest>): QueryAnnualProvisionsRequest {
-    const message = createBaseQueryAnnualProvisionsRequest();
-    return message;
-  },
-  fromSDK(_: QueryAnnualProvisionsRequestSDKType): QueryAnnualProvisionsRequest {
-    return {};
-  },
-  toSDK(_: QueryAnnualProvisionsRequest): QueryAnnualProvisionsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryAnnualProvisionsRequestAmino): QueryAnnualProvisionsRequest {
-    return {};
-  },
-  toAmino(_: QueryAnnualProvisionsRequest): QueryAnnualProvisionsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryAnnualProvisionsRequestAminoMsg): QueryAnnualProvisionsRequest {
-    return QueryAnnualProvisionsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAnnualProvisionsRequest): QueryAnnualProvisionsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAnnualProvisionsRequest",
-      value: QueryAnnualProvisionsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAnnualProvisionsRequestProtoMsg): QueryAnnualProvisionsRequest {
-    return QueryAnnualProvisionsRequest.decode(message.value);
-  },
-  toProto(message: QueryAnnualProvisionsRequest): Uint8Array {
-    return QueryAnnualProvisionsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAnnualProvisionsRequest): QueryAnnualProvisionsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest",
-      value: QueryAnnualProvisionsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAnnualProvisionsResponse(): QueryAnnualProvisionsResponse {
-  return {
-    annualProvisions: new Uint8Array()
-  };
-}
-export const QueryAnnualProvisionsResponse = {
-  typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse",
-  aminoType: "cosmos-sdk/QueryAnnualProvisionsResponse",
-  encode(message: QueryAnnualProvisionsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.annualProvisions.length !== 0) {
-      writer.uint32(10).bytes(message.annualProvisions);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAnnualProvisionsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAnnualProvisionsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.annualProvisions = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAnnualProvisionsResponse {
-    return {
-      annualProvisions: isSet(object.annualProvisions) ? bytesFromBase64(object.annualProvisions) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryAnnualProvisionsResponse): unknown {
-    const obj: any = {};
-    message.annualProvisions !== undefined && (obj.annualProvisions = base64FromBytes(message.annualProvisions !== undefined ? message.annualProvisions : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAnnualProvisionsResponse>): QueryAnnualProvisionsResponse {
-    const message = createBaseQueryAnnualProvisionsResponse();
-    message.annualProvisions = object.annualProvisions ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryAnnualProvisionsResponseSDKType): QueryAnnualProvisionsResponse {
-    return {
-      annualProvisions: object?.annual_provisions
-    };
-  },
-  toSDK(message: QueryAnnualProvisionsResponse): QueryAnnualProvisionsResponseSDKType {
-    const obj: any = {};
-    obj.annual_provisions = message.annualProvisions;
-    return obj;
-  },
-  fromAmino(object: QueryAnnualProvisionsResponseAmino): QueryAnnualProvisionsResponse {
-    return {
-      annualProvisions: object.annual_provisions
-    };
-  },
-  toAmino(message: QueryAnnualProvisionsResponse): QueryAnnualProvisionsResponseAmino {
-    const obj: any = {};
-    obj.annual_provisions = message.annualProvisions;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAnnualProvisionsResponseAminoMsg): QueryAnnualProvisionsResponse {
-    return QueryAnnualProvisionsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAnnualProvisionsResponse): QueryAnnualProvisionsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAnnualProvisionsResponse",
-      value: QueryAnnualProvisionsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAnnualProvisionsResponseProtoMsg): QueryAnnualProvisionsResponse {
-    return QueryAnnualProvisionsResponse.decode(message.value);
-  },
-  toProto(message: QueryAnnualProvisionsResponse): Uint8Array {
-    return QueryAnnualProvisionsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAnnualProvisionsResponse): QueryAnnualProvisionsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse",
-      value: QueryAnnualProvisionsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/msg/v1/msg.ts b/examples/injective/src/codegen/cosmos/msg/v1/msg.ts
deleted file mode 100644
index 693da49f..00000000
--- a/examples/injective/src/codegen/cosmos/msg/v1/msg.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/event.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/event.ts
deleted file mode 100644
index 7f5d5010..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/event.ts
+++ /dev/null
@@ -1,445 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** EventSend is emitted on Msg/Send */
-export interface EventSend {
-  classId: string;
-  id: string;
-  sender: string;
-  receiver: string;
-}
-export interface EventSendProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.EventSend";
-  value: Uint8Array;
-}
-/** EventSend is emitted on Msg/Send */
-export interface EventSendAmino {
-  class_id: string;
-  id: string;
-  sender: string;
-  receiver: string;
-}
-export interface EventSendAminoMsg {
-  type: "cosmos-sdk/EventSend";
-  value: EventSendAmino;
-}
-/** EventSend is emitted on Msg/Send */
-export interface EventSendSDKType {
-  class_id: string;
-  id: string;
-  sender: string;
-  receiver: string;
-}
-/** EventMint is emitted on Mint */
-export interface EventMint {
-  classId: string;
-  id: string;
-  owner: string;
-}
-export interface EventMintProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.EventMint";
-  value: Uint8Array;
-}
-/** EventMint is emitted on Mint */
-export interface EventMintAmino {
-  class_id: string;
-  id: string;
-  owner: string;
-}
-export interface EventMintAminoMsg {
-  type: "cosmos-sdk/EventMint";
-  value: EventMintAmino;
-}
-/** EventMint is emitted on Mint */
-export interface EventMintSDKType {
-  class_id: string;
-  id: string;
-  owner: string;
-}
-/** EventBurn is emitted on Burn */
-export interface EventBurn {
-  classId: string;
-  id: string;
-  owner: string;
-}
-export interface EventBurnProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.EventBurn";
-  value: Uint8Array;
-}
-/** EventBurn is emitted on Burn */
-export interface EventBurnAmino {
-  class_id: string;
-  id: string;
-  owner: string;
-}
-export interface EventBurnAminoMsg {
-  type: "cosmos-sdk/EventBurn";
-  value: EventBurnAmino;
-}
-/** EventBurn is emitted on Burn */
-export interface EventBurnSDKType {
-  class_id: string;
-  id: string;
-  owner: string;
-}
-function createBaseEventSend(): EventSend {
-  return {
-    classId: "",
-    id: "",
-    sender: "",
-    receiver: ""
-  };
-}
-export const EventSend = {
-  typeUrl: "/cosmos.nft.v1beta1.EventSend",
-  aminoType: "cosmos-sdk/EventSend",
-  encode(message: EventSend, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    if (message.sender !== "") {
-      writer.uint32(26).string(message.sender);
-    }
-    if (message.receiver !== "") {
-      writer.uint32(34).string(message.receiver);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventSend {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventSend();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        case 3:
-          message.sender = reader.string();
-          break;
-        case 4:
-          message.receiver = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventSend {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : "",
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      receiver: isSet(object.receiver) ? String(object.receiver) : ""
-    };
-  },
-  toJSON(message: EventSend): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.receiver !== undefined && (obj.receiver = message.receiver);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventSend>): EventSend {
-    const message = createBaseEventSend();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    message.sender = object.sender ?? "";
-    message.receiver = object.receiver ?? "";
-    return message;
-  },
-  fromSDK(object: EventSendSDKType): EventSend {
-    return {
-      classId: object?.class_id,
-      id: object?.id,
-      sender: object?.sender,
-      receiver: object?.receiver
-    };
-  },
-  toSDK(message: EventSend): EventSendSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAmino(object: EventSendAmino): EventSend {
-    return {
-      classId: object.class_id,
-      id: object.id,
-      sender: object.sender,
-      receiver: object.receiver
-    };
-  },
-  toAmino(message: EventSend): EventSendAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAminoMsg(object: EventSendAminoMsg): EventSend {
-    return EventSend.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventSend): EventSendAminoMsg {
-    return {
-      type: "cosmos-sdk/EventSend",
-      value: EventSend.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventSendProtoMsg): EventSend {
-    return EventSend.decode(message.value);
-  },
-  toProto(message: EventSend): Uint8Array {
-    return EventSend.encode(message).finish();
-  },
-  toProtoMsg(message: EventSend): EventSendProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.EventSend",
-      value: EventSend.encode(message).finish()
-    };
-  }
-};
-function createBaseEventMint(): EventMint {
-  return {
-    classId: "",
-    id: "",
-    owner: ""
-  };
-}
-export const EventMint = {
-  typeUrl: "/cosmos.nft.v1beta1.EventMint",
-  aminoType: "cosmos-sdk/EventMint",
-  encode(message: EventMint, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    if (message.owner !== "") {
-      writer.uint32(26).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventMint {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventMint();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        case 3:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventMint {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : "",
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: EventMint): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventMint>): EventMint {
-    const message = createBaseEventMint();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: EventMintSDKType): EventMint {
-    return {
-      classId: object?.class_id,
-      id: object?.id,
-      owner: object?.owner
-    };
-  },
-  toSDK(message: EventMint): EventMintSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: EventMintAmino): EventMint {
-    return {
-      classId: object.class_id,
-      id: object.id,
-      owner: object.owner
-    };
-  },
-  toAmino(message: EventMint): EventMintAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: EventMintAminoMsg): EventMint {
-    return EventMint.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventMint): EventMintAminoMsg {
-    return {
-      type: "cosmos-sdk/EventMint",
-      value: EventMint.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventMintProtoMsg): EventMint {
-    return EventMint.decode(message.value);
-  },
-  toProto(message: EventMint): Uint8Array {
-    return EventMint.encode(message).finish();
-  },
-  toProtoMsg(message: EventMint): EventMintProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.EventMint",
-      value: EventMint.encode(message).finish()
-    };
-  }
-};
-function createBaseEventBurn(): EventBurn {
-  return {
-    classId: "",
-    id: "",
-    owner: ""
-  };
-}
-export const EventBurn = {
-  typeUrl: "/cosmos.nft.v1beta1.EventBurn",
-  aminoType: "cosmos-sdk/EventBurn",
-  encode(message: EventBurn, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    if (message.owner !== "") {
-      writer.uint32(26).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventBurn {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventBurn();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        case 3:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventBurn {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : "",
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: EventBurn): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventBurn>): EventBurn {
-    const message = createBaseEventBurn();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: EventBurnSDKType): EventBurn {
-    return {
-      classId: object?.class_id,
-      id: object?.id,
-      owner: object?.owner
-    };
-  },
-  toSDK(message: EventBurn): EventBurnSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: EventBurnAmino): EventBurn {
-    return {
-      classId: object.class_id,
-      id: object.id,
-      owner: object.owner
-    };
-  },
-  toAmino(message: EventBurn): EventBurnAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: EventBurnAminoMsg): EventBurn {
-    return EventBurn.fromAmino(object.value);
-  },
-  toAminoMsg(message: EventBurn): EventBurnAminoMsg {
-    return {
-      type: "cosmos-sdk/EventBurn",
-      value: EventBurn.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EventBurnProtoMsg): EventBurn {
-    return EventBurn.decode(message.value);
-  },
-  toProto(message: EventBurn): Uint8Array {
-    return EventBurn.encode(message).finish();
-  },
-  toProtoMsg(message: EventBurn): EventBurnProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.EventBurn",
-      value: EventBurn.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/genesis.ts
deleted file mode 100644
index 2d55b20f..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/genesis.ts
+++ /dev/null
@@ -1,295 +0,0 @@
-import { Class, ClassAmino, ClassSDKType, NFT, NFTAmino, NFTSDKType } from "./nft";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** GenesisState defines the nft module's genesis state. */
-export interface GenesisState {
-  /** class defines the class of the nft type. */
-  classes: Class[];
-  entries: Entry[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the nft module's genesis state. */
-export interface GenesisStateAmino {
-  /** class defines the class of the nft type. */
-  classes: ClassAmino[];
-  entries: EntryAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the nft module's genesis state. */
-export interface GenesisStateSDKType {
-  classes: ClassSDKType[];
-  entries: EntrySDKType[];
-}
-/** Entry Defines all nft owned by a person */
-export interface Entry {
-  /** owner is the owner address of the following nft */
-  owner: string;
-  /** nfts is a group of nfts of the same owner */
-  nfts: NFT[];
-}
-export interface EntryProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.Entry";
-  value: Uint8Array;
-}
-/** Entry Defines all nft owned by a person */
-export interface EntryAmino {
-  /** owner is the owner address of the following nft */
-  owner: string;
-  /** nfts is a group of nfts of the same owner */
-  nfts: NFTAmino[];
-}
-export interface EntryAminoMsg {
-  type: "cosmos-sdk/Entry";
-  value: EntryAmino;
-}
-/** Entry Defines all nft owned by a person */
-export interface EntrySDKType {
-  owner: string;
-  nfts: NFTSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    classes: [],
-    entries: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.nft.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.classes) {
-      Class.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.entries) {
-      Entry.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classes.push(Class.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.entries.push(Entry.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromJSON(e)) : [],
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => Entry.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toJSON(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? Entry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.classes = object.classes?.map(e => Class.fromPartial(e)) || [];
-    message.entries = object.entries?.map(e => Entry.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromSDK(e)) : [],
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => Entry.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toSDK(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? Entry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromAmino(e)) : [],
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => Entry.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toAmino(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? Entry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseEntry(): Entry {
-  return {
-    owner: "",
-    nfts: []
-  };
-}
-export const Entry = {
-  typeUrl: "/cosmos.nft.v1beta1.Entry",
-  aminoType: "cosmos-sdk/Entry",
-  encode(message: Entry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    for (const v of message.nfts) {
-      NFT.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Entry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.nfts.push(NFT.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Entry {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Entry): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toJSON(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Entry>): Entry {
-    const message = createBaseEntry();
-    message.owner = object.owner ?? "";
-    message.nfts = object.nfts?.map(e => NFT.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EntrySDKType): Entry {
-    return {
-      owner: object?.owner,
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Entry): EntrySDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toSDK(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EntryAmino): Entry {
-    return {
-      owner: object.owner,
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Entry): EntryAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toAmino(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EntryAminoMsg): Entry {
-    return Entry.fromAmino(object.value);
-  },
-  toAminoMsg(message: Entry): EntryAminoMsg {
-    return {
-      type: "cosmos-sdk/Entry",
-      value: Entry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EntryProtoMsg): Entry {
-    return Entry.decode(message.value);
-  },
-  toProto(message: Entry): Uint8Array {
-    return Entry.encode(message).finish();
-  },
-  toProtoMsg(message: Entry): EntryProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.Entry",
-      value: Entry.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/nft.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/nft.ts
deleted file mode 100644
index e81710b2..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/nft.ts
+++ /dev/null
@@ -1,413 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Class defines the class of the nft type. */
-export interface Class {
-  /** id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 */
-  id: string;
-  /** name defines the human-readable name of the NFT classification. Optional */
-  name: string;
-  /** symbol is an abbreviated name for nft classification. Optional */
-  symbol: string;
-  /** description is a brief description of nft classification. Optional */
-  description: string;
-  /** uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional */
-  uri: string;
-  /** uri_hash is a hash of the document pointed by uri. Optional */
-  uriHash: string;
-  /** data is the app specific metadata of the NFT class. Optional */
-  data: Any | undefined;
-}
-export interface ClassProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.Class";
-  value: Uint8Array;
-}
-/** Class defines the class of the nft type. */
-export interface ClassAmino {
-  /** id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 */
-  id: string;
-  /** name defines the human-readable name of the NFT classification. Optional */
-  name: string;
-  /** symbol is an abbreviated name for nft classification. Optional */
-  symbol: string;
-  /** description is a brief description of nft classification. Optional */
-  description: string;
-  /** uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional */
-  uri: string;
-  /** uri_hash is a hash of the document pointed by uri. Optional */
-  uri_hash: string;
-  /** data is the app specific metadata of the NFT class. Optional */
-  data?: AnyAmino | undefined;
-}
-export interface ClassAminoMsg {
-  type: "cosmos-sdk/Class";
-  value: ClassAmino;
-}
-/** Class defines the class of the nft type. */
-export interface ClassSDKType {
-  id: string;
-  name: string;
-  symbol: string;
-  description: string;
-  uri: string;
-  uri_hash: string;
-  data: AnySDKType | undefined;
-}
-/** NFT defines the NFT. */
-export interface NFT {
-  /** class_id associated with the NFT, similar to the contract address of ERC721 */
-  classId: string;
-  /** id is a unique identifier of the NFT */
-  id: string;
-  /** uri for the NFT metadata stored off chain */
-  uri: string;
-  /** uri_hash is a hash of the document pointed by uri */
-  uriHash: string;
-  /** data is an app specific data of the NFT. Optional */
-  data: Any | undefined;
-}
-export interface NFTProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.NFT";
-  value: Uint8Array;
-}
-/** NFT defines the NFT. */
-export interface NFTAmino {
-  /** class_id associated with the NFT, similar to the contract address of ERC721 */
-  class_id: string;
-  /** id is a unique identifier of the NFT */
-  id: string;
-  /** uri for the NFT metadata stored off chain */
-  uri: string;
-  /** uri_hash is a hash of the document pointed by uri */
-  uri_hash: string;
-  /** data is an app specific data of the NFT. Optional */
-  data?: AnyAmino | undefined;
-}
-export interface NFTAminoMsg {
-  type: "cosmos-sdk/NFT";
-  value: NFTAmino;
-}
-/** NFT defines the NFT. */
-export interface NFTSDKType {
-  class_id: string;
-  id: string;
-  uri: string;
-  uri_hash: string;
-  data: AnySDKType | undefined;
-}
-function createBaseClass(): Class {
-  return {
-    id: "",
-    name: "",
-    symbol: "",
-    description: "",
-    uri: "",
-    uriHash: "",
-    data: Any.fromPartial({})
-  };
-}
-export const Class = {
-  typeUrl: "/cosmos.nft.v1beta1.Class",
-  aminoType: "cosmos-sdk/Class",
-  encode(message: Class, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== "") {
-      writer.uint32(10).string(message.id);
-    }
-    if (message.name !== "") {
-      writer.uint32(18).string(message.name);
-    }
-    if (message.symbol !== "") {
-      writer.uint32(26).string(message.symbol);
-    }
-    if (message.description !== "") {
-      writer.uint32(34).string(message.description);
-    }
-    if (message.uri !== "") {
-      writer.uint32(42).string(message.uri);
-    }
-    if (message.uriHash !== "") {
-      writer.uint32(50).string(message.uriHash);
-    }
-    if (message.data !== undefined) {
-      Any.encode(message.data, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Class {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClass();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.string();
-          break;
-        case 2:
-          message.name = reader.string();
-          break;
-        case 3:
-          message.symbol = reader.string();
-          break;
-        case 4:
-          message.description = reader.string();
-          break;
-        case 5:
-          message.uri = reader.string();
-          break;
-        case 6:
-          message.uriHash = reader.string();
-          break;
-        case 7:
-          message.data = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Class {
-    return {
-      id: isSet(object.id) ? String(object.id) : "",
-      name: isSet(object.name) ? String(object.name) : "",
-      symbol: isSet(object.symbol) ? String(object.symbol) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      uri: isSet(object.uri) ? String(object.uri) : "",
-      uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
-      data: isSet(object.data) ? Any.fromJSON(object.data) : undefined
-    };
-  },
-  toJSON(message: Class): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = message.id);
-    message.name !== undefined && (obj.name = message.name);
-    message.symbol !== undefined && (obj.symbol = message.symbol);
-    message.description !== undefined && (obj.description = message.description);
-    message.uri !== undefined && (obj.uri = message.uri);
-    message.uriHash !== undefined && (obj.uriHash = message.uriHash);
-    message.data !== undefined && (obj.data = message.data ? Any.toJSON(message.data) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Class>): Class {
-    const message = createBaseClass();
-    message.id = object.id ?? "";
-    message.name = object.name ?? "";
-    message.symbol = object.symbol ?? "";
-    message.description = object.description ?? "";
-    message.uri = object.uri ?? "";
-    message.uriHash = object.uriHash ?? "";
-    message.data = object.data !== undefined && object.data !== null ? Any.fromPartial(object.data) : undefined;
-    return message;
-  },
-  fromSDK(object: ClassSDKType): Class {
-    return {
-      id: object?.id,
-      name: object?.name,
-      symbol: object?.symbol,
-      description: object?.description,
-      uri: object?.uri,
-      uriHash: object?.uri_hash,
-      data: object.data ? Any.fromSDK(object.data) : undefined
-    };
-  },
-  toSDK(message: Class): ClassSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.name = message.name;
-    obj.symbol = message.symbol;
-    obj.description = message.description;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    message.data !== undefined && (obj.data = message.data ? Any.toSDK(message.data) : undefined);
-    return obj;
-  },
-  fromAmino(object: ClassAmino): Class {
-    return {
-      id: object.id,
-      name: object.name,
-      symbol: object.symbol,
-      description: object.description,
-      uri: object.uri,
-      uriHash: object.uri_hash,
-      data: object?.data ? Any.fromAmino(object.data) : undefined
-    };
-  },
-  toAmino(message: Class): ClassAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.name = message.name;
-    obj.symbol = message.symbol;
-    obj.description = message.description;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    obj.data = message.data ? Any.toAmino(message.data) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ClassAminoMsg): Class {
-    return Class.fromAmino(object.value);
-  },
-  toAminoMsg(message: Class): ClassAminoMsg {
-    return {
-      type: "cosmos-sdk/Class",
-      value: Class.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClassProtoMsg): Class {
-    return Class.decode(message.value);
-  },
-  toProto(message: Class): Uint8Array {
-    return Class.encode(message).finish();
-  },
-  toProtoMsg(message: Class): ClassProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.Class",
-      value: Class.encode(message).finish()
-    };
-  }
-};
-function createBaseNFT(): NFT {
-  return {
-    classId: "",
-    id: "",
-    uri: "",
-    uriHash: "",
-    data: Any.fromPartial({})
-  };
-}
-export const NFT = {
-  typeUrl: "/cosmos.nft.v1beta1.NFT",
-  aminoType: "cosmos-sdk/NFT",
-  encode(message: NFT, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    if (message.uri !== "") {
-      writer.uint32(26).string(message.uri);
-    }
-    if (message.uriHash !== "") {
-      writer.uint32(34).string(message.uriHash);
-    }
-    if (message.data !== undefined) {
-      Any.encode(message.data, writer.uint32(82).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NFT {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNFT();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        case 3:
-          message.uri = reader.string();
-          break;
-        case 4:
-          message.uriHash = reader.string();
-          break;
-        case 10:
-          message.data = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NFT {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : "",
-      uri: isSet(object.uri) ? String(object.uri) : "",
-      uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
-      data: isSet(object.data) ? Any.fromJSON(object.data) : undefined
-    };
-  },
-  toJSON(message: NFT): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    message.uri !== undefined && (obj.uri = message.uri);
-    message.uriHash !== undefined && (obj.uriHash = message.uriHash);
-    message.data !== undefined && (obj.data = message.data ? Any.toJSON(message.data) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NFT>): NFT {
-    const message = createBaseNFT();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    message.uri = object.uri ?? "";
-    message.uriHash = object.uriHash ?? "";
-    message.data = object.data !== undefined && object.data !== null ? Any.fromPartial(object.data) : undefined;
-    return message;
-  },
-  fromSDK(object: NFTSDKType): NFT {
-    return {
-      classId: object?.class_id,
-      id: object?.id,
-      uri: object?.uri,
-      uriHash: object?.uri_hash,
-      data: object.data ? Any.fromSDK(object.data) : undefined
-    };
-  },
-  toSDK(message: NFT): NFTSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    message.data !== undefined && (obj.data = message.data ? Any.toSDK(message.data) : undefined);
-    return obj;
-  },
-  fromAmino(object: NFTAmino): NFT {
-    return {
-      classId: object.class_id,
-      id: object.id,
-      uri: object.uri,
-      uriHash: object.uri_hash,
-      data: object?.data ? Any.fromAmino(object.data) : undefined
-    };
-  },
-  toAmino(message: NFT): NFTAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.uri = message.uri;
-    obj.uri_hash = message.uriHash;
-    obj.data = message.data ? Any.toAmino(message.data) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: NFTAminoMsg): NFT {
-    return NFT.fromAmino(object.value);
-  },
-  toAminoMsg(message: NFT): NFTAminoMsg {
-    return {
-      type: "cosmos-sdk/NFT",
-      value: NFT.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: NFTProtoMsg): NFT {
-    return NFT.decode(message.value);
-  },
-  toProto(message: NFT): Uint8Array {
-    return NFT.encode(message).finish();
-  },
-  toProtoMsg(message: NFT): NFTProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.NFT",
-      value: NFT.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 7107b6fa..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,272 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryBalanceRequest, QueryBalanceResponse, QueryOwnerRequest, QueryOwnerResponse, QuerySupplyRequest, QuerySupplyResponse, QueryNFTsRequest, QueryNFTsResponse, QueryNFTRequest, QueryNFTResponse, QueryClassRequest, QueryClassResponse, QueryClassesRequest, QueryClassesResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */
-  balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
-  /** Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */
-  owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
-  /** Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */
-  supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
-  /**
-   * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
-   * ERC721Enumerable
-   */
-  nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
-  /** NFT queries an NFT based on its class and id. */
-  nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
-  /** Class queries an NFT class based on its id */
-  class(request: QueryClassRequest): Promise<QueryClassResponse>;
-  /** Classes queries all NFT classes */
-  classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.balance = this.balance.bind(this);
-    this.owner = this.owner.bind(this);
-    this.supply = this.supply.bind(this);
-    this.nFTs = this.nFTs.bind(this);
-    this.nFT = this.nFT.bind(this);
-    this.class = this.class.bind(this);
-    this.classes = this.classes.bind(this);
-  }
-  balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse> {
-    const data = QueryBalanceRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Balance", data);
-    return promise.then(data => QueryBalanceResponse.decode(new BinaryReader(data)));
-  }
-  owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse> {
-    const data = QueryOwnerRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Owner", data);
-    return promise.then(data => QueryOwnerResponse.decode(new BinaryReader(data)));
-  }
-  supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse> {
-    const data = QuerySupplyRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Supply", data);
-    return promise.then(data => QuerySupplyResponse.decode(new BinaryReader(data)));
-  }
-  nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse> {
-    const data = QueryNFTsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "NFTs", data);
-    return promise.then(data => QueryNFTsResponse.decode(new BinaryReader(data)));
-  }
-  nFT(request: QueryNFTRequest): Promise<QueryNFTResponse> {
-    const data = QueryNFTRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "NFT", data);
-    return promise.then(data => QueryNFTResponse.decode(new BinaryReader(data)));
-  }
-  class(request: QueryClassRequest): Promise<QueryClassResponse> {
-    const data = QueryClassRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Class", data);
-    return promise.then(data => QueryClassResponse.decode(new BinaryReader(data)));
-  }
-  classes(request: QueryClassesRequest = {
-    pagination: undefined
-  }): Promise<QueryClassesResponse> {
-    const data = QueryClassesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Classes", data);
-    return promise.then(data => QueryClassesResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse> {
-      return queryService.balance(request);
-    },
-    owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse> {
-      return queryService.owner(request);
-    },
-    supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse> {
-      return queryService.supply(request);
-    },
-    nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse> {
-      return queryService.nFTs(request);
-    },
-    nFT(request: QueryNFTRequest): Promise<QueryNFTResponse> {
-      return queryService.nFT(request);
-    },
-    class(request: QueryClassRequest): Promise<QueryClassResponse> {
-      return queryService.class(request);
-    },
-    classes(request?: QueryClassesRequest): Promise<QueryClassesResponse> {
-      return queryService.classes(request);
-    }
-  };
-};
-export interface UseBalanceQuery<TData> extends ReactQueryParams<QueryBalanceResponse, TData> {
-  request: QueryBalanceRequest;
-}
-export interface UseOwnerQuery<TData> extends ReactQueryParams<QueryOwnerResponse, TData> {
-  request: QueryOwnerRequest;
-}
-export interface UseSupplyQuery<TData> extends ReactQueryParams<QuerySupplyResponse, TData> {
-  request: QuerySupplyRequest;
-}
-export interface UseNFTsQuery<TData> extends ReactQueryParams<QueryNFTsResponse, TData> {
-  request: QueryNFTsRequest;
-}
-export interface UseNFTQuery<TData> extends ReactQueryParams<QueryNFTResponse, TData> {
-  request: QueryNFTRequest;
-}
-export interface UseClassQuery<TData> extends ReactQueryParams<QueryClassResponse, TData> {
-  request: QueryClassRequest;
-}
-export interface UseClassesQuery<TData> extends ReactQueryParams<QueryClassesResponse, TData> {
-  request?: QueryClassesRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useBalance = <TData = QueryBalanceResponse,>({
-    request,
-    options
-  }: UseBalanceQuery<TData>) => {
-    return useQuery<QueryBalanceResponse, Error, TData>(["balanceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.balance(request);
-    }, options);
-  };
-  const useOwner = <TData = QueryOwnerResponse,>({
-    request,
-    options
-  }: UseOwnerQuery<TData>) => {
-    return useQuery<QueryOwnerResponse, Error, TData>(["ownerQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.owner(request);
-    }, options);
-  };
-  const useSupply = <TData = QuerySupplyResponse,>({
-    request,
-    options
-  }: UseSupplyQuery<TData>) => {
-    return useQuery<QuerySupplyResponse, Error, TData>(["supplyQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.supply(request);
-    }, options);
-  };
-  const useNFTs = <TData = QueryNFTsResponse,>({
-    request,
-    options
-  }: UseNFTsQuery<TData>) => {
-    return useQuery<QueryNFTsResponse, Error, TData>(["nFTsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.nFTs(request);
-    }, options);
-  };
-  const useNFT = <TData = QueryNFTResponse,>({
-    request,
-    options
-  }: UseNFTQuery<TData>) => {
-    return useQuery<QueryNFTResponse, Error, TData>(["nFTQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.nFT(request);
-    }, options);
-  };
-  const useClass = <TData = QueryClassResponse,>({
-    request,
-    options
-  }: UseClassQuery<TData>) => {
-    return useQuery<QueryClassResponse, Error, TData>(["classQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.class(request);
-    }, options);
-  };
-  const useClasses = <TData = QueryClassesResponse,>({
-    request,
-    options
-  }: UseClassesQuery<TData>) => {
-    return useQuery<QueryClassesResponse, Error, TData>(["classesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.classes(request);
-    }, options);
-  };
-  return {
-    /** Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */useBalance,
-    /** Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */useOwner,
-    /** Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */useSupply,
-    /**
-     * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
-     * ERC721Enumerable
-     */
-    useNFTs,
-    /** NFT queries an NFT based on its class and id. */useNFT,
-    /** Class queries an NFT class based on its id */useClass,
-    /** Classes queries all NFT classes */useClasses
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryBalanceStore {
-    store = new QueryStore<QueryBalanceRequest, QueryBalanceResponse>(queryService?.balance);
-    balance(request: QueryBalanceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryOwnerStore {
-    store = new QueryStore<QueryOwnerRequest, QueryOwnerResponse>(queryService?.owner);
-    owner(request: QueryOwnerRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySupplyStore {
-    store = new QueryStore<QuerySupplyRequest, QuerySupplyResponse>(queryService?.supply);
-    supply(request: QuerySupplyRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryNFTsStore {
-    store = new QueryStore<QueryNFTsRequest, QueryNFTsResponse>(queryService?.nFTs);
-    nFTs(request: QueryNFTsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryNFTStore {
-    store = new QueryStore<QueryNFTRequest, QueryNFTResponse>(queryService?.nFT);
-    nFT(request: QueryNFTRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClassStore {
-    store = new QueryStore<QueryClassRequest, QueryClassResponse>(queryService?.class);
-    class(request: QueryClassRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClassesStore {
-    store = new QueryStore<QueryClassesRequest, QueryClassesResponse>(queryService?.classes);
-    classes(request: QueryClassesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */QueryBalanceStore,
-    /** Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */QueryOwnerStore,
-    /** Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */QuerySupplyStore,
-    /**
-     * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
-     * ERC721Enumerable
-     */
-    QueryNFTsStore,
-    /** NFT queries an NFT based on its class and id. */QueryNFTStore,
-    /** Class queries an NFT class based on its id */QueryClassStore,
-    /** Classes queries all NFT classes */QueryClassesStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/query.ts
deleted file mode 100644
index 0f402e90..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/query.ts
+++ /dev/null
@@ -1,1661 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { NFT, NFTAmino, NFTSDKType, Class, ClassAmino, ClassSDKType } from "./nft";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method */
-export interface QueryBalanceRequest {
-  classId: string;
-  owner: string;
-}
-export interface QueryBalanceRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryBalanceRequest";
-  value: Uint8Array;
-}
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method */
-export interface QueryBalanceRequestAmino {
-  class_id: string;
-  owner: string;
-}
-export interface QueryBalanceRequestAminoMsg {
-  type: "cosmos-sdk/QueryBalanceRequest";
-  value: QueryBalanceRequestAmino;
-}
-/** QueryBalanceRequest is the request type for the Query/Balance RPC method */
-export interface QueryBalanceRequestSDKType {
-  class_id: string;
-  owner: string;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method */
-export interface QueryBalanceResponse {
-  amount: bigint;
-}
-export interface QueryBalanceResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryBalanceResponse";
-  value: Uint8Array;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method */
-export interface QueryBalanceResponseAmino {
-  amount: string;
-}
-export interface QueryBalanceResponseAminoMsg {
-  type: "cosmos-sdk/QueryBalanceResponse";
-  value: QueryBalanceResponseAmino;
-}
-/** QueryBalanceResponse is the response type for the Query/Balance RPC method */
-export interface QueryBalanceResponseSDKType {
-  amount: bigint;
-}
-/** QueryOwnerRequest is the request type for the Query/Owner RPC method */
-export interface QueryOwnerRequest {
-  classId: string;
-  id: string;
-}
-export interface QueryOwnerRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryOwnerRequest";
-  value: Uint8Array;
-}
-/** QueryOwnerRequest is the request type for the Query/Owner RPC method */
-export interface QueryOwnerRequestAmino {
-  class_id: string;
-  id: string;
-}
-export interface QueryOwnerRequestAminoMsg {
-  type: "cosmos-sdk/QueryOwnerRequest";
-  value: QueryOwnerRequestAmino;
-}
-/** QueryOwnerRequest is the request type for the Query/Owner RPC method */
-export interface QueryOwnerRequestSDKType {
-  class_id: string;
-  id: string;
-}
-/** QueryOwnerResponse is the response type for the Query/Owner RPC method */
-export interface QueryOwnerResponse {
-  owner: string;
-}
-export interface QueryOwnerResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryOwnerResponse";
-  value: Uint8Array;
-}
-/** QueryOwnerResponse is the response type for the Query/Owner RPC method */
-export interface QueryOwnerResponseAmino {
-  owner: string;
-}
-export interface QueryOwnerResponseAminoMsg {
-  type: "cosmos-sdk/QueryOwnerResponse";
-  value: QueryOwnerResponseAmino;
-}
-/** QueryOwnerResponse is the response type for the Query/Owner RPC method */
-export interface QueryOwnerResponseSDKType {
-  owner: string;
-}
-/** QuerySupplyRequest is the request type for the Query/Supply RPC method */
-export interface QuerySupplyRequest {
-  classId: string;
-}
-export interface QuerySupplyRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QuerySupplyRequest";
-  value: Uint8Array;
-}
-/** QuerySupplyRequest is the request type for the Query/Supply RPC method */
-export interface QuerySupplyRequestAmino {
-  class_id: string;
-}
-export interface QuerySupplyRequestAminoMsg {
-  type: "cosmos-sdk/QuerySupplyRequest";
-  value: QuerySupplyRequestAmino;
-}
-/** QuerySupplyRequest is the request type for the Query/Supply RPC method */
-export interface QuerySupplyRequestSDKType {
-  class_id: string;
-}
-/** QuerySupplyResponse is the response type for the Query/Supply RPC method */
-export interface QuerySupplyResponse {
-  amount: bigint;
-}
-export interface QuerySupplyResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QuerySupplyResponse";
-  value: Uint8Array;
-}
-/** QuerySupplyResponse is the response type for the Query/Supply RPC method */
-export interface QuerySupplyResponseAmino {
-  amount: string;
-}
-export interface QuerySupplyResponseAminoMsg {
-  type: "cosmos-sdk/QuerySupplyResponse";
-  value: QuerySupplyResponseAmino;
-}
-/** QuerySupplyResponse is the response type for the Query/Supply RPC method */
-export interface QuerySupplyResponseSDKType {
-  amount: bigint;
-}
-/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */
-export interface QueryNFTsRequest {
-  classId: string;
-  owner: string;
-  pagination: PageRequest | undefined;
-}
-export interface QueryNFTsRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTsRequest";
-  value: Uint8Array;
-}
-/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */
-export interface QueryNFTsRequestAmino {
-  class_id: string;
-  owner: string;
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryNFTsRequestAminoMsg {
-  type: "cosmos-sdk/QueryNFTsRequest";
-  value: QueryNFTsRequestAmino;
-}
-/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */
-export interface QueryNFTsRequestSDKType {
-  class_id: string;
-  owner: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */
-export interface QueryNFTsResponse {
-  nfts: NFT[];
-  pagination: PageResponse | undefined;
-}
-export interface QueryNFTsResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTsResponse";
-  value: Uint8Array;
-}
-/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */
-export interface QueryNFTsResponseAmino {
-  nfts: NFTAmino[];
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryNFTsResponseAminoMsg {
-  type: "cosmos-sdk/QueryNFTsResponse";
-  value: QueryNFTsResponseAmino;
-}
-/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */
-export interface QueryNFTsResponseSDKType {
-  nfts: NFTSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryNFTRequest is the request type for the Query/NFT RPC method */
-export interface QueryNFTRequest {
-  classId: string;
-  id: string;
-}
-export interface QueryNFTRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTRequest";
-  value: Uint8Array;
-}
-/** QueryNFTRequest is the request type for the Query/NFT RPC method */
-export interface QueryNFTRequestAmino {
-  class_id: string;
-  id: string;
-}
-export interface QueryNFTRequestAminoMsg {
-  type: "cosmos-sdk/QueryNFTRequest";
-  value: QueryNFTRequestAmino;
-}
-/** QueryNFTRequest is the request type for the Query/NFT RPC method */
-export interface QueryNFTRequestSDKType {
-  class_id: string;
-  id: string;
-}
-/** QueryNFTResponse is the response type for the Query/NFT RPC method */
-export interface QueryNFTResponse {
-  nft: NFT | undefined;
-}
-export interface QueryNFTResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTResponse";
-  value: Uint8Array;
-}
-/** QueryNFTResponse is the response type for the Query/NFT RPC method */
-export interface QueryNFTResponseAmino {
-  nft?: NFTAmino | undefined;
-}
-export interface QueryNFTResponseAminoMsg {
-  type: "cosmos-sdk/QueryNFTResponse";
-  value: QueryNFTResponseAmino;
-}
-/** QueryNFTResponse is the response type for the Query/NFT RPC method */
-export interface QueryNFTResponseSDKType {
-  nft: NFTSDKType | undefined;
-}
-/** QueryClassRequest is the request type for the Query/Class RPC method */
-export interface QueryClassRequest {
-  classId: string;
-}
-export interface QueryClassRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassRequest";
-  value: Uint8Array;
-}
-/** QueryClassRequest is the request type for the Query/Class RPC method */
-export interface QueryClassRequestAmino {
-  class_id: string;
-}
-export interface QueryClassRequestAminoMsg {
-  type: "cosmos-sdk/QueryClassRequest";
-  value: QueryClassRequestAmino;
-}
-/** QueryClassRequest is the request type for the Query/Class RPC method */
-export interface QueryClassRequestSDKType {
-  class_id: string;
-}
-/** QueryClassResponse is the response type for the Query/Class RPC method */
-export interface QueryClassResponse {
-  class: Class | undefined;
-}
-export interface QueryClassResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassResponse";
-  value: Uint8Array;
-}
-/** QueryClassResponse is the response type for the Query/Class RPC method */
-export interface QueryClassResponseAmino {
-  class?: ClassAmino | undefined;
-}
-export interface QueryClassResponseAminoMsg {
-  type: "cosmos-sdk/QueryClassResponse";
-  value: QueryClassResponseAmino;
-}
-/** QueryClassResponse is the response type for the Query/Class RPC method */
-export interface QueryClassResponseSDKType {
-  class: ClassSDKType | undefined;
-}
-/** QueryClassesRequest is the request type for the Query/Classes RPC method */
-export interface QueryClassesRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryClassesRequestProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassesRequest";
-  value: Uint8Array;
-}
-/** QueryClassesRequest is the request type for the Query/Classes RPC method */
-export interface QueryClassesRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryClassesRequestAminoMsg {
-  type: "cosmos-sdk/QueryClassesRequest";
-  value: QueryClassesRequestAmino;
-}
-/** QueryClassesRequest is the request type for the Query/Classes RPC method */
-export interface QueryClassesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryClassesResponse is the response type for the Query/Classes RPC method */
-export interface QueryClassesResponse {
-  classes: Class[];
-  pagination: PageResponse | undefined;
-}
-export interface QueryClassesResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassesResponse";
-  value: Uint8Array;
-}
-/** QueryClassesResponse is the response type for the Query/Classes RPC method */
-export interface QueryClassesResponseAmino {
-  classes: ClassAmino[];
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryClassesResponseAminoMsg {
-  type: "cosmos-sdk/QueryClassesResponse";
-  value: QueryClassesResponseAmino;
-}
-/** QueryClassesResponse is the response type for the Query/Classes RPC method */
-export interface QueryClassesResponseSDKType {
-  classes: ClassSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryBalanceRequest(): QueryBalanceRequest {
-  return {
-    classId: "",
-    owner: ""
-  };
-}
-export const QueryBalanceRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryBalanceRequest",
-  aminoType: "cosmos-sdk/QueryBalanceRequest",
-  encode(message: QueryBalanceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.owner !== "") {
-      writer.uint32(18).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBalanceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBalanceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryBalanceRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: QueryBalanceRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryBalanceRequest>): QueryBalanceRequest {
-    const message = createBaseQueryBalanceRequest();
-    message.classId = object.classId ?? "";
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: QueryBalanceRequestSDKType): QueryBalanceRequest {
-    return {
-      classId: object?.class_id,
-      owner: object?.owner
-    };
-  },
-  toSDK(message: QueryBalanceRequest): QueryBalanceRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: QueryBalanceRequestAmino): QueryBalanceRequest {
-    return {
-      classId: object.class_id,
-      owner: object.owner
-    };
-  },
-  toAmino(message: QueryBalanceRequest): QueryBalanceRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: QueryBalanceRequestAminoMsg): QueryBalanceRequest {
-    return QueryBalanceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBalanceRequest): QueryBalanceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryBalanceRequest",
-      value: QueryBalanceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBalanceRequestProtoMsg): QueryBalanceRequest {
-    return QueryBalanceRequest.decode(message.value);
-  },
-  toProto(message: QueryBalanceRequest): Uint8Array {
-    return QueryBalanceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBalanceRequest): QueryBalanceRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryBalanceRequest",
-      value: QueryBalanceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryBalanceResponse(): QueryBalanceResponse {
-  return {
-    amount: BigInt(0)
-  };
-}
-export const QueryBalanceResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryBalanceResponse",
-  aminoType: "cosmos-sdk/QueryBalanceResponse",
-  encode(message: QueryBalanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.amount !== BigInt(0)) {
-      writer.uint32(8).uint64(message.amount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBalanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBalanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryBalanceResponse {
-    return {
-      amount: isSet(object.amount) ? BigInt(object.amount.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryBalanceResponse): unknown {
-    const obj: any = {};
-    message.amount !== undefined && (obj.amount = (message.amount || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryBalanceResponse>): QueryBalanceResponse {
-    const message = createBaseQueryBalanceResponse();
-    message.amount = object.amount !== undefined && object.amount !== null ? BigInt(object.amount.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryBalanceResponseSDKType): QueryBalanceResponse {
-    return {
-      amount: object?.amount
-    };
-  },
-  toSDK(message: QueryBalanceResponse): QueryBalanceResponseSDKType {
-    const obj: any = {};
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAmino(object: QueryBalanceResponseAmino): QueryBalanceResponse {
-    return {
-      amount: BigInt(object.amount)
-    };
-  },
-  toAmino(message: QueryBalanceResponse): QueryBalanceResponseAmino {
-    const obj: any = {};
-    obj.amount = message.amount ? message.amount.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryBalanceResponseAminoMsg): QueryBalanceResponse {
-    return QueryBalanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBalanceResponse): QueryBalanceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryBalanceResponse",
-      value: QueryBalanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBalanceResponseProtoMsg): QueryBalanceResponse {
-    return QueryBalanceResponse.decode(message.value);
-  },
-  toProto(message: QueryBalanceResponse): Uint8Array {
-    return QueryBalanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBalanceResponse): QueryBalanceResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryBalanceResponse",
-      value: QueryBalanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryOwnerRequest(): QueryOwnerRequest {
-  return {
-    classId: "",
-    id: ""
-  };
-}
-export const QueryOwnerRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryOwnerRequest",
-  aminoType: "cosmos-sdk/QueryOwnerRequest",
-  encode(message: QueryOwnerRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryOwnerRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryOwnerRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryOwnerRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : ""
-    };
-  },
-  toJSON(message: QueryOwnerRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryOwnerRequest>): QueryOwnerRequest {
-    const message = createBaseQueryOwnerRequest();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    return message;
-  },
-  fromSDK(object: QueryOwnerRequestSDKType): QueryOwnerRequest {
-    return {
-      classId: object?.class_id,
-      id: object?.id
-    };
-  },
-  toSDK(message: QueryOwnerRequest): QueryOwnerRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: QueryOwnerRequestAmino): QueryOwnerRequest {
-    return {
-      classId: object.class_id,
-      id: object.id
-    };
-  },
-  toAmino(message: QueryOwnerRequest): QueryOwnerRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    return obj;
-  },
-  fromAminoMsg(object: QueryOwnerRequestAminoMsg): QueryOwnerRequest {
-    return QueryOwnerRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryOwnerRequest): QueryOwnerRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryOwnerRequest",
-      value: QueryOwnerRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryOwnerRequestProtoMsg): QueryOwnerRequest {
-    return QueryOwnerRequest.decode(message.value);
-  },
-  toProto(message: QueryOwnerRequest): Uint8Array {
-    return QueryOwnerRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryOwnerRequest): QueryOwnerRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryOwnerRequest",
-      value: QueryOwnerRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryOwnerResponse(): QueryOwnerResponse {
-  return {
-    owner: ""
-  };
-}
-export const QueryOwnerResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryOwnerResponse",
-  aminoType: "cosmos-sdk/QueryOwnerResponse",
-  encode(message: QueryOwnerResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryOwnerResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryOwnerResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryOwnerResponse {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: QueryOwnerResponse): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryOwnerResponse>): QueryOwnerResponse {
-    const message = createBaseQueryOwnerResponse();
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: QueryOwnerResponseSDKType): QueryOwnerResponse {
-    return {
-      owner: object?.owner
-    };
-  },
-  toSDK(message: QueryOwnerResponse): QueryOwnerResponseSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: QueryOwnerResponseAmino): QueryOwnerResponse {
-    return {
-      owner: object.owner
-    };
-  },
-  toAmino(message: QueryOwnerResponse): QueryOwnerResponseAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: QueryOwnerResponseAminoMsg): QueryOwnerResponse {
-    return QueryOwnerResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryOwnerResponse): QueryOwnerResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryOwnerResponse",
-      value: QueryOwnerResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryOwnerResponseProtoMsg): QueryOwnerResponse {
-    return QueryOwnerResponse.decode(message.value);
-  },
-  toProto(message: QueryOwnerResponse): Uint8Array {
-    return QueryOwnerResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryOwnerResponse): QueryOwnerResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryOwnerResponse",
-      value: QueryOwnerResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySupplyRequest(): QuerySupplyRequest {
-  return {
-    classId: ""
-  };
-}
-export const QuerySupplyRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QuerySupplyRequest",
-  aminoType: "cosmos-sdk/QuerySupplyRequest",
-  encode(message: QuerySupplyRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySupplyRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySupplyRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySupplyRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : ""
-    };
-  },
-  toJSON(message: QuerySupplyRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySupplyRequest>): QuerySupplyRequest {
-    const message = createBaseQuerySupplyRequest();
-    message.classId = object.classId ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySupplyRequestSDKType): QuerySupplyRequest {
-    return {
-      classId: object?.class_id
-    };
-  },
-  toSDK(message: QuerySupplyRequest): QuerySupplyRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    return obj;
-  },
-  fromAmino(object: QuerySupplyRequestAmino): QuerySupplyRequest {
-    return {
-      classId: object.class_id
-    };
-  },
-  toAmino(message: QuerySupplyRequest): QuerySupplyRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySupplyRequestAminoMsg): QuerySupplyRequest {
-    return QuerySupplyRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySupplyRequest): QuerySupplyRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySupplyRequest",
-      value: QuerySupplyRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySupplyRequestProtoMsg): QuerySupplyRequest {
-    return QuerySupplyRequest.decode(message.value);
-  },
-  toProto(message: QuerySupplyRequest): Uint8Array {
-    return QuerySupplyRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySupplyRequest): QuerySupplyRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QuerySupplyRequest",
-      value: QuerySupplyRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySupplyResponse(): QuerySupplyResponse {
-  return {
-    amount: BigInt(0)
-  };
-}
-export const QuerySupplyResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QuerySupplyResponse",
-  aminoType: "cosmos-sdk/QuerySupplyResponse",
-  encode(message: QuerySupplyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.amount !== BigInt(0)) {
-      writer.uint32(8).uint64(message.amount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySupplyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySupplyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySupplyResponse {
-    return {
-      amount: isSet(object.amount) ? BigInt(object.amount.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QuerySupplyResponse): unknown {
-    const obj: any = {};
-    message.amount !== undefined && (obj.amount = (message.amount || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySupplyResponse>): QuerySupplyResponse {
-    const message = createBaseQuerySupplyResponse();
-    message.amount = object.amount !== undefined && object.amount !== null ? BigInt(object.amount.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QuerySupplyResponseSDKType): QuerySupplyResponse {
-    return {
-      amount: object?.amount
-    };
-  },
-  toSDK(message: QuerySupplyResponse): QuerySupplyResponseSDKType {
-    const obj: any = {};
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAmino(object: QuerySupplyResponseAmino): QuerySupplyResponse {
-    return {
-      amount: BigInt(object.amount)
-    };
-  },
-  toAmino(message: QuerySupplyResponse): QuerySupplyResponseAmino {
-    const obj: any = {};
-    obj.amount = message.amount ? message.amount.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySupplyResponseAminoMsg): QuerySupplyResponse {
-    return QuerySupplyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySupplyResponse): QuerySupplyResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySupplyResponse",
-      value: QuerySupplyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySupplyResponseProtoMsg): QuerySupplyResponse {
-    return QuerySupplyResponse.decode(message.value);
-  },
-  toProto(message: QuerySupplyResponse): Uint8Array {
-    return QuerySupplyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySupplyResponse): QuerySupplyResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QuerySupplyResponse",
-      value: QuerySupplyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNFTsRequest(): QueryNFTsRequest {
-  return {
-    classId: "",
-    owner: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryNFTsRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTsRequest",
-  aminoType: "cosmos-sdk/QueryNFTsRequest",
-  encode(message: QueryNFTsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.owner !== "") {
-      writer.uint32(18).string(message.owner);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNFTsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNFTsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.owner = reader.string();
-          break;
-        case 3:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNFTsRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryNFTsRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNFTsRequest>): QueryNFTsRequest {
-    const message = createBaseQueryNFTsRequest();
-    message.classId = object.classId ?? "";
-    message.owner = object.owner ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryNFTsRequestSDKType): QueryNFTsRequest {
-    return {
-      classId: object?.class_id,
-      owner: object?.owner,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryNFTsRequest): QueryNFTsRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.owner = message.owner;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryNFTsRequestAmino): QueryNFTsRequest {
-    return {
-      classId: object.class_id,
-      owner: object.owner,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryNFTsRequest): QueryNFTsRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.owner = message.owner;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNFTsRequestAminoMsg): QueryNFTsRequest {
-    return QueryNFTsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNFTsRequest): QueryNFTsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNFTsRequest",
-      value: QueryNFTsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNFTsRequestProtoMsg): QueryNFTsRequest {
-    return QueryNFTsRequest.decode(message.value);
-  },
-  toProto(message: QueryNFTsRequest): Uint8Array {
-    return QueryNFTsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNFTsRequest): QueryNFTsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryNFTsRequest",
-      value: QueryNFTsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNFTsResponse(): QueryNFTsResponse {
-  return {
-    nfts: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryNFTsResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTsResponse",
-  aminoType: "cosmos-sdk/QueryNFTsResponse",
-  encode(message: QueryNFTsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.nfts) {
-      NFT.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNFTsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNFTsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.nfts.push(NFT.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNFTsResponse {
-    return {
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryNFTsResponse): unknown {
-    const obj: any = {};
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toJSON(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNFTsResponse>): QueryNFTsResponse {
-    const message = createBaseQueryNFTsResponse();
-    message.nfts = object.nfts?.map(e => NFT.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryNFTsResponseSDKType): QueryNFTsResponse {
-    return {
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryNFTsResponse): QueryNFTsResponseSDKType {
-    const obj: any = {};
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toSDK(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryNFTsResponseAmino): QueryNFTsResponse {
-    return {
-      nfts: Array.isArray(object?.nfts) ? object.nfts.map((e: any) => NFT.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryNFTsResponse): QueryNFTsResponseAmino {
-    const obj: any = {};
-    if (message.nfts) {
-      obj.nfts = message.nfts.map(e => e ? NFT.toAmino(e) : undefined);
-    } else {
-      obj.nfts = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNFTsResponseAminoMsg): QueryNFTsResponse {
-    return QueryNFTsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNFTsResponse): QueryNFTsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNFTsResponse",
-      value: QueryNFTsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNFTsResponseProtoMsg): QueryNFTsResponse {
-    return QueryNFTsResponse.decode(message.value);
-  },
-  toProto(message: QueryNFTsResponse): Uint8Array {
-    return QueryNFTsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNFTsResponse): QueryNFTsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryNFTsResponse",
-      value: QueryNFTsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNFTRequest(): QueryNFTRequest {
-  return {
-    classId: "",
-    id: ""
-  };
-}
-export const QueryNFTRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTRequest",
-  aminoType: "cosmos-sdk/QueryNFTRequest",
-  encode(message: QueryNFTRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNFTRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNFTRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNFTRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : ""
-    };
-  },
-  toJSON(message: QueryNFTRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNFTRequest>): QueryNFTRequest {
-    const message = createBaseQueryNFTRequest();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    return message;
-  },
-  fromSDK(object: QueryNFTRequestSDKType): QueryNFTRequest {
-    return {
-      classId: object?.class_id,
-      id: object?.id
-    };
-  },
-  toSDK(message: QueryNFTRequest): QueryNFTRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: QueryNFTRequestAmino): QueryNFTRequest {
-    return {
-      classId: object.class_id,
-      id: object.id
-    };
-  },
-  toAmino(message: QueryNFTRequest): QueryNFTRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNFTRequestAminoMsg): QueryNFTRequest {
-    return QueryNFTRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNFTRequest): QueryNFTRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNFTRequest",
-      value: QueryNFTRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNFTRequestProtoMsg): QueryNFTRequest {
-    return QueryNFTRequest.decode(message.value);
-  },
-  toProto(message: QueryNFTRequest): Uint8Array {
-    return QueryNFTRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNFTRequest): QueryNFTRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryNFTRequest",
-      value: QueryNFTRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNFTResponse(): QueryNFTResponse {
-  return {
-    nft: NFT.fromPartial({})
-  };
-}
-export const QueryNFTResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryNFTResponse",
-  aminoType: "cosmos-sdk/QueryNFTResponse",
-  encode(message: QueryNFTResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.nft !== undefined) {
-      NFT.encode(message.nft, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNFTResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNFTResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.nft = NFT.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNFTResponse {
-    return {
-      nft: isSet(object.nft) ? NFT.fromJSON(object.nft) : undefined
-    };
-  },
-  toJSON(message: QueryNFTResponse): unknown {
-    const obj: any = {};
-    message.nft !== undefined && (obj.nft = message.nft ? NFT.toJSON(message.nft) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNFTResponse>): QueryNFTResponse {
-    const message = createBaseQueryNFTResponse();
-    message.nft = object.nft !== undefined && object.nft !== null ? NFT.fromPartial(object.nft) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryNFTResponseSDKType): QueryNFTResponse {
-    return {
-      nft: object.nft ? NFT.fromSDK(object.nft) : undefined
-    };
-  },
-  toSDK(message: QueryNFTResponse): QueryNFTResponseSDKType {
-    const obj: any = {};
-    message.nft !== undefined && (obj.nft = message.nft ? NFT.toSDK(message.nft) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryNFTResponseAmino): QueryNFTResponse {
-    return {
-      nft: object?.nft ? NFT.fromAmino(object.nft) : undefined
-    };
-  },
-  toAmino(message: QueryNFTResponse): QueryNFTResponseAmino {
-    const obj: any = {};
-    obj.nft = message.nft ? NFT.toAmino(message.nft) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNFTResponseAminoMsg): QueryNFTResponse {
-    return QueryNFTResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNFTResponse): QueryNFTResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNFTResponse",
-      value: QueryNFTResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNFTResponseProtoMsg): QueryNFTResponse {
-    return QueryNFTResponse.decode(message.value);
-  },
-  toProto(message: QueryNFTResponse): Uint8Array {
-    return QueryNFTResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNFTResponse): QueryNFTResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryNFTResponse",
-      value: QueryNFTResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClassRequest(): QueryClassRequest {
-  return {
-    classId: ""
-  };
-}
-export const QueryClassRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassRequest",
-  aminoType: "cosmos-sdk/QueryClassRequest",
-  encode(message: QueryClassRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClassRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClassRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClassRequest {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : ""
-    };
-  },
-  toJSON(message: QueryClassRequest): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClassRequest>): QueryClassRequest {
-    const message = createBaseQueryClassRequest();
-    message.classId = object.classId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClassRequestSDKType): QueryClassRequest {
-    return {
-      classId: object?.class_id
-    };
-  },
-  toSDK(message: QueryClassRequest): QueryClassRequestSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    return obj;
-  },
-  fromAmino(object: QueryClassRequestAmino): QueryClassRequest {
-    return {
-      classId: object.class_id
-    };
-  },
-  toAmino(message: QueryClassRequest): QueryClassRequestAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClassRequestAminoMsg): QueryClassRequest {
-    return QueryClassRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClassRequest): QueryClassRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClassRequest",
-      value: QueryClassRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClassRequestProtoMsg): QueryClassRequest {
-    return QueryClassRequest.decode(message.value);
-  },
-  toProto(message: QueryClassRequest): Uint8Array {
-    return QueryClassRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClassRequest): QueryClassRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryClassRequest",
-      value: QueryClassRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClassResponse(): QueryClassResponse {
-  return {
-    class: Class.fromPartial({})
-  };
-}
-export const QueryClassResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassResponse",
-  aminoType: "cosmos-sdk/QueryClassResponse",
-  encode(message: QueryClassResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.class !== undefined) {
-      Class.encode(message.class, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClassResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClassResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.class = Class.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClassResponse {
-    return {
-      class: isSet(object.class) ? Class.fromJSON(object.class) : undefined
-    };
-  },
-  toJSON(message: QueryClassResponse): unknown {
-    const obj: any = {};
-    message.class !== undefined && (obj.class = message.class ? Class.toJSON(message.class) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClassResponse>): QueryClassResponse {
-    const message = createBaseQueryClassResponse();
-    message.class = object.class !== undefined && object.class !== null ? Class.fromPartial(object.class) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClassResponseSDKType): QueryClassResponse {
-    return {
-      class: object.class ? Class.fromSDK(object.class) : undefined
-    };
-  },
-  toSDK(message: QueryClassResponse): QueryClassResponseSDKType {
-    const obj: any = {};
-    message.class !== undefined && (obj.class = message.class ? Class.toSDK(message.class) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClassResponseAmino): QueryClassResponse {
-    return {
-      class: object?.class ? Class.fromAmino(object.class) : undefined
-    };
-  },
-  toAmino(message: QueryClassResponse): QueryClassResponseAmino {
-    const obj: any = {};
-    obj.class = message.class ? Class.toAmino(message.class) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClassResponseAminoMsg): QueryClassResponse {
-    return QueryClassResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClassResponse): QueryClassResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClassResponse",
-      value: QueryClassResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClassResponseProtoMsg): QueryClassResponse {
-    return QueryClassResponse.decode(message.value);
-  },
-  toProto(message: QueryClassResponse): Uint8Array {
-    return QueryClassResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClassResponse): QueryClassResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryClassResponse",
-      value: QueryClassResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClassesRequest(): QueryClassesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryClassesRequest = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassesRequest",
-  aminoType: "cosmos-sdk/QueryClassesRequest",
-  encode(message: QueryClassesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClassesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClassesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClassesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryClassesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClassesRequest>): QueryClassesRequest {
-    const message = createBaseQueryClassesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClassesRequestSDKType): QueryClassesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryClassesRequest): QueryClassesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClassesRequestAmino): QueryClassesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryClassesRequest): QueryClassesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClassesRequestAminoMsg): QueryClassesRequest {
-    return QueryClassesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClassesRequest): QueryClassesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClassesRequest",
-      value: QueryClassesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClassesRequestProtoMsg): QueryClassesRequest {
-    return QueryClassesRequest.decode(message.value);
-  },
-  toProto(message: QueryClassesRequest): Uint8Array {
-    return QueryClassesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClassesRequest): QueryClassesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryClassesRequest",
-      value: QueryClassesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClassesResponse(): QueryClassesResponse {
-  return {
-    classes: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryClassesResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.QueryClassesResponse",
-  aminoType: "cosmos-sdk/QueryClassesResponse",
-  encode(message: QueryClassesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.classes) {
-      Class.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClassesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClassesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classes.push(Class.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClassesResponse {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryClassesResponse): unknown {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toJSON(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClassesResponse>): QueryClassesResponse {
-    const message = createBaseQueryClassesResponse();
-    message.classes = object.classes?.map(e => Class.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClassesResponseSDKType): QueryClassesResponse {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryClassesResponse): QueryClassesResponseSDKType {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toSDK(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClassesResponseAmino): QueryClassesResponse {
-    return {
-      classes: Array.isArray(object?.classes) ? object.classes.map((e: any) => Class.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryClassesResponse): QueryClassesResponseAmino {
-    const obj: any = {};
-    if (message.classes) {
-      obj.classes = message.classes.map(e => e ? Class.toAmino(e) : undefined);
-    } else {
-      obj.classes = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClassesResponseAminoMsg): QueryClassesResponse {
-    return QueryClassesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClassesResponse): QueryClassesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClassesResponse",
-      value: QueryClassesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClassesResponseProtoMsg): QueryClassesResponse {
-    return QueryClassesResponse.decode(message.value);
-  },
-  toProto(message: QueryClassesResponse): Uint8Array {
-    return QueryClassesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClassesResponse): QueryClassesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.QueryClassesResponse",
-      value: QueryClassesResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.amino.ts
deleted file mode 100644
index a10e415f..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgSend } from "./tx";
-export const AminoConverter = {
-  "/cosmos.nft.v1beta1.MsgSend": {
-    aminoType: "cosmos-sdk/MsgNFTSend",
-    toAmino: MsgSend.toAmino,
-    fromAmino: MsgSend.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.registry.ts
deleted file mode 100644
index 3dd6b8ea..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSend } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.nft.v1beta1.MsgSend", MsgSend]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-        value: MsgSend.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-        value
-      };
-    }
-  },
-  toJSON: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-        value: MsgSend.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    send(value: any) {
-      return {
-        typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-        value: MsgSend.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    send(value: MsgSend) {
-      return {
-        typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-        value: MsgSend.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 54618192..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSend, MsgSendResponse } from "./tx";
-/** Msg defines the nft Msg service. */
-export interface Msg {
-  /** Send defines a method to send a nft from one account to another account. */
-  send(request: MsgSend): Promise<MsgSendResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.send = this.send.bind(this);
-  }
-  send(request: MsgSend): Promise<MsgSendResponse> {
-    const data = MsgSend.encode(request).finish();
-    const promise = this.rpc.request("cosmos.nft.v1beta1.Msg", "Send", data);
-    return promise.then(data => MsgSendResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.ts
deleted file mode 100644
index 1a8606d5..00000000
--- a/examples/injective/src/codegen/cosmos/nft/v1beta1/tx.ts
+++ /dev/null
@@ -1,253 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** MsgSend represents a message to send a nft from one account to another account. */
-export interface MsgSend {
-  /** class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 */
-  classId: string;
-  /** id defines the unique identification of nft */
-  id: string;
-  /** sender is the address of the owner of nft */
-  sender: string;
-  /** receiver is the receiver address of nft */
-  receiver: string;
-}
-export interface MsgSendProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.MsgSend";
-  value: Uint8Array;
-}
-/** MsgSend represents a message to send a nft from one account to another account. */
-export interface MsgSendAmino {
-  /** class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 */
-  class_id: string;
-  /** id defines the unique identification of nft */
-  id: string;
-  /** sender is the address of the owner of nft */
-  sender: string;
-  /** receiver is the receiver address of nft */
-  receiver: string;
-}
-export interface MsgSendAminoMsg {
-  type: "cosmos-sdk/MsgNFTSend";
-  value: MsgSendAmino;
-}
-/** MsgSend represents a message to send a nft from one account to another account. */
-export interface MsgSendSDKType {
-  class_id: string;
-  id: string;
-  sender: string;
-  receiver: string;
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponse {}
-export interface MsgSendResponseProtoMsg {
-  typeUrl: "/cosmos.nft.v1beta1.MsgSendResponse";
-  value: Uint8Array;
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponseAmino {}
-export interface MsgSendResponseAminoMsg {
-  type: "cosmos-sdk/MsgSendResponse";
-  value: MsgSendResponseAmino;
-}
-/** MsgSendResponse defines the Msg/Send response type. */
-export interface MsgSendResponseSDKType {}
-function createBaseMsgSend(): MsgSend {
-  return {
-    classId: "",
-    id: "",
-    sender: "",
-    receiver: ""
-  };
-}
-export const MsgSend = {
-  typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-  aminoType: "cosmos-sdk/MsgNFTSend",
-  encode(message: MsgSend, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.classId !== "") {
-      writer.uint32(10).string(message.classId);
-    }
-    if (message.id !== "") {
-      writer.uint32(18).string(message.id);
-    }
-    if (message.sender !== "") {
-      writer.uint32(26).string(message.sender);
-    }
-    if (message.receiver !== "") {
-      writer.uint32(34).string(message.receiver);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSend {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSend();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.classId = reader.string();
-          break;
-        case 2:
-          message.id = reader.string();
-          break;
-        case 3:
-          message.sender = reader.string();
-          break;
-        case 4:
-          message.receiver = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSend {
-    return {
-      classId: isSet(object.classId) ? String(object.classId) : "",
-      id: isSet(object.id) ? String(object.id) : "",
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      receiver: isSet(object.receiver) ? String(object.receiver) : ""
-    };
-  },
-  toJSON(message: MsgSend): unknown {
-    const obj: any = {};
-    message.classId !== undefined && (obj.classId = message.classId);
-    message.id !== undefined && (obj.id = message.id);
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.receiver !== undefined && (obj.receiver = message.receiver);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSend>): MsgSend {
-    const message = createBaseMsgSend();
-    message.classId = object.classId ?? "";
-    message.id = object.id ?? "";
-    message.sender = object.sender ?? "";
-    message.receiver = object.receiver ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSendSDKType): MsgSend {
-    return {
-      classId: object?.class_id,
-      id: object?.id,
-      sender: object?.sender,
-      receiver: object?.receiver
-    };
-  },
-  toSDK(message: MsgSend): MsgSendSDKType {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAmino(object: MsgSendAmino): MsgSend {
-    return {
-      classId: object.class_id,
-      id: object.id,
-      sender: object.sender,
-      receiver: object.receiver
-    };
-  },
-  toAmino(message: MsgSend): MsgSendAmino {
-    const obj: any = {};
-    obj.class_id = message.classId;
-    obj.id = message.id;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSendAminoMsg): MsgSend {
-    return MsgSend.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSend): MsgSendAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgNFTSend",
-      value: MsgSend.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSendProtoMsg): MsgSend {
-    return MsgSend.decode(message.value);
-  },
-  toProto(message: MsgSend): Uint8Array {
-    return MsgSend.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSend): MsgSendProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.MsgSend",
-      value: MsgSend.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSendResponse(): MsgSendResponse {
-  return {};
-}
-export const MsgSendResponse = {
-  typeUrl: "/cosmos.nft.v1beta1.MsgSendResponse",
-  aminoType: "cosmos-sdk/MsgSendResponse",
-  encode(_: MsgSendResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSendResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSendResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSendResponse {
-    return {};
-  },
-  toJSON(_: MsgSendResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSendResponse>): MsgSendResponse {
-    const message = createBaseMsgSendResponse();
-    return message;
-  },
-  fromSDK(_: MsgSendResponseSDKType): MsgSendResponse {
-    return {};
-  },
-  toSDK(_: MsgSendResponse): MsgSendResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSendResponseAmino): MsgSendResponse {
-    return {};
-  },
-  toAmino(_: MsgSendResponse): MsgSendResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSendResponseAminoMsg): MsgSendResponse {
-    return MsgSendResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSendResponse): MsgSendResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSendResponse",
-      value: MsgSendResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSendResponseProtoMsg): MsgSendResponse {
-    return MsgSendResponse.decode(message.value);
-  },
-  toProto(message: MsgSendResponse): Uint8Array {
-    return MsgSendResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSendResponse): MsgSendResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.nft.v1beta1.MsgSendResponse",
-      value: MsgSendResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/orm/v1/orm.ts b/examples/injective/src/codegen/cosmos/orm/v1/orm.ts
deleted file mode 100644
index 46bd477b..00000000
--- a/examples/injective/src/codegen/cosmos/orm/v1/orm.ts
+++ /dev/null
@@ -1,663 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** TableDescriptor describes an ORM table. */
-export interface TableDescriptor {
-  /** primary_key defines the primary key for the table. */
-  primaryKey: PrimaryKeyDescriptor | undefined;
-  /** index defines one or more secondary indexes. */
-  index: SecondaryIndexDescriptor[];
-  /**
-   * id is a non-zero integer ID that must be unique within the
-   * tables and singletons in this file. It may be deprecated in the future when this
-   * can be auto-generated.
-   */
-  id: number;
-}
-export interface TableDescriptorProtoMsg {
-  typeUrl: "/cosmos.orm.v1.TableDescriptor";
-  value: Uint8Array;
-}
-/** TableDescriptor describes an ORM table. */
-export interface TableDescriptorAmino {
-  /** primary_key defines the primary key for the table. */
-  primary_key?: PrimaryKeyDescriptorAmino | undefined;
-  /** index defines one or more secondary indexes. */
-  index: SecondaryIndexDescriptorAmino[];
-  /**
-   * id is a non-zero integer ID that must be unique within the
-   * tables and singletons in this file. It may be deprecated in the future when this
-   * can be auto-generated.
-   */
-  id: number;
-}
-export interface TableDescriptorAminoMsg {
-  type: "cosmos-sdk/TableDescriptor";
-  value: TableDescriptorAmino;
-}
-/** TableDescriptor describes an ORM table. */
-export interface TableDescriptorSDKType {
-  primary_key: PrimaryKeyDescriptorSDKType | undefined;
-  index: SecondaryIndexDescriptorSDKType[];
-  id: number;
-}
-/** PrimaryKeyDescriptor describes a table primary key. */
-export interface PrimaryKeyDescriptor {
-  /**
-   * fields is a comma-separated list of fields in the primary key. Spaces are
-   * not allowed. Supported field types, their encodings, and any applicable constraints
-   * are described below.
-   *   - uint32 are encoded as 2,3,4 or 5 bytes using a compact encoding that
-   *     is suitable for sorted iteration (not varint encoding). This type is
-   *     well-suited for small integers.
-   *   - uint64 are encoded as 2,4,6 or 9 bytes using a compact encoding that
-   *     is suitable for sorted iteration (not varint encoding). This type is
-   *     well-suited for small integers such as auto-incrementing sequences.
-   *   - fixed32, fixed64 are encoded as big-endian fixed width bytes and support
-   *   sorted iteration. These types are well-suited for encoding fixed with
-   *   decimals as integers.
-   *   - string's are encoded as raw bytes in terminal key segments and null-terminated
-   *   in non-terminal segments. Null characters are thus forbidden in strings.
-   *   string fields support sorted iteration.
-   *   - bytes are encoded as raw bytes in terminal segments and length-prefixed
-   *   with a 32-bit unsigned varint in non-terminal segments.
-   *   - int32, sint32, int64, sint64, sfixed32, sfixed64 are encoded as fixed width bytes with
-   *   an encoding that enables sorted iteration.
-   *   - google.protobuf.Timestamp and google.protobuf.Duration are encoded
-   *   as 12 bytes using an encoding that enables sorted iteration.
-   *   - enum fields are encoded using varint encoding and do not support sorted
-   *   iteration.
-   *   - bool fields are encoded as a single byte 0 or 1.
-   * 
-   * All other fields types are unsupported in keys including repeated and
-   * oneof fields.
-   * 
-   * Primary keys are prefixed by the varint encoded table id and the byte 0x0
-   * plus any additional prefix specified by the schema.
-   */
-  fields: string;
-  /**
-   * auto_increment specifies that the primary key is generated by an
-   * auto-incrementing integer. If this is set to true fields must only
-   * contain one field of that is of type uint64.
-   */
-  autoIncrement: boolean;
-}
-export interface PrimaryKeyDescriptorProtoMsg {
-  typeUrl: "/cosmos.orm.v1.PrimaryKeyDescriptor";
-  value: Uint8Array;
-}
-/** PrimaryKeyDescriptor describes a table primary key. */
-export interface PrimaryKeyDescriptorAmino {
-  /**
-   * fields is a comma-separated list of fields in the primary key. Spaces are
-   * not allowed. Supported field types, their encodings, and any applicable constraints
-   * are described below.
-   *   - uint32 are encoded as 2,3,4 or 5 bytes using a compact encoding that
-   *     is suitable for sorted iteration (not varint encoding). This type is
-   *     well-suited for small integers.
-   *   - uint64 are encoded as 2,4,6 or 9 bytes using a compact encoding that
-   *     is suitable for sorted iteration (not varint encoding). This type is
-   *     well-suited for small integers such as auto-incrementing sequences.
-   *   - fixed32, fixed64 are encoded as big-endian fixed width bytes and support
-   *   sorted iteration. These types are well-suited for encoding fixed with
-   *   decimals as integers.
-   *   - string's are encoded as raw bytes in terminal key segments and null-terminated
-   *   in non-terminal segments. Null characters are thus forbidden in strings.
-   *   string fields support sorted iteration.
-   *   - bytes are encoded as raw bytes in terminal segments and length-prefixed
-   *   with a 32-bit unsigned varint in non-terminal segments.
-   *   - int32, sint32, int64, sint64, sfixed32, sfixed64 are encoded as fixed width bytes with
-   *   an encoding that enables sorted iteration.
-   *   - google.protobuf.Timestamp and google.protobuf.Duration are encoded
-   *   as 12 bytes using an encoding that enables sorted iteration.
-   *   - enum fields are encoded using varint encoding and do not support sorted
-   *   iteration.
-   *   - bool fields are encoded as a single byte 0 or 1.
-   * 
-   * All other fields types are unsupported in keys including repeated and
-   * oneof fields.
-   * 
-   * Primary keys are prefixed by the varint encoded table id and the byte 0x0
-   * plus any additional prefix specified by the schema.
-   */
-  fields: string;
-  /**
-   * auto_increment specifies that the primary key is generated by an
-   * auto-incrementing integer. If this is set to true fields must only
-   * contain one field of that is of type uint64.
-   */
-  auto_increment: boolean;
-}
-export interface PrimaryKeyDescriptorAminoMsg {
-  type: "cosmos-sdk/PrimaryKeyDescriptor";
-  value: PrimaryKeyDescriptorAmino;
-}
-/** PrimaryKeyDescriptor describes a table primary key. */
-export interface PrimaryKeyDescriptorSDKType {
-  fields: string;
-  auto_increment: boolean;
-}
-/** PrimaryKeyDescriptor describes a table secondary index. */
-export interface SecondaryIndexDescriptor {
-  /**
-   * fields is a comma-separated list of fields in the index. The supported
-   * field types are the same as those for PrimaryKeyDescriptor.fields.
-   * Index keys are prefixed by the varint encoded table id and the varint
-   * encoded index id plus any additional prefix specified by the schema.
-   * 
-   * In addition the the field segments, non-unique index keys are suffixed with
-   * any additional primary key fields not present in the index fields so that the
-   * primary key can be reconstructed. Unique indexes instead of being suffixed
-   * store the remaining primary key fields in the value..
-   */
-  fields: string;
-  /**
-   * id is a non-zero integer ID that must be unique within the indexes for this
-   * table and less than 32768. It may be deprecated in the future when this can
-   * be auto-generated.
-   */
-  id: number;
-  /** unique specifies that this an unique index. */
-  unique: boolean;
-}
-export interface SecondaryIndexDescriptorProtoMsg {
-  typeUrl: "/cosmos.orm.v1.SecondaryIndexDescriptor";
-  value: Uint8Array;
-}
-/** PrimaryKeyDescriptor describes a table secondary index. */
-export interface SecondaryIndexDescriptorAmino {
-  /**
-   * fields is a comma-separated list of fields in the index. The supported
-   * field types are the same as those for PrimaryKeyDescriptor.fields.
-   * Index keys are prefixed by the varint encoded table id and the varint
-   * encoded index id plus any additional prefix specified by the schema.
-   * 
-   * In addition the the field segments, non-unique index keys are suffixed with
-   * any additional primary key fields not present in the index fields so that the
-   * primary key can be reconstructed. Unique indexes instead of being suffixed
-   * store the remaining primary key fields in the value..
-   */
-  fields: string;
-  /**
-   * id is a non-zero integer ID that must be unique within the indexes for this
-   * table and less than 32768. It may be deprecated in the future when this can
-   * be auto-generated.
-   */
-  id: number;
-  /** unique specifies that this an unique index. */
-  unique: boolean;
-}
-export interface SecondaryIndexDescriptorAminoMsg {
-  type: "cosmos-sdk/SecondaryIndexDescriptor";
-  value: SecondaryIndexDescriptorAmino;
-}
-/** PrimaryKeyDescriptor describes a table secondary index. */
-export interface SecondaryIndexDescriptorSDKType {
-  fields: string;
-  id: number;
-  unique: boolean;
-}
-/** TableDescriptor describes an ORM singleton table which has at most one instance. */
-export interface SingletonDescriptor {
-  /**
-   * id is a non-zero integer ID that must be unique within the
-   * tables and singletons in this file. It may be deprecated in the future when this
-   * can be auto-generated.
-   */
-  id: number;
-}
-export interface SingletonDescriptorProtoMsg {
-  typeUrl: "/cosmos.orm.v1.SingletonDescriptor";
-  value: Uint8Array;
-}
-/** TableDescriptor describes an ORM singleton table which has at most one instance. */
-export interface SingletonDescriptorAmino {
-  /**
-   * id is a non-zero integer ID that must be unique within the
-   * tables and singletons in this file. It may be deprecated in the future when this
-   * can be auto-generated.
-   */
-  id: number;
-}
-export interface SingletonDescriptorAminoMsg {
-  type: "cosmos-sdk/SingletonDescriptor";
-  value: SingletonDescriptorAmino;
-}
-/** TableDescriptor describes an ORM singleton table which has at most one instance. */
-export interface SingletonDescriptorSDKType {
-  id: number;
-}
-function createBaseTableDescriptor(): TableDescriptor {
-  return {
-    primaryKey: PrimaryKeyDescriptor.fromPartial({}),
-    index: [],
-    id: 0
-  };
-}
-export const TableDescriptor = {
-  typeUrl: "/cosmos.orm.v1.TableDescriptor",
-  aminoType: "cosmos-sdk/TableDescriptor",
-  encode(message: TableDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.primaryKey !== undefined) {
-      PrimaryKeyDescriptor.encode(message.primaryKey, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.index) {
-      SecondaryIndexDescriptor.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.id !== 0) {
-      writer.uint32(24).uint32(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TableDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTableDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.primaryKey = PrimaryKeyDescriptor.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.index.push(SecondaryIndexDescriptor.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.id = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TableDescriptor {
-    return {
-      primaryKey: isSet(object.primaryKey) ? PrimaryKeyDescriptor.fromJSON(object.primaryKey) : undefined,
-      index: Array.isArray(object?.index) ? object.index.map((e: any) => SecondaryIndexDescriptor.fromJSON(e)) : [],
-      id: isSet(object.id) ? Number(object.id) : 0
-    };
-  },
-  toJSON(message: TableDescriptor): unknown {
-    const obj: any = {};
-    message.primaryKey !== undefined && (obj.primaryKey = message.primaryKey ? PrimaryKeyDescriptor.toJSON(message.primaryKey) : undefined);
-    if (message.index) {
-      obj.index = message.index.map(e => e ? SecondaryIndexDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.index = [];
-    }
-    message.id !== undefined && (obj.id = Math.round(message.id));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TableDescriptor>): TableDescriptor {
-    const message = createBaseTableDescriptor();
-    message.primaryKey = object.primaryKey !== undefined && object.primaryKey !== null ? PrimaryKeyDescriptor.fromPartial(object.primaryKey) : undefined;
-    message.index = object.index?.map(e => SecondaryIndexDescriptor.fromPartial(e)) || [];
-    message.id = object.id ?? 0;
-    return message;
-  },
-  fromSDK(object: TableDescriptorSDKType): TableDescriptor {
-    return {
-      primaryKey: object.primary_key ? PrimaryKeyDescriptor.fromSDK(object.primary_key) : undefined,
-      index: Array.isArray(object?.index) ? object.index.map((e: any) => SecondaryIndexDescriptor.fromSDK(e)) : [],
-      id: object?.id
-    };
-  },
-  toSDK(message: TableDescriptor): TableDescriptorSDKType {
-    const obj: any = {};
-    message.primaryKey !== undefined && (obj.primary_key = message.primaryKey ? PrimaryKeyDescriptor.toSDK(message.primaryKey) : undefined);
-    if (message.index) {
-      obj.index = message.index.map(e => e ? SecondaryIndexDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.index = [];
-    }
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: TableDescriptorAmino): TableDescriptor {
-    return {
-      primaryKey: object?.primary_key ? PrimaryKeyDescriptor.fromAmino(object.primary_key) : undefined,
-      index: Array.isArray(object?.index) ? object.index.map((e: any) => SecondaryIndexDescriptor.fromAmino(e)) : [],
-      id: object.id
-    };
-  },
-  toAmino(message: TableDescriptor): TableDescriptorAmino {
-    const obj: any = {};
-    obj.primary_key = message.primaryKey ? PrimaryKeyDescriptor.toAmino(message.primaryKey) : undefined;
-    if (message.index) {
-      obj.index = message.index.map(e => e ? SecondaryIndexDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.index = [];
-    }
-    obj.id = message.id;
-    return obj;
-  },
-  fromAminoMsg(object: TableDescriptorAminoMsg): TableDescriptor {
-    return TableDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: TableDescriptor): TableDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/TableDescriptor",
-      value: TableDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TableDescriptorProtoMsg): TableDescriptor {
-    return TableDescriptor.decode(message.value);
-  },
-  toProto(message: TableDescriptor): Uint8Array {
-    return TableDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: TableDescriptor): TableDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1.TableDescriptor",
-      value: TableDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBasePrimaryKeyDescriptor(): PrimaryKeyDescriptor {
-  return {
-    fields: "",
-    autoIncrement: false
-  };
-}
-export const PrimaryKeyDescriptor = {
-  typeUrl: "/cosmos.orm.v1.PrimaryKeyDescriptor",
-  aminoType: "cosmos-sdk/PrimaryKeyDescriptor",
-  encode(message: PrimaryKeyDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fields !== "") {
-      writer.uint32(10).string(message.fields);
-    }
-    if (message.autoIncrement === true) {
-      writer.uint32(16).bool(message.autoIncrement);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PrimaryKeyDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePrimaryKeyDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fields = reader.string();
-          break;
-        case 2:
-          message.autoIncrement = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PrimaryKeyDescriptor {
-    return {
-      fields: isSet(object.fields) ? String(object.fields) : "",
-      autoIncrement: isSet(object.autoIncrement) ? Boolean(object.autoIncrement) : false
-    };
-  },
-  toJSON(message: PrimaryKeyDescriptor): unknown {
-    const obj: any = {};
-    message.fields !== undefined && (obj.fields = message.fields);
-    message.autoIncrement !== undefined && (obj.autoIncrement = message.autoIncrement);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PrimaryKeyDescriptor>): PrimaryKeyDescriptor {
-    const message = createBasePrimaryKeyDescriptor();
-    message.fields = object.fields ?? "";
-    message.autoIncrement = object.autoIncrement ?? false;
-    return message;
-  },
-  fromSDK(object: PrimaryKeyDescriptorSDKType): PrimaryKeyDescriptor {
-    return {
-      fields: object?.fields,
-      autoIncrement: object?.auto_increment
-    };
-  },
-  toSDK(message: PrimaryKeyDescriptor): PrimaryKeyDescriptorSDKType {
-    const obj: any = {};
-    obj.fields = message.fields;
-    obj.auto_increment = message.autoIncrement;
-    return obj;
-  },
-  fromAmino(object: PrimaryKeyDescriptorAmino): PrimaryKeyDescriptor {
-    return {
-      fields: object.fields,
-      autoIncrement: object.auto_increment
-    };
-  },
-  toAmino(message: PrimaryKeyDescriptor): PrimaryKeyDescriptorAmino {
-    const obj: any = {};
-    obj.fields = message.fields;
-    obj.auto_increment = message.autoIncrement;
-    return obj;
-  },
-  fromAminoMsg(object: PrimaryKeyDescriptorAminoMsg): PrimaryKeyDescriptor {
-    return PrimaryKeyDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: PrimaryKeyDescriptor): PrimaryKeyDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/PrimaryKeyDescriptor",
-      value: PrimaryKeyDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PrimaryKeyDescriptorProtoMsg): PrimaryKeyDescriptor {
-    return PrimaryKeyDescriptor.decode(message.value);
-  },
-  toProto(message: PrimaryKeyDescriptor): Uint8Array {
-    return PrimaryKeyDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: PrimaryKeyDescriptor): PrimaryKeyDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1.PrimaryKeyDescriptor",
-      value: PrimaryKeyDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseSecondaryIndexDescriptor(): SecondaryIndexDescriptor {
-  return {
-    fields: "",
-    id: 0,
-    unique: false
-  };
-}
-export const SecondaryIndexDescriptor = {
-  typeUrl: "/cosmos.orm.v1.SecondaryIndexDescriptor",
-  aminoType: "cosmos-sdk/SecondaryIndexDescriptor",
-  encode(message: SecondaryIndexDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fields !== "") {
-      writer.uint32(10).string(message.fields);
-    }
-    if (message.id !== 0) {
-      writer.uint32(16).uint32(message.id);
-    }
-    if (message.unique === true) {
-      writer.uint32(24).bool(message.unique);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SecondaryIndexDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSecondaryIndexDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fields = reader.string();
-          break;
-        case 2:
-          message.id = reader.uint32();
-          break;
-        case 3:
-          message.unique = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SecondaryIndexDescriptor {
-    return {
-      fields: isSet(object.fields) ? String(object.fields) : "",
-      id: isSet(object.id) ? Number(object.id) : 0,
-      unique: isSet(object.unique) ? Boolean(object.unique) : false
-    };
-  },
-  toJSON(message: SecondaryIndexDescriptor): unknown {
-    const obj: any = {};
-    message.fields !== undefined && (obj.fields = message.fields);
-    message.id !== undefined && (obj.id = Math.round(message.id));
-    message.unique !== undefined && (obj.unique = message.unique);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SecondaryIndexDescriptor>): SecondaryIndexDescriptor {
-    const message = createBaseSecondaryIndexDescriptor();
-    message.fields = object.fields ?? "";
-    message.id = object.id ?? 0;
-    message.unique = object.unique ?? false;
-    return message;
-  },
-  fromSDK(object: SecondaryIndexDescriptorSDKType): SecondaryIndexDescriptor {
-    return {
-      fields: object?.fields,
-      id: object?.id,
-      unique: object?.unique
-    };
-  },
-  toSDK(message: SecondaryIndexDescriptor): SecondaryIndexDescriptorSDKType {
-    const obj: any = {};
-    obj.fields = message.fields;
-    obj.id = message.id;
-    obj.unique = message.unique;
-    return obj;
-  },
-  fromAmino(object: SecondaryIndexDescriptorAmino): SecondaryIndexDescriptor {
-    return {
-      fields: object.fields,
-      id: object.id,
-      unique: object.unique
-    };
-  },
-  toAmino(message: SecondaryIndexDescriptor): SecondaryIndexDescriptorAmino {
-    const obj: any = {};
-    obj.fields = message.fields;
-    obj.id = message.id;
-    obj.unique = message.unique;
-    return obj;
-  },
-  fromAminoMsg(object: SecondaryIndexDescriptorAminoMsg): SecondaryIndexDescriptor {
-    return SecondaryIndexDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: SecondaryIndexDescriptor): SecondaryIndexDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/SecondaryIndexDescriptor",
-      value: SecondaryIndexDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SecondaryIndexDescriptorProtoMsg): SecondaryIndexDescriptor {
-    return SecondaryIndexDescriptor.decode(message.value);
-  },
-  toProto(message: SecondaryIndexDescriptor): Uint8Array {
-    return SecondaryIndexDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: SecondaryIndexDescriptor): SecondaryIndexDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1.SecondaryIndexDescriptor",
-      value: SecondaryIndexDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseSingletonDescriptor(): SingletonDescriptor {
-  return {
-    id: 0
-  };
-}
-export const SingletonDescriptor = {
-  typeUrl: "/cosmos.orm.v1.SingletonDescriptor",
-  aminoType: "cosmos-sdk/SingletonDescriptor",
-  encode(message: SingletonDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== 0) {
-      writer.uint32(8).uint32(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SingletonDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSingletonDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SingletonDescriptor {
-    return {
-      id: isSet(object.id) ? Number(object.id) : 0
-    };
-  },
-  toJSON(message: SingletonDescriptor): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = Math.round(message.id));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SingletonDescriptor>): SingletonDescriptor {
-    const message = createBaseSingletonDescriptor();
-    message.id = object.id ?? 0;
-    return message;
-  },
-  fromSDK(object: SingletonDescriptorSDKType): SingletonDescriptor {
-    return {
-      id: object?.id
-    };
-  },
-  toSDK(message: SingletonDescriptor): SingletonDescriptorSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: SingletonDescriptorAmino): SingletonDescriptor {
-    return {
-      id: object.id
-    };
-  },
-  toAmino(message: SingletonDescriptor): SingletonDescriptorAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    return obj;
-  },
-  fromAminoMsg(object: SingletonDescriptorAminoMsg): SingletonDescriptor {
-    return SingletonDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: SingletonDescriptor): SingletonDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/SingletonDescriptor",
-      value: SingletonDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SingletonDescriptorProtoMsg): SingletonDescriptor {
-    return SingletonDescriptor.decode(message.value);
-  },
-  toProto(message: SingletonDescriptor): Uint8Array {
-    return SingletonDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: SingletonDescriptor): SingletonDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1.SingletonDescriptor",
-      value: SingletonDescriptor.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/orm/v1alpha1/schema.ts b/examples/injective/src/codegen/cosmos/orm/v1alpha1/schema.ts
deleted file mode 100644
index b235854b..00000000
--- a/examples/injective/src/codegen/cosmos/orm/v1alpha1/schema.ts
+++ /dev/null
@@ -1,402 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** StorageType */
-export enum StorageType {
-  /**
-   * STORAGE_TYPE_DEFAULT_UNSPECIFIED - STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent
-   * KV-storage where primary key entries are stored in merkle-tree
-   * backed commitment storage and indexes and seqs are stored in
-   * fast index storage. Note that the Cosmos SDK before store/v2alpha1
-   * does not support this.
-   */
-  STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0,
-  /**
-   * STORAGE_TYPE_MEMORY - STORAGE_TYPE_MEMORY indicates in-memory storage that will be
-   * reloaded every time an app restarts. Tables with this type of storage
-   * will by default be ignored when importing and exporting a module's
-   * state from JSON.
-   */
-  STORAGE_TYPE_MEMORY = 1,
-  /**
-   * STORAGE_TYPE_TRANSIENT - STORAGE_TYPE_TRANSIENT indicates transient storage that is reset
-   * at the end of every block. Tables with this type of storage
-   * will by default be ignored when importing and exporting a module's
-   * state from JSON.
-   */
-  STORAGE_TYPE_TRANSIENT = 2,
-  /**
-   * STORAGE_TYPE_INDEX - STORAGE_TYPE_INDEX indicates persistent storage which is not backed
-   * by a merkle-tree and won't affect the app hash. Note that the Cosmos SDK
-   * before store/v2alpha1 does not support this.
-   */
-  STORAGE_TYPE_INDEX = 3,
-  /**
-   * STORAGE_TYPE_COMMITMENT - STORAGE_TYPE_INDEX indicates persistent storage which is backed by
-   * a merkle-tree. With this type of storage, both primary and index keys
-   * will affect the app hash and this is generally less efficient
-   * than using STORAGE_TYPE_DEFAULT_UNSPECIFIED which separates index
-   * keys into index storage. Note that modules built with the
-   * Cosmos SDK before store/v2alpha1 must specify STORAGE_TYPE_COMMITMENT
-   * instead of STORAGE_TYPE_DEFAULT_UNSPECIFIED or STORAGE_TYPE_INDEX
-   * because this is the only type of persistent storage available.
-   */
-  STORAGE_TYPE_COMMITMENT = 4,
-  UNRECOGNIZED = -1,
-}
-export const StorageTypeSDKType = StorageType;
-export const StorageTypeAmino = StorageType;
-export function storageTypeFromJSON(object: any): StorageType {
-  switch (object) {
-    case 0:
-    case "STORAGE_TYPE_DEFAULT_UNSPECIFIED":
-      return StorageType.STORAGE_TYPE_DEFAULT_UNSPECIFIED;
-    case 1:
-    case "STORAGE_TYPE_MEMORY":
-      return StorageType.STORAGE_TYPE_MEMORY;
-    case 2:
-    case "STORAGE_TYPE_TRANSIENT":
-      return StorageType.STORAGE_TYPE_TRANSIENT;
-    case 3:
-    case "STORAGE_TYPE_INDEX":
-      return StorageType.STORAGE_TYPE_INDEX;
-    case 4:
-    case "STORAGE_TYPE_COMMITMENT":
-      return StorageType.STORAGE_TYPE_COMMITMENT;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return StorageType.UNRECOGNIZED;
-  }
-}
-export function storageTypeToJSON(object: StorageType): string {
-  switch (object) {
-    case StorageType.STORAGE_TYPE_DEFAULT_UNSPECIFIED:
-      return "STORAGE_TYPE_DEFAULT_UNSPECIFIED";
-    case StorageType.STORAGE_TYPE_MEMORY:
-      return "STORAGE_TYPE_MEMORY";
-    case StorageType.STORAGE_TYPE_TRANSIENT:
-      return "STORAGE_TYPE_TRANSIENT";
-    case StorageType.STORAGE_TYPE_INDEX:
-      return "STORAGE_TYPE_INDEX";
-    case StorageType.STORAGE_TYPE_COMMITMENT:
-      return "STORAGE_TYPE_COMMITMENT";
-    case StorageType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ModuleSchemaDescriptor describe's a module's ORM schema. */
-export interface ModuleSchemaDescriptor {
-  schemaFile: ModuleSchemaDescriptor_FileEntry[];
-  /**
-   * prefix is an optional prefix that precedes all keys in this module's
-   * store.
-   */
-  prefix: Uint8Array;
-}
-export interface ModuleSchemaDescriptorProtoMsg {
-  typeUrl: "/cosmos.orm.v1alpha1.ModuleSchemaDescriptor";
-  value: Uint8Array;
-}
-/** ModuleSchemaDescriptor describe's a module's ORM schema. */
-export interface ModuleSchemaDescriptorAmino {
-  schema_file: ModuleSchemaDescriptor_FileEntryAmino[];
-  /**
-   * prefix is an optional prefix that precedes all keys in this module's
-   * store.
-   */
-  prefix: Uint8Array;
-}
-export interface ModuleSchemaDescriptorAminoMsg {
-  type: "cosmos-sdk/ModuleSchemaDescriptor";
-  value: ModuleSchemaDescriptorAmino;
-}
-/** ModuleSchemaDescriptor describe's a module's ORM schema. */
-export interface ModuleSchemaDescriptorSDKType {
-  schema_file: ModuleSchemaDescriptor_FileEntrySDKType[];
-  prefix: Uint8Array;
-}
-/** FileEntry describes an ORM file used in a module. */
-export interface ModuleSchemaDescriptor_FileEntry {
-  /**
-   * id is a prefix that will be varint encoded and prepended to all the
-   * table keys specified in the file's tables.
-   */
-  id: number;
-  /**
-   * proto_file_name is the name of a file .proto in that contains
-   * table definitions. The .proto file must be in a package that the
-   * module has referenced using cosmos.app.v1.ModuleDescriptor.use_package.
-   */
-  protoFileName: string;
-  /**
-   * storage_type optionally indicates the type of storage this file's
-   * tables should used. If it is left unspecified, the default KV-storage
-   * of the app will be used.
-   */
-  storageType: StorageType;
-}
-export interface ModuleSchemaDescriptor_FileEntryProtoMsg {
-  typeUrl: "/cosmos.orm.v1alpha1.FileEntry";
-  value: Uint8Array;
-}
-/** FileEntry describes an ORM file used in a module. */
-export interface ModuleSchemaDescriptor_FileEntryAmino {
-  /**
-   * id is a prefix that will be varint encoded and prepended to all the
-   * table keys specified in the file's tables.
-   */
-  id: number;
-  /**
-   * proto_file_name is the name of a file .proto in that contains
-   * table definitions. The .proto file must be in a package that the
-   * module has referenced using cosmos.app.v1.ModuleDescriptor.use_package.
-   */
-  proto_file_name: string;
-  /**
-   * storage_type optionally indicates the type of storage this file's
-   * tables should used. If it is left unspecified, the default KV-storage
-   * of the app will be used.
-   */
-  storage_type: StorageType;
-}
-export interface ModuleSchemaDescriptor_FileEntryAminoMsg {
-  type: "cosmos-sdk/FileEntry";
-  value: ModuleSchemaDescriptor_FileEntryAmino;
-}
-/** FileEntry describes an ORM file used in a module. */
-export interface ModuleSchemaDescriptor_FileEntrySDKType {
-  id: number;
-  proto_file_name: string;
-  storage_type: StorageType;
-}
-function createBaseModuleSchemaDescriptor(): ModuleSchemaDescriptor {
-  return {
-    schemaFile: [],
-    prefix: new Uint8Array()
-  };
-}
-export const ModuleSchemaDescriptor = {
-  typeUrl: "/cosmos.orm.v1alpha1.ModuleSchemaDescriptor",
-  aminoType: "cosmos-sdk/ModuleSchemaDescriptor",
-  encode(message: ModuleSchemaDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.schemaFile) {
-      ModuleSchemaDescriptor_FileEntry.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.prefix.length !== 0) {
-      writer.uint32(18).bytes(message.prefix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleSchemaDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleSchemaDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.schemaFile.push(ModuleSchemaDescriptor_FileEntry.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.prefix = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleSchemaDescriptor {
-    return {
-      schemaFile: Array.isArray(object?.schemaFile) ? object.schemaFile.map((e: any) => ModuleSchemaDescriptor_FileEntry.fromJSON(e)) : [],
-      prefix: isSet(object.prefix) ? bytesFromBase64(object.prefix) : new Uint8Array()
-    };
-  },
-  toJSON(message: ModuleSchemaDescriptor): unknown {
-    const obj: any = {};
-    if (message.schemaFile) {
-      obj.schemaFile = message.schemaFile.map(e => e ? ModuleSchemaDescriptor_FileEntry.toJSON(e) : undefined);
-    } else {
-      obj.schemaFile = [];
-    }
-    message.prefix !== undefined && (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleSchemaDescriptor>): ModuleSchemaDescriptor {
-    const message = createBaseModuleSchemaDescriptor();
-    message.schemaFile = object.schemaFile?.map(e => ModuleSchemaDescriptor_FileEntry.fromPartial(e)) || [];
-    message.prefix = object.prefix ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ModuleSchemaDescriptorSDKType): ModuleSchemaDescriptor {
-    return {
-      schemaFile: Array.isArray(object?.schema_file) ? object.schema_file.map((e: any) => ModuleSchemaDescriptor_FileEntry.fromSDK(e)) : [],
-      prefix: object?.prefix
-    };
-  },
-  toSDK(message: ModuleSchemaDescriptor): ModuleSchemaDescriptorSDKType {
-    const obj: any = {};
-    if (message.schemaFile) {
-      obj.schema_file = message.schemaFile.map(e => e ? ModuleSchemaDescriptor_FileEntry.toSDK(e) : undefined);
-    } else {
-      obj.schema_file = [];
-    }
-    obj.prefix = message.prefix;
-    return obj;
-  },
-  fromAmino(object: ModuleSchemaDescriptorAmino): ModuleSchemaDescriptor {
-    return {
-      schemaFile: Array.isArray(object?.schema_file) ? object.schema_file.map((e: any) => ModuleSchemaDescriptor_FileEntry.fromAmino(e)) : [],
-      prefix: object.prefix
-    };
-  },
-  toAmino(message: ModuleSchemaDescriptor): ModuleSchemaDescriptorAmino {
-    const obj: any = {};
-    if (message.schemaFile) {
-      obj.schema_file = message.schemaFile.map(e => e ? ModuleSchemaDescriptor_FileEntry.toAmino(e) : undefined);
-    } else {
-      obj.schema_file = [];
-    }
-    obj.prefix = message.prefix;
-    return obj;
-  },
-  fromAminoMsg(object: ModuleSchemaDescriptorAminoMsg): ModuleSchemaDescriptor {
-    return ModuleSchemaDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleSchemaDescriptor): ModuleSchemaDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/ModuleSchemaDescriptor",
-      value: ModuleSchemaDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleSchemaDescriptorProtoMsg): ModuleSchemaDescriptor {
-    return ModuleSchemaDescriptor.decode(message.value);
-  },
-  toProto(message: ModuleSchemaDescriptor): Uint8Array {
-    return ModuleSchemaDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleSchemaDescriptor): ModuleSchemaDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1alpha1.ModuleSchemaDescriptor",
-      value: ModuleSchemaDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleSchemaDescriptor_FileEntry(): ModuleSchemaDescriptor_FileEntry {
-  return {
-    id: 0,
-    protoFileName: "",
-    storageType: 0
-  };
-}
-export const ModuleSchemaDescriptor_FileEntry = {
-  typeUrl: "/cosmos.orm.v1alpha1.FileEntry",
-  aminoType: "cosmos-sdk/FileEntry",
-  encode(message: ModuleSchemaDescriptor_FileEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== 0) {
-      writer.uint32(8).uint32(message.id);
-    }
-    if (message.protoFileName !== "") {
-      writer.uint32(18).string(message.protoFileName);
-    }
-    if (message.storageType !== 0) {
-      writer.uint32(24).int32(message.storageType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleSchemaDescriptor_FileEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleSchemaDescriptor_FileEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint32();
-          break;
-        case 2:
-          message.protoFileName = reader.string();
-          break;
-        case 3:
-          message.storageType = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleSchemaDescriptor_FileEntry {
-    return {
-      id: isSet(object.id) ? Number(object.id) : 0,
-      protoFileName: isSet(object.protoFileName) ? String(object.protoFileName) : "",
-      storageType: isSet(object.storageType) ? storageTypeFromJSON(object.storageType) : -1
-    };
-  },
-  toJSON(message: ModuleSchemaDescriptor_FileEntry): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = Math.round(message.id));
-    message.protoFileName !== undefined && (obj.protoFileName = message.protoFileName);
-    message.storageType !== undefined && (obj.storageType = storageTypeToJSON(message.storageType));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleSchemaDescriptor_FileEntry>): ModuleSchemaDescriptor_FileEntry {
-    const message = createBaseModuleSchemaDescriptor_FileEntry();
-    message.id = object.id ?? 0;
-    message.protoFileName = object.protoFileName ?? "";
-    message.storageType = object.storageType ?? 0;
-    return message;
-  },
-  fromSDK(object: ModuleSchemaDescriptor_FileEntrySDKType): ModuleSchemaDescriptor_FileEntry {
-    return {
-      id: object?.id,
-      protoFileName: object?.proto_file_name,
-      storageType: isSet(object.storage_type) ? storageTypeFromJSON(object.storage_type) : -1
-    };
-  },
-  toSDK(message: ModuleSchemaDescriptor_FileEntry): ModuleSchemaDescriptor_FileEntrySDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.proto_file_name = message.protoFileName;
-    message.storageType !== undefined && (obj.storage_type = storageTypeToJSON(message.storageType));
-    return obj;
-  },
-  fromAmino(object: ModuleSchemaDescriptor_FileEntryAmino): ModuleSchemaDescriptor_FileEntry {
-    return {
-      id: object.id,
-      protoFileName: object.proto_file_name,
-      storageType: isSet(object.storage_type) ? storageTypeFromJSON(object.storage_type) : -1
-    };
-  },
-  toAmino(message: ModuleSchemaDescriptor_FileEntry): ModuleSchemaDescriptor_FileEntryAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.proto_file_name = message.protoFileName;
-    obj.storage_type = message.storageType;
-    return obj;
-  },
-  fromAminoMsg(object: ModuleSchemaDescriptor_FileEntryAminoMsg): ModuleSchemaDescriptor_FileEntry {
-    return ModuleSchemaDescriptor_FileEntry.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleSchemaDescriptor_FileEntry): ModuleSchemaDescriptor_FileEntryAminoMsg {
-    return {
-      type: "cosmos-sdk/FileEntry",
-      value: ModuleSchemaDescriptor_FileEntry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleSchemaDescriptor_FileEntryProtoMsg): ModuleSchemaDescriptor_FileEntry {
-    return ModuleSchemaDescriptor_FileEntry.decode(message.value);
-  },
-  toProto(message: ModuleSchemaDescriptor_FileEntry): Uint8Array {
-    return ModuleSchemaDescriptor_FileEntry.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleSchemaDescriptor_FileEntry): ModuleSchemaDescriptor_FileEntryProtoMsg {
-    return {
-      typeUrl: "/cosmos.orm.v1alpha1.FileEntry",
-      value: ModuleSchemaDescriptor_FileEntry.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/params/v1beta1/params.ts b/examples/injective/src/codegen/cosmos/params/v1beta1/params.ts
deleted file mode 100644
index fb616d95..00000000
--- a/examples/injective/src/codegen/cosmos/params/v1beta1/params.ts
+++ /dev/null
@@ -1,307 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** ParameterChangeProposal defines a proposal to change one or more parameters. */
-export interface ParameterChangeProposal {
-  title: string;
-  description: string;
-  changes: ParamChange[];
-}
-export interface ParameterChangeProposalProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal";
-  value: Uint8Array;
-}
-/** ParameterChangeProposal defines a proposal to change one or more parameters. */
-export interface ParameterChangeProposalAmino {
-  title: string;
-  description: string;
-  changes: ParamChangeAmino[];
-}
-export interface ParameterChangeProposalAminoMsg {
-  type: "cosmos-sdk/ParameterChangeProposal";
-  value: ParameterChangeProposalAmino;
-}
-/** ParameterChangeProposal defines a proposal to change one or more parameters. */
-export interface ParameterChangeProposalSDKType {
-  title: string;
-  description: string;
-  changes: ParamChangeSDKType[];
-}
-/**
- * ParamChange defines an individual parameter change, for use in
- * ParameterChangeProposal.
- */
-export interface ParamChange {
-  subspace: string;
-  key: string;
-  value: string;
-}
-export interface ParamChangeProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.ParamChange";
-  value: Uint8Array;
-}
-/**
- * ParamChange defines an individual parameter change, for use in
- * ParameterChangeProposal.
- */
-export interface ParamChangeAmino {
-  subspace: string;
-  key: string;
-  value: string;
-}
-export interface ParamChangeAminoMsg {
-  type: "cosmos-sdk/ParamChange";
-  value: ParamChangeAmino;
-}
-/**
- * ParamChange defines an individual parameter change, for use in
- * ParameterChangeProposal.
- */
-export interface ParamChangeSDKType {
-  subspace: string;
-  key: string;
-  value: string;
-}
-function createBaseParameterChangeProposal(): ParameterChangeProposal {
-  return {
-    title: "",
-    description: "",
-    changes: []
-  };
-}
-export const ParameterChangeProposal = {
-  typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal",
-  aminoType: "cosmos-sdk/ParameterChangeProposal",
-  encode(message: ParameterChangeProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    for (const v of message.changes) {
-      ParamChange.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ParameterChangeProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParameterChangeProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.changes.push(ParamChange.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ParameterChangeProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      changes: Array.isArray(object?.changes) ? object.changes.map((e: any) => ParamChange.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ParameterChangeProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.changes) {
-      obj.changes = message.changes.map(e => e ? ParamChange.toJSON(e) : undefined);
-    } else {
-      obj.changes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ParameterChangeProposal>): ParameterChangeProposal {
-    const message = createBaseParameterChangeProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.changes = object.changes?.map(e => ParamChange.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ParameterChangeProposalSDKType): ParameterChangeProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      changes: Array.isArray(object?.changes) ? object.changes.map((e: any) => ParamChange.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ParameterChangeProposal): ParameterChangeProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.changes) {
-      obj.changes = message.changes.map(e => e ? ParamChange.toSDK(e) : undefined);
-    } else {
-      obj.changes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ParameterChangeProposalAmino): ParameterChangeProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      changes: Array.isArray(object?.changes) ? object.changes.map((e: any) => ParamChange.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ParameterChangeProposal): ParameterChangeProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.changes) {
-      obj.changes = message.changes.map(e => e ? ParamChange.toAmino(e) : undefined);
-    } else {
-      obj.changes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ParameterChangeProposalAminoMsg): ParameterChangeProposal {
-    return ParameterChangeProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: ParameterChangeProposal): ParameterChangeProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/ParameterChangeProposal",
-      value: ParameterChangeProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParameterChangeProposalProtoMsg): ParameterChangeProposal {
-    return ParameterChangeProposal.decode(message.value);
-  },
-  toProto(message: ParameterChangeProposal): Uint8Array {
-    return ParameterChangeProposal.encode(message).finish();
-  },
-  toProtoMsg(message: ParameterChangeProposal): ParameterChangeProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal",
-      value: ParameterChangeProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseParamChange(): ParamChange {
-  return {
-    subspace: "",
-    key: "",
-    value: ""
-  };
-}
-export const ParamChange = {
-  typeUrl: "/cosmos.params.v1beta1.ParamChange",
-  aminoType: "cosmos-sdk/ParamChange",
-  encode(message: ParamChange, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.subspace !== "") {
-      writer.uint32(10).string(message.subspace);
-    }
-    if (message.key !== "") {
-      writer.uint32(18).string(message.key);
-    }
-    if (message.value !== "") {
-      writer.uint32(26).string(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ParamChange {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParamChange();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.subspace = reader.string();
-          break;
-        case 2:
-          message.key = reader.string();
-          break;
-        case 3:
-          message.value = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ParamChange {
-    return {
-      subspace: isSet(object.subspace) ? String(object.subspace) : "",
-      key: isSet(object.key) ? String(object.key) : "",
-      value: isSet(object.value) ? String(object.value) : ""
-    };
-  },
-  toJSON(message: ParamChange): unknown {
-    const obj: any = {};
-    message.subspace !== undefined && (obj.subspace = message.subspace);
-    message.key !== undefined && (obj.key = message.key);
-    message.value !== undefined && (obj.value = message.value);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ParamChange>): ParamChange {
-    const message = createBaseParamChange();
-    message.subspace = object.subspace ?? "";
-    message.key = object.key ?? "";
-    message.value = object.value ?? "";
-    return message;
-  },
-  fromSDK(object: ParamChangeSDKType): ParamChange {
-    return {
-      subspace: object?.subspace,
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: ParamChange): ParamChangeSDKType {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: ParamChangeAmino): ParamChange {
-    return {
-      subspace: object.subspace,
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: ParamChange): ParamChangeAmino {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: ParamChangeAminoMsg): ParamChange {
-    return ParamChange.fromAmino(object.value);
-  },
-  toAminoMsg(message: ParamChange): ParamChangeAminoMsg {
-    return {
-      type: "cosmos-sdk/ParamChange",
-      value: ParamChange.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamChangeProtoMsg): ParamChange {
-    return ParamChange.decode(message.value);
-  },
-  toProto(message: ParamChange): Uint8Array {
-    return ParamChange.encode(message).finish();
-  },
-  toProtoMsg(message: ParamChange): ParamChangeProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.ParamChange",
-      value: ParamChange.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/params/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/params/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 46cf0207..00000000
--- a/examples/injective/src/codegen/cosmos/params/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QuerySubspacesRequest, QuerySubspacesResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /**
-   * Params queries a specific parameter of a module, given its subspace and
-   * key.
-   */
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** Subspaces queries for all registered subspaces and all keys for a subspace. */
-  subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.subspaces = this.subspaces.bind(this);
-  }
-  params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.params.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  subspaces(request: QuerySubspacesRequest = {}): Promise<QuerySubspacesResponse> {
-    const data = QuerySubspacesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.params.v1beta1.Query", "Subspaces", data);
-    return promise.then(data => QuerySubspacesResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse> {
-      return queryService.subspaces(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request: QueryParamsRequest;
-}
-export interface UseSubspacesQuery<TData> extends ReactQueryParams<QuerySubspacesResponse, TData> {
-  request?: QuerySubspacesRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useSubspaces = <TData = QuerySubspacesResponse,>({
-    request,
-    options
-  }: UseSubspacesQuery<TData>) => {
-    return useQuery<QuerySubspacesResponse, Error, TData>(["subspacesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.subspaces(request);
-    }, options);
-  };
-  return {
-    /**
-     * Params queries a specific parameter of a module, given its subspace and
-     * key.
-     */
-    useParams,
-    /** Subspaces queries for all registered subspaces and all keys for a subspace. */useSubspaces
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySubspacesStore {
-    store = new QueryStore<QuerySubspacesRequest, QuerySubspacesResponse>(queryService?.subspaces);
-    subspaces(request: QuerySubspacesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * Params queries a specific parameter of a module, given its subspace and
-     * key.
-     */
-    QueryParamsStore,
-    /** Subspaces queries for all registered subspaces and all keys for a subspace. */QuerySubspacesStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/params/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/params/v1beta1/query.ts
deleted file mode 100644
index 52d27d46..00000000
--- a/examples/injective/src/codegen/cosmos/params/v1beta1/query.ts
+++ /dev/null
@@ -1,610 +0,0 @@
-import { ParamChange, ParamChangeAmino, ParamChangeSDKType } from "./params";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {
-  /** subspace defines the module to query the parameter for. */
-  subspace: string;
-  /** key defines the key of the parameter in the subspace. */
-  key: string;
-}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {
-  /** subspace defines the module to query the parameter for. */
-  subspace: string;
-  /** key defines the key of the parameter in the subspace. */
-  key: string;
-}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {
-  subspace: string;
-  key: string;
-}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** param defines the queried parameter. */
-  param: ParamChange | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** param defines the queried parameter. */
-  param?: ParamChangeAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  param: ParamChangeSDKType | undefined;
-}
-/**
- * QuerySubspacesRequest defines a request type for querying for all registered
- * subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesRequest {}
-export interface QuerySubspacesRequestProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.QuerySubspacesRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySubspacesRequest defines a request type for querying for all registered
- * subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesRequestAmino {}
-export interface QuerySubspacesRequestAminoMsg {
-  type: "cosmos-sdk/QuerySubspacesRequest";
-  value: QuerySubspacesRequestAmino;
-}
-/**
- * QuerySubspacesRequest defines a request type for querying for all registered
- * subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesRequestSDKType {}
-/**
- * QuerySubspacesResponse defines the response types for querying for all
- * registered subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesResponse {
-  subspaces: Subspace[];
-}
-export interface QuerySubspacesResponseProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.QuerySubspacesResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySubspacesResponse defines the response types for querying for all
- * registered subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesResponseAmino {
-  subspaces: SubspaceAmino[];
-}
-export interface QuerySubspacesResponseAminoMsg {
-  type: "cosmos-sdk/QuerySubspacesResponse";
-  value: QuerySubspacesResponseAmino;
-}
-/**
- * QuerySubspacesResponse defines the response types for querying for all
- * registered subspaces and all keys for a subspace.
- */
-export interface QuerySubspacesResponseSDKType {
-  subspaces: SubspaceSDKType[];
-}
-/**
- * Subspace defines a parameter subspace name and all the keys that exist for
- * the subspace.
- */
-export interface Subspace {
-  subspace: string;
-  keys: string[];
-}
-export interface SubspaceProtoMsg {
-  typeUrl: "/cosmos.params.v1beta1.Subspace";
-  value: Uint8Array;
-}
-/**
- * Subspace defines a parameter subspace name and all the keys that exist for
- * the subspace.
- */
-export interface SubspaceAmino {
-  subspace: string;
-  keys: string[];
-}
-export interface SubspaceAminoMsg {
-  type: "cosmos-sdk/Subspace";
-  value: SubspaceAmino;
-}
-/**
- * Subspace defines a parameter subspace name and all the keys that exist for
- * the subspace.
- */
-export interface SubspaceSDKType {
-  subspace: string;
-  keys: string[];
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {
-    subspace: "",
-    key: ""
-  };
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.params.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(message: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.subspace !== "") {
-      writer.uint32(10).string(message.subspace);
-    }
-    if (message.key !== "") {
-      writer.uint32(18).string(message.key);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.subspace = reader.string();
-          break;
-        case 2:
-          message.key = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsRequest {
-    return {
-      subspace: isSet(object.subspace) ? String(object.subspace) : "",
-      key: isSet(object.key) ? String(object.key) : ""
-    };
-  },
-  toJSON(message: QueryParamsRequest): unknown {
-    const obj: any = {};
-    message.subspace !== undefined && (obj.subspace = message.subspace);
-    message.key !== undefined && (obj.key = message.key);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    message.subspace = object.subspace ?? "";
-    message.key = object.key ?? "";
-    return message;
-  },
-  fromSDK(object: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {
-      subspace: object?.subspace,
-      key: object?.key
-    };
-  },
-  toSDK(message: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    obj.key = message.key;
-    return obj;
-  },
-  fromAmino(object: QueryParamsRequestAmino): QueryParamsRequest {
-    return {
-      subspace: object.subspace,
-      key: object.key
-    };
-  },
-  toAmino(message: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    obj.key = message.key;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    param: ParamChange.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.params.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.param !== undefined) {
-      ParamChange.encode(message.param, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.param = ParamChange.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      param: isSet(object.param) ? ParamChange.fromJSON(object.param) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.param !== undefined && (obj.param = message.param ? ParamChange.toJSON(message.param) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.param = object.param !== undefined && object.param !== null ? ParamChange.fromPartial(object.param) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      param: object.param ? ParamChange.fromSDK(object.param) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.param !== undefined && (obj.param = message.param ? ParamChange.toSDK(message.param) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      param: object?.param ? ParamChange.fromAmino(object.param) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.param = message.param ? ParamChange.toAmino(message.param) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySubspacesRequest(): QuerySubspacesRequest {
-  return {};
-}
-export const QuerySubspacesRequest = {
-  typeUrl: "/cosmos.params.v1beta1.QuerySubspacesRequest",
-  aminoType: "cosmos-sdk/QuerySubspacesRequest",
-  encode(_: QuerySubspacesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySubspacesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySubspacesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QuerySubspacesRequest {
-    return {};
-  },
-  toJSON(_: QuerySubspacesRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QuerySubspacesRequest>): QuerySubspacesRequest {
-    const message = createBaseQuerySubspacesRequest();
-    return message;
-  },
-  fromSDK(_: QuerySubspacesRequestSDKType): QuerySubspacesRequest {
-    return {};
-  },
-  toSDK(_: QuerySubspacesRequest): QuerySubspacesRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QuerySubspacesRequestAmino): QuerySubspacesRequest {
-    return {};
-  },
-  toAmino(_: QuerySubspacesRequest): QuerySubspacesRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QuerySubspacesRequestAminoMsg): QuerySubspacesRequest {
-    return QuerySubspacesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySubspacesRequest): QuerySubspacesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySubspacesRequest",
-      value: QuerySubspacesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySubspacesRequestProtoMsg): QuerySubspacesRequest {
-    return QuerySubspacesRequest.decode(message.value);
-  },
-  toProto(message: QuerySubspacesRequest): Uint8Array {
-    return QuerySubspacesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySubspacesRequest): QuerySubspacesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.QuerySubspacesRequest",
-      value: QuerySubspacesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySubspacesResponse(): QuerySubspacesResponse {
-  return {
-    subspaces: []
-  };
-}
-export const QuerySubspacesResponse = {
-  typeUrl: "/cosmos.params.v1beta1.QuerySubspacesResponse",
-  aminoType: "cosmos-sdk/QuerySubspacesResponse",
-  encode(message: QuerySubspacesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.subspaces) {
-      Subspace.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySubspacesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySubspacesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.subspaces.push(Subspace.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySubspacesResponse {
-    return {
-      subspaces: Array.isArray(object?.subspaces) ? object.subspaces.map((e: any) => Subspace.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QuerySubspacesResponse): unknown {
-    const obj: any = {};
-    if (message.subspaces) {
-      obj.subspaces = message.subspaces.map(e => e ? Subspace.toJSON(e) : undefined);
-    } else {
-      obj.subspaces = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySubspacesResponse>): QuerySubspacesResponse {
-    const message = createBaseQuerySubspacesResponse();
-    message.subspaces = object.subspaces?.map(e => Subspace.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QuerySubspacesResponseSDKType): QuerySubspacesResponse {
-    return {
-      subspaces: Array.isArray(object?.subspaces) ? object.subspaces.map((e: any) => Subspace.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QuerySubspacesResponse): QuerySubspacesResponseSDKType {
-    const obj: any = {};
-    if (message.subspaces) {
-      obj.subspaces = message.subspaces.map(e => e ? Subspace.toSDK(e) : undefined);
-    } else {
-      obj.subspaces = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QuerySubspacesResponseAmino): QuerySubspacesResponse {
-    return {
-      subspaces: Array.isArray(object?.subspaces) ? object.subspaces.map((e: any) => Subspace.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QuerySubspacesResponse): QuerySubspacesResponseAmino {
-    const obj: any = {};
-    if (message.subspaces) {
-      obj.subspaces = message.subspaces.map(e => e ? Subspace.toAmino(e) : undefined);
-    } else {
-      obj.subspaces = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QuerySubspacesResponseAminoMsg): QuerySubspacesResponse {
-    return QuerySubspacesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySubspacesResponse): QuerySubspacesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySubspacesResponse",
-      value: QuerySubspacesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySubspacesResponseProtoMsg): QuerySubspacesResponse {
-    return QuerySubspacesResponse.decode(message.value);
-  },
-  toProto(message: QuerySubspacesResponse): Uint8Array {
-    return QuerySubspacesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySubspacesResponse): QuerySubspacesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.QuerySubspacesResponse",
-      value: QuerySubspacesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSubspace(): Subspace {
-  return {
-    subspace: "",
-    keys: []
-  };
-}
-export const Subspace = {
-  typeUrl: "/cosmos.params.v1beta1.Subspace",
-  aminoType: "cosmos-sdk/Subspace",
-  encode(message: Subspace, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.subspace !== "") {
-      writer.uint32(10).string(message.subspace);
-    }
-    for (const v of message.keys) {
-      writer.uint32(18).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Subspace {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSubspace();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.subspace = reader.string();
-          break;
-        case 2:
-          message.keys.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Subspace {
-    return {
-      subspace: isSet(object.subspace) ? String(object.subspace) : "",
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: Subspace): unknown {
-    const obj: any = {};
-    message.subspace !== undefined && (obj.subspace = message.subspace);
-    if (message.keys) {
-      obj.keys = message.keys.map(e => e);
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Subspace>): Subspace {
-    const message = createBaseSubspace();
-    message.subspace = object.subspace ?? "";
-    message.keys = object.keys?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: SubspaceSDKType): Subspace {
-    return {
-      subspace: object?.subspace,
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Subspace): SubspaceSDKType {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    if (message.keys) {
-      obj.keys = message.keys.map(e => e);
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SubspaceAmino): Subspace {
-    return {
-      subspace: object.subspace,
-      keys: Array.isArray(object?.keys) ? object.keys.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Subspace): SubspaceAmino {
-    const obj: any = {};
-    obj.subspace = message.subspace;
-    if (message.keys) {
-      obj.keys = message.keys.map(e => e);
-    } else {
-      obj.keys = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SubspaceAminoMsg): Subspace {
-    return Subspace.fromAmino(object.value);
-  },
-  toAminoMsg(message: Subspace): SubspaceAminoMsg {
-    return {
-      type: "cosmos-sdk/Subspace",
-      value: Subspace.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SubspaceProtoMsg): Subspace {
-    return Subspace.decode(message.value);
-  },
-  toProto(message: Subspace): Uint8Array {
-    return Subspace.encode(message).finish();
-  },
-  toProtoMsg(message: Subspace): SubspaceProtoMsg {
-    return {
-      typeUrl: "/cosmos.params.v1beta1.Subspace",
-      value: Subspace.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/rpc.query.ts b/examples/injective/src/codegen/cosmos/rpc.query.ts
deleted file mode 100644
index ac1a16a8..00000000
--- a/examples/injective/src/codegen/cosmos/rpc.query.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import { QueryClient } from "@cosmjs/stargate";
-export const createRPCQueryClient = async ({
-  rpcEndpoint
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-}) => {
-  const tmClient = await Tendermint34Client.connect(rpcEndpoint);
-  const client = new QueryClient(tmClient);
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: (await import("./app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      auth: {
-        v1beta1: (await import("./auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      authz: {
-        v1beta1: (await import("./authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      bank: {
-        v1beta1: (await import("./bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      base: {
-        tendermint: {
-          v1beta1: (await import("./base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client)
-        }
-      },
-      distribution: {
-        v1beta1: (await import("./distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      evidence: {
-        v1beta1: (await import("./evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      feegrant: {
-        v1beta1: (await import("./feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      gov: {
-        v1: (await import("./gov/v1/query.rpc.Query")).createRpcQueryExtension(client),
-        v1beta1: (await import("./gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      group: {
-        v1: (await import("./group/v1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      mint: {
-        v1beta1: (await import("./mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      nft: {
-        v1beta1: (await import("./nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      params: {
-        v1beta1: (await import("./params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      slashing: {
-        v1beta1: (await import("./slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      staking: {
-        v1beta1: (await import("./staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      tx: {
-        v1beta1: (await import("./tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client)
-      },
-      upgrade: {
-        v1beta1: (await import("./upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    }
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/rpc.tx.ts b/examples/injective/src/codegen/cosmos/rpc.tx.ts
deleted file mode 100644
index 3a4dbf9b..00000000
--- a/examples/injective/src/codegen/cosmos/rpc.tx.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Rpc } from "../helpers";
-export const createRPCMsgClient = async ({
-  rpc
-}: {
-  rpc: Rpc;
-}) => ({
-  cosmos: {
-    authz: {
-      v1beta1: new (await import("./authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    bank: {
-      v1beta1: new (await import("./bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    crisis: {
-      v1beta1: new (await import("./crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    distribution: {
-      v1beta1: new (await import("./distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    evidence: {
-      v1beta1: new (await import("./evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    feegrant: {
-      v1beta1: new (await import("./feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    gov: {
-      v1: new (await import("./gov/v1/tx.rpc.msg")).MsgClientImpl(rpc),
-      v1beta1: new (await import("./gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    group: {
-      v1: new (await import("./group/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    nft: {
-      v1beta1: new (await import("./nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    slashing: {
-      v1beta1: new (await import("./slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    staking: {
-      v1beta1: new (await import("./staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    upgrade: {
-      v1beta1: new (await import("./upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    vesting: {
-      v1beta1: new (await import("./vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  }
-});
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/genesis.ts
deleted file mode 100644
index ff777338..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/genesis.ts
+++ /dev/null
@@ -1,595 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoAmino, ValidatorSigningInfoSDKType } from "./slashing";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the slashing module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of related to deposit. */
-  params: Params | undefined;
-  /**
-   * signing_infos represents a map between validator addresses and their
-   * signing infos.
-   */
-  signingInfos: SigningInfo[];
-  /**
-   * missed_blocks represents a map between validator addresses and their
-   * missed blocks.
-   */
-  missedBlocks: ValidatorMissedBlocks[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the slashing module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of related to deposit. */
-  params?: ParamsAmino | undefined;
-  /**
-   * signing_infos represents a map between validator addresses and their
-   * signing infos.
-   */
-  signing_infos: SigningInfoAmino[];
-  /**
-   * missed_blocks represents a map between validator addresses and their
-   * missed blocks.
-   */
-  missed_blocks: ValidatorMissedBlocksAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the slashing module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  signing_infos: SigningInfoSDKType[];
-  missed_blocks: ValidatorMissedBlocksSDKType[];
-}
-/** SigningInfo stores validator signing info of corresponding address. */
-export interface SigningInfo {
-  /** address is the validator address. */
-  address: string;
-  /** validator_signing_info represents the signing info of this validator. */
-  validatorSigningInfo: ValidatorSigningInfo | undefined;
-}
-export interface SigningInfoProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.SigningInfo";
-  value: Uint8Array;
-}
-/** SigningInfo stores validator signing info of corresponding address. */
-export interface SigningInfoAmino {
-  /** address is the validator address. */
-  address: string;
-  /** validator_signing_info represents the signing info of this validator. */
-  validator_signing_info?: ValidatorSigningInfoAmino | undefined;
-}
-export interface SigningInfoAminoMsg {
-  type: "cosmos-sdk/SigningInfo";
-  value: SigningInfoAmino;
-}
-/** SigningInfo stores validator signing info of corresponding address. */
-export interface SigningInfoSDKType {
-  address: string;
-  validator_signing_info: ValidatorSigningInfoSDKType | undefined;
-}
-/**
- * ValidatorMissedBlocks contains array of missed blocks of corresponding
- * address.
- */
-export interface ValidatorMissedBlocks {
-  /** address is the validator address. */
-  address: string;
-  /** missed_blocks is an array of missed blocks by the validator. */
-  missedBlocks: MissedBlock[];
-}
-export interface ValidatorMissedBlocksProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.ValidatorMissedBlocks";
-  value: Uint8Array;
-}
-/**
- * ValidatorMissedBlocks contains array of missed blocks of corresponding
- * address.
- */
-export interface ValidatorMissedBlocksAmino {
-  /** address is the validator address. */
-  address: string;
-  /** missed_blocks is an array of missed blocks by the validator. */
-  missed_blocks: MissedBlockAmino[];
-}
-export interface ValidatorMissedBlocksAminoMsg {
-  type: "cosmos-sdk/ValidatorMissedBlocks";
-  value: ValidatorMissedBlocksAmino;
-}
-/**
- * ValidatorMissedBlocks contains array of missed blocks of corresponding
- * address.
- */
-export interface ValidatorMissedBlocksSDKType {
-  address: string;
-  missed_blocks: MissedBlockSDKType[];
-}
-/** MissedBlock contains height and missed status as boolean. */
-export interface MissedBlock {
-  /** index is the height at which the block was missed. */
-  index: bigint;
-  /** missed is the missed status. */
-  missed: boolean;
-}
-export interface MissedBlockProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.MissedBlock";
-  value: Uint8Array;
-}
-/** MissedBlock contains height and missed status as boolean. */
-export interface MissedBlockAmino {
-  /** index is the height at which the block was missed. */
-  index: string;
-  /** missed is the missed status. */
-  missed: boolean;
-}
-export interface MissedBlockAminoMsg {
-  type: "cosmos-sdk/MissedBlock";
-  value: MissedBlockAmino;
-}
-/** MissedBlock contains height and missed status as boolean. */
-export interface MissedBlockSDKType {
-  index: bigint;
-  missed: boolean;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    signingInfos: [],
-    missedBlocks: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.slashing.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.signingInfos) {
-      SigningInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.missedBlocks) {
-      ValidatorMissedBlocks.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.signingInfos.push(SigningInfo.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.missedBlocks.push(ValidatorMissedBlocks.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      signingInfos: Array.isArray(object?.signingInfos) ? object.signingInfos.map((e: any) => SigningInfo.fromJSON(e)) : [],
-      missedBlocks: Array.isArray(object?.missedBlocks) ? object.missedBlocks.map((e: any) => ValidatorMissedBlocks.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.signingInfos) {
-      obj.signingInfos = message.signingInfos.map(e => e ? SigningInfo.toJSON(e) : undefined);
-    } else {
-      obj.signingInfos = [];
-    }
-    if (message.missedBlocks) {
-      obj.missedBlocks = message.missedBlocks.map(e => e ? ValidatorMissedBlocks.toJSON(e) : undefined);
-    } else {
-      obj.missedBlocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.signingInfos = object.signingInfos?.map(e => SigningInfo.fromPartial(e)) || [];
-    message.missedBlocks = object.missedBlocks?.map(e => ValidatorMissedBlocks.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      signingInfos: Array.isArray(object?.signing_infos) ? object.signing_infos.map((e: any) => SigningInfo.fromSDK(e)) : [],
-      missedBlocks: Array.isArray(object?.missed_blocks) ? object.missed_blocks.map((e: any) => ValidatorMissedBlocks.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.signingInfos) {
-      obj.signing_infos = message.signingInfos.map(e => e ? SigningInfo.toSDK(e) : undefined);
-    } else {
-      obj.signing_infos = [];
-    }
-    if (message.missedBlocks) {
-      obj.missed_blocks = message.missedBlocks.map(e => e ? ValidatorMissedBlocks.toSDK(e) : undefined);
-    } else {
-      obj.missed_blocks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      signingInfos: Array.isArray(object?.signing_infos) ? object.signing_infos.map((e: any) => SigningInfo.fromAmino(e)) : [],
-      missedBlocks: Array.isArray(object?.missed_blocks) ? object.missed_blocks.map((e: any) => ValidatorMissedBlocks.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.signingInfos) {
-      obj.signing_infos = message.signingInfos.map(e => e ? SigningInfo.toAmino(e) : undefined);
-    } else {
-      obj.signing_infos = [];
-    }
-    if (message.missedBlocks) {
-      obj.missed_blocks = message.missedBlocks.map(e => e ? ValidatorMissedBlocks.toAmino(e) : undefined);
-    } else {
-      obj.missed_blocks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseSigningInfo(): SigningInfo {
-  return {
-    address: "",
-    validatorSigningInfo: ValidatorSigningInfo.fromPartial({})
-  };
-}
-export const SigningInfo = {
-  typeUrl: "/cosmos.slashing.v1beta1.SigningInfo",
-  aminoType: "cosmos-sdk/SigningInfo",
-  encode(message: SigningInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.validatorSigningInfo !== undefined) {
-      ValidatorSigningInfo.encode(message.validatorSigningInfo, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SigningInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSigningInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.validatorSigningInfo = ValidatorSigningInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SigningInfo {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      validatorSigningInfo: isSet(object.validatorSigningInfo) ? ValidatorSigningInfo.fromJSON(object.validatorSigningInfo) : undefined
-    };
-  },
-  toJSON(message: SigningInfo): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.validatorSigningInfo !== undefined && (obj.validatorSigningInfo = message.validatorSigningInfo ? ValidatorSigningInfo.toJSON(message.validatorSigningInfo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SigningInfo>): SigningInfo {
-    const message = createBaseSigningInfo();
-    message.address = object.address ?? "";
-    message.validatorSigningInfo = object.validatorSigningInfo !== undefined && object.validatorSigningInfo !== null ? ValidatorSigningInfo.fromPartial(object.validatorSigningInfo) : undefined;
-    return message;
-  },
-  fromSDK(object: SigningInfoSDKType): SigningInfo {
-    return {
-      address: object?.address,
-      validatorSigningInfo: object.validator_signing_info ? ValidatorSigningInfo.fromSDK(object.validator_signing_info) : undefined
-    };
-  },
-  toSDK(message: SigningInfo): SigningInfoSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.validatorSigningInfo !== undefined && (obj.validator_signing_info = message.validatorSigningInfo ? ValidatorSigningInfo.toSDK(message.validatorSigningInfo) : undefined);
-    return obj;
-  },
-  fromAmino(object: SigningInfoAmino): SigningInfo {
-    return {
-      address: object.address,
-      validatorSigningInfo: object?.validator_signing_info ? ValidatorSigningInfo.fromAmino(object.validator_signing_info) : undefined
-    };
-  },
-  toAmino(message: SigningInfo): SigningInfoAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.validator_signing_info = message.validatorSigningInfo ? ValidatorSigningInfo.toAmino(message.validatorSigningInfo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SigningInfoAminoMsg): SigningInfo {
-    return SigningInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: SigningInfo): SigningInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/SigningInfo",
-      value: SigningInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SigningInfoProtoMsg): SigningInfo {
-    return SigningInfo.decode(message.value);
-  },
-  toProto(message: SigningInfo): Uint8Array {
-    return SigningInfo.encode(message).finish();
-  },
-  toProtoMsg(message: SigningInfo): SigningInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.SigningInfo",
-      value: SigningInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorMissedBlocks(): ValidatorMissedBlocks {
-  return {
-    address: "",
-    missedBlocks: []
-  };
-}
-export const ValidatorMissedBlocks = {
-  typeUrl: "/cosmos.slashing.v1beta1.ValidatorMissedBlocks",
-  aminoType: "cosmos-sdk/ValidatorMissedBlocks",
-  encode(message: ValidatorMissedBlocks, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.missedBlocks) {
-      MissedBlock.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorMissedBlocks {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorMissedBlocks();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.missedBlocks.push(MissedBlock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorMissedBlocks {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      missedBlocks: Array.isArray(object?.missedBlocks) ? object.missedBlocks.map((e: any) => MissedBlock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ValidatorMissedBlocks): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.missedBlocks) {
-      obj.missedBlocks = message.missedBlocks.map(e => e ? MissedBlock.toJSON(e) : undefined);
-    } else {
-      obj.missedBlocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorMissedBlocks>): ValidatorMissedBlocks {
-    const message = createBaseValidatorMissedBlocks();
-    message.address = object.address ?? "";
-    message.missedBlocks = object.missedBlocks?.map(e => MissedBlock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorMissedBlocksSDKType): ValidatorMissedBlocks {
-    return {
-      address: object?.address,
-      missedBlocks: Array.isArray(object?.missed_blocks) ? object.missed_blocks.map((e: any) => MissedBlock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ValidatorMissedBlocks): ValidatorMissedBlocksSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.missedBlocks) {
-      obj.missed_blocks = message.missedBlocks.map(e => e ? MissedBlock.toSDK(e) : undefined);
-    } else {
-      obj.missed_blocks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorMissedBlocksAmino): ValidatorMissedBlocks {
-    return {
-      address: object.address,
-      missedBlocks: Array.isArray(object?.missed_blocks) ? object.missed_blocks.map((e: any) => MissedBlock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ValidatorMissedBlocks): ValidatorMissedBlocksAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.missedBlocks) {
-      obj.missed_blocks = message.missedBlocks.map(e => e ? MissedBlock.toAmino(e) : undefined);
-    } else {
-      obj.missed_blocks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorMissedBlocksAminoMsg): ValidatorMissedBlocks {
-    return ValidatorMissedBlocks.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorMissedBlocks): ValidatorMissedBlocksAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorMissedBlocks",
-      value: ValidatorMissedBlocks.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorMissedBlocksProtoMsg): ValidatorMissedBlocks {
-    return ValidatorMissedBlocks.decode(message.value);
-  },
-  toProto(message: ValidatorMissedBlocks): Uint8Array {
-    return ValidatorMissedBlocks.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorMissedBlocks): ValidatorMissedBlocksProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.ValidatorMissedBlocks",
-      value: ValidatorMissedBlocks.encode(message).finish()
-    };
-  }
-};
-function createBaseMissedBlock(): MissedBlock {
-  return {
-    index: BigInt(0),
-    missed: false
-  };
-}
-export const MissedBlock = {
-  typeUrl: "/cosmos.slashing.v1beta1.MissedBlock",
-  aminoType: "cosmos-sdk/MissedBlock",
-  encode(message: MissedBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== BigInt(0)) {
-      writer.uint32(8).int64(message.index);
-    }
-    if (message.missed === true) {
-      writer.uint32(16).bool(message.missed);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MissedBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMissedBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.int64();
-          break;
-        case 2:
-          message.missed = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MissedBlock {
-    return {
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0),
-      missed: isSet(object.missed) ? Boolean(object.missed) : false
-    };
-  },
-  toJSON(message: MissedBlock): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    message.missed !== undefined && (obj.missed = message.missed);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MissedBlock>): MissedBlock {
-    const message = createBaseMissedBlock();
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    message.missed = object.missed ?? false;
-    return message;
-  },
-  fromSDK(object: MissedBlockSDKType): MissedBlock {
-    return {
-      index: object?.index,
-      missed: object?.missed
-    };
-  },
-  toSDK(message: MissedBlock): MissedBlockSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.missed = message.missed;
-    return obj;
-  },
-  fromAmino(object: MissedBlockAmino): MissedBlock {
-    return {
-      index: BigInt(object.index),
-      missed: object.missed
-    };
-  },
-  toAmino(message: MissedBlock): MissedBlockAmino {
-    const obj: any = {};
-    obj.index = message.index ? message.index.toString() : undefined;
-    obj.missed = message.missed;
-    return obj;
-  },
-  fromAminoMsg(object: MissedBlockAminoMsg): MissedBlock {
-    return MissedBlock.fromAmino(object.value);
-  },
-  toAminoMsg(message: MissedBlock): MissedBlockAminoMsg {
-    return {
-      type: "cosmos-sdk/MissedBlock",
-      value: MissedBlock.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MissedBlockProtoMsg): MissedBlock {
-    return MissedBlock.decode(message.value);
-  },
-  toProto(message: MissedBlock): Uint8Array {
-    return MissedBlock.encode(message).finish();
-  },
-  toProtoMsg(message: MissedBlock): MissedBlockProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.MissedBlock",
-      value: MissedBlock.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 896e6775..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QuerySigningInfoRequest, QuerySigningInfoResponse, QuerySigningInfosRequest, QuerySigningInfosResponse } from "./query";
-/** Query provides defines the gRPC querier service */
-export interface Query {
-  /** Params queries the parameters of slashing module */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** SigningInfo queries the signing info of given cons address */
-  signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
-  /** SigningInfos queries signing info of all validators */
-  signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.signingInfo = this.signingInfo.bind(this);
-    this.signingInfos = this.signingInfos.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse> {
-    const data = QuerySigningInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfo", data);
-    return promise.then(data => QuerySigningInfoResponse.decode(new BinaryReader(data)));
-  }
-  signingInfos(request: QuerySigningInfosRequest = {
-    pagination: undefined
-  }): Promise<QuerySigningInfosResponse> {
-    const data = QuerySigningInfosRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfos", data);
-    return promise.then(data => QuerySigningInfosResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse> {
-      return queryService.signingInfo(request);
-    },
-    signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse> {
-      return queryService.signingInfos(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseSigningInfoQuery<TData> extends ReactQueryParams<QuerySigningInfoResponse, TData> {
-  request: QuerySigningInfoRequest;
-}
-export interface UseSigningInfosQuery<TData> extends ReactQueryParams<QuerySigningInfosResponse, TData> {
-  request?: QuerySigningInfosRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useSigningInfo = <TData = QuerySigningInfoResponse,>({
-    request,
-    options
-  }: UseSigningInfoQuery<TData>) => {
-    return useQuery<QuerySigningInfoResponse, Error, TData>(["signingInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.signingInfo(request);
-    }, options);
-  };
-  const useSigningInfos = <TData = QuerySigningInfosResponse,>({
-    request,
-    options
-  }: UseSigningInfosQuery<TData>) => {
-    return useQuery<QuerySigningInfosResponse, Error, TData>(["signingInfosQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.signingInfos(request);
-    }, options);
-  };
-  return {
-    /** Params queries the parameters of slashing module */useParams,
-    /** SigningInfo queries the signing info of given cons address */useSigningInfo,
-    /** SigningInfos queries signing info of all validators */useSigningInfos
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySigningInfoStore {
-    store = new QueryStore<QuerySigningInfoRequest, QuerySigningInfoResponse>(queryService?.signingInfo);
-    signingInfo(request: QuerySigningInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySigningInfosStore {
-    store = new QueryStore<QuerySigningInfosRequest, QuerySigningInfosResponse>(queryService?.signingInfos);
-    signingInfos(request: QuerySigningInfosRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Params queries the parameters of slashing module */QueryParamsStore,
-    /** SigningInfo queries the signing info of given cons address */QuerySigningInfoStore,
-    /** SigningInfos queries signing info of all validators */QuerySigningInfosStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.ts
deleted file mode 100644
index c715bdc5..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/query.ts
+++ /dev/null
@@ -1,699 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Params, ParamsAmino, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoAmino, ValidatorSigningInfoSDKType } from "./slashing";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method */
-export interface QueryParamsResponse {
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method */
-export interface QueryParamsResponseAmino {
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/**
- * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoRequest {
-  /** cons_address is the address to query signing info of */
-  consAddress: string;
-}
-export interface QuerySigningInfoRequestProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoRequestAmino {
-  /** cons_address is the address to query signing info of */
-  cons_address: string;
-}
-export interface QuerySigningInfoRequestAminoMsg {
-  type: "cosmos-sdk/QuerySigningInfoRequest";
-  value: QuerySigningInfoRequestAmino;
-}
-/**
- * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoRequestSDKType {
-  cons_address: string;
-}
-/**
- * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoResponse {
-  /** val_signing_info is the signing info of requested val cons address */
-  valSigningInfo: ValidatorSigningInfo | undefined;
-}
-export interface QuerySigningInfoResponseProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoResponseAmino {
-  /** val_signing_info is the signing info of requested val cons address */
-  val_signing_info?: ValidatorSigningInfoAmino | undefined;
-}
-export interface QuerySigningInfoResponseAminoMsg {
-  type: "cosmos-sdk/QuerySigningInfoResponse";
-  value: QuerySigningInfoResponseAmino;
-}
-/**
- * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC
- * method
- */
-export interface QuerySigningInfoResponseSDKType {
-  val_signing_info: ValidatorSigningInfoSDKType | undefined;
-}
-/**
- * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosRequest {
-  pagination: PageRequest | undefined;
-}
-export interface QuerySigningInfosRequestProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosRequestAmino {
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QuerySigningInfosRequestAminoMsg {
-  type: "cosmos-sdk/QuerySigningInfosRequest";
-  value: QuerySigningInfosRequestAmino;
-}
-/**
- * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosResponse {
-  /** info is the signing info of all validators */
-  info: ValidatorSigningInfo[];
-  pagination: PageResponse | undefined;
-}
-export interface QuerySigningInfosResponseProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosResponseAmino {
-  /** info is the signing info of all validators */
-  info: ValidatorSigningInfoAmino[];
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QuerySigningInfosResponseAminoMsg {
-  type: "cosmos-sdk/QuerySigningInfosResponse";
-  value: QuerySigningInfosResponseAmino;
-}
-/**
- * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC
- * method
- */
-export interface QuerySigningInfosResponseSDKType {
-  info: ValidatorSigningInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.slashing.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.slashing.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySigningInfoRequest(): QuerySigningInfoRequest {
-  return {
-    consAddress: ""
-  };
-}
-export const QuerySigningInfoRequest = {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoRequest",
-  aminoType: "cosmos-sdk/QuerySigningInfoRequest",
-  encode(message: QuerySigningInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.consAddress !== "") {
-      writer.uint32(10).string(message.consAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySigningInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySigningInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySigningInfoRequest {
-    return {
-      consAddress: isSet(object.consAddress) ? String(object.consAddress) : ""
-    };
-  },
-  toJSON(message: QuerySigningInfoRequest): unknown {
-    const obj: any = {};
-    message.consAddress !== undefined && (obj.consAddress = message.consAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySigningInfoRequest>): QuerySigningInfoRequest {
-    const message = createBaseQuerySigningInfoRequest();
-    message.consAddress = object.consAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySigningInfoRequestSDKType): QuerySigningInfoRequest {
-    return {
-      consAddress: object?.cons_address
-    };
-  },
-  toSDK(message: QuerySigningInfoRequest): QuerySigningInfoRequestSDKType {
-    const obj: any = {};
-    obj.cons_address = message.consAddress;
-    return obj;
-  },
-  fromAmino(object: QuerySigningInfoRequestAmino): QuerySigningInfoRequest {
-    return {
-      consAddress: object.cons_address
-    };
-  },
-  toAmino(message: QuerySigningInfoRequest): QuerySigningInfoRequestAmino {
-    const obj: any = {};
-    obj.cons_address = message.consAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySigningInfoRequestAminoMsg): QuerySigningInfoRequest {
-    return QuerySigningInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySigningInfoRequest): QuerySigningInfoRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySigningInfoRequest",
-      value: QuerySigningInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySigningInfoRequestProtoMsg): QuerySigningInfoRequest {
-    return QuerySigningInfoRequest.decode(message.value);
-  },
-  toProto(message: QuerySigningInfoRequest): Uint8Array {
-    return QuerySigningInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySigningInfoRequest): QuerySigningInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoRequest",
-      value: QuerySigningInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySigningInfoResponse(): QuerySigningInfoResponse {
-  return {
-    valSigningInfo: ValidatorSigningInfo.fromPartial({})
-  };
-}
-export const QuerySigningInfoResponse = {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoResponse",
-  aminoType: "cosmos-sdk/QuerySigningInfoResponse",
-  encode(message: QuerySigningInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.valSigningInfo !== undefined) {
-      ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySigningInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySigningInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.valSigningInfo = ValidatorSigningInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySigningInfoResponse {
-    return {
-      valSigningInfo: isSet(object.valSigningInfo) ? ValidatorSigningInfo.fromJSON(object.valSigningInfo) : undefined
-    };
-  },
-  toJSON(message: QuerySigningInfoResponse): unknown {
-    const obj: any = {};
-    message.valSigningInfo !== undefined && (obj.valSigningInfo = message.valSigningInfo ? ValidatorSigningInfo.toJSON(message.valSigningInfo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySigningInfoResponse>): QuerySigningInfoResponse {
-    const message = createBaseQuerySigningInfoResponse();
-    message.valSigningInfo = object.valSigningInfo !== undefined && object.valSigningInfo !== null ? ValidatorSigningInfo.fromPartial(object.valSigningInfo) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySigningInfoResponseSDKType): QuerySigningInfoResponse {
-    return {
-      valSigningInfo: object.val_signing_info ? ValidatorSigningInfo.fromSDK(object.val_signing_info) : undefined
-    };
-  },
-  toSDK(message: QuerySigningInfoResponse): QuerySigningInfoResponseSDKType {
-    const obj: any = {};
-    message.valSigningInfo !== undefined && (obj.val_signing_info = message.valSigningInfo ? ValidatorSigningInfo.toSDK(message.valSigningInfo) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySigningInfoResponseAmino): QuerySigningInfoResponse {
-    return {
-      valSigningInfo: object?.val_signing_info ? ValidatorSigningInfo.fromAmino(object.val_signing_info) : undefined
-    };
-  },
-  toAmino(message: QuerySigningInfoResponse): QuerySigningInfoResponseAmino {
-    const obj: any = {};
-    obj.val_signing_info = message.valSigningInfo ? ValidatorSigningInfo.toAmino(message.valSigningInfo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySigningInfoResponseAminoMsg): QuerySigningInfoResponse {
-    return QuerySigningInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySigningInfoResponse): QuerySigningInfoResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySigningInfoResponse",
-      value: QuerySigningInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySigningInfoResponseProtoMsg): QuerySigningInfoResponse {
-    return QuerySigningInfoResponse.decode(message.value);
-  },
-  toProto(message: QuerySigningInfoResponse): Uint8Array {
-    return QuerySigningInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySigningInfoResponse): QuerySigningInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoResponse",
-      value: QuerySigningInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySigningInfosRequest(): QuerySigningInfosRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QuerySigningInfosRequest = {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosRequest",
-  aminoType: "cosmos-sdk/QuerySigningInfosRequest",
-  encode(message: QuerySigningInfosRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySigningInfosRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySigningInfosRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySigningInfosRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QuerySigningInfosRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySigningInfosRequest>): QuerySigningInfosRequest {
-    const message = createBaseQuerySigningInfosRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySigningInfosRequestSDKType): QuerySigningInfosRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QuerySigningInfosRequest): QuerySigningInfosRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySigningInfosRequestAmino): QuerySigningInfosRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QuerySigningInfosRequest): QuerySigningInfosRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySigningInfosRequestAminoMsg): QuerySigningInfosRequest {
-    return QuerySigningInfosRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySigningInfosRequest): QuerySigningInfosRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySigningInfosRequest",
-      value: QuerySigningInfosRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySigningInfosRequestProtoMsg): QuerySigningInfosRequest {
-    return QuerySigningInfosRequest.decode(message.value);
-  },
-  toProto(message: QuerySigningInfosRequest): Uint8Array {
-    return QuerySigningInfosRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySigningInfosRequest): QuerySigningInfosRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosRequest",
-      value: QuerySigningInfosRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySigningInfosResponse(): QuerySigningInfosResponse {
-  return {
-    info: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QuerySigningInfosResponse = {
-  typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosResponse",
-  aminoType: "cosmos-sdk/QuerySigningInfosResponse",
-  encode(message: QuerySigningInfosResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.info) {
-      ValidatorSigningInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySigningInfosResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySigningInfosResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.info.push(ValidatorSigningInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySigningInfosResponse {
-    return {
-      info: Array.isArray(object?.info) ? object.info.map((e: any) => ValidatorSigningInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QuerySigningInfosResponse): unknown {
-    const obj: any = {};
-    if (message.info) {
-      obj.info = message.info.map(e => e ? ValidatorSigningInfo.toJSON(e) : undefined);
-    } else {
-      obj.info = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySigningInfosResponse>): QuerySigningInfosResponse {
-    const message = createBaseQuerySigningInfosResponse();
-    message.info = object.info?.map(e => ValidatorSigningInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QuerySigningInfosResponseSDKType): QuerySigningInfosResponse {
-    return {
-      info: Array.isArray(object?.info) ? object.info.map((e: any) => ValidatorSigningInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QuerySigningInfosResponse): QuerySigningInfosResponseSDKType {
-    const obj: any = {};
-    if (message.info) {
-      obj.info = message.info.map(e => e ? ValidatorSigningInfo.toSDK(e) : undefined);
-    } else {
-      obj.info = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QuerySigningInfosResponseAmino): QuerySigningInfosResponse {
-    return {
-      info: Array.isArray(object?.info) ? object.info.map((e: any) => ValidatorSigningInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QuerySigningInfosResponse): QuerySigningInfosResponseAmino {
-    const obj: any = {};
-    if (message.info) {
-      obj.info = message.info.map(e => e ? ValidatorSigningInfo.toAmino(e) : undefined);
-    } else {
-      obj.info = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySigningInfosResponseAminoMsg): QuerySigningInfosResponse {
-    return QuerySigningInfosResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySigningInfosResponse): QuerySigningInfosResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QuerySigningInfosResponse",
-      value: QuerySigningInfosResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySigningInfosResponseProtoMsg): QuerySigningInfosResponse {
-    return QuerySigningInfosResponse.decode(message.value);
-  },
-  toProto(message: QuerySigningInfosResponse): Uint8Array {
-    return QuerySigningInfosResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySigningInfosResponse): QuerySigningInfosResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosResponse",
-      value: QuerySigningInfosResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/slashing.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/slashing.ts
deleted file mode 100644
index e92bc5e2..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/slashing.ts
+++ /dev/null
@@ -1,412 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/**
- * ValidatorSigningInfo defines a validator's signing info for monitoring their
- * liveness activity.
- */
-export interface ValidatorSigningInfo {
-  address: string;
-  /** Height at which validator was first a candidate OR was unjailed */
-  startHeight: bigint;
-  /**
-   * Index which is incremented each time the validator was a bonded
-   * in a block and may have signed a precommit or not. This in conjunction with the
-   * `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`.
-   */
-  indexOffset: bigint;
-  /** Timestamp until which the validator is jailed due to liveness downtime. */
-  jailedUntil: Date | undefined;
-  /**
-   * Whether or not a validator has been tombstoned (killed out of validator set). It is set
-   * once the validator commits an equivocation or for any other configured misbehiavor.
-   */
-  tombstoned: boolean;
-  /**
-   * A counter kept to avoid unnecessary array reads.
-   * Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`.
-   */
-  missedBlocksCounter: bigint;
-}
-export interface ValidatorSigningInfoProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.ValidatorSigningInfo";
-  value: Uint8Array;
-}
-/**
- * ValidatorSigningInfo defines a validator's signing info for monitoring their
- * liveness activity.
- */
-export interface ValidatorSigningInfoAmino {
-  address: string;
-  /** Height at which validator was first a candidate OR was unjailed */
-  start_height: string;
-  /**
-   * Index which is incremented each time the validator was a bonded
-   * in a block and may have signed a precommit or not. This in conjunction with the
-   * `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`.
-   */
-  index_offset: string;
-  /** Timestamp until which the validator is jailed due to liveness downtime. */
-  jailed_until?: Date | undefined;
-  /**
-   * Whether or not a validator has been tombstoned (killed out of validator set). It is set
-   * once the validator commits an equivocation or for any other configured misbehiavor.
-   */
-  tombstoned: boolean;
-  /**
-   * A counter kept to avoid unnecessary array reads.
-   * Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`.
-   */
-  missed_blocks_counter: string;
-}
-export interface ValidatorSigningInfoAminoMsg {
-  type: "cosmos-sdk/ValidatorSigningInfo";
-  value: ValidatorSigningInfoAmino;
-}
-/**
- * ValidatorSigningInfo defines a validator's signing info for monitoring their
- * liveness activity.
- */
-export interface ValidatorSigningInfoSDKType {
-  address: string;
-  start_height: bigint;
-  index_offset: bigint;
-  jailed_until: Date | undefined;
-  tombstoned: boolean;
-  missed_blocks_counter: bigint;
-}
-/** Params represents the parameters used for by the slashing module. */
-export interface Params {
-  signedBlocksWindow: bigint;
-  minSignedPerWindow: Uint8Array;
-  downtimeJailDuration: Duration | undefined;
-  slashFractionDoubleSign: Uint8Array;
-  slashFractionDowntime: Uint8Array;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params represents the parameters used for by the slashing module. */
-export interface ParamsAmino {
-  signed_blocks_window: string;
-  min_signed_per_window: Uint8Array;
-  downtime_jail_duration?: DurationAmino | undefined;
-  slash_fraction_double_sign: Uint8Array;
-  slash_fraction_downtime: Uint8Array;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params represents the parameters used for by the slashing module. */
-export interface ParamsSDKType {
-  signed_blocks_window: bigint;
-  min_signed_per_window: Uint8Array;
-  downtime_jail_duration: DurationSDKType | undefined;
-  slash_fraction_double_sign: Uint8Array;
-  slash_fraction_downtime: Uint8Array;
-}
-function createBaseValidatorSigningInfo(): ValidatorSigningInfo {
-  return {
-    address: "",
-    startHeight: BigInt(0),
-    indexOffset: BigInt(0),
-    jailedUntil: new Date(),
-    tombstoned: false,
-    missedBlocksCounter: BigInt(0)
-  };
-}
-export const ValidatorSigningInfo = {
-  typeUrl: "/cosmos.slashing.v1beta1.ValidatorSigningInfo",
-  aminoType: "cosmos-sdk/ValidatorSigningInfo",
-  encode(message: ValidatorSigningInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.startHeight !== BigInt(0)) {
-      writer.uint32(16).int64(message.startHeight);
-    }
-    if (message.indexOffset !== BigInt(0)) {
-      writer.uint32(24).int64(message.indexOffset);
-    }
-    if (message.jailedUntil !== undefined) {
-      Timestamp.encode(toTimestamp(message.jailedUntil), writer.uint32(34).fork()).ldelim();
-    }
-    if (message.tombstoned === true) {
-      writer.uint32(40).bool(message.tombstoned);
-    }
-    if (message.missedBlocksCounter !== BigInt(0)) {
-      writer.uint32(48).int64(message.missedBlocksCounter);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorSigningInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorSigningInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.startHeight = reader.int64();
-          break;
-        case 3:
-          message.indexOffset = reader.int64();
-          break;
-        case 4:
-          message.jailedUntil = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.tombstoned = reader.bool();
-          break;
-        case 6:
-          message.missedBlocksCounter = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorSigningInfo {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      startHeight: isSet(object.startHeight) ? BigInt(object.startHeight.toString()) : BigInt(0),
-      indexOffset: isSet(object.indexOffset) ? BigInt(object.indexOffset.toString()) : BigInt(0),
-      jailedUntil: isSet(object.jailedUntil) ? new Date(object.jailedUntil) : undefined,
-      tombstoned: isSet(object.tombstoned) ? Boolean(object.tombstoned) : false,
-      missedBlocksCounter: isSet(object.missedBlocksCounter) ? BigInt(object.missedBlocksCounter.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ValidatorSigningInfo): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.startHeight !== undefined && (obj.startHeight = (message.startHeight || BigInt(0)).toString());
-    message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || BigInt(0)).toString());
-    message.jailedUntil !== undefined && (obj.jailedUntil = message.jailedUntil.toISOString());
-    message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned);
-    message.missedBlocksCounter !== undefined && (obj.missedBlocksCounter = (message.missedBlocksCounter || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorSigningInfo>): ValidatorSigningInfo {
-    const message = createBaseValidatorSigningInfo();
-    message.address = object.address ?? "";
-    message.startHeight = object.startHeight !== undefined && object.startHeight !== null ? BigInt(object.startHeight.toString()) : BigInt(0);
-    message.indexOffset = object.indexOffset !== undefined && object.indexOffset !== null ? BigInt(object.indexOffset.toString()) : BigInt(0);
-    message.jailedUntil = object.jailedUntil ?? undefined;
-    message.tombstoned = object.tombstoned ?? false;
-    message.missedBlocksCounter = object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null ? BigInt(object.missedBlocksCounter.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorSigningInfoSDKType): ValidatorSigningInfo {
-    return {
-      address: object?.address,
-      startHeight: object?.start_height,
-      indexOffset: object?.index_offset,
-      jailedUntil: object.jailed_until ?? undefined,
-      tombstoned: object?.tombstoned,
-      missedBlocksCounter: object?.missed_blocks_counter
-    };
-  },
-  toSDK(message: ValidatorSigningInfo): ValidatorSigningInfoSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.start_height = message.startHeight;
-    obj.index_offset = message.indexOffset;
-    message.jailedUntil !== undefined && (obj.jailed_until = message.jailedUntil ?? undefined);
-    obj.tombstoned = message.tombstoned;
-    obj.missed_blocks_counter = message.missedBlocksCounter;
-    return obj;
-  },
-  fromAmino(object: ValidatorSigningInfoAmino): ValidatorSigningInfo {
-    return {
-      address: object.address,
-      startHeight: BigInt(object.start_height),
-      indexOffset: BigInt(object.index_offset),
-      jailedUntil: object.jailed_until,
-      tombstoned: object.tombstoned,
-      missedBlocksCounter: BigInt(object.missed_blocks_counter)
-    };
-  },
-  toAmino(message: ValidatorSigningInfo): ValidatorSigningInfoAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.start_height = message.startHeight ? message.startHeight.toString() : undefined;
-    obj.index_offset = message.indexOffset ? message.indexOffset.toString() : undefined;
-    obj.jailed_until = message.jailedUntil;
-    obj.tombstoned = message.tombstoned;
-    obj.missed_blocks_counter = message.missedBlocksCounter ? message.missedBlocksCounter.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorSigningInfoAminoMsg): ValidatorSigningInfo {
-    return ValidatorSigningInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValidatorSigningInfo): ValidatorSigningInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/ValidatorSigningInfo",
-      value: ValidatorSigningInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorSigningInfoProtoMsg): ValidatorSigningInfo {
-    return ValidatorSigningInfo.decode(message.value);
-  },
-  toProto(message: ValidatorSigningInfo): Uint8Array {
-    return ValidatorSigningInfo.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorSigningInfo): ValidatorSigningInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.ValidatorSigningInfo",
-      value: ValidatorSigningInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    signedBlocksWindow: BigInt(0),
-    minSignedPerWindow: new Uint8Array(),
-    downtimeJailDuration: Duration.fromPartial({}),
-    slashFractionDoubleSign: new Uint8Array(),
-    slashFractionDowntime: new Uint8Array()
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.slashing.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signedBlocksWindow !== BigInt(0)) {
-      writer.uint32(8).int64(message.signedBlocksWindow);
-    }
-    if (message.minSignedPerWindow.length !== 0) {
-      writer.uint32(18).bytes(message.minSignedPerWindow);
-    }
-    if (message.downtimeJailDuration !== undefined) {
-      Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.slashFractionDoubleSign.length !== 0) {
-      writer.uint32(34).bytes(message.slashFractionDoubleSign);
-    }
-    if (message.slashFractionDowntime.length !== 0) {
-      writer.uint32(42).bytes(message.slashFractionDowntime);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signedBlocksWindow = reader.int64();
-          break;
-        case 2:
-          message.minSignedPerWindow = reader.bytes();
-          break;
-        case 3:
-          message.downtimeJailDuration = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.slashFractionDoubleSign = reader.bytes();
-          break;
-        case 5:
-          message.slashFractionDowntime = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      signedBlocksWindow: isSet(object.signedBlocksWindow) ? BigInt(object.signedBlocksWindow.toString()) : BigInt(0),
-      minSignedPerWindow: isSet(object.minSignedPerWindow) ? bytesFromBase64(object.minSignedPerWindow) : new Uint8Array(),
-      downtimeJailDuration: isSet(object.downtimeJailDuration) ? Duration.fromJSON(object.downtimeJailDuration) : undefined,
-      slashFractionDoubleSign: isSet(object.slashFractionDoubleSign) ? bytesFromBase64(object.slashFractionDoubleSign) : new Uint8Array(),
-      slashFractionDowntime: isSet(object.slashFractionDowntime) ? bytesFromBase64(object.slashFractionDowntime) : new Uint8Array()
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.signedBlocksWindow !== undefined && (obj.signedBlocksWindow = (message.signedBlocksWindow || BigInt(0)).toString());
-    message.minSignedPerWindow !== undefined && (obj.minSignedPerWindow = base64FromBytes(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array()));
-    message.downtimeJailDuration !== undefined && (obj.downtimeJailDuration = message.downtimeJailDuration ? Duration.toJSON(message.downtimeJailDuration) : undefined);
-    message.slashFractionDoubleSign !== undefined && (obj.slashFractionDoubleSign = base64FromBytes(message.slashFractionDoubleSign !== undefined ? message.slashFractionDoubleSign : new Uint8Array()));
-    message.slashFractionDowntime !== undefined && (obj.slashFractionDowntime = base64FromBytes(message.slashFractionDowntime !== undefined ? message.slashFractionDowntime : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.signedBlocksWindow = object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null ? BigInt(object.signedBlocksWindow.toString()) : BigInt(0);
-    message.minSignedPerWindow = object.minSignedPerWindow ?? new Uint8Array();
-    message.downtimeJailDuration = object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null ? Duration.fromPartial(object.downtimeJailDuration) : undefined;
-    message.slashFractionDoubleSign = object.slashFractionDoubleSign ?? new Uint8Array();
-    message.slashFractionDowntime = object.slashFractionDowntime ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      signedBlocksWindow: object?.signed_blocks_window,
-      minSignedPerWindow: object?.min_signed_per_window,
-      downtimeJailDuration: object.downtime_jail_duration ? Duration.fromSDK(object.downtime_jail_duration) : undefined,
-      slashFractionDoubleSign: object?.slash_fraction_double_sign,
-      slashFractionDowntime: object?.slash_fraction_downtime
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.signed_blocks_window = message.signedBlocksWindow;
-    obj.min_signed_per_window = message.minSignedPerWindow;
-    message.downtimeJailDuration !== undefined && (obj.downtime_jail_duration = message.downtimeJailDuration ? Duration.toSDK(message.downtimeJailDuration) : undefined);
-    obj.slash_fraction_double_sign = message.slashFractionDoubleSign;
-    obj.slash_fraction_downtime = message.slashFractionDowntime;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      signedBlocksWindow: BigInt(object.signed_blocks_window),
-      minSignedPerWindow: object.min_signed_per_window,
-      downtimeJailDuration: object?.downtime_jail_duration ? Duration.fromAmino(object.downtime_jail_duration) : undefined,
-      slashFractionDoubleSign: object.slash_fraction_double_sign,
-      slashFractionDowntime: object.slash_fraction_downtime
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.signed_blocks_window = message.signedBlocksWindow ? message.signedBlocksWindow.toString() : undefined;
-    obj.min_signed_per_window = message.minSignedPerWindow;
-    obj.downtime_jail_duration = message.downtimeJailDuration ? Duration.toAmino(message.downtimeJailDuration) : undefined;
-    obj.slash_fraction_double_sign = message.slashFractionDoubleSign;
-    obj.slash_fraction_downtime = message.slashFractionDowntime;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.amino.ts
deleted file mode 100644
index 9f638256..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgUnjail } from "./tx";
-export const AminoConverter = {
-  "/cosmos.slashing.v1beta1.MsgUnjail": {
-    aminoType: "cosmos-sdk/MsgUnjail",
-    toAmino: MsgUnjail.toAmino,
-    fromAmino: MsgUnjail.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.registry.ts
deleted file mode 100644
index 5e3aabe2..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgUnjail } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.slashing.v1beta1.MsgUnjail", MsgUnjail]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    unjail(value: MsgUnjail) {
-      return {
-        typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-        value: MsgUnjail.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    unjail(value: MsgUnjail) {
-      return {
-        typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-        value
-      };
-    }
-  },
-  toJSON: {
-    unjail(value: MsgUnjail) {
-      return {
-        typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-        value: MsgUnjail.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    unjail(value: any) {
-      return {
-        typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-        value: MsgUnjail.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    unjail(value: MsgUnjail) {
-      return {
-        typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-        value: MsgUnjail.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index 5a4b327d..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgUnjail, MsgUnjailResponse } from "./tx";
-/** Msg defines the slashing Msg service. */
-export interface Msg {
-  /**
-   * Unjail defines a method for unjailing a jailed validator, thus returning
-   * them into the bonded validator set, so they can begin receiving provisions
-   * and rewards again.
-   */
-  unjail(request: MsgUnjail): Promise<MsgUnjailResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.unjail = this.unjail.bind(this);
-  }
-  unjail(request: MsgUnjail): Promise<MsgUnjailResponse> {
-    const data = MsgUnjail.encode(request).finish();
-    const promise = this.rpc.request("cosmos.slashing.v1beta1.Msg", "Unjail", data);
-    return promise.then(data => MsgUnjailResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.ts
deleted file mode 100644
index 88ede265..00000000
--- a/examples/injective/src/codegen/cosmos/slashing/v1beta1/tx.ts
+++ /dev/null
@@ -1,194 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** MsgUnjail defines the Msg/Unjail request type */
-export interface MsgUnjail {
-  validatorAddr: string;
-}
-export interface MsgUnjailProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail";
-  value: Uint8Array;
-}
-/** MsgUnjail defines the Msg/Unjail request type */
-export interface MsgUnjailAmino {
-  validator_addr: string;
-}
-export interface MsgUnjailAminoMsg {
-  type: "cosmos-sdk/MsgUnjail";
-  value: MsgUnjailAmino;
-}
-/** MsgUnjail defines the Msg/Unjail request type */
-export interface MsgUnjailSDKType {
-  validator_addr: string;
-}
-/** MsgUnjailResponse defines the Msg/Unjail response type */
-export interface MsgUnjailResponse {}
-export interface MsgUnjailResponseProtoMsg {
-  typeUrl: "/cosmos.slashing.v1beta1.MsgUnjailResponse";
-  value: Uint8Array;
-}
-/** MsgUnjailResponse defines the Msg/Unjail response type */
-export interface MsgUnjailResponseAmino {}
-export interface MsgUnjailResponseAminoMsg {
-  type: "cosmos-sdk/MsgUnjailResponse";
-  value: MsgUnjailResponseAmino;
-}
-/** MsgUnjailResponse defines the Msg/Unjail response type */
-export interface MsgUnjailResponseSDKType {}
-function createBaseMsgUnjail(): MsgUnjail {
-  return {
-    validatorAddr: ""
-  };
-}
-export const MsgUnjail = {
-  typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-  aminoType: "cosmos-sdk/MsgUnjail",
-  encode(message: MsgUnjail, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddr !== "") {
-      writer.uint32(10).string(message.validatorAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUnjail {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUnjail();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUnjail {
-    return {
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : ""
-    };
-  },
-  toJSON(message: MsgUnjail): unknown {
-    const obj: any = {};
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUnjail>): MsgUnjail {
-    const message = createBaseMsgUnjail();
-    message.validatorAddr = object.validatorAddr ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUnjailSDKType): MsgUnjail {
-    return {
-      validatorAddr: object?.validator_addr
-    };
-  },
-  toSDK(message: MsgUnjail): MsgUnjailSDKType {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAmino(object: MsgUnjailAmino): MsgUnjail {
-    return {
-      validatorAddr: object.validator_addr
-    };
-  },
-  toAmino(message: MsgUnjail): MsgUnjailAmino {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUnjailAminoMsg): MsgUnjail {
-    return MsgUnjail.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUnjail): MsgUnjailAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUnjail",
-      value: MsgUnjail.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUnjailProtoMsg): MsgUnjail {
-    return MsgUnjail.decode(message.value);
-  },
-  toProto(message: MsgUnjail): Uint8Array {
-    return MsgUnjail.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUnjail): MsgUnjailProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.MsgUnjail",
-      value: MsgUnjail.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUnjailResponse(): MsgUnjailResponse {
-  return {};
-}
-export const MsgUnjailResponse = {
-  typeUrl: "/cosmos.slashing.v1beta1.MsgUnjailResponse",
-  aminoType: "cosmos-sdk/MsgUnjailResponse",
-  encode(_: MsgUnjailResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUnjailResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUnjailResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUnjailResponse {
-    return {};
-  },
-  toJSON(_: MsgUnjailResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUnjailResponse>): MsgUnjailResponse {
-    const message = createBaseMsgUnjailResponse();
-    return message;
-  },
-  fromSDK(_: MsgUnjailResponseSDKType): MsgUnjailResponse {
-    return {};
-  },
-  toSDK(_: MsgUnjailResponse): MsgUnjailResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUnjailResponseAmino): MsgUnjailResponse {
-    return {};
-  },
-  toAmino(_: MsgUnjailResponse): MsgUnjailResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUnjailResponseAminoMsg): MsgUnjailResponse {
-    return MsgUnjailResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUnjailResponse): MsgUnjailResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUnjailResponse",
-      value: MsgUnjailResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUnjailResponseProtoMsg): MsgUnjailResponse {
-    return MsgUnjailResponse.decode(message.value);
-  },
-  toProto(message: MsgUnjailResponse): Uint8Array {
-    return MsgUnjailResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUnjailResponse): MsgUnjailResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.slashing.v1beta1.MsgUnjailResponse",
-      value: MsgUnjailResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/authz.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/authz.ts
deleted file mode 100644
index 50b25315..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/authz.ts
+++ /dev/null
@@ -1,367 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * AuthorizationType defines the type of staking module authorization type
- * 
- * Since: cosmos-sdk 0.43
- */
-export enum AuthorizationType {
-  /** AUTHORIZATION_TYPE_UNSPECIFIED - AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */
-  AUTHORIZATION_TYPE_UNSPECIFIED = 0,
-  /** AUTHORIZATION_TYPE_DELEGATE - AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */
-  AUTHORIZATION_TYPE_DELEGATE = 1,
-  /** AUTHORIZATION_TYPE_UNDELEGATE - AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */
-  AUTHORIZATION_TYPE_UNDELEGATE = 2,
-  /** AUTHORIZATION_TYPE_REDELEGATE - AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */
-  AUTHORIZATION_TYPE_REDELEGATE = 3,
-  UNRECOGNIZED = -1,
-}
-export const AuthorizationTypeSDKType = AuthorizationType;
-export const AuthorizationTypeAmino = AuthorizationType;
-export function authorizationTypeFromJSON(object: any): AuthorizationType {
-  switch (object) {
-    case 0:
-    case "AUTHORIZATION_TYPE_UNSPECIFIED":
-      return AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED;
-    case 1:
-    case "AUTHORIZATION_TYPE_DELEGATE":
-      return AuthorizationType.AUTHORIZATION_TYPE_DELEGATE;
-    case 2:
-    case "AUTHORIZATION_TYPE_UNDELEGATE":
-      return AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE;
-    case 3:
-    case "AUTHORIZATION_TYPE_REDELEGATE":
-      return AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return AuthorizationType.UNRECOGNIZED;
-  }
-}
-export function authorizationTypeToJSON(object: AuthorizationType): string {
-  switch (object) {
-    case AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED:
-      return "AUTHORIZATION_TYPE_UNSPECIFIED";
-    case AuthorizationType.AUTHORIZATION_TYPE_DELEGATE:
-      return "AUTHORIZATION_TYPE_DELEGATE";
-    case AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE:
-      return "AUTHORIZATION_TYPE_UNDELEGATE";
-    case AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE:
-      return "AUTHORIZATION_TYPE_REDELEGATE";
-    case AuthorizationType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * StakeAuthorization defines authorization for delegate/undelegate/redelegate.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StakeAuthorization {
-  /**
-   * max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is
-   * empty, there is no spend limit and any amount of coins can be delegated.
-   */
-  maxTokens: Coin | undefined;
-  /**
-   * allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's
-   * account.
-   */
-  allowList?: StakeAuthorization_Validators | undefined;
-  /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */
-  denyList?: StakeAuthorization_Validators | undefined;
-  /** authorization_type defines one of AuthorizationType. */
-  authorizationType: AuthorizationType;
-}
-export interface StakeAuthorizationProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.StakeAuthorization";
-  value: Uint8Array;
-}
-/**
- * StakeAuthorization defines authorization for delegate/undelegate/redelegate.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StakeAuthorizationAmino {
-  /**
-   * max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is
-   * empty, there is no spend limit and any amount of coins can be delegated.
-   */
-  max_tokens?: CoinAmino | undefined;
-  /**
-   * allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's
-   * account.
-   */
-  allow_list?: StakeAuthorization_ValidatorsAmino | undefined;
-  /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */
-  deny_list?: StakeAuthorization_ValidatorsAmino | undefined;
-  /** authorization_type defines one of AuthorizationType. */
-  authorization_type: AuthorizationType;
-}
-export interface StakeAuthorizationAminoMsg {
-  type: "cosmos-sdk/StakeAuthorization";
-  value: StakeAuthorizationAmino;
-}
-/**
- * StakeAuthorization defines authorization for delegate/undelegate/redelegate.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface StakeAuthorizationSDKType {
-  max_tokens: CoinSDKType | undefined;
-  allow_list?: StakeAuthorization_ValidatorsSDKType | undefined;
-  deny_list?: StakeAuthorization_ValidatorsSDKType | undefined;
-  authorization_type: AuthorizationType;
-}
-/** Validators defines list of validator addresses. */
-export interface StakeAuthorization_Validators {
-  address: string[];
-}
-export interface StakeAuthorization_ValidatorsProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Validators";
-  value: Uint8Array;
-}
-/** Validators defines list of validator addresses. */
-export interface StakeAuthorization_ValidatorsAmino {
-  address: string[];
-}
-export interface StakeAuthorization_ValidatorsAminoMsg {
-  type: "cosmos-sdk/Validators";
-  value: StakeAuthorization_ValidatorsAmino;
-}
-/** Validators defines list of validator addresses. */
-export interface StakeAuthorization_ValidatorsSDKType {
-  address: string[];
-}
-function createBaseStakeAuthorization(): StakeAuthorization {
-  return {
-    maxTokens: Coin.fromPartial({}),
-    allowList: undefined,
-    denyList: undefined,
-    authorizationType: 0
-  };
-}
-export const StakeAuthorization = {
-  typeUrl: "/cosmos.staking.v1beta1.StakeAuthorization",
-  aminoType: "cosmos-sdk/StakeAuthorization",
-  encode(message: StakeAuthorization, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxTokens !== undefined) {
-      Coin.encode(message.maxTokens, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.allowList !== undefined) {
-      StakeAuthorization_Validators.encode(message.allowList, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.denyList !== undefined) {
-      StakeAuthorization_Validators.encode(message.denyList, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.authorizationType !== 0) {
-      writer.uint32(32).int32(message.authorizationType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StakeAuthorization {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStakeAuthorization();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxTokens = Coin.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.allowList = StakeAuthorization_Validators.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.denyList = StakeAuthorization_Validators.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.authorizationType = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StakeAuthorization {
-    return {
-      maxTokens: isSet(object.maxTokens) ? Coin.fromJSON(object.maxTokens) : undefined,
-      allowList: isSet(object.allowList) ? StakeAuthorization_Validators.fromJSON(object.allowList) : undefined,
-      denyList: isSet(object.denyList) ? StakeAuthorization_Validators.fromJSON(object.denyList) : undefined,
-      authorizationType: isSet(object.authorizationType) ? authorizationTypeFromJSON(object.authorizationType) : -1
-    };
-  },
-  toJSON(message: StakeAuthorization): unknown {
-    const obj: any = {};
-    message.maxTokens !== undefined && (obj.maxTokens = message.maxTokens ? Coin.toJSON(message.maxTokens) : undefined);
-    message.allowList !== undefined && (obj.allowList = message.allowList ? StakeAuthorization_Validators.toJSON(message.allowList) : undefined);
-    message.denyList !== undefined && (obj.denyList = message.denyList ? StakeAuthorization_Validators.toJSON(message.denyList) : undefined);
-    message.authorizationType !== undefined && (obj.authorizationType = authorizationTypeToJSON(message.authorizationType));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StakeAuthorization>): StakeAuthorization {
-    const message = createBaseStakeAuthorization();
-    message.maxTokens = object.maxTokens !== undefined && object.maxTokens !== null ? Coin.fromPartial(object.maxTokens) : undefined;
-    message.allowList = object.allowList !== undefined && object.allowList !== null ? StakeAuthorization_Validators.fromPartial(object.allowList) : undefined;
-    message.denyList = object.denyList !== undefined && object.denyList !== null ? StakeAuthorization_Validators.fromPartial(object.denyList) : undefined;
-    message.authorizationType = object.authorizationType ?? 0;
-    return message;
-  },
-  fromSDK(object: StakeAuthorizationSDKType): StakeAuthorization {
-    return {
-      maxTokens: object.max_tokens ? Coin.fromSDK(object.max_tokens) : undefined,
-      allowList: object.allow_list ? StakeAuthorization_Validators.fromSDK(object.allow_list) : undefined,
-      denyList: object.deny_list ? StakeAuthorization_Validators.fromSDK(object.deny_list) : undefined,
-      authorizationType: isSet(object.authorization_type) ? authorizationTypeFromJSON(object.authorization_type) : -1
-    };
-  },
-  toSDK(message: StakeAuthorization): StakeAuthorizationSDKType {
-    const obj: any = {};
-    message.maxTokens !== undefined && (obj.max_tokens = message.maxTokens ? Coin.toSDK(message.maxTokens) : undefined);
-    message.allowList !== undefined && (obj.allow_list = message.allowList ? StakeAuthorization_Validators.toSDK(message.allowList) : undefined);
-    message.denyList !== undefined && (obj.deny_list = message.denyList ? StakeAuthorization_Validators.toSDK(message.denyList) : undefined);
-    message.authorizationType !== undefined && (obj.authorization_type = authorizationTypeToJSON(message.authorizationType));
-    return obj;
-  },
-  fromAmino(object: StakeAuthorizationAmino): StakeAuthorization {
-    return {
-      maxTokens: object?.max_tokens ? Coin.fromAmino(object.max_tokens) : undefined,
-      allowList: object?.allow_list ? StakeAuthorization_Validators.fromAmino(object.allow_list) : undefined,
-      denyList: object?.deny_list ? StakeAuthorization_Validators.fromAmino(object.deny_list) : undefined,
-      authorizationType: isSet(object.authorization_type) ? authorizationTypeFromJSON(object.authorization_type) : -1
-    };
-  },
-  toAmino(message: StakeAuthorization): StakeAuthorizationAmino {
-    const obj: any = {};
-    obj.max_tokens = message.maxTokens ? Coin.toAmino(message.maxTokens) : undefined;
-    obj.allow_list = message.allowList ? StakeAuthorization_Validators.toAmino(message.allowList) : undefined;
-    obj.deny_list = message.denyList ? StakeAuthorization_Validators.toAmino(message.denyList) : undefined;
-    obj.authorization_type = message.authorizationType;
-    return obj;
-  },
-  fromAminoMsg(object: StakeAuthorizationAminoMsg): StakeAuthorization {
-    return StakeAuthorization.fromAmino(object.value);
-  },
-  toAminoMsg(message: StakeAuthorization): StakeAuthorizationAminoMsg {
-    return {
-      type: "cosmos-sdk/StakeAuthorization",
-      value: StakeAuthorization.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StakeAuthorizationProtoMsg): StakeAuthorization {
-    return StakeAuthorization.decode(message.value);
-  },
-  toProto(message: StakeAuthorization): Uint8Array {
-    return StakeAuthorization.encode(message).finish();
-  },
-  toProtoMsg(message: StakeAuthorization): StakeAuthorizationProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.StakeAuthorization",
-      value: StakeAuthorization.encode(message).finish()
-    };
-  }
-};
-function createBaseStakeAuthorization_Validators(): StakeAuthorization_Validators {
-  return {
-    address: []
-  };
-}
-export const StakeAuthorization_Validators = {
-  typeUrl: "/cosmos.staking.v1beta1.Validators",
-  aminoType: "cosmos-sdk/Validators",
-  encode(message: StakeAuthorization_Validators, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.address) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StakeAuthorization_Validators {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStakeAuthorization_Validators();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StakeAuthorization_Validators {
-    return {
-      address: Array.isArray(object?.address) ? object.address.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: StakeAuthorization_Validators): unknown {
-    const obj: any = {};
-    if (message.address) {
-      obj.address = message.address.map(e => e);
-    } else {
-      obj.address = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StakeAuthorization_Validators>): StakeAuthorization_Validators {
-    const message = createBaseStakeAuthorization_Validators();
-    message.address = object.address?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: StakeAuthorization_ValidatorsSDKType): StakeAuthorization_Validators {
-    return {
-      address: Array.isArray(object?.address) ? object.address.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: StakeAuthorization_Validators): StakeAuthorization_ValidatorsSDKType {
-    const obj: any = {};
-    if (message.address) {
-      obj.address = message.address.map(e => e);
-    } else {
-      obj.address = [];
-    }
-    return obj;
-  },
-  fromAmino(object: StakeAuthorization_ValidatorsAmino): StakeAuthorization_Validators {
-    return {
-      address: Array.isArray(object?.address) ? object.address.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: StakeAuthorization_Validators): StakeAuthorization_ValidatorsAmino {
-    const obj: any = {};
-    if (message.address) {
-      obj.address = message.address.map(e => e);
-    } else {
-      obj.address = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: StakeAuthorization_ValidatorsAminoMsg): StakeAuthorization_Validators {
-    return StakeAuthorization_Validators.fromAmino(object.value);
-  },
-  toAminoMsg(message: StakeAuthorization_Validators): StakeAuthorization_ValidatorsAminoMsg {
-    return {
-      type: "cosmos-sdk/Validators",
-      value: StakeAuthorization_Validators.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StakeAuthorization_ValidatorsProtoMsg): StakeAuthorization_Validators {
-    return StakeAuthorization_Validators.decode(message.value);
-  },
-  toProto(message: StakeAuthorization_Validators): Uint8Array {
-    return StakeAuthorization_Validators.encode(message).finish();
-  },
-  toProtoMsg(message: StakeAuthorization_Validators): StakeAuthorization_ValidatorsProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Validators",
-      value: StakeAuthorization_Validators.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/genesis.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/genesis.ts
deleted file mode 100644
index f375f530..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/genesis.ts
+++ /dev/null
@@ -1,445 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType, Validator, ValidatorAmino, ValidatorSDKType, Delegation, DelegationAmino, DelegationSDKType, UnbondingDelegation, UnbondingDelegationAmino, UnbondingDelegationSDKType, Redelegation, RedelegationAmino, RedelegationSDKType } from "./staking";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** GenesisState defines the staking module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of related to deposit. */
-  params: Params | undefined;
-  /**
-   * last_total_power tracks the total amounts of bonded tokens recorded during
-   * the previous end block.
-   */
-  lastTotalPower: Uint8Array;
-  /**
-   * last_validator_powers is a special index that provides a historical list
-   * of the last-block's bonded validators.
-   */
-  lastValidatorPowers: LastValidatorPower[];
-  /** delegations defines the validator set at genesis. */
-  validators: Validator[];
-  /** delegations defines the delegations active at genesis. */
-  delegations: Delegation[];
-  /** unbonding_delegations defines the unbonding delegations active at genesis. */
-  unbondingDelegations: UnbondingDelegation[];
-  /** redelegations defines the redelegations active at genesis. */
-  redelegations: Redelegation[];
-  exported: boolean;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the staking module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of related to deposit. */
-  params?: ParamsAmino | undefined;
-  /**
-   * last_total_power tracks the total amounts of bonded tokens recorded during
-   * the previous end block.
-   */
-  last_total_power: Uint8Array;
-  /**
-   * last_validator_powers is a special index that provides a historical list
-   * of the last-block's bonded validators.
-   */
-  last_validator_powers: LastValidatorPowerAmino[];
-  /** delegations defines the validator set at genesis. */
-  validators: ValidatorAmino[];
-  /** delegations defines the delegations active at genesis. */
-  delegations: DelegationAmino[];
-  /** unbonding_delegations defines the unbonding delegations active at genesis. */
-  unbonding_delegations: UnbondingDelegationAmino[];
-  /** redelegations defines the redelegations active at genesis. */
-  redelegations: RedelegationAmino[];
-  exported: boolean;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the staking module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  last_total_power: Uint8Array;
-  last_validator_powers: LastValidatorPowerSDKType[];
-  validators: ValidatorSDKType[];
-  delegations: DelegationSDKType[];
-  unbonding_delegations: UnbondingDelegationSDKType[];
-  redelegations: RedelegationSDKType[];
-  exported: boolean;
-}
-/** LastValidatorPower required for validator set update logic. */
-export interface LastValidatorPower {
-  /** address is the address of the validator. */
-  address: string;
-  /** power defines the power of the validator. */
-  power: bigint;
-}
-export interface LastValidatorPowerProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.LastValidatorPower";
-  value: Uint8Array;
-}
-/** LastValidatorPower required for validator set update logic. */
-export interface LastValidatorPowerAmino {
-  /** address is the address of the validator. */
-  address: string;
-  /** power defines the power of the validator. */
-  power: string;
-}
-export interface LastValidatorPowerAminoMsg {
-  type: "cosmos-sdk/LastValidatorPower";
-  value: LastValidatorPowerAmino;
-}
-/** LastValidatorPower required for validator set update logic. */
-export interface LastValidatorPowerSDKType {
-  address: string;
-  power: bigint;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    lastTotalPower: new Uint8Array(),
-    lastValidatorPowers: [],
-    validators: [],
-    delegations: [],
-    unbondingDelegations: [],
-    redelegations: [],
-    exported: false
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmos.staking.v1beta1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.lastTotalPower.length !== 0) {
-      writer.uint32(18).bytes(message.lastTotalPower);
-    }
-    for (const v of message.lastValidatorPowers) {
-      LastValidatorPower.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.delegations) {
-      Delegation.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.unbondingDelegations) {
-      UnbondingDelegation.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.redelegations) {
-      Redelegation.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.exported === true) {
-      writer.uint32(64).bool(message.exported);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.lastTotalPower = reader.bytes();
-          break;
-        case 3:
-          message.lastValidatorPowers.push(LastValidatorPower.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.delegations.push(Delegation.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.unbondingDelegations.push(UnbondingDelegation.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.redelegations.push(Redelegation.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.exported = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      lastTotalPower: isSet(object.lastTotalPower) ? bytesFromBase64(object.lastTotalPower) : new Uint8Array(),
-      lastValidatorPowers: Array.isArray(object?.lastValidatorPowers) ? object.lastValidatorPowers.map((e: any) => LastValidatorPower.fromJSON(e)) : [],
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      delegations: Array.isArray(object?.delegations) ? object.delegations.map((e: any) => Delegation.fromJSON(e)) : [],
-      unbondingDelegations: Array.isArray(object?.unbondingDelegations) ? object.unbondingDelegations.map((e: any) => UnbondingDelegation.fromJSON(e)) : [],
-      redelegations: Array.isArray(object?.redelegations) ? object.redelegations.map((e: any) => Redelegation.fromJSON(e)) : [],
-      exported: isSet(object.exported) ? Boolean(object.exported) : false
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    message.lastTotalPower !== undefined && (obj.lastTotalPower = base64FromBytes(message.lastTotalPower !== undefined ? message.lastTotalPower : new Uint8Array()));
-    if (message.lastValidatorPowers) {
-      obj.lastValidatorPowers = message.lastValidatorPowers.map(e => e ? LastValidatorPower.toJSON(e) : undefined);
-    } else {
-      obj.lastValidatorPowers = [];
-    }
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    if (message.delegations) {
-      obj.delegations = message.delegations.map(e => e ? Delegation.toJSON(e) : undefined);
-    } else {
-      obj.delegations = [];
-    }
-    if (message.unbondingDelegations) {
-      obj.unbondingDelegations = message.unbondingDelegations.map(e => e ? UnbondingDelegation.toJSON(e) : undefined);
-    } else {
-      obj.unbondingDelegations = [];
-    }
-    if (message.redelegations) {
-      obj.redelegations = message.redelegations.map(e => e ? Redelegation.toJSON(e) : undefined);
-    } else {
-      obj.redelegations = [];
-    }
-    message.exported !== undefined && (obj.exported = message.exported);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.lastTotalPower = object.lastTotalPower ?? new Uint8Array();
-    message.lastValidatorPowers = object.lastValidatorPowers?.map(e => LastValidatorPower.fromPartial(e)) || [];
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.delegations = object.delegations?.map(e => Delegation.fromPartial(e)) || [];
-    message.unbondingDelegations = object.unbondingDelegations?.map(e => UnbondingDelegation.fromPartial(e)) || [];
-    message.redelegations = object.redelegations?.map(e => Redelegation.fromPartial(e)) || [];
-    message.exported = object.exported ?? false;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      lastTotalPower: object?.last_total_power,
-      lastValidatorPowers: Array.isArray(object?.last_validator_powers) ? object.last_validator_powers.map((e: any) => LastValidatorPower.fromSDK(e)) : [],
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      delegations: Array.isArray(object?.delegations) ? object.delegations.map((e: any) => Delegation.fromSDK(e)) : [],
-      unbondingDelegations: Array.isArray(object?.unbonding_delegations) ? object.unbonding_delegations.map((e: any) => UnbondingDelegation.fromSDK(e)) : [],
-      redelegations: Array.isArray(object?.redelegations) ? object.redelegations.map((e: any) => Redelegation.fromSDK(e)) : [],
-      exported: object?.exported
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    obj.last_total_power = message.lastTotalPower;
-    if (message.lastValidatorPowers) {
-      obj.last_validator_powers = message.lastValidatorPowers.map(e => e ? LastValidatorPower.toSDK(e) : undefined);
-    } else {
-      obj.last_validator_powers = [];
-    }
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    if (message.delegations) {
-      obj.delegations = message.delegations.map(e => e ? Delegation.toSDK(e) : undefined);
-    } else {
-      obj.delegations = [];
-    }
-    if (message.unbondingDelegations) {
-      obj.unbonding_delegations = message.unbondingDelegations.map(e => e ? UnbondingDelegation.toSDK(e) : undefined);
-    } else {
-      obj.unbonding_delegations = [];
-    }
-    if (message.redelegations) {
-      obj.redelegations = message.redelegations.map(e => e ? Redelegation.toSDK(e) : undefined);
-    } else {
-      obj.redelegations = [];
-    }
-    obj.exported = message.exported;
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      lastTotalPower: object.last_total_power,
-      lastValidatorPowers: Array.isArray(object?.last_validator_powers) ? object.last_validator_powers.map((e: any) => LastValidatorPower.fromAmino(e)) : [],
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      delegations: Array.isArray(object?.delegations) ? object.delegations.map((e: any) => Delegation.fromAmino(e)) : [],
-      unbondingDelegations: Array.isArray(object?.unbonding_delegations) ? object.unbonding_delegations.map((e: any) => UnbondingDelegation.fromAmino(e)) : [],
-      redelegations: Array.isArray(object?.redelegations) ? object.redelegations.map((e: any) => Redelegation.fromAmino(e)) : [],
-      exported: object.exported
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    obj.last_total_power = message.lastTotalPower;
-    if (message.lastValidatorPowers) {
-      obj.last_validator_powers = message.lastValidatorPowers.map(e => e ? LastValidatorPower.toAmino(e) : undefined);
-    } else {
-      obj.last_validator_powers = [];
-    }
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    if (message.delegations) {
-      obj.delegations = message.delegations.map(e => e ? Delegation.toAmino(e) : undefined);
-    } else {
-      obj.delegations = [];
-    }
-    if (message.unbondingDelegations) {
-      obj.unbonding_delegations = message.unbondingDelegations.map(e => e ? UnbondingDelegation.toAmino(e) : undefined);
-    } else {
-      obj.unbonding_delegations = [];
-    }
-    if (message.redelegations) {
-      obj.redelegations = message.redelegations.map(e => e ? Redelegation.toAmino(e) : undefined);
-    } else {
-      obj.redelegations = [];
-    }
-    obj.exported = message.exported;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseLastValidatorPower(): LastValidatorPower {
-  return {
-    address: "",
-    power: BigInt(0)
-  };
-}
-export const LastValidatorPower = {
-  typeUrl: "/cosmos.staking.v1beta1.LastValidatorPower",
-  aminoType: "cosmos-sdk/LastValidatorPower",
-  encode(message: LastValidatorPower, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.power !== BigInt(0)) {
-      writer.uint32(16).int64(message.power);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LastValidatorPower {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLastValidatorPower();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.power = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LastValidatorPower {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      power: isSet(object.power) ? BigInt(object.power.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: LastValidatorPower): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LastValidatorPower>): LastValidatorPower {
-    const message = createBaseLastValidatorPower();
-    message.address = object.address ?? "";
-    message.power = object.power !== undefined && object.power !== null ? BigInt(object.power.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: LastValidatorPowerSDKType): LastValidatorPower {
-    return {
-      address: object?.address,
-      power: object?.power
-    };
-  },
-  toSDK(message: LastValidatorPower): LastValidatorPowerSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.power = message.power;
-    return obj;
-  },
-  fromAmino(object: LastValidatorPowerAmino): LastValidatorPower {
-    return {
-      address: object.address,
-      power: BigInt(object.power)
-    };
-  },
-  toAmino(message: LastValidatorPower): LastValidatorPowerAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.power = message.power ? message.power.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LastValidatorPowerAminoMsg): LastValidatorPower {
-    return LastValidatorPower.fromAmino(object.value);
-  },
-  toAminoMsg(message: LastValidatorPower): LastValidatorPowerAminoMsg {
-    return {
-      type: "cosmos-sdk/LastValidatorPower",
-      value: LastValidatorPower.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LastValidatorPowerProtoMsg): LastValidatorPower {
-    return LastValidatorPower.decode(message.value);
-  },
-  toProto(message: LastValidatorPower): Uint8Array {
-    return LastValidatorPower.encode(message).finish();
-  },
-  toProtoMsg(message: LastValidatorPower): LastValidatorPowerProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.LastValidatorPower",
-      value: LastValidatorPower.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 4d49b579..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,520 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryValidatorsRequest, QueryValidatorsResponse, QueryValidatorRequest, QueryValidatorResponse, QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponse, QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponse, QueryDelegationRequest, QueryDelegationResponse, QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponse, QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponse, QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponse, QueryRedelegationsRequest, QueryRedelegationsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponse, QueryHistoricalInfoRequest, QueryHistoricalInfoResponse, QueryPoolRequest, QueryPoolResponse, QueryParamsRequest, QueryParamsResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Validators queries all validators that match the given status. */
-  validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
-  /** Validator queries validator info for given validator address. */
-  validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
-  /** ValidatorDelegations queries delegate info for given validator. */
-  validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
-  /** ValidatorUnbondingDelegations queries unbonding delegations of a validator. */
-  validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
-  /** Delegation queries delegate info for given validator delegator pair. */
-  delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
-  /**
-   * UnbondingDelegation queries unbonding info for given validator delegator
-   * pair.
-   */
-  unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
-  /** DelegatorDelegations queries all delegations of a given delegator address. */
-  delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
-  /**
-   * DelegatorUnbondingDelegations queries all unbonding delegations of a given
-   * delegator address.
-   */
-  delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
-  /** Redelegations queries redelegations of given address. */
-  redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
-  /**
-   * DelegatorValidators queries all validators info for given delegator
-   * address.
-   */
-  delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
-  /**
-   * DelegatorValidator queries validator info for given delegator validator
-   * pair.
-   */
-  delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
-  /** HistoricalInfo queries the historical info for given height. */
-  historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
-  /** Pool queries the pool info. */
-  pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
-  /** Parameters queries the staking parameters. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.validators = this.validators.bind(this);
-    this.validator = this.validator.bind(this);
-    this.validatorDelegations = this.validatorDelegations.bind(this);
-    this.validatorUnbondingDelegations = this.validatorUnbondingDelegations.bind(this);
-    this.delegation = this.delegation.bind(this);
-    this.unbondingDelegation = this.unbondingDelegation.bind(this);
-    this.delegatorDelegations = this.delegatorDelegations.bind(this);
-    this.delegatorUnbondingDelegations = this.delegatorUnbondingDelegations.bind(this);
-    this.redelegations = this.redelegations.bind(this);
-    this.delegatorValidators = this.delegatorValidators.bind(this);
-    this.delegatorValidator = this.delegatorValidator.bind(this);
-    this.historicalInfo = this.historicalInfo.bind(this);
-    this.pool = this.pool.bind(this);
-    this.params = this.params.bind(this);
-  }
-  validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse> {
-    const data = QueryValidatorsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validators", data);
-    return promise.then(data => QueryValidatorsResponse.decode(new BinaryReader(data)));
-  }
-  validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse> {
-    const data = QueryValidatorRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validator", data);
-    return promise.then(data => QueryValidatorResponse.decode(new BinaryReader(data)));
-  }
-  validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse> {
-    const data = QueryValidatorDelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorDelegations", data);
-    return promise.then(data => QueryValidatorDelegationsResponse.decode(new BinaryReader(data)));
-  }
-  validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse> {
-    const data = QueryValidatorUnbondingDelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorUnbondingDelegations", data);
-    return promise.then(data => QueryValidatorUnbondingDelegationsResponse.decode(new BinaryReader(data)));
-  }
-  delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse> {
-    const data = QueryDelegationRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Delegation", data);
-    return promise.then(data => QueryDelegationResponse.decode(new BinaryReader(data)));
-  }
-  unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse> {
-    const data = QueryUnbondingDelegationRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "UnbondingDelegation", data);
-    return promise.then(data => QueryUnbondingDelegationResponse.decode(new BinaryReader(data)));
-  }
-  delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse> {
-    const data = QueryDelegatorDelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorDelegations", data);
-    return promise.then(data => QueryDelegatorDelegationsResponse.decode(new BinaryReader(data)));
-  }
-  delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse> {
-    const data = QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorUnbondingDelegations", data);
-    return promise.then(data => QueryDelegatorUnbondingDelegationsResponse.decode(new BinaryReader(data)));
-  }
-  redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse> {
-    const data = QueryRedelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Redelegations", data);
-    return promise.then(data => QueryRedelegationsResponse.decode(new BinaryReader(data)));
-  }
-  delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse> {
-    const data = QueryDelegatorValidatorsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidators", data);
-    return promise.then(data => QueryDelegatorValidatorsResponse.decode(new BinaryReader(data)));
-  }
-  delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse> {
-    const data = QueryDelegatorValidatorRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidator", data);
-    return promise.then(data => QueryDelegatorValidatorResponse.decode(new BinaryReader(data)));
-  }
-  historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse> {
-    const data = QueryHistoricalInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "HistoricalInfo", data);
-    return promise.then(data => QueryHistoricalInfoResponse.decode(new BinaryReader(data)));
-  }
-  pool(request: QueryPoolRequest = {}): Promise<QueryPoolResponse> {
-    const data = QueryPoolRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Pool", data);
-    return promise.then(data => QueryPoolResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse> {
-      return queryService.validators(request);
-    },
-    validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse> {
-      return queryService.validator(request);
-    },
-    validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse> {
-      return queryService.validatorDelegations(request);
-    },
-    validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse> {
-      return queryService.validatorUnbondingDelegations(request);
-    },
-    delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse> {
-      return queryService.delegation(request);
-    },
-    unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse> {
-      return queryService.unbondingDelegation(request);
-    },
-    delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse> {
-      return queryService.delegatorDelegations(request);
-    },
-    delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse> {
-      return queryService.delegatorUnbondingDelegations(request);
-    },
-    redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse> {
-      return queryService.redelegations(request);
-    },
-    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse> {
-      return queryService.delegatorValidators(request);
-    },
-    delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse> {
-      return queryService.delegatorValidator(request);
-    },
-    historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse> {
-      return queryService.historicalInfo(request);
-    },
-    pool(request?: QueryPoolRequest): Promise<QueryPoolResponse> {
-      return queryService.pool(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    }
-  };
-};
-export interface UseValidatorsQuery<TData> extends ReactQueryParams<QueryValidatorsResponse, TData> {
-  request: QueryValidatorsRequest;
-}
-export interface UseValidatorQuery<TData> extends ReactQueryParams<QueryValidatorResponse, TData> {
-  request: QueryValidatorRequest;
-}
-export interface UseValidatorDelegationsQuery<TData> extends ReactQueryParams<QueryValidatorDelegationsResponse, TData> {
-  request: QueryValidatorDelegationsRequest;
-}
-export interface UseValidatorUnbondingDelegationsQuery<TData> extends ReactQueryParams<QueryValidatorUnbondingDelegationsResponse, TData> {
-  request: QueryValidatorUnbondingDelegationsRequest;
-}
-export interface UseDelegationQuery<TData> extends ReactQueryParams<QueryDelegationResponse, TData> {
-  request: QueryDelegationRequest;
-}
-export interface UseUnbondingDelegationQuery<TData> extends ReactQueryParams<QueryUnbondingDelegationResponse, TData> {
-  request: QueryUnbondingDelegationRequest;
-}
-export interface UseDelegatorDelegationsQuery<TData> extends ReactQueryParams<QueryDelegatorDelegationsResponse, TData> {
-  request: QueryDelegatorDelegationsRequest;
-}
-export interface UseDelegatorUnbondingDelegationsQuery<TData> extends ReactQueryParams<QueryDelegatorUnbondingDelegationsResponse, TData> {
-  request: QueryDelegatorUnbondingDelegationsRequest;
-}
-export interface UseRedelegationsQuery<TData> extends ReactQueryParams<QueryRedelegationsResponse, TData> {
-  request: QueryRedelegationsRequest;
-}
-export interface UseDelegatorValidatorsQuery<TData> extends ReactQueryParams<QueryDelegatorValidatorsResponse, TData> {
-  request: QueryDelegatorValidatorsRequest;
-}
-export interface UseDelegatorValidatorQuery<TData> extends ReactQueryParams<QueryDelegatorValidatorResponse, TData> {
-  request: QueryDelegatorValidatorRequest;
-}
-export interface UseHistoricalInfoQuery<TData> extends ReactQueryParams<QueryHistoricalInfoResponse, TData> {
-  request: QueryHistoricalInfoRequest;
-}
-export interface UsePoolQuery<TData> extends ReactQueryParams<QueryPoolResponse, TData> {
-  request?: QueryPoolRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useValidators = <TData = QueryValidatorsResponse,>({
-    request,
-    options
-  }: UseValidatorsQuery<TData>) => {
-    return useQuery<QueryValidatorsResponse, Error, TData>(["validatorsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validators(request);
-    }, options);
-  };
-  const useValidator = <TData = QueryValidatorResponse,>({
-    request,
-    options
-  }: UseValidatorQuery<TData>) => {
-    return useQuery<QueryValidatorResponse, Error, TData>(["validatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validator(request);
-    }, options);
-  };
-  const useValidatorDelegations = <TData = QueryValidatorDelegationsResponse,>({
-    request,
-    options
-  }: UseValidatorDelegationsQuery<TData>) => {
-    return useQuery<QueryValidatorDelegationsResponse, Error, TData>(["validatorDelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validatorDelegations(request);
-    }, options);
-  };
-  const useValidatorUnbondingDelegations = <TData = QueryValidatorUnbondingDelegationsResponse,>({
-    request,
-    options
-  }: UseValidatorUnbondingDelegationsQuery<TData>) => {
-    return useQuery<QueryValidatorUnbondingDelegationsResponse, Error, TData>(["validatorUnbondingDelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.validatorUnbondingDelegations(request);
-    }, options);
-  };
-  const useDelegation = <TData = QueryDelegationResponse,>({
-    request,
-    options
-  }: UseDelegationQuery<TData>) => {
-    return useQuery<QueryDelegationResponse, Error, TData>(["delegationQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegation(request);
-    }, options);
-  };
-  const useUnbondingDelegation = <TData = QueryUnbondingDelegationResponse,>({
-    request,
-    options
-  }: UseUnbondingDelegationQuery<TData>) => {
-    return useQuery<QueryUnbondingDelegationResponse, Error, TData>(["unbondingDelegationQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.unbondingDelegation(request);
-    }, options);
-  };
-  const useDelegatorDelegations = <TData = QueryDelegatorDelegationsResponse,>({
-    request,
-    options
-  }: UseDelegatorDelegationsQuery<TData>) => {
-    return useQuery<QueryDelegatorDelegationsResponse, Error, TData>(["delegatorDelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorDelegations(request);
-    }, options);
-  };
-  const useDelegatorUnbondingDelegations = <TData = QueryDelegatorUnbondingDelegationsResponse,>({
-    request,
-    options
-  }: UseDelegatorUnbondingDelegationsQuery<TData>) => {
-    return useQuery<QueryDelegatorUnbondingDelegationsResponse, Error, TData>(["delegatorUnbondingDelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorUnbondingDelegations(request);
-    }, options);
-  };
-  const useRedelegations = <TData = QueryRedelegationsResponse,>({
-    request,
-    options
-  }: UseRedelegationsQuery<TData>) => {
-    return useQuery<QueryRedelegationsResponse, Error, TData>(["redelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.redelegations(request);
-    }, options);
-  };
-  const useDelegatorValidators = <TData = QueryDelegatorValidatorsResponse,>({
-    request,
-    options
-  }: UseDelegatorValidatorsQuery<TData>) => {
-    return useQuery<QueryDelegatorValidatorsResponse, Error, TData>(["delegatorValidatorsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorValidators(request);
-    }, options);
-  };
-  const useDelegatorValidator = <TData = QueryDelegatorValidatorResponse,>({
-    request,
-    options
-  }: UseDelegatorValidatorQuery<TData>) => {
-    return useQuery<QueryDelegatorValidatorResponse, Error, TData>(["delegatorValidatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.delegatorValidator(request);
-    }, options);
-  };
-  const useHistoricalInfo = <TData = QueryHistoricalInfoResponse,>({
-    request,
-    options
-  }: UseHistoricalInfoQuery<TData>) => {
-    return useQuery<QueryHistoricalInfoResponse, Error, TData>(["historicalInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.historicalInfo(request);
-    }, options);
-  };
-  const usePool = <TData = QueryPoolResponse,>({
-    request,
-    options
-  }: UsePoolQuery<TData>) => {
-    return useQuery<QueryPoolResponse, Error, TData>(["poolQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.pool(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  return {
-    /** Validators queries all validators that match the given status. */useValidators,
-    /** Validator queries validator info for given validator address. */useValidator,
-    /** ValidatorDelegations queries delegate info for given validator. */useValidatorDelegations,
-    /** ValidatorUnbondingDelegations queries unbonding delegations of a validator. */useValidatorUnbondingDelegations,
-    /** Delegation queries delegate info for given validator delegator pair. */useDelegation,
-    /**
-     * UnbondingDelegation queries unbonding info for given validator delegator
-     * pair.
-     */
-    useUnbondingDelegation,
-    /** DelegatorDelegations queries all delegations of a given delegator address. */useDelegatorDelegations,
-    /**
-     * DelegatorUnbondingDelegations queries all unbonding delegations of a given
-     * delegator address.
-     */
-    useDelegatorUnbondingDelegations,
-    /** Redelegations queries redelegations of given address. */useRedelegations,
-    /**
-     * DelegatorValidators queries all validators info for given delegator
-     * address.
-     */
-    useDelegatorValidators,
-    /**
-     * DelegatorValidator queries validator info for given delegator validator
-     * pair.
-     */
-    useDelegatorValidator,
-    /** HistoricalInfo queries the historical info for given height. */useHistoricalInfo,
-    /** Pool queries the pool info. */usePool,
-    /** Parameters queries the staking parameters. */useParams
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryValidatorsStore {
-    store = new QueryStore<QueryValidatorsRequest, QueryValidatorsResponse>(queryService?.validators);
-    validators(request: QueryValidatorsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorStore {
-    store = new QueryStore<QueryValidatorRequest, QueryValidatorResponse>(queryService?.validator);
-    validator(request: QueryValidatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorDelegationsStore {
-    store = new QueryStore<QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponse>(queryService?.validatorDelegations);
-    validatorDelegations(request: QueryValidatorDelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryValidatorUnbondingDelegationsStore {
-    store = new QueryStore<QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponse>(queryService?.validatorUnbondingDelegations);
-    validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegationStore {
-    store = new QueryStore<QueryDelegationRequest, QueryDelegationResponse>(queryService?.delegation);
-    delegation(request: QueryDelegationRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUnbondingDelegationStore {
-    store = new QueryStore<QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponse>(queryService?.unbondingDelegation);
-    unbondingDelegation(request: QueryUnbondingDelegationRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorDelegationsStore {
-    store = new QueryStore<QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponse>(queryService?.delegatorDelegations);
-    delegatorDelegations(request: QueryDelegatorDelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorUnbondingDelegationsStore {
-    store = new QueryStore<QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponse>(queryService?.delegatorUnbondingDelegations);
-    delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryRedelegationsStore {
-    store = new QueryStore<QueryRedelegationsRequest, QueryRedelegationsResponse>(queryService?.redelegations);
-    redelegations(request: QueryRedelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorValidatorsStore {
-    store = new QueryStore<QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse>(queryService?.delegatorValidators);
-    delegatorValidators(request: QueryDelegatorValidatorsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDelegatorValidatorStore {
-    store = new QueryStore<QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponse>(queryService?.delegatorValidator);
-    delegatorValidator(request: QueryDelegatorValidatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryHistoricalInfoStore {
-    store = new QueryStore<QueryHistoricalInfoRequest, QueryHistoricalInfoResponse>(queryService?.historicalInfo);
-    historicalInfo(request: QueryHistoricalInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPoolStore {
-    store = new QueryStore<QueryPoolRequest, QueryPoolResponse>(queryService?.pool);
-    pool(request: QueryPoolRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Validators queries all validators that match the given status. */QueryValidatorsStore,
-    /** Validator queries validator info for given validator address. */QueryValidatorStore,
-    /** ValidatorDelegations queries delegate info for given validator. */QueryValidatorDelegationsStore,
-    /** ValidatorUnbondingDelegations queries unbonding delegations of a validator. */QueryValidatorUnbondingDelegationsStore,
-    /** Delegation queries delegate info for given validator delegator pair. */QueryDelegationStore,
-    /**
-     * UnbondingDelegation queries unbonding info for given validator delegator
-     * pair.
-     */
-    QueryUnbondingDelegationStore,
-    /** DelegatorDelegations queries all delegations of a given delegator address. */QueryDelegatorDelegationsStore,
-    /**
-     * DelegatorUnbondingDelegations queries all unbonding delegations of a given
-     * delegator address.
-     */
-    QueryDelegatorUnbondingDelegationsStore,
-    /** Redelegations queries redelegations of given address. */QueryRedelegationsStore,
-    /**
-     * DelegatorValidators queries all validators info for given delegator
-     * address.
-     */
-    QueryDelegatorValidatorsStore,
-    /**
-     * DelegatorValidator queries validator info for given delegator validator
-     * pair.
-     */
-    QueryDelegatorValidatorStore,
-    /** HistoricalInfo queries the historical info for given height. */QueryHistoricalInfoStore,
-    /** Pool queries the pool info. */QueryPoolStore,
-    /** Parameters queries the staking parameters. */QueryParamsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/query.ts
deleted file mode 100644
index 8e81a8d2..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/query.ts
+++ /dev/null
@@ -1,3631 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { Validator, ValidatorAmino, ValidatorSDKType, DelegationResponse, DelegationResponseAmino, DelegationResponseSDKType, UnbondingDelegation, UnbondingDelegationAmino, UnbondingDelegationSDKType, RedelegationResponse, RedelegationResponseAmino, RedelegationResponseSDKType, HistoricalInfo, HistoricalInfoAmino, HistoricalInfoSDKType, Pool, PoolAmino, PoolSDKType, Params, ParamsAmino, ParamsSDKType } from "./staking";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** QueryValidatorsRequest is request type for Query/Validators RPC method. */
-export interface QueryValidatorsRequest {
-  /** status enables to query for validators matching a given status. */
-  status: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryValidatorsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsRequest";
-  value: Uint8Array;
-}
-/** QueryValidatorsRequest is request type for Query/Validators RPC method. */
-export interface QueryValidatorsRequestAmino {
-  /** status enables to query for validators matching a given status. */
-  status: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryValidatorsRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorsRequest";
-  value: QueryValidatorsRequestAmino;
-}
-/** QueryValidatorsRequest is request type for Query/Validators RPC method. */
-export interface QueryValidatorsRequestSDKType {
-  status: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryValidatorsResponse is response type for the Query/Validators RPC method */
-export interface QueryValidatorsResponse {
-  /** validators contains all the queried validators. */
-  validators: Validator[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryValidatorsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsResponse";
-  value: Uint8Array;
-}
-/** QueryValidatorsResponse is response type for the Query/Validators RPC method */
-export interface QueryValidatorsResponseAmino {
-  /** validators contains all the queried validators. */
-  validators: ValidatorAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryValidatorsResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorsResponse";
-  value: QueryValidatorsResponseAmino;
-}
-/** QueryValidatorsResponse is response type for the Query/Validators RPC method */
-export interface QueryValidatorsResponseSDKType {
-  validators: ValidatorSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryValidatorRequest is response type for the Query/Validator RPC method */
-export interface QueryValidatorRequest {
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-}
-export interface QueryValidatorRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorRequest";
-  value: Uint8Array;
-}
-/** QueryValidatorRequest is response type for the Query/Validator RPC method */
-export interface QueryValidatorRequestAmino {
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-}
-export interface QueryValidatorRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorRequest";
-  value: QueryValidatorRequestAmino;
-}
-/** QueryValidatorRequest is response type for the Query/Validator RPC method */
-export interface QueryValidatorRequestSDKType {
-  validator_addr: string;
-}
-/** QueryValidatorResponse is response type for the Query/Validator RPC method */
-export interface QueryValidatorResponse {
-  /** validator defines the the validator info. */
-  validator: Validator | undefined;
-}
-export interface QueryValidatorResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorResponse";
-  value: Uint8Array;
-}
-/** QueryValidatorResponse is response type for the Query/Validator RPC method */
-export interface QueryValidatorResponseAmino {
-  /** validator defines the the validator info. */
-  validator?: ValidatorAmino | undefined;
-}
-export interface QueryValidatorResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorResponse";
-  value: QueryValidatorResponseAmino;
-}
-/** QueryValidatorResponse is response type for the Query/Validator RPC method */
-export interface QueryValidatorResponseSDKType {
-  validator: ValidatorSDKType | undefined;
-}
-/**
- * QueryValidatorDelegationsRequest is request type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsRequest {
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryValidatorDelegationsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorDelegationsRequest is request type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsRequestAmino {
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryValidatorDelegationsRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorDelegationsRequest";
-  value: QueryValidatorDelegationsRequestAmino;
-}
-/**
- * QueryValidatorDelegationsRequest is request type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsRequestSDKType {
-  validator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryValidatorDelegationsResponse is response type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsResponse {
-  delegationResponses: DelegationResponse[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryValidatorDelegationsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorDelegationsResponse is response type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsResponseAmino {
-  delegation_responses: DelegationResponseAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryValidatorDelegationsResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorDelegationsResponse";
-  value: QueryValidatorDelegationsResponseAmino;
-}
-/**
- * QueryValidatorDelegationsResponse is response type for the
- * Query/ValidatorDelegations RPC method
- */
-export interface QueryValidatorDelegationsResponseSDKType {
-  delegation_responses: DelegationResponseSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryValidatorUnbondingDelegationsRequest is required type for the
- * Query/ValidatorUnbondingDelegations RPC method
- */
-export interface QueryValidatorUnbondingDelegationsRequest {
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryValidatorUnbondingDelegationsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorUnbondingDelegationsRequest is required type for the
- * Query/ValidatorUnbondingDelegations RPC method
- */
-export interface QueryValidatorUnbondingDelegationsRequestAmino {
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryValidatorUnbondingDelegationsRequestAminoMsg {
-  type: "cosmos-sdk/QueryValidatorUnbondingDelegationsRequest";
-  value: QueryValidatorUnbondingDelegationsRequestAmino;
-}
-/**
- * QueryValidatorUnbondingDelegationsRequest is required type for the
- * Query/ValidatorUnbondingDelegations RPC method
- */
-export interface QueryValidatorUnbondingDelegationsRequestSDKType {
-  validator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryValidatorUnbondingDelegationsResponse is response type for the
- * Query/ValidatorUnbondingDelegations RPC method.
- */
-export interface QueryValidatorUnbondingDelegationsResponse {
-  unbondingResponses: UnbondingDelegation[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryValidatorUnbondingDelegationsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryValidatorUnbondingDelegationsResponse is response type for the
- * Query/ValidatorUnbondingDelegations RPC method.
- */
-export interface QueryValidatorUnbondingDelegationsResponseAmino {
-  unbonding_responses: UnbondingDelegationAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryValidatorUnbondingDelegationsResponseAminoMsg {
-  type: "cosmos-sdk/QueryValidatorUnbondingDelegationsResponse";
-  value: QueryValidatorUnbondingDelegationsResponseAmino;
-}
-/**
- * QueryValidatorUnbondingDelegationsResponse is response type for the
- * Query/ValidatorUnbondingDelegations RPC method.
- */
-export interface QueryValidatorUnbondingDelegationsResponseSDKType {
-  unbonding_responses: UnbondingDelegationSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */
-export interface QueryDelegationRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-}
-export interface QueryDelegationRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegationRequest";
-  value: Uint8Array;
-}
-/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */
-export interface QueryDelegationRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-}
-export interface QueryDelegationRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegationRequest";
-  value: QueryDelegationRequestAmino;
-}
-/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */
-export interface QueryDelegationRequestSDKType {
-  delegator_addr: string;
-  validator_addr: string;
-}
-/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */
-export interface QueryDelegationResponse {
-  /** delegation_responses defines the delegation info of a delegation. */
-  delegationResponse: DelegationResponse | undefined;
-}
-export interface QueryDelegationResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegationResponse";
-  value: Uint8Array;
-}
-/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */
-export interface QueryDelegationResponseAmino {
-  /** delegation_responses defines the delegation info of a delegation. */
-  delegation_response?: DelegationResponseAmino | undefined;
-}
-export interface QueryDelegationResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegationResponse";
-  value: QueryDelegationResponseAmino;
-}
-/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */
-export interface QueryDelegationResponseSDKType {
-  delegation_response: DelegationResponseSDKType | undefined;
-}
-/**
- * QueryUnbondingDelegationRequest is request type for the
- * Query/UnbondingDelegation RPC method.
- */
-export interface QueryUnbondingDelegationRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-}
-export interface QueryUnbondingDelegationRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUnbondingDelegationRequest is request type for the
- * Query/UnbondingDelegation RPC method.
- */
-export interface QueryUnbondingDelegationRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-}
-export interface QueryUnbondingDelegationRequestAminoMsg {
-  type: "cosmos-sdk/QueryUnbondingDelegationRequest";
-  value: QueryUnbondingDelegationRequestAmino;
-}
-/**
- * QueryUnbondingDelegationRequest is request type for the
- * Query/UnbondingDelegation RPC method.
- */
-export interface QueryUnbondingDelegationRequestSDKType {
-  delegator_addr: string;
-  validator_addr: string;
-}
-/**
- * QueryDelegationResponse is response type for the Query/UnbondingDelegation
- * RPC method.
- */
-export interface QueryUnbondingDelegationResponse {
-  /** unbond defines the unbonding information of a delegation. */
-  unbond: UnbondingDelegation | undefined;
-}
-export interface QueryUnbondingDelegationResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegationResponse is response type for the Query/UnbondingDelegation
- * RPC method.
- */
-export interface QueryUnbondingDelegationResponseAmino {
-  /** unbond defines the unbonding information of a delegation. */
-  unbond?: UnbondingDelegationAmino | undefined;
-}
-export interface QueryUnbondingDelegationResponseAminoMsg {
-  type: "cosmos-sdk/QueryUnbondingDelegationResponse";
-  value: QueryUnbondingDelegationResponseAmino;
-}
-/**
- * QueryDelegationResponse is response type for the Query/UnbondingDelegation
- * RPC method.
- */
-export interface QueryUnbondingDelegationResponseSDKType {
-  unbond: UnbondingDelegationSDKType | undefined;
-}
-/**
- * QueryDelegatorDelegationsRequest is request type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDelegatorDelegationsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorDelegationsRequest is request type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDelegatorDelegationsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorDelegationsRequest";
-  value: QueryDelegatorDelegationsRequestAmino;
-}
-/**
- * QueryDelegatorDelegationsRequest is request type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsRequestSDKType {
-  delegator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryDelegatorDelegationsResponse is response type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsResponse {
-  /** delegation_responses defines all the delegations' info of a delegator. */
-  delegationResponses: DelegationResponse[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDelegatorDelegationsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorDelegationsResponse is response type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsResponseAmino {
-  /** delegation_responses defines all the delegations' info of a delegator. */
-  delegation_responses: DelegationResponseAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDelegatorDelegationsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorDelegationsResponse";
-  value: QueryDelegatorDelegationsResponseAmino;
-}
-/**
- * QueryDelegatorDelegationsResponse is response type for the
- * Query/DelegatorDelegations RPC method.
- */
-export interface QueryDelegatorDelegationsResponseSDKType {
-  delegation_responses: DelegationResponseSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryDelegatorUnbondingDelegationsRequest is request type for the
- * Query/DelegatorUnbondingDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDelegatorUnbondingDelegationsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorUnbondingDelegationsRequest is request type for the
- * Query/DelegatorUnbondingDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDelegatorUnbondingDelegationsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorUnbondingDelegationsRequest";
-  value: QueryDelegatorUnbondingDelegationsRequestAmino;
-}
-/**
- * QueryDelegatorUnbondingDelegationsRequest is request type for the
- * Query/DelegatorUnbondingDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsRequestSDKType {
-  delegator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryUnbondingDelegatorDelegationsResponse is response type for the
- * Query/UnbondingDelegatorDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsResponse {
-  unbondingResponses: UnbondingDelegation[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDelegatorUnbondingDelegationsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUnbondingDelegatorDelegationsResponse is response type for the
- * Query/UnbondingDelegatorDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsResponseAmino {
-  unbonding_responses: UnbondingDelegationAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDelegatorUnbondingDelegationsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorUnbondingDelegationsResponse";
-  value: QueryDelegatorUnbondingDelegationsResponseAmino;
-}
-/**
- * QueryUnbondingDelegatorDelegationsResponse is response type for the
- * Query/UnbondingDelegatorDelegations RPC method.
- */
-export interface QueryDelegatorUnbondingDelegationsResponseSDKType {
-  unbonding_responses: UnbondingDelegationSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryRedelegationsRequest is request type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** src_validator_addr defines the validator address to redelegate from. */
-  srcValidatorAddr: string;
-  /** dst_validator_addr defines the validator address to redelegate to. */
-  dstValidatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryRedelegationsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryRedelegationsRequest is request type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** src_validator_addr defines the validator address to redelegate from. */
-  src_validator_addr: string;
-  /** dst_validator_addr defines the validator address to redelegate to. */
-  dst_validator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryRedelegationsRequestAminoMsg {
-  type: "cosmos-sdk/QueryRedelegationsRequest";
-  value: QueryRedelegationsRequestAmino;
-}
-/**
- * QueryRedelegationsRequest is request type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsRequestSDKType {
-  delegator_addr: string;
-  src_validator_addr: string;
-  dst_validator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryRedelegationsResponse is response type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsResponse {
-  redelegationResponses: RedelegationResponse[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryRedelegationsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryRedelegationsResponse is response type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsResponseAmino {
-  redelegation_responses: RedelegationResponseAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryRedelegationsResponseAminoMsg {
-  type: "cosmos-sdk/QueryRedelegationsResponse";
-  value: QueryRedelegationsResponseAmino;
-}
-/**
- * QueryRedelegationsResponse is response type for the Query/Redelegations RPC
- * method.
- */
-export interface QueryRedelegationsResponseSDKType {
-  redelegation_responses: RedelegationResponseSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryDelegatorValidatorsRequest is request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDelegatorValidatorsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorsRequest is request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDelegatorValidatorsRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorsRequest";
-  value: QueryDelegatorValidatorsRequestAmino;
-}
-/**
- * QueryDelegatorValidatorsRequest is request type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsRequestSDKType {
-  delegator_addr: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryDelegatorValidatorsResponse is response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponse {
-  /** validators defines the the validators' info of a delegator. */
-  validators: Validator[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDelegatorValidatorsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorsResponse is response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponseAmino {
-  /** validators defines the the validators' info of a delegator. */
-  validators: ValidatorAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDelegatorValidatorsResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorsResponse";
-  value: QueryDelegatorValidatorsResponseAmino;
-}
-/**
- * QueryDelegatorValidatorsResponse is response type for the
- * Query/DelegatorValidators RPC method.
- */
-export interface QueryDelegatorValidatorsResponseSDKType {
-  validators: ValidatorSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryDelegatorValidatorRequest is request type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorRequest {
-  /** delegator_addr defines the delegator address to query for. */
-  delegatorAddr: string;
-  /** validator_addr defines the validator address to query for. */
-  validatorAddr: string;
-}
-export interface QueryDelegatorValidatorRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorRequest is request type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorRequestAmino {
-  /** delegator_addr defines the delegator address to query for. */
-  delegator_addr: string;
-  /** validator_addr defines the validator address to query for. */
-  validator_addr: string;
-}
-export interface QueryDelegatorValidatorRequestAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorRequest";
-  value: QueryDelegatorValidatorRequestAmino;
-}
-/**
- * QueryDelegatorValidatorRequest is request type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorRequestSDKType {
-  delegator_addr: string;
-  validator_addr: string;
-}
-/**
- * QueryDelegatorValidatorResponse response type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorResponse {
-  /** validator defines the the validator info. */
-  validator: Validator | undefined;
-}
-export interface QueryDelegatorValidatorResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDelegatorValidatorResponse response type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorResponseAmino {
-  /** validator defines the the validator info. */
-  validator?: ValidatorAmino | undefined;
-}
-export interface QueryDelegatorValidatorResponseAminoMsg {
-  type: "cosmos-sdk/QueryDelegatorValidatorResponse";
-  value: QueryDelegatorValidatorResponseAmino;
-}
-/**
- * QueryDelegatorValidatorResponse response type for the
- * Query/DelegatorValidator RPC method.
- */
-export interface QueryDelegatorValidatorResponseSDKType {
-  validator: ValidatorSDKType | undefined;
-}
-/**
- * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoRequest {
-  /** height defines at which height to query the historical info. */
-  height: bigint;
-}
-export interface QueryHistoricalInfoRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoRequest";
-  value: Uint8Array;
-}
-/**
- * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoRequestAmino {
-  /** height defines at which height to query the historical info. */
-  height: string;
-}
-export interface QueryHistoricalInfoRequestAminoMsg {
-  type: "cosmos-sdk/QueryHistoricalInfoRequest";
-  value: QueryHistoricalInfoRequestAmino;
-}
-/**
- * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoRequestSDKType {
-  height: bigint;
-}
-/**
- * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoResponse {
-  /** hist defines the historical info at the given height. */
-  hist: HistoricalInfo | undefined;
-}
-export interface QueryHistoricalInfoResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoResponse";
-  value: Uint8Array;
-}
-/**
- * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoResponseAmino {
-  /** hist defines the historical info at the given height. */
-  hist?: HistoricalInfoAmino | undefined;
-}
-export interface QueryHistoricalInfoResponseAminoMsg {
-  type: "cosmos-sdk/QueryHistoricalInfoResponse";
-  value: QueryHistoricalInfoResponseAmino;
-}
-/**
- * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
- * method.
- */
-export interface QueryHistoricalInfoResponseSDKType {
-  hist: HistoricalInfoSDKType | undefined;
-}
-/** QueryPoolRequest is request type for the Query/Pool RPC method. */
-export interface QueryPoolRequest {}
-export interface QueryPoolRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryPoolRequest";
-  value: Uint8Array;
-}
-/** QueryPoolRequest is request type for the Query/Pool RPC method. */
-export interface QueryPoolRequestAmino {}
-export interface QueryPoolRequestAminoMsg {
-  type: "cosmos-sdk/QueryPoolRequest";
-  value: QueryPoolRequestAmino;
-}
-/** QueryPoolRequest is request type for the Query/Pool RPC method. */
-export interface QueryPoolRequestSDKType {}
-/** QueryPoolResponse is response type for the Query/Pool RPC method. */
-export interface QueryPoolResponse {
-  /** pool defines the pool info. */
-  pool: Pool | undefined;
-}
-export interface QueryPoolResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryPoolResponse";
-  value: Uint8Array;
-}
-/** QueryPoolResponse is response type for the Query/Pool RPC method. */
-export interface QueryPoolResponseAmino {
-  /** pool defines the pool info. */
-  pool?: PoolAmino | undefined;
-}
-export interface QueryPoolResponseAminoMsg {
-  type: "cosmos-sdk/QueryPoolResponse";
-  value: QueryPoolResponseAmino;
-}
-/** QueryPoolResponse is response type for the Query/Pool RPC method. */
-export interface QueryPoolResponseSDKType {
-  pool: PoolSDKType | undefined;
-}
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params holds all the parameters of this module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params holds all the parameters of this module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-function createBaseQueryValidatorsRequest(): QueryValidatorsRequest {
-  return {
-    status: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryValidatorsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsRequest",
-  aminoType: "cosmos-sdk/QueryValidatorsRequest",
-  encode(message: QueryValidatorsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.status !== "") {
-      writer.uint32(10).string(message.status);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.status = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorsRequest {
-    return {
-      status: isSet(object.status) ? String(object.status) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorsRequest): unknown {
-    const obj: any = {};
-    message.status !== undefined && (obj.status = message.status);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorsRequest>): QueryValidatorsRequest {
-    const message = createBaseQueryValidatorsRequest();
-    message.status = object.status ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorsRequestSDKType): QueryValidatorsRequest {
-    return {
-      status: object?.status,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorsRequest): QueryValidatorsRequestSDKType {
-    const obj: any = {};
-    obj.status = message.status;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorsRequestAmino): QueryValidatorsRequest {
-    return {
-      status: object.status,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorsRequest): QueryValidatorsRequestAmino {
-    const obj: any = {};
-    obj.status = message.status;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorsRequestAminoMsg): QueryValidatorsRequest {
-    return QueryValidatorsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorsRequest): QueryValidatorsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorsRequest",
-      value: QueryValidatorsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorsRequestProtoMsg): QueryValidatorsRequest {
-    return QueryValidatorsRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorsRequest): Uint8Array {
-    return QueryValidatorsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorsRequest): QueryValidatorsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsRequest",
-      value: QueryValidatorsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorsResponse(): QueryValidatorsResponse {
-  return {
-    validators: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryValidatorsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsResponse",
-  aminoType: "cosmos-sdk/QueryValidatorsResponse",
-  encode(message: QueryValidatorsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorsResponse): unknown {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorsResponse>): QueryValidatorsResponse {
-    const message = createBaseQueryValidatorsResponse();
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorsResponseSDKType): QueryValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorsResponse): QueryValidatorsResponseSDKType {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorsResponseAmino): QueryValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorsResponse): QueryValidatorsResponseAmino {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorsResponseAminoMsg): QueryValidatorsResponse {
-    return QueryValidatorsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorsResponse): QueryValidatorsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorsResponse",
-      value: QueryValidatorsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorsResponseProtoMsg): QueryValidatorsResponse {
-    return QueryValidatorsResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorsResponse): Uint8Array {
-    return QueryValidatorsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorsResponse): QueryValidatorsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsResponse",
-      value: QueryValidatorsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorRequest(): QueryValidatorRequest {
-  return {
-    validatorAddr: ""
-  };
-}
-export const QueryValidatorRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorRequest",
-  aminoType: "cosmos-sdk/QueryValidatorRequest",
-  encode(message: QueryValidatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddr !== "") {
-      writer.uint32(10).string(message.validatorAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorRequest {
-    return {
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : ""
-    };
-  },
-  toJSON(message: QueryValidatorRequest): unknown {
-    const obj: any = {};
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorRequest>): QueryValidatorRequest {
-    const message = createBaseQueryValidatorRequest();
-    message.validatorAddr = object.validatorAddr ?? "";
-    return message;
-  },
-  fromSDK(object: QueryValidatorRequestSDKType): QueryValidatorRequest {
-    return {
-      validatorAddr: object?.validator_addr
-    };
-  },
-  toSDK(message: QueryValidatorRequest): QueryValidatorRequestSDKType {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAmino(object: QueryValidatorRequestAmino): QueryValidatorRequest {
-    return {
-      validatorAddr: object.validator_addr
-    };
-  },
-  toAmino(message: QueryValidatorRequest): QueryValidatorRequestAmino {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorRequestAminoMsg): QueryValidatorRequest {
-    return QueryValidatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorRequest): QueryValidatorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorRequest",
-      value: QueryValidatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorRequestProtoMsg): QueryValidatorRequest {
-    return QueryValidatorRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorRequest): Uint8Array {
-    return QueryValidatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorRequest): QueryValidatorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorRequest",
-      value: QueryValidatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorResponse(): QueryValidatorResponse {
-  return {
-    validator: Validator.fromPartial({})
-  };
-}
-export const QueryValidatorResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorResponse",
-  aminoType: "cosmos-sdk/QueryValidatorResponse",
-  encode(message: QueryValidatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validator !== undefined) {
-      Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validator = Validator.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorResponse {
-    return {
-      validator: isSet(object.validator) ? Validator.fromJSON(object.validator) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorResponse): unknown {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toJSON(message.validator) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorResponse>): QueryValidatorResponse {
-    const message = createBaseQueryValidatorResponse();
-    message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorResponseSDKType): QueryValidatorResponse {
-    return {
-      validator: object.validator ? Validator.fromSDK(object.validator) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorResponse): QueryValidatorResponseSDKType {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toSDK(message.validator) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorResponseAmino): QueryValidatorResponse {
-    return {
-      validator: object?.validator ? Validator.fromAmino(object.validator) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorResponse): QueryValidatorResponseAmino {
-    const obj: any = {};
-    obj.validator = message.validator ? Validator.toAmino(message.validator) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorResponseAminoMsg): QueryValidatorResponse {
-    return QueryValidatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorResponse): QueryValidatorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorResponse",
-      value: QueryValidatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorResponseProtoMsg): QueryValidatorResponse {
-    return QueryValidatorResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorResponse): Uint8Array {
-    return QueryValidatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorResponse): QueryValidatorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorResponse",
-      value: QueryValidatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorDelegationsRequest(): QueryValidatorDelegationsRequest {
-  return {
-    validatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryValidatorDelegationsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest",
-  aminoType: "cosmos-sdk/QueryValidatorDelegationsRequest",
-  encode(message: QueryValidatorDelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddr !== "") {
-      writer.uint32(10).string(message.validatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorDelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorDelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddr = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorDelegationsRequest {
-    return {
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorDelegationsRequest): unknown {
-    const obj: any = {};
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorDelegationsRequest>): QueryValidatorDelegationsRequest {
-    const message = createBaseQueryValidatorDelegationsRequest();
-    message.validatorAddr = object.validatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorDelegationsRequestSDKType): QueryValidatorDelegationsRequest {
-    return {
-      validatorAddr: object?.validator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorDelegationsRequest): QueryValidatorDelegationsRequestSDKType {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorDelegationsRequestAmino): QueryValidatorDelegationsRequest {
-    return {
-      validatorAddr: object.validator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorDelegationsRequest): QueryValidatorDelegationsRequestAmino {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorDelegationsRequestAminoMsg): QueryValidatorDelegationsRequest {
-    return QueryValidatorDelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorDelegationsRequest): QueryValidatorDelegationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorDelegationsRequest",
-      value: QueryValidatorDelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorDelegationsRequestProtoMsg): QueryValidatorDelegationsRequest {
-    return QueryValidatorDelegationsRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorDelegationsRequest): Uint8Array {
-    return QueryValidatorDelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorDelegationsRequest): QueryValidatorDelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest",
-      value: QueryValidatorDelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorDelegationsResponse(): QueryValidatorDelegationsResponse {
-  return {
-    delegationResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryValidatorDelegationsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse",
-  aminoType: "cosmos-sdk/QueryValidatorDelegationsResponse",
-  encode(message: QueryValidatorDelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.delegationResponses) {
-      DelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorDelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorDelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegationResponses) ? object.delegationResponses.map((e: any) => DelegationResponse.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorDelegationsResponse): unknown {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegationResponses = message.delegationResponses.map(e => e ? DelegationResponse.toJSON(e) : undefined);
-    } else {
-      obj.delegationResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorDelegationsResponse>): QueryValidatorDelegationsResponse {
-    const message = createBaseQueryValidatorDelegationsResponse();
-    message.delegationResponses = object.delegationResponses?.map(e => DelegationResponse.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorDelegationsResponseSDKType): QueryValidatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegation_responses) ? object.delegation_responses.map((e: any) => DelegationResponse.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorDelegationsResponse): QueryValidatorDelegationsResponseSDKType {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegation_responses = message.delegationResponses.map(e => e ? DelegationResponse.toSDK(e) : undefined);
-    } else {
-      obj.delegation_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorDelegationsResponseAmino): QueryValidatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegation_responses) ? object.delegation_responses.map((e: any) => DelegationResponse.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorDelegationsResponse): QueryValidatorDelegationsResponseAmino {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegation_responses = message.delegationResponses.map(e => e ? DelegationResponse.toAmino(e) : undefined);
-    } else {
-      obj.delegation_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorDelegationsResponseAminoMsg): QueryValidatorDelegationsResponse {
-    return QueryValidatorDelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorDelegationsResponse): QueryValidatorDelegationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorDelegationsResponse",
-      value: QueryValidatorDelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorDelegationsResponseProtoMsg): QueryValidatorDelegationsResponse {
-    return QueryValidatorDelegationsResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorDelegationsResponse): Uint8Array {
-    return QueryValidatorDelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorDelegationsResponse): QueryValidatorDelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse",
-      value: QueryValidatorDelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorUnbondingDelegationsRequest(): QueryValidatorUnbondingDelegationsRequest {
-  return {
-    validatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryValidatorUnbondingDelegationsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest",
-  aminoType: "cosmos-sdk/QueryValidatorUnbondingDelegationsRequest",
-  encode(message: QueryValidatorUnbondingDelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddr !== "") {
-      writer.uint32(10).string(message.validatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorUnbondingDelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddr = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorUnbondingDelegationsRequest {
-    return {
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorUnbondingDelegationsRequest): unknown {
-    const obj: any = {};
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorUnbondingDelegationsRequest>): QueryValidatorUnbondingDelegationsRequest {
-    const message = createBaseQueryValidatorUnbondingDelegationsRequest();
-    message.validatorAddr = object.validatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorUnbondingDelegationsRequestSDKType): QueryValidatorUnbondingDelegationsRequest {
-    return {
-      validatorAddr: object?.validator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorUnbondingDelegationsRequest): QueryValidatorUnbondingDelegationsRequestSDKType {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorUnbondingDelegationsRequestAmino): QueryValidatorUnbondingDelegationsRequest {
-    return {
-      validatorAddr: object.validator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorUnbondingDelegationsRequest): QueryValidatorUnbondingDelegationsRequestAmino {
-    const obj: any = {};
-    obj.validator_addr = message.validatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorUnbondingDelegationsRequestAminoMsg): QueryValidatorUnbondingDelegationsRequest {
-    return QueryValidatorUnbondingDelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorUnbondingDelegationsRequest): QueryValidatorUnbondingDelegationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorUnbondingDelegationsRequest",
-      value: QueryValidatorUnbondingDelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorUnbondingDelegationsRequestProtoMsg): QueryValidatorUnbondingDelegationsRequest {
-    return QueryValidatorUnbondingDelegationsRequest.decode(message.value);
-  },
-  toProto(message: QueryValidatorUnbondingDelegationsRequest): Uint8Array {
-    return QueryValidatorUnbondingDelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorUnbondingDelegationsRequest): QueryValidatorUnbondingDelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest",
-      value: QueryValidatorUnbondingDelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryValidatorUnbondingDelegationsResponse(): QueryValidatorUnbondingDelegationsResponse {
-  return {
-    unbondingResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryValidatorUnbondingDelegationsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse",
-  aminoType: "cosmos-sdk/QueryValidatorUnbondingDelegationsResponse",
-  encode(message: QueryValidatorUnbondingDelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.unbondingResponses) {
-      UnbondingDelegation.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryValidatorUnbondingDelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryValidatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbondingResponses) ? object.unbondingResponses.map((e: any) => UnbondingDelegation.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryValidatorUnbondingDelegationsResponse): unknown {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbondingResponses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toJSON(e) : undefined);
-    } else {
-      obj.unbondingResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryValidatorUnbondingDelegationsResponse>): QueryValidatorUnbondingDelegationsResponse {
-    const message = createBaseQueryValidatorUnbondingDelegationsResponse();
-    message.unbondingResponses = object.unbondingResponses?.map(e => UnbondingDelegation.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryValidatorUnbondingDelegationsResponseSDKType): QueryValidatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbonding_responses) ? object.unbonding_responses.map((e: any) => UnbondingDelegation.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryValidatorUnbondingDelegationsResponse): QueryValidatorUnbondingDelegationsResponseSDKType {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbonding_responses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toSDK(e) : undefined);
-    } else {
-      obj.unbonding_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryValidatorUnbondingDelegationsResponseAmino): QueryValidatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbonding_responses) ? object.unbonding_responses.map((e: any) => UnbondingDelegation.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryValidatorUnbondingDelegationsResponse): QueryValidatorUnbondingDelegationsResponseAmino {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbonding_responses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toAmino(e) : undefined);
-    } else {
-      obj.unbonding_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryValidatorUnbondingDelegationsResponseAminoMsg): QueryValidatorUnbondingDelegationsResponse {
-    return QueryValidatorUnbondingDelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryValidatorUnbondingDelegationsResponse): QueryValidatorUnbondingDelegationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryValidatorUnbondingDelegationsResponse",
-      value: QueryValidatorUnbondingDelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryValidatorUnbondingDelegationsResponseProtoMsg): QueryValidatorUnbondingDelegationsResponse {
-    return QueryValidatorUnbondingDelegationsResponse.decode(message.value);
-  },
-  toProto(message: QueryValidatorUnbondingDelegationsResponse): Uint8Array {
-    return QueryValidatorUnbondingDelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryValidatorUnbondingDelegationsResponse): QueryValidatorUnbondingDelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse",
-      value: QueryValidatorUnbondingDelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationRequest(): QueryDelegationRequest {
-  return {
-    delegatorAddr: "",
-    validatorAddr: ""
-  };
-}
-export const QueryDelegationRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegationRequest",
-  aminoType: "cosmos-sdk/QueryDelegationRequest",
-  encode(message: QueryDelegationRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.validatorAddr !== "") {
-      writer.uint32(18).string(message.validatorAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.validatorAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : ""
-    };
-  },
-  toJSON(message: QueryDelegationRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationRequest>): QueryDelegationRequest {
-    const message = createBaseQueryDelegationRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.validatorAddr = object.validatorAddr ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegationRequestSDKType): QueryDelegationRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      validatorAddr: object?.validator_addr
-    };
-  },
-  toSDK(message: QueryDelegationRequest): QueryDelegationRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAmino(object: QueryDelegationRequestAmino): QueryDelegationRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      validatorAddr: object.validator_addr
-    };
-  },
-  toAmino(message: QueryDelegationRequest): QueryDelegationRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationRequestAminoMsg): QueryDelegationRequest {
-    return QueryDelegationRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationRequest): QueryDelegationRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationRequest",
-      value: QueryDelegationRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationRequestProtoMsg): QueryDelegationRequest {
-    return QueryDelegationRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegationRequest): Uint8Array {
-    return QueryDelegationRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationRequest): QueryDelegationRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegationRequest",
-      value: QueryDelegationRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegationResponse(): QueryDelegationResponse {
-  return {
-    delegationResponse: DelegationResponse.fromPartial({})
-  };
-}
-export const QueryDelegationResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegationResponse",
-  aminoType: "cosmos-sdk/QueryDelegationResponse",
-  encode(message: QueryDelegationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegationResponse !== undefined) {
-      DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegationResponse = DelegationResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegationResponse {
-    return {
-      delegationResponse: isSet(object.delegationResponse) ? DelegationResponse.fromJSON(object.delegationResponse) : undefined
-    };
-  },
-  toJSON(message: QueryDelegationResponse): unknown {
-    const obj: any = {};
-    message.delegationResponse !== undefined && (obj.delegationResponse = message.delegationResponse ? DelegationResponse.toJSON(message.delegationResponse) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegationResponse>): QueryDelegationResponse {
-    const message = createBaseQueryDelegationResponse();
-    message.delegationResponse = object.delegationResponse !== undefined && object.delegationResponse !== null ? DelegationResponse.fromPartial(object.delegationResponse) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegationResponseSDKType): QueryDelegationResponse {
-    return {
-      delegationResponse: object.delegation_response ? DelegationResponse.fromSDK(object.delegation_response) : undefined
-    };
-  },
-  toSDK(message: QueryDelegationResponse): QueryDelegationResponseSDKType {
-    const obj: any = {};
-    message.delegationResponse !== undefined && (obj.delegation_response = message.delegationResponse ? DelegationResponse.toSDK(message.delegationResponse) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegationResponseAmino): QueryDelegationResponse {
-    return {
-      delegationResponse: object?.delegation_response ? DelegationResponse.fromAmino(object.delegation_response) : undefined
-    };
-  },
-  toAmino(message: QueryDelegationResponse): QueryDelegationResponseAmino {
-    const obj: any = {};
-    obj.delegation_response = message.delegationResponse ? DelegationResponse.toAmino(message.delegationResponse) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegationResponseAminoMsg): QueryDelegationResponse {
-    return QueryDelegationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegationResponse): QueryDelegationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegationResponse",
-      value: QueryDelegationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegationResponseProtoMsg): QueryDelegationResponse {
-    return QueryDelegationResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegationResponse): Uint8Array {
-    return QueryDelegationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegationResponse): QueryDelegationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegationResponse",
-      value: QueryDelegationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnbondingDelegationRequest(): QueryUnbondingDelegationRequest {
-  return {
-    delegatorAddr: "",
-    validatorAddr: ""
-  };
-}
-export const QueryUnbondingDelegationRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest",
-  aminoType: "cosmos-sdk/QueryUnbondingDelegationRequest",
-  encode(message: QueryUnbondingDelegationRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.validatorAddr !== "") {
-      writer.uint32(18).string(message.validatorAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnbondingDelegationRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnbondingDelegationRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.validatorAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnbondingDelegationRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : ""
-    };
-  },
-  toJSON(message: QueryUnbondingDelegationRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnbondingDelegationRequest>): QueryUnbondingDelegationRequest {
-    const message = createBaseQueryUnbondingDelegationRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.validatorAddr = object.validatorAddr ?? "";
-    return message;
-  },
-  fromSDK(object: QueryUnbondingDelegationRequestSDKType): QueryUnbondingDelegationRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      validatorAddr: object?.validator_addr
-    };
-  },
-  toSDK(message: QueryUnbondingDelegationRequest): QueryUnbondingDelegationRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAmino(object: QueryUnbondingDelegationRequestAmino): QueryUnbondingDelegationRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      validatorAddr: object.validator_addr
-    };
-  },
-  toAmino(message: QueryUnbondingDelegationRequest): QueryUnbondingDelegationRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnbondingDelegationRequestAminoMsg): QueryUnbondingDelegationRequest {
-    return QueryUnbondingDelegationRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnbondingDelegationRequest): QueryUnbondingDelegationRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnbondingDelegationRequest",
-      value: QueryUnbondingDelegationRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnbondingDelegationRequestProtoMsg): QueryUnbondingDelegationRequest {
-    return QueryUnbondingDelegationRequest.decode(message.value);
-  },
-  toProto(message: QueryUnbondingDelegationRequest): Uint8Array {
-    return QueryUnbondingDelegationRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnbondingDelegationRequest): QueryUnbondingDelegationRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest",
-      value: QueryUnbondingDelegationRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnbondingDelegationResponse(): QueryUnbondingDelegationResponse {
-  return {
-    unbond: UnbondingDelegation.fromPartial({})
-  };
-}
-export const QueryUnbondingDelegationResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse",
-  aminoType: "cosmos-sdk/QueryUnbondingDelegationResponse",
-  encode(message: QueryUnbondingDelegationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.unbond !== undefined) {
-      UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnbondingDelegationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnbondingDelegationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.unbond = UnbondingDelegation.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnbondingDelegationResponse {
-    return {
-      unbond: isSet(object.unbond) ? UnbondingDelegation.fromJSON(object.unbond) : undefined
-    };
-  },
-  toJSON(message: QueryUnbondingDelegationResponse): unknown {
-    const obj: any = {};
-    message.unbond !== undefined && (obj.unbond = message.unbond ? UnbondingDelegation.toJSON(message.unbond) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnbondingDelegationResponse>): QueryUnbondingDelegationResponse {
-    const message = createBaseQueryUnbondingDelegationResponse();
-    message.unbond = object.unbond !== undefined && object.unbond !== null ? UnbondingDelegation.fromPartial(object.unbond) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryUnbondingDelegationResponseSDKType): QueryUnbondingDelegationResponse {
-    return {
-      unbond: object.unbond ? UnbondingDelegation.fromSDK(object.unbond) : undefined
-    };
-  },
-  toSDK(message: QueryUnbondingDelegationResponse): QueryUnbondingDelegationResponseSDKType {
-    const obj: any = {};
-    message.unbond !== undefined && (obj.unbond = message.unbond ? UnbondingDelegation.toSDK(message.unbond) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryUnbondingDelegationResponseAmino): QueryUnbondingDelegationResponse {
-    return {
-      unbond: object?.unbond ? UnbondingDelegation.fromAmino(object.unbond) : undefined
-    };
-  },
-  toAmino(message: QueryUnbondingDelegationResponse): QueryUnbondingDelegationResponseAmino {
-    const obj: any = {};
-    obj.unbond = message.unbond ? UnbondingDelegation.toAmino(message.unbond) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnbondingDelegationResponseAminoMsg): QueryUnbondingDelegationResponse {
-    return QueryUnbondingDelegationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnbondingDelegationResponse): QueryUnbondingDelegationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnbondingDelegationResponse",
-      value: QueryUnbondingDelegationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnbondingDelegationResponseProtoMsg): QueryUnbondingDelegationResponse {
-    return QueryUnbondingDelegationResponse.decode(message.value);
-  },
-  toProto(message: QueryUnbondingDelegationResponse): Uint8Array {
-    return QueryUnbondingDelegationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnbondingDelegationResponse): QueryUnbondingDelegationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse",
-      value: QueryUnbondingDelegationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorDelegationsRequest(): QueryDelegatorDelegationsRequest {
-  return {
-    delegatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDelegatorDelegationsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorDelegationsRequest",
-  encode(message: QueryDelegatorDelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorDelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorDelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorDelegationsRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorDelegationsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorDelegationsRequest>): QueryDelegatorDelegationsRequest {
-    const message = createBaseQueryDelegatorDelegationsRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorDelegationsRequestSDKType): QueryDelegatorDelegationsRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorDelegationsRequest): QueryDelegatorDelegationsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorDelegationsRequestAmino): QueryDelegatorDelegationsRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorDelegationsRequest): QueryDelegatorDelegationsRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorDelegationsRequestAminoMsg): QueryDelegatorDelegationsRequest {
-    return QueryDelegatorDelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorDelegationsRequest): QueryDelegatorDelegationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorDelegationsRequest",
-      value: QueryDelegatorDelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorDelegationsRequestProtoMsg): QueryDelegatorDelegationsRequest {
-    return QueryDelegatorDelegationsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorDelegationsRequest): Uint8Array {
-    return QueryDelegatorDelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorDelegationsRequest): QueryDelegatorDelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest",
-      value: QueryDelegatorDelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorDelegationsResponse(): QueryDelegatorDelegationsResponse {
-  return {
-    delegationResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDelegatorDelegationsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorDelegationsResponse",
-  encode(message: QueryDelegatorDelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.delegationResponses) {
-      DelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorDelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorDelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegationResponses) ? object.delegationResponses.map((e: any) => DelegationResponse.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorDelegationsResponse): unknown {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegationResponses = message.delegationResponses.map(e => e ? DelegationResponse.toJSON(e) : undefined);
-    } else {
-      obj.delegationResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorDelegationsResponse>): QueryDelegatorDelegationsResponse {
-    const message = createBaseQueryDelegatorDelegationsResponse();
-    message.delegationResponses = object.delegationResponses?.map(e => DelegationResponse.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorDelegationsResponseSDKType): QueryDelegatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegation_responses) ? object.delegation_responses.map((e: any) => DelegationResponse.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorDelegationsResponse): QueryDelegatorDelegationsResponseSDKType {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegation_responses = message.delegationResponses.map(e => e ? DelegationResponse.toSDK(e) : undefined);
-    } else {
-      obj.delegation_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorDelegationsResponseAmino): QueryDelegatorDelegationsResponse {
-    return {
-      delegationResponses: Array.isArray(object?.delegation_responses) ? object.delegation_responses.map((e: any) => DelegationResponse.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorDelegationsResponse): QueryDelegatorDelegationsResponseAmino {
-    const obj: any = {};
-    if (message.delegationResponses) {
-      obj.delegation_responses = message.delegationResponses.map(e => e ? DelegationResponse.toAmino(e) : undefined);
-    } else {
-      obj.delegation_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorDelegationsResponseAminoMsg): QueryDelegatorDelegationsResponse {
-    return QueryDelegatorDelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorDelegationsResponse): QueryDelegatorDelegationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorDelegationsResponse",
-      value: QueryDelegatorDelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorDelegationsResponseProtoMsg): QueryDelegatorDelegationsResponse {
-    return QueryDelegatorDelegationsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorDelegationsResponse): Uint8Array {
-    return QueryDelegatorDelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorDelegationsResponse): QueryDelegatorDelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse",
-      value: QueryDelegatorDelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorUnbondingDelegationsRequest(): QueryDelegatorUnbondingDelegationsRequest {
-  return {
-    delegatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDelegatorUnbondingDelegationsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorUnbondingDelegationsRequest",
-  encode(message: QueryDelegatorUnbondingDelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorUnbondingDelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorUnbondingDelegationsRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorUnbondingDelegationsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorUnbondingDelegationsRequest>): QueryDelegatorUnbondingDelegationsRequest {
-    const message = createBaseQueryDelegatorUnbondingDelegationsRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorUnbondingDelegationsRequestSDKType): QueryDelegatorUnbondingDelegationsRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorUnbondingDelegationsRequest): QueryDelegatorUnbondingDelegationsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorUnbondingDelegationsRequestAmino): QueryDelegatorUnbondingDelegationsRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorUnbondingDelegationsRequest): QueryDelegatorUnbondingDelegationsRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorUnbondingDelegationsRequestAminoMsg): QueryDelegatorUnbondingDelegationsRequest {
-    return QueryDelegatorUnbondingDelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorUnbondingDelegationsRequest): QueryDelegatorUnbondingDelegationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorUnbondingDelegationsRequest",
-      value: QueryDelegatorUnbondingDelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorUnbondingDelegationsRequestProtoMsg): QueryDelegatorUnbondingDelegationsRequest {
-    return QueryDelegatorUnbondingDelegationsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorUnbondingDelegationsRequest): Uint8Array {
-    return QueryDelegatorUnbondingDelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorUnbondingDelegationsRequest): QueryDelegatorUnbondingDelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest",
-      value: QueryDelegatorUnbondingDelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorUnbondingDelegationsResponse(): QueryDelegatorUnbondingDelegationsResponse {
-  return {
-    unbondingResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDelegatorUnbondingDelegationsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorUnbondingDelegationsResponse",
-  encode(message: QueryDelegatorUnbondingDelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.unbondingResponses) {
-      UnbondingDelegation.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorUnbondingDelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbondingResponses) ? object.unbondingResponses.map((e: any) => UnbondingDelegation.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorUnbondingDelegationsResponse): unknown {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbondingResponses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toJSON(e) : undefined);
-    } else {
-      obj.unbondingResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorUnbondingDelegationsResponse>): QueryDelegatorUnbondingDelegationsResponse {
-    const message = createBaseQueryDelegatorUnbondingDelegationsResponse();
-    message.unbondingResponses = object.unbondingResponses?.map(e => UnbondingDelegation.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorUnbondingDelegationsResponseSDKType): QueryDelegatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbonding_responses) ? object.unbonding_responses.map((e: any) => UnbondingDelegation.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorUnbondingDelegationsResponse): QueryDelegatorUnbondingDelegationsResponseSDKType {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbonding_responses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toSDK(e) : undefined);
-    } else {
-      obj.unbonding_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorUnbondingDelegationsResponseAmino): QueryDelegatorUnbondingDelegationsResponse {
-    return {
-      unbondingResponses: Array.isArray(object?.unbonding_responses) ? object.unbonding_responses.map((e: any) => UnbondingDelegation.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorUnbondingDelegationsResponse): QueryDelegatorUnbondingDelegationsResponseAmino {
-    const obj: any = {};
-    if (message.unbondingResponses) {
-      obj.unbonding_responses = message.unbondingResponses.map(e => e ? UnbondingDelegation.toAmino(e) : undefined);
-    } else {
-      obj.unbonding_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorUnbondingDelegationsResponseAminoMsg): QueryDelegatorUnbondingDelegationsResponse {
-    return QueryDelegatorUnbondingDelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorUnbondingDelegationsResponse): QueryDelegatorUnbondingDelegationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorUnbondingDelegationsResponse",
-      value: QueryDelegatorUnbondingDelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorUnbondingDelegationsResponseProtoMsg): QueryDelegatorUnbondingDelegationsResponse {
-    return QueryDelegatorUnbondingDelegationsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorUnbondingDelegationsResponse): Uint8Array {
-    return QueryDelegatorUnbondingDelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorUnbondingDelegationsResponse): QueryDelegatorUnbondingDelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse",
-      value: QueryDelegatorUnbondingDelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryRedelegationsRequest(): QueryRedelegationsRequest {
-  return {
-    delegatorAddr: "",
-    srcValidatorAddr: "",
-    dstValidatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryRedelegationsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsRequest",
-  aminoType: "cosmos-sdk/QueryRedelegationsRequest",
-  encode(message: QueryRedelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.srcValidatorAddr !== "") {
-      writer.uint32(18).string(message.srcValidatorAddr);
-    }
-    if (message.dstValidatorAddr !== "") {
-      writer.uint32(26).string(message.dstValidatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryRedelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryRedelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.srcValidatorAddr = reader.string();
-          break;
-        case 3:
-          message.dstValidatorAddr = reader.string();
-          break;
-        case 4:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryRedelegationsRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      srcValidatorAddr: isSet(object.srcValidatorAddr) ? String(object.srcValidatorAddr) : "",
-      dstValidatorAddr: isSet(object.dstValidatorAddr) ? String(object.dstValidatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryRedelegationsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.srcValidatorAddr !== undefined && (obj.srcValidatorAddr = message.srcValidatorAddr);
-    message.dstValidatorAddr !== undefined && (obj.dstValidatorAddr = message.dstValidatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryRedelegationsRequest>): QueryRedelegationsRequest {
-    const message = createBaseQueryRedelegationsRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.srcValidatorAddr = object.srcValidatorAddr ?? "";
-    message.dstValidatorAddr = object.dstValidatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryRedelegationsRequestSDKType): QueryRedelegationsRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      srcValidatorAddr: object?.src_validator_addr,
-      dstValidatorAddr: object?.dst_validator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryRedelegationsRequest): QueryRedelegationsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.src_validator_addr = message.srcValidatorAddr;
-    obj.dst_validator_addr = message.dstValidatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryRedelegationsRequestAmino): QueryRedelegationsRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      srcValidatorAddr: object.src_validator_addr,
-      dstValidatorAddr: object.dst_validator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryRedelegationsRequest): QueryRedelegationsRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.src_validator_addr = message.srcValidatorAddr;
-    obj.dst_validator_addr = message.dstValidatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryRedelegationsRequestAminoMsg): QueryRedelegationsRequest {
-    return QueryRedelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryRedelegationsRequest): QueryRedelegationsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryRedelegationsRequest",
-      value: QueryRedelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryRedelegationsRequestProtoMsg): QueryRedelegationsRequest {
-    return QueryRedelegationsRequest.decode(message.value);
-  },
-  toProto(message: QueryRedelegationsRequest): Uint8Array {
-    return QueryRedelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryRedelegationsRequest): QueryRedelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsRequest",
-      value: QueryRedelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryRedelegationsResponse(): QueryRedelegationsResponse {
-  return {
-    redelegationResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryRedelegationsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsResponse",
-  aminoType: "cosmos-sdk/QueryRedelegationsResponse",
-  encode(message: QueryRedelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.redelegationResponses) {
-      RedelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryRedelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryRedelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.redelegationResponses.push(RedelegationResponse.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryRedelegationsResponse {
-    return {
-      redelegationResponses: Array.isArray(object?.redelegationResponses) ? object.redelegationResponses.map((e: any) => RedelegationResponse.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryRedelegationsResponse): unknown {
-    const obj: any = {};
-    if (message.redelegationResponses) {
-      obj.redelegationResponses = message.redelegationResponses.map(e => e ? RedelegationResponse.toJSON(e) : undefined);
-    } else {
-      obj.redelegationResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryRedelegationsResponse>): QueryRedelegationsResponse {
-    const message = createBaseQueryRedelegationsResponse();
-    message.redelegationResponses = object.redelegationResponses?.map(e => RedelegationResponse.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryRedelegationsResponseSDKType): QueryRedelegationsResponse {
-    return {
-      redelegationResponses: Array.isArray(object?.redelegation_responses) ? object.redelegation_responses.map((e: any) => RedelegationResponse.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryRedelegationsResponse): QueryRedelegationsResponseSDKType {
-    const obj: any = {};
-    if (message.redelegationResponses) {
-      obj.redelegation_responses = message.redelegationResponses.map(e => e ? RedelegationResponse.toSDK(e) : undefined);
-    } else {
-      obj.redelegation_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryRedelegationsResponseAmino): QueryRedelegationsResponse {
-    return {
-      redelegationResponses: Array.isArray(object?.redelegation_responses) ? object.redelegation_responses.map((e: any) => RedelegationResponse.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryRedelegationsResponse): QueryRedelegationsResponseAmino {
-    const obj: any = {};
-    if (message.redelegationResponses) {
-      obj.redelegation_responses = message.redelegationResponses.map(e => e ? RedelegationResponse.toAmino(e) : undefined);
-    } else {
-      obj.redelegation_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryRedelegationsResponseAminoMsg): QueryRedelegationsResponse {
-    return QueryRedelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryRedelegationsResponse): QueryRedelegationsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryRedelegationsResponse",
-      value: QueryRedelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryRedelegationsResponseProtoMsg): QueryRedelegationsResponse {
-    return QueryRedelegationsResponse.decode(message.value);
-  },
-  toProto(message: QueryRedelegationsResponse): Uint8Array {
-    return QueryRedelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryRedelegationsResponse): QueryRedelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsResponse",
-      value: QueryRedelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorsRequest(): QueryDelegatorValidatorsRequest {
-  return {
-    delegatorAddr: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDelegatorValidatorsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorsRequest",
-  encode(message: QueryDelegatorValidatorsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorsRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorsRequest>): QueryDelegatorValidatorsRequest {
-    const message = createBaseQueryDelegatorValidatorsRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorsRequestSDKType): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorsRequestAmino): QueryDelegatorValidatorsRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorsRequestAminoMsg): QueryDelegatorValidatorsRequest {
-    return QueryDelegatorValidatorsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorsRequest",
-      value: QueryDelegatorValidatorsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorsRequestProtoMsg): QueryDelegatorValidatorsRequest {
-    return QueryDelegatorValidatorsRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorsRequest): Uint8Array {
-    return QueryDelegatorValidatorsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorsRequest): QueryDelegatorValidatorsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest",
-      value: QueryDelegatorValidatorsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorsResponse(): QueryDelegatorValidatorsResponse {
-  return {
-    validators: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDelegatorValidatorsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorsResponse",
-  encode(message: QueryDelegatorValidatorsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorsResponse): unknown {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorsResponse>): QueryDelegatorValidatorsResponse {
-    const message = createBaseQueryDelegatorValidatorsResponse();
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorsResponseSDKType): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseSDKType {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorsResponseAmino): QueryDelegatorValidatorsResponse {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseAmino {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorsResponseAminoMsg): QueryDelegatorValidatorsResponse {
-    return QueryDelegatorValidatorsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorsResponse",
-      value: QueryDelegatorValidatorsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorsResponseProtoMsg): QueryDelegatorValidatorsResponse {
-    return QueryDelegatorValidatorsResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorsResponse): Uint8Array {
-    return QueryDelegatorValidatorsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorsResponse): QueryDelegatorValidatorsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse",
-      value: QueryDelegatorValidatorsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorRequest(): QueryDelegatorValidatorRequest {
-  return {
-    delegatorAddr: "",
-    validatorAddr: ""
-  };
-}
-export const QueryDelegatorValidatorRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorRequest",
-  encode(message: QueryDelegatorValidatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddr !== "") {
-      writer.uint32(10).string(message.delegatorAddr);
-    }
-    if (message.validatorAddr !== "") {
-      writer.uint32(18).string(message.validatorAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddr = reader.string();
-          break;
-        case 2:
-          message.validatorAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorRequest {
-    return {
-      delegatorAddr: isSet(object.delegatorAddr) ? String(object.delegatorAddr) : "",
-      validatorAddr: isSet(object.validatorAddr) ? String(object.validatorAddr) : ""
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);
-    message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorRequest>): QueryDelegatorValidatorRequest {
-    const message = createBaseQueryDelegatorValidatorRequest();
-    message.delegatorAddr = object.delegatorAddr ?? "";
-    message.validatorAddr = object.validatorAddr ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorRequestSDKType): QueryDelegatorValidatorRequest {
-    return {
-      delegatorAddr: object?.delegator_addr,
-      validatorAddr: object?.validator_addr
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorRequest): QueryDelegatorValidatorRequestSDKType {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorRequestAmino): QueryDelegatorValidatorRequest {
-    return {
-      delegatorAddr: object.delegator_addr,
-      validatorAddr: object.validator_addr
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorRequest): QueryDelegatorValidatorRequestAmino {
-    const obj: any = {};
-    obj.delegator_addr = message.delegatorAddr;
-    obj.validator_addr = message.validatorAddr;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorRequestAminoMsg): QueryDelegatorValidatorRequest {
-    return QueryDelegatorValidatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorRequest): QueryDelegatorValidatorRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorRequest",
-      value: QueryDelegatorValidatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorRequestProtoMsg): QueryDelegatorValidatorRequest {
-    return QueryDelegatorValidatorRequest.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorRequest): Uint8Array {
-    return QueryDelegatorValidatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorRequest): QueryDelegatorValidatorRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest",
-      value: QueryDelegatorValidatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDelegatorValidatorResponse(): QueryDelegatorValidatorResponse {
-  return {
-    validator: Validator.fromPartial({})
-  };
-}
-export const QueryDelegatorValidatorResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse",
-  aminoType: "cosmos-sdk/QueryDelegatorValidatorResponse",
-  encode(message: QueryDelegatorValidatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validator !== undefined) {
-      Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDelegatorValidatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDelegatorValidatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validator = Validator.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDelegatorValidatorResponse {
-    return {
-      validator: isSet(object.validator) ? Validator.fromJSON(object.validator) : undefined
-    };
-  },
-  toJSON(message: QueryDelegatorValidatorResponse): unknown {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toJSON(message.validator) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDelegatorValidatorResponse>): QueryDelegatorValidatorResponse {
-    const message = createBaseQueryDelegatorValidatorResponse();
-    message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDelegatorValidatorResponseSDKType): QueryDelegatorValidatorResponse {
-    return {
-      validator: object.validator ? Validator.fromSDK(object.validator) : undefined
-    };
-  },
-  toSDK(message: QueryDelegatorValidatorResponse): QueryDelegatorValidatorResponseSDKType {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toSDK(message.validator) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDelegatorValidatorResponseAmino): QueryDelegatorValidatorResponse {
-    return {
-      validator: object?.validator ? Validator.fromAmino(object.validator) : undefined
-    };
-  },
-  toAmino(message: QueryDelegatorValidatorResponse): QueryDelegatorValidatorResponseAmino {
-    const obj: any = {};
-    obj.validator = message.validator ? Validator.toAmino(message.validator) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDelegatorValidatorResponseAminoMsg): QueryDelegatorValidatorResponse {
-    return QueryDelegatorValidatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDelegatorValidatorResponse): QueryDelegatorValidatorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDelegatorValidatorResponse",
-      value: QueryDelegatorValidatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDelegatorValidatorResponseProtoMsg): QueryDelegatorValidatorResponse {
-    return QueryDelegatorValidatorResponse.decode(message.value);
-  },
-  toProto(message: QueryDelegatorValidatorResponse): Uint8Array {
-    return QueryDelegatorValidatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDelegatorValidatorResponse): QueryDelegatorValidatorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse",
-      value: QueryDelegatorValidatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryHistoricalInfoRequest(): QueryHistoricalInfoRequest {
-  return {
-    height: BigInt(0)
-  };
-}
-export const QueryHistoricalInfoRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoRequest",
-  aminoType: "cosmos-sdk/QueryHistoricalInfoRequest",
-  encode(message: QueryHistoricalInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryHistoricalInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryHistoricalInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryHistoricalInfoRequest {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryHistoricalInfoRequest): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryHistoricalInfoRequest>): QueryHistoricalInfoRequest {
-    const message = createBaseQueryHistoricalInfoRequest();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryHistoricalInfoRequestSDKType): QueryHistoricalInfoRequest {
-    return {
-      height: object?.height
-    };
-  },
-  toSDK(message: QueryHistoricalInfoRequest): QueryHistoricalInfoRequestSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: QueryHistoricalInfoRequestAmino): QueryHistoricalInfoRequest {
-    return {
-      height: BigInt(object.height)
-    };
-  },
-  toAmino(message: QueryHistoricalInfoRequest): QueryHistoricalInfoRequestAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryHistoricalInfoRequestAminoMsg): QueryHistoricalInfoRequest {
-    return QueryHistoricalInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryHistoricalInfoRequest): QueryHistoricalInfoRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryHistoricalInfoRequest",
-      value: QueryHistoricalInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryHistoricalInfoRequestProtoMsg): QueryHistoricalInfoRequest {
-    return QueryHistoricalInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryHistoricalInfoRequest): Uint8Array {
-    return QueryHistoricalInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryHistoricalInfoRequest): QueryHistoricalInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoRequest",
-      value: QueryHistoricalInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryHistoricalInfoResponse(): QueryHistoricalInfoResponse {
-  return {
-    hist: HistoricalInfo.fromPartial({})
-  };
-}
-export const QueryHistoricalInfoResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoResponse",
-  aminoType: "cosmos-sdk/QueryHistoricalInfoResponse",
-  encode(message: QueryHistoricalInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hist !== undefined) {
-      HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryHistoricalInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryHistoricalInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hist = HistoricalInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryHistoricalInfoResponse {
-    return {
-      hist: isSet(object.hist) ? HistoricalInfo.fromJSON(object.hist) : undefined
-    };
-  },
-  toJSON(message: QueryHistoricalInfoResponse): unknown {
-    const obj: any = {};
-    message.hist !== undefined && (obj.hist = message.hist ? HistoricalInfo.toJSON(message.hist) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryHistoricalInfoResponse>): QueryHistoricalInfoResponse {
-    const message = createBaseQueryHistoricalInfoResponse();
-    message.hist = object.hist !== undefined && object.hist !== null ? HistoricalInfo.fromPartial(object.hist) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryHistoricalInfoResponseSDKType): QueryHistoricalInfoResponse {
-    return {
-      hist: object.hist ? HistoricalInfo.fromSDK(object.hist) : undefined
-    };
-  },
-  toSDK(message: QueryHistoricalInfoResponse): QueryHistoricalInfoResponseSDKType {
-    const obj: any = {};
-    message.hist !== undefined && (obj.hist = message.hist ? HistoricalInfo.toSDK(message.hist) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryHistoricalInfoResponseAmino): QueryHistoricalInfoResponse {
-    return {
-      hist: object?.hist ? HistoricalInfo.fromAmino(object.hist) : undefined
-    };
-  },
-  toAmino(message: QueryHistoricalInfoResponse): QueryHistoricalInfoResponseAmino {
-    const obj: any = {};
-    obj.hist = message.hist ? HistoricalInfo.toAmino(message.hist) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryHistoricalInfoResponseAminoMsg): QueryHistoricalInfoResponse {
-    return QueryHistoricalInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryHistoricalInfoResponse): QueryHistoricalInfoResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryHistoricalInfoResponse",
-      value: QueryHistoricalInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryHistoricalInfoResponseProtoMsg): QueryHistoricalInfoResponse {
-    return QueryHistoricalInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryHistoricalInfoResponse): Uint8Array {
-    return QueryHistoricalInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryHistoricalInfoResponse): QueryHistoricalInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoResponse",
-      value: QueryHistoricalInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolRequest(): QueryPoolRequest {
-  return {};
-}
-export const QueryPoolRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryPoolRequest",
-  aminoType: "cosmos-sdk/QueryPoolRequest",
-  encode(_: QueryPoolRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryPoolRequest {
-    return {};
-  },
-  toJSON(_: QueryPoolRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryPoolRequest>): QueryPoolRequest {
-    const message = createBaseQueryPoolRequest();
-    return message;
-  },
-  fromSDK(_: QueryPoolRequestSDKType): QueryPoolRequest {
-    return {};
-  },
-  toSDK(_: QueryPoolRequest): QueryPoolRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryPoolRequestAmino): QueryPoolRequest {
-    return {};
-  },
-  toAmino(_: QueryPoolRequest): QueryPoolRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolRequestAminoMsg): QueryPoolRequest {
-    return QueryPoolRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolRequest): QueryPoolRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPoolRequest",
-      value: QueryPoolRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolRequestProtoMsg): QueryPoolRequest {
-    return QueryPoolRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolRequest): Uint8Array {
-    return QueryPoolRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolRequest): QueryPoolRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryPoolRequest",
-      value: QueryPoolRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolResponse(): QueryPoolResponse {
-  return {
-    pool: Pool.fromPartial({})
-  };
-}
-export const QueryPoolResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryPoolResponse",
-  aminoType: "cosmos-sdk/QueryPoolResponse",
-  encode(message: QueryPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pool !== undefined) {
-      Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pool = Pool.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolResponse {
-    return {
-      pool: isSet(object.pool) ? Pool.fromJSON(object.pool) : undefined
-    };
-  },
-  toJSON(message: QueryPoolResponse): unknown {
-    const obj: any = {};
-    message.pool !== undefined && (obj.pool = message.pool ? Pool.toJSON(message.pool) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolResponse>): QueryPoolResponse {
-    const message = createBaseQueryPoolResponse();
-    message.pool = object.pool !== undefined && object.pool !== null ? Pool.fromPartial(object.pool) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolResponseSDKType): QueryPoolResponse {
-    return {
-      pool: object.pool ? Pool.fromSDK(object.pool) : undefined
-    };
-  },
-  toSDK(message: QueryPoolResponse): QueryPoolResponseSDKType {
-    const obj: any = {};
-    message.pool !== undefined && (obj.pool = message.pool ? Pool.toSDK(message.pool) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolResponseAmino): QueryPoolResponse {
-    return {
-      pool: object?.pool ? Pool.fromAmino(object.pool) : undefined
-    };
-  },
-  toAmino(message: QueryPoolResponse): QueryPoolResponseAmino {
-    const obj: any = {};
-    obj.pool = message.pool ? Pool.toAmino(message.pool) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolResponseAminoMsg): QueryPoolResponse {
-    return QueryPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolResponse): QueryPoolResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPoolResponse",
-      value: QueryPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolResponseProtoMsg): QueryPoolResponse {
-    return QueryPoolResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolResponse): Uint8Array {
-    return QueryPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolResponse): QueryPoolResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryPoolResponse",
-      value: QueryPoolResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/staking.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/staking.ts
deleted file mode 100644
index fe0f8e89..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/staking.ts
+++ /dev/null
@@ -1,3274 +0,0 @@
-//@ts-nocheck
-import { Header, HeaderAmino, HeaderSDKType } from "../../../tendermint/types/types";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers";
-import { Decimal } from "@cosmjs/math";
-import { encodePubkey, decodePubkey } from "@cosmjs/proto-signing";
-/** BondStatus is the status of a validator. */
-export enum BondStatus {
-  /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */
-  BOND_STATUS_UNSPECIFIED = 0,
-  /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */
-  BOND_STATUS_UNBONDED = 1,
-  /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */
-  BOND_STATUS_UNBONDING = 2,
-  /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */
-  BOND_STATUS_BONDED = 3,
-  UNRECOGNIZED = -1,
-}
-export const BondStatusSDKType = BondStatus;
-export const BondStatusAmino = BondStatus;
-export function bondStatusFromJSON(object: any): BondStatus {
-  switch (object) {
-    case 0:
-    case "BOND_STATUS_UNSPECIFIED":
-      return BondStatus.BOND_STATUS_UNSPECIFIED;
-    case 1:
-    case "BOND_STATUS_UNBONDED":
-      return BondStatus.BOND_STATUS_UNBONDED;
-    case 2:
-    case "BOND_STATUS_UNBONDING":
-      return BondStatus.BOND_STATUS_UNBONDING;
-    case 3:
-    case "BOND_STATUS_BONDED":
-      return BondStatus.BOND_STATUS_BONDED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return BondStatus.UNRECOGNIZED;
-  }
-}
-export function bondStatusToJSON(object: BondStatus): string {
-  switch (object) {
-    case BondStatus.BOND_STATUS_UNSPECIFIED:
-      return "BOND_STATUS_UNSPECIFIED";
-    case BondStatus.BOND_STATUS_UNBONDED:
-      return "BOND_STATUS_UNBONDED";
-    case BondStatus.BOND_STATUS_UNBONDING:
-      return "BOND_STATUS_UNBONDING";
-    case BondStatus.BOND_STATUS_BONDED:
-      return "BOND_STATUS_BONDED";
-    case BondStatus.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * HistoricalInfo contains header and validator information for a given block.
- * It is stored as part of staking module's state, which persists the `n` most
- * recent HistoricalInfo
- * (`n` is set by the staking module's `historical_entries` parameter).
- */
-export interface HistoricalInfo {
-  header: Header | undefined;
-  valset: Validator[];
-}
-export interface HistoricalInfoProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.HistoricalInfo";
-  value: Uint8Array;
-}
-/**
- * HistoricalInfo contains header and validator information for a given block.
- * It is stored as part of staking module's state, which persists the `n` most
- * recent HistoricalInfo
- * (`n` is set by the staking module's `historical_entries` parameter).
- */
-export interface HistoricalInfoAmino {
-  header?: HeaderAmino | undefined;
-  valset: ValidatorAmino[];
-}
-export interface HistoricalInfoAminoMsg {
-  type: "cosmos-sdk/HistoricalInfo";
-  value: HistoricalInfoAmino;
-}
-/**
- * HistoricalInfo contains header and validator information for a given block.
- * It is stored as part of staking module's state, which persists the `n` most
- * recent HistoricalInfo
- * (`n` is set by the staking module's `historical_entries` parameter).
- */
-export interface HistoricalInfoSDKType {
-  header: HeaderSDKType | undefined;
-  valset: ValidatorSDKType[];
-}
-/**
- * CommissionRates defines the initial commission rates to be used for creating
- * a validator.
- */
-export interface CommissionRates {
-  /** rate is the commission rate charged to delegators, as a fraction. */
-  rate: string;
-  /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */
-  maxRate: string;
-  /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */
-  maxChangeRate: string;
-}
-export interface CommissionRatesProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.CommissionRates";
-  value: Uint8Array;
-}
-/**
- * CommissionRates defines the initial commission rates to be used for creating
- * a validator.
- */
-export interface CommissionRatesAmino {
-  /** rate is the commission rate charged to delegators, as a fraction. */
-  rate: string;
-  /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */
-  max_rate: string;
-  /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */
-  max_change_rate: string;
-}
-export interface CommissionRatesAminoMsg {
-  type: "cosmos-sdk/CommissionRates";
-  value: CommissionRatesAmino;
-}
-/**
- * CommissionRates defines the initial commission rates to be used for creating
- * a validator.
- */
-export interface CommissionRatesSDKType {
-  rate: string;
-  max_rate: string;
-  max_change_rate: string;
-}
-/** Commission defines commission parameters for a given validator. */
-export interface Commission {
-  /** commission_rates defines the initial commission rates to be used for creating a validator. */
-  commissionRates: CommissionRates | undefined;
-  /** update_time is the last time the commission rate was changed. */
-  updateTime: Date | undefined;
-}
-export interface CommissionProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Commission";
-  value: Uint8Array;
-}
-/** Commission defines commission parameters for a given validator. */
-export interface CommissionAmino {
-  /** commission_rates defines the initial commission rates to be used for creating a validator. */
-  commission_rates?: CommissionRatesAmino | undefined;
-  /** update_time is the last time the commission rate was changed. */
-  update_time?: Date | undefined;
-}
-export interface CommissionAminoMsg {
-  type: "cosmos-sdk/Commission";
-  value: CommissionAmino;
-}
-/** Commission defines commission parameters for a given validator. */
-export interface CommissionSDKType {
-  commission_rates: CommissionRatesSDKType | undefined;
-  update_time: Date | undefined;
-}
-/** Description defines a validator description. */
-export interface Description {
-  /** moniker defines a human-readable name for the validator. */
-  moniker: string;
-  /** identity defines an optional identity signature (ex. UPort or Keybase). */
-  identity: string;
-  /** website defines an optional website link. */
-  website: string;
-  /** security_contact defines an optional email for security contact. */
-  securityContact: string;
-  /** details define other optional details. */
-  details: string;
-}
-export interface DescriptionProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Description";
-  value: Uint8Array;
-}
-/** Description defines a validator description. */
-export interface DescriptionAmino {
-  /** moniker defines a human-readable name for the validator. */
-  moniker: string;
-  /** identity defines an optional identity signature (ex. UPort or Keybase). */
-  identity: string;
-  /** website defines an optional website link. */
-  website: string;
-  /** security_contact defines an optional email for security contact. */
-  security_contact: string;
-  /** details define other optional details. */
-  details: string;
-}
-export interface DescriptionAminoMsg {
-  type: "cosmos-sdk/Description";
-  value: DescriptionAmino;
-}
-/** Description defines a validator description. */
-export interface DescriptionSDKType {
-  moniker: string;
-  identity: string;
-  website: string;
-  security_contact: string;
-  details: string;
-}
-/**
- * Validator defines a validator, together with the total amount of the
- * Validator's bond shares and their exchange rate to coins. Slashing results in
- * a decrease in the exchange rate, allowing correct calculation of future
- * undelegations without iterating over delegators. When coins are delegated to
- * this validator, the validator is credited with a delegation whose number of
- * bond shares is based on the amount of coins delegated divided by the current
- * exchange rate. Voting power can be calculated as total bonded shares
- * multiplied by exchange rate.
- */
-export interface Validator {
-  /** operator_address defines the address of the validator's operator; bech encoded in JSON. */
-  operatorAddress: string;
-  /** consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */
-  consensusPubkey: Any | undefined;
-  /** jailed defined whether the validator has been jailed from bonded status or not. */
-  jailed: boolean;
-  /** status is the validator status (bonded/unbonding/unbonded). */
-  status: BondStatus;
-  /** tokens define the delegated tokens (incl. self-delegation). */
-  tokens: string;
-  /** delegator_shares defines total shares issued to a validator's delegators. */
-  delegatorShares: string;
-  /** description defines the description terms for the validator. */
-  description: Description | undefined;
-  /** unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */
-  unbondingHeight: bigint;
-  /** unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */
-  unbondingTime: Date | undefined;
-  /** commission defines the commission parameters. */
-  commission: Commission | undefined;
-  /** min_self_delegation is the validator's self declared minimum self delegation. */
-  minSelfDelegation: string;
-}
-export interface ValidatorProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Validator";
-  value: Uint8Array;
-}
-/**
- * Validator defines a validator, together with the total amount of the
- * Validator's bond shares and their exchange rate to coins. Slashing results in
- * a decrease in the exchange rate, allowing correct calculation of future
- * undelegations without iterating over delegators. When coins are delegated to
- * this validator, the validator is credited with a delegation whose number of
- * bond shares is based on the amount of coins delegated divided by the current
- * exchange rate. Voting power can be calculated as total bonded shares
- * multiplied by exchange rate.
- */
-export interface ValidatorAmino {
-  /** operator_address defines the address of the validator's operator; bech encoded in JSON. */
-  operator_address: string;
-  /** consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */
-  consensus_pubkey?: AnyAmino | undefined;
-  /** jailed defined whether the validator has been jailed from bonded status or not. */
-  jailed: boolean;
-  /** status is the validator status (bonded/unbonding/unbonded). */
-  status: BondStatus;
-  /** tokens define the delegated tokens (incl. self-delegation). */
-  tokens: string;
-  /** delegator_shares defines total shares issued to a validator's delegators. */
-  delegator_shares: string;
-  /** description defines the description terms for the validator. */
-  description?: DescriptionAmino | undefined;
-  /** unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */
-  unbonding_height: string;
-  /** unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */
-  unbonding_time?: Date | undefined;
-  /** commission defines the commission parameters. */
-  commission?: CommissionAmino | undefined;
-  /** min_self_delegation is the validator's self declared minimum self delegation. */
-  min_self_delegation: string;
-}
-export interface ValidatorAminoMsg {
-  type: "cosmos-sdk/Validator";
-  value: ValidatorAmino;
-}
-/**
- * Validator defines a validator, together with the total amount of the
- * Validator's bond shares and their exchange rate to coins. Slashing results in
- * a decrease in the exchange rate, allowing correct calculation of future
- * undelegations without iterating over delegators. When coins are delegated to
- * this validator, the validator is credited with a delegation whose number of
- * bond shares is based on the amount of coins delegated divided by the current
- * exchange rate. Voting power can be calculated as total bonded shares
- * multiplied by exchange rate.
- */
-export interface ValidatorSDKType {
-  operator_address: string;
-  consensus_pubkey: AnySDKType | undefined;
-  jailed: boolean;
-  status: BondStatus;
-  tokens: string;
-  delegator_shares: string;
-  description: DescriptionSDKType | undefined;
-  unbonding_height: bigint;
-  unbonding_time: Date | undefined;
-  commission: CommissionSDKType | undefined;
-  min_self_delegation: string;
-}
-/** ValAddresses defines a repeated set of validator addresses. */
-export interface ValAddresses {
-  addresses: string[];
-}
-export interface ValAddressesProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.ValAddresses";
-  value: Uint8Array;
-}
-/** ValAddresses defines a repeated set of validator addresses. */
-export interface ValAddressesAmino {
-  addresses: string[];
-}
-export interface ValAddressesAminoMsg {
-  type: "cosmos-sdk/ValAddresses";
-  value: ValAddressesAmino;
-}
-/** ValAddresses defines a repeated set of validator addresses. */
-export interface ValAddressesSDKType {
-  addresses: string[];
-}
-/**
- * DVPair is struct that just has a delegator-validator pair with no other data.
- * It is intended to be used as a marshalable pointer. For example, a DVPair can
- * be used to construct the key to getting an UnbondingDelegation from state.
- */
-export interface DVPair {
-  delegatorAddress: string;
-  validatorAddress: string;
-}
-export interface DVPairProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.DVPair";
-  value: Uint8Array;
-}
-/**
- * DVPair is struct that just has a delegator-validator pair with no other data.
- * It is intended to be used as a marshalable pointer. For example, a DVPair can
- * be used to construct the key to getting an UnbondingDelegation from state.
- */
-export interface DVPairAmino {
-  delegator_address: string;
-  validator_address: string;
-}
-export interface DVPairAminoMsg {
-  type: "cosmos-sdk/DVPair";
-  value: DVPairAmino;
-}
-/**
- * DVPair is struct that just has a delegator-validator pair with no other data.
- * It is intended to be used as a marshalable pointer. For example, a DVPair can
- * be used to construct the key to getting an UnbondingDelegation from state.
- */
-export interface DVPairSDKType {
-  delegator_address: string;
-  validator_address: string;
-}
-/** DVPairs defines an array of DVPair objects. */
-export interface DVPairs {
-  pairs: DVPair[];
-}
-export interface DVPairsProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.DVPairs";
-  value: Uint8Array;
-}
-/** DVPairs defines an array of DVPair objects. */
-export interface DVPairsAmino {
-  pairs: DVPairAmino[];
-}
-export interface DVPairsAminoMsg {
-  type: "cosmos-sdk/DVPairs";
-  value: DVPairsAmino;
-}
-/** DVPairs defines an array of DVPair objects. */
-export interface DVPairsSDKType {
-  pairs: DVPairSDKType[];
-}
-/**
- * DVVTriplet is struct that just has a delegator-validator-validator triplet
- * with no other data. It is intended to be used as a marshalable pointer. For
- * example, a DVVTriplet can be used to construct the key to getting a
- * Redelegation from state.
- */
-export interface DVVTriplet {
-  delegatorAddress: string;
-  validatorSrcAddress: string;
-  validatorDstAddress: string;
-}
-export interface DVVTripletProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.DVVTriplet";
-  value: Uint8Array;
-}
-/**
- * DVVTriplet is struct that just has a delegator-validator-validator triplet
- * with no other data. It is intended to be used as a marshalable pointer. For
- * example, a DVVTriplet can be used to construct the key to getting a
- * Redelegation from state.
- */
-export interface DVVTripletAmino {
-  delegator_address: string;
-  validator_src_address: string;
-  validator_dst_address: string;
-}
-export interface DVVTripletAminoMsg {
-  type: "cosmos-sdk/DVVTriplet";
-  value: DVVTripletAmino;
-}
-/**
- * DVVTriplet is struct that just has a delegator-validator-validator triplet
- * with no other data. It is intended to be used as a marshalable pointer. For
- * example, a DVVTriplet can be used to construct the key to getting a
- * Redelegation from state.
- */
-export interface DVVTripletSDKType {
-  delegator_address: string;
-  validator_src_address: string;
-  validator_dst_address: string;
-}
-/** DVVTriplets defines an array of DVVTriplet objects. */
-export interface DVVTriplets {
-  triplets: DVVTriplet[];
-}
-export interface DVVTripletsProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.DVVTriplets";
-  value: Uint8Array;
-}
-/** DVVTriplets defines an array of DVVTriplet objects. */
-export interface DVVTripletsAmino {
-  triplets: DVVTripletAmino[];
-}
-export interface DVVTripletsAminoMsg {
-  type: "cosmos-sdk/DVVTriplets";
-  value: DVVTripletsAmino;
-}
-/** DVVTriplets defines an array of DVVTriplet objects. */
-export interface DVVTripletsSDKType {
-  triplets: DVVTripletSDKType[];
-}
-/**
- * Delegation represents the bond with tokens held by an account. It is
- * owned by one delegator, and is associated with the voting power of one
- * validator.
- */
-export interface Delegation {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegatorAddress: string;
-  /** validator_address is the bech32-encoded address of the validator. */
-  validatorAddress: string;
-  /** shares define the delegation shares received. */
-  shares: string;
-}
-export interface DelegationProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Delegation";
-  value: Uint8Array;
-}
-/**
- * Delegation represents the bond with tokens held by an account. It is
- * owned by one delegator, and is associated with the voting power of one
- * validator.
- */
-export interface DelegationAmino {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegator_address: string;
-  /** validator_address is the bech32-encoded address of the validator. */
-  validator_address: string;
-  /** shares define the delegation shares received. */
-  shares: string;
-}
-export interface DelegationAminoMsg {
-  type: "cosmos-sdk/Delegation";
-  value: DelegationAmino;
-}
-/**
- * Delegation represents the bond with tokens held by an account. It is
- * owned by one delegator, and is associated with the voting power of one
- * validator.
- */
-export interface DelegationSDKType {
-  delegator_address: string;
-  validator_address: string;
-  shares: string;
-}
-/**
- * UnbondingDelegation stores all of a single delegator's unbonding bonds
- * for a single validator in an time-ordered list.
- */
-export interface UnbondingDelegation {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegatorAddress: string;
-  /** validator_address is the bech32-encoded address of the validator. */
-  validatorAddress: string;
-  /** entries are the unbonding delegation entries. */
-  entries: UnbondingDelegationEntry[];
-}
-export interface UnbondingDelegationProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegation";
-  value: Uint8Array;
-}
-/**
- * UnbondingDelegation stores all of a single delegator's unbonding bonds
- * for a single validator in an time-ordered list.
- */
-export interface UnbondingDelegationAmino {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegator_address: string;
-  /** validator_address is the bech32-encoded address of the validator. */
-  validator_address: string;
-  /** entries are the unbonding delegation entries. */
-  entries: UnbondingDelegationEntryAmino[];
-}
-export interface UnbondingDelegationAminoMsg {
-  type: "cosmos-sdk/UnbondingDelegation";
-  value: UnbondingDelegationAmino;
-}
-/**
- * UnbondingDelegation stores all of a single delegator's unbonding bonds
- * for a single validator in an time-ordered list.
- */
-export interface UnbondingDelegationSDKType {
-  delegator_address: string;
-  validator_address: string;
-  entries: UnbondingDelegationEntrySDKType[];
-}
-/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */
-export interface UnbondingDelegationEntry {
-  /** creation_height is the height which the unbonding took place. */
-  creationHeight: bigint;
-  /** completion_time is the unix time for unbonding completion. */
-  completionTime: Date | undefined;
-  /** initial_balance defines the tokens initially scheduled to receive at completion. */
-  initialBalance: string;
-  /** balance defines the tokens to receive at completion. */
-  balance: string;
-}
-export interface UnbondingDelegationEntryProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegationEntry";
-  value: Uint8Array;
-}
-/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */
-export interface UnbondingDelegationEntryAmino {
-  /** creation_height is the height which the unbonding took place. */
-  creation_height: string;
-  /** completion_time is the unix time for unbonding completion. */
-  completion_time?: Date | undefined;
-  /** initial_balance defines the tokens initially scheduled to receive at completion. */
-  initial_balance: string;
-  /** balance defines the tokens to receive at completion. */
-  balance: string;
-}
-export interface UnbondingDelegationEntryAminoMsg {
-  type: "cosmos-sdk/UnbondingDelegationEntry";
-  value: UnbondingDelegationEntryAmino;
-}
-/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */
-export interface UnbondingDelegationEntrySDKType {
-  creation_height: bigint;
-  completion_time: Date | undefined;
-  initial_balance: string;
-  balance: string;
-}
-/** RedelegationEntry defines a redelegation object with relevant metadata. */
-export interface RedelegationEntry {
-  /** creation_height  defines the height which the redelegation took place. */
-  creationHeight: bigint;
-  /** completion_time defines the unix time for redelegation completion. */
-  completionTime: Date | undefined;
-  /** initial_balance defines the initial balance when redelegation started. */
-  initialBalance: string;
-  /** shares_dst is the amount of destination-validator shares created by redelegation. */
-  sharesDst: string;
-}
-export interface RedelegationEntryProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationEntry";
-  value: Uint8Array;
-}
-/** RedelegationEntry defines a redelegation object with relevant metadata. */
-export interface RedelegationEntryAmino {
-  /** creation_height  defines the height which the redelegation took place. */
-  creation_height: string;
-  /** completion_time defines the unix time for redelegation completion. */
-  completion_time?: Date | undefined;
-  /** initial_balance defines the initial balance when redelegation started. */
-  initial_balance: string;
-  /** shares_dst is the amount of destination-validator shares created by redelegation. */
-  shares_dst: string;
-}
-export interface RedelegationEntryAminoMsg {
-  type: "cosmos-sdk/RedelegationEntry";
-  value: RedelegationEntryAmino;
-}
-/** RedelegationEntry defines a redelegation object with relevant metadata. */
-export interface RedelegationEntrySDKType {
-  creation_height: bigint;
-  completion_time: Date | undefined;
-  initial_balance: string;
-  shares_dst: string;
-}
-/**
- * Redelegation contains the list of a particular delegator's redelegating bonds
- * from a particular source validator to a particular destination validator.
- */
-export interface Redelegation {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegatorAddress: string;
-  /** validator_src_address is the validator redelegation source operator address. */
-  validatorSrcAddress: string;
-  /** validator_dst_address is the validator redelegation destination operator address. */
-  validatorDstAddress: string;
-  /** entries are the redelegation entries. */
-  entries: RedelegationEntry[];
-}
-export interface RedelegationProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Redelegation";
-  value: Uint8Array;
-}
-/**
- * Redelegation contains the list of a particular delegator's redelegating bonds
- * from a particular source validator to a particular destination validator.
- */
-export interface RedelegationAmino {
-  /** delegator_address is the bech32-encoded address of the delegator. */
-  delegator_address: string;
-  /** validator_src_address is the validator redelegation source operator address. */
-  validator_src_address: string;
-  /** validator_dst_address is the validator redelegation destination operator address. */
-  validator_dst_address: string;
-  /** entries are the redelegation entries. */
-  entries: RedelegationEntryAmino[];
-}
-export interface RedelegationAminoMsg {
-  type: "cosmos-sdk/Redelegation";
-  value: RedelegationAmino;
-}
-/**
- * Redelegation contains the list of a particular delegator's redelegating bonds
- * from a particular source validator to a particular destination validator.
- */
-export interface RedelegationSDKType {
-  delegator_address: string;
-  validator_src_address: string;
-  validator_dst_address: string;
-  entries: RedelegationEntrySDKType[];
-}
-/** Params defines the parameters for the staking module. */
-export interface Params {
-  /** unbonding_time is the time duration of unbonding. */
-  unbondingTime: Duration | undefined;
-  /** max_validators is the maximum number of validators. */
-  maxValidators: number;
-  /** max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */
-  maxEntries: number;
-  /** historical_entries is the number of historical entries to persist. */
-  historicalEntries: number;
-  /** bond_denom defines the bondable coin denomination. */
-  bondDenom: string;
-  /** min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators */
-  minCommissionRate: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the parameters for the staking module. */
-export interface ParamsAmino {
-  /** unbonding_time is the time duration of unbonding. */
-  unbonding_time?: DurationAmino | undefined;
-  /** max_validators is the maximum number of validators. */
-  max_validators: number;
-  /** max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */
-  max_entries: number;
-  /** historical_entries is the number of historical entries to persist. */
-  historical_entries: number;
-  /** bond_denom defines the bondable coin denomination. */
-  bond_denom: string;
-  /** min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators */
-  min_commission_rate: string;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the parameters for the staking module. */
-export interface ParamsSDKType {
-  unbonding_time: DurationSDKType | undefined;
-  max_validators: number;
-  max_entries: number;
-  historical_entries: number;
-  bond_denom: string;
-  min_commission_rate: string;
-}
-/**
- * DelegationResponse is equivalent to Delegation except that it contains a
- * balance in addition to shares which is more suitable for client responses.
- */
-export interface DelegationResponse {
-  delegation: Delegation | undefined;
-  balance: Coin | undefined;
-}
-export interface DelegationResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.DelegationResponse";
-  value: Uint8Array;
-}
-/**
- * DelegationResponse is equivalent to Delegation except that it contains a
- * balance in addition to shares which is more suitable for client responses.
- */
-export interface DelegationResponseAmino {
-  delegation?: DelegationAmino | undefined;
-  balance?: CoinAmino | undefined;
-}
-export interface DelegationResponseAminoMsg {
-  type: "cosmos-sdk/DelegationResponse";
-  value: DelegationResponseAmino;
-}
-/**
- * DelegationResponse is equivalent to Delegation except that it contains a
- * balance in addition to shares which is more suitable for client responses.
- */
-export interface DelegationResponseSDKType {
-  delegation: DelegationSDKType | undefined;
-  balance: CoinSDKType | undefined;
-}
-/**
- * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
- * contains a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationEntryResponse {
-  redelegationEntry: RedelegationEntry | undefined;
-  balance: string;
-}
-export interface RedelegationEntryResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationEntryResponse";
-  value: Uint8Array;
-}
-/**
- * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
- * contains a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationEntryResponseAmino {
-  redelegation_entry?: RedelegationEntryAmino | undefined;
-  balance: string;
-}
-export interface RedelegationEntryResponseAminoMsg {
-  type: "cosmos-sdk/RedelegationEntryResponse";
-  value: RedelegationEntryResponseAmino;
-}
-/**
- * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
- * contains a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationEntryResponseSDKType {
-  redelegation_entry: RedelegationEntrySDKType | undefined;
-  balance: string;
-}
-/**
- * RedelegationResponse is equivalent to a Redelegation except that its entries
- * contain a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationResponse {
-  redelegation: Redelegation | undefined;
-  entries: RedelegationEntryResponse[];
-}
-export interface RedelegationResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationResponse";
-  value: Uint8Array;
-}
-/**
- * RedelegationResponse is equivalent to a Redelegation except that its entries
- * contain a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationResponseAmino {
-  redelegation?: RedelegationAmino | undefined;
-  entries: RedelegationEntryResponseAmino[];
-}
-export interface RedelegationResponseAminoMsg {
-  type: "cosmos-sdk/RedelegationResponse";
-  value: RedelegationResponseAmino;
-}
-/**
- * RedelegationResponse is equivalent to a Redelegation except that its entries
- * contain a balance in addition to shares which is more suitable for client
- * responses.
- */
-export interface RedelegationResponseSDKType {
-  redelegation: RedelegationSDKType | undefined;
-  entries: RedelegationEntryResponseSDKType[];
-}
-/**
- * Pool is used for tracking bonded and not-bonded token supply of the bond
- * denomination.
- */
-export interface Pool {
-  notBondedTokens: string;
-  bondedTokens: string;
-}
-export interface PoolProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.Pool";
-  value: Uint8Array;
-}
-/**
- * Pool is used for tracking bonded and not-bonded token supply of the bond
- * denomination.
- */
-export interface PoolAmino {
-  not_bonded_tokens: string;
-  bonded_tokens: string;
-}
-export interface PoolAminoMsg {
-  type: "cosmos-sdk/Pool";
-  value: PoolAmino;
-}
-/**
- * Pool is used for tracking bonded and not-bonded token supply of the bond
- * denomination.
- */
-export interface PoolSDKType {
-  not_bonded_tokens: string;
-  bonded_tokens: string;
-}
-function createBaseHistoricalInfo(): HistoricalInfo {
-  return {
-    header: Header.fromPartial({}),
-    valset: []
-  };
-}
-export const HistoricalInfo = {
-  typeUrl: "/cosmos.staking.v1beta1.HistoricalInfo",
-  aminoType: "cosmos-sdk/HistoricalInfo",
-  encode(message: HistoricalInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.header !== undefined) {
-      Header.encode(message.header, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.valset) {
-      Validator.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): HistoricalInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHistoricalInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.header = Header.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.valset.push(Validator.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): HistoricalInfo {
-    return {
-      header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,
-      valset: Array.isArray(object?.valset) ? object.valset.map((e: any) => Validator.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: HistoricalInfo): unknown {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toJSON(message.header) : undefined);
-    if (message.valset) {
-      obj.valset = message.valset.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.valset = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<HistoricalInfo>): HistoricalInfo {
-    const message = createBaseHistoricalInfo();
-    message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined;
-    message.valset = object.valset?.map(e => Validator.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: HistoricalInfoSDKType): HistoricalInfo {
-    return {
-      header: object.header ? Header.fromSDK(object.header) : undefined,
-      valset: Array.isArray(object?.valset) ? object.valset.map((e: any) => Validator.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: HistoricalInfo): HistoricalInfoSDKType {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toSDK(message.header) : undefined);
-    if (message.valset) {
-      obj.valset = message.valset.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.valset = [];
-    }
-    return obj;
-  },
-  fromAmino(object: HistoricalInfoAmino): HistoricalInfo {
-    return {
-      header: object?.header ? Header.fromAmino(object.header) : undefined,
-      valset: Array.isArray(object?.valset) ? object.valset.map((e: any) => Validator.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: HistoricalInfo): HistoricalInfoAmino {
-    const obj: any = {};
-    obj.header = message.header ? Header.toAmino(message.header) : undefined;
-    if (message.valset) {
-      obj.valset = message.valset.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.valset = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: HistoricalInfoAminoMsg): HistoricalInfo {
-    return HistoricalInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: HistoricalInfo): HistoricalInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/HistoricalInfo",
-      value: HistoricalInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HistoricalInfoProtoMsg): HistoricalInfo {
-    return HistoricalInfo.decode(message.value);
-  },
-  toProto(message: HistoricalInfo): Uint8Array {
-    return HistoricalInfo.encode(message).finish();
-  },
-  toProtoMsg(message: HistoricalInfo): HistoricalInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.HistoricalInfo",
-      value: HistoricalInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseCommissionRates(): CommissionRates {
-  return {
-    rate: "",
-    maxRate: "",
-    maxChangeRate: ""
-  };
-}
-export const CommissionRates = {
-  typeUrl: "/cosmos.staking.v1beta1.CommissionRates",
-  aminoType: "cosmos-sdk/CommissionRates",
-  encode(message: CommissionRates, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.rate !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.rate, 18).atomics);
-    }
-    if (message.maxRate !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.maxRate, 18).atomics);
-    }
-    if (message.maxChangeRate !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.maxChangeRate, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommissionRates {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommissionRates();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rate = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.maxRate = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.maxChangeRate = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommissionRates {
-    return {
-      rate: isSet(object.rate) ? String(object.rate) : "",
-      maxRate: isSet(object.maxRate) ? String(object.maxRate) : "",
-      maxChangeRate: isSet(object.maxChangeRate) ? String(object.maxChangeRate) : ""
-    };
-  },
-  toJSON(message: CommissionRates): unknown {
-    const obj: any = {};
-    message.rate !== undefined && (obj.rate = message.rate);
-    message.maxRate !== undefined && (obj.maxRate = message.maxRate);
-    message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommissionRates>): CommissionRates {
-    const message = createBaseCommissionRates();
-    message.rate = object.rate ?? "";
-    message.maxRate = object.maxRate ?? "";
-    message.maxChangeRate = object.maxChangeRate ?? "";
-    return message;
-  },
-  fromSDK(object: CommissionRatesSDKType): CommissionRates {
-    return {
-      rate: object?.rate,
-      maxRate: object?.max_rate,
-      maxChangeRate: object?.max_change_rate
-    };
-  },
-  toSDK(message: CommissionRates): CommissionRatesSDKType {
-    const obj: any = {};
-    obj.rate = message.rate;
-    obj.max_rate = message.maxRate;
-    obj.max_change_rate = message.maxChangeRate;
-    return obj;
-  },
-  fromAmino(object: CommissionRatesAmino): CommissionRates {
-    return {
-      rate: object.rate,
-      maxRate: object.max_rate,
-      maxChangeRate: object.max_change_rate
-    };
-  },
-  toAmino(message: CommissionRates): CommissionRatesAmino {
-    const obj: any = {};
-    obj.rate = message.rate;
-    obj.max_rate = message.maxRate;
-    obj.max_change_rate = message.maxChangeRate;
-    return obj;
-  },
-  fromAminoMsg(object: CommissionRatesAminoMsg): CommissionRates {
-    return CommissionRates.fromAmino(object.value);
-  },
-  toAminoMsg(message: CommissionRates): CommissionRatesAminoMsg {
-    return {
-      type: "cosmos-sdk/CommissionRates",
-      value: CommissionRates.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommissionRatesProtoMsg): CommissionRates {
-    return CommissionRates.decode(message.value);
-  },
-  toProto(message: CommissionRates): Uint8Array {
-    return CommissionRates.encode(message).finish();
-  },
-  toProtoMsg(message: CommissionRates): CommissionRatesProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.CommissionRates",
-      value: CommissionRates.encode(message).finish()
-    };
-  }
-};
-function createBaseCommission(): Commission {
-  return {
-    commissionRates: CommissionRates.fromPartial({}),
-    updateTime: new Date()
-  };
-}
-export const Commission = {
-  typeUrl: "/cosmos.staking.v1beta1.Commission",
-  aminoType: "cosmos-sdk/Commission",
-  encode(message: Commission, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.commissionRates !== undefined) {
-      CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.updateTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.updateTime), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Commission {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommission();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.commissionRates = CommissionRates.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.updateTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Commission {
-    return {
-      commissionRates: isSet(object.commissionRates) ? CommissionRates.fromJSON(object.commissionRates) : undefined,
-      updateTime: isSet(object.updateTime) ? new Date(object.updateTime) : undefined
-    };
-  },
-  toJSON(message: Commission): unknown {
-    const obj: any = {};
-    message.commissionRates !== undefined && (obj.commissionRates = message.commissionRates ? CommissionRates.toJSON(message.commissionRates) : undefined);
-    message.updateTime !== undefined && (obj.updateTime = message.updateTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Commission>): Commission {
-    const message = createBaseCommission();
-    message.commissionRates = object.commissionRates !== undefined && object.commissionRates !== null ? CommissionRates.fromPartial(object.commissionRates) : undefined;
-    message.updateTime = object.updateTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: CommissionSDKType): Commission {
-    return {
-      commissionRates: object.commission_rates ? CommissionRates.fromSDK(object.commission_rates) : undefined,
-      updateTime: object.update_time ?? undefined
-    };
-  },
-  toSDK(message: Commission): CommissionSDKType {
-    const obj: any = {};
-    message.commissionRates !== undefined && (obj.commission_rates = message.commissionRates ? CommissionRates.toSDK(message.commissionRates) : undefined);
-    message.updateTime !== undefined && (obj.update_time = message.updateTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: CommissionAmino): Commission {
-    return {
-      commissionRates: object?.commission_rates ? CommissionRates.fromAmino(object.commission_rates) : undefined,
-      updateTime: object.update_time
-    };
-  },
-  toAmino(message: Commission): CommissionAmino {
-    const obj: any = {};
-    obj.commission_rates = message.commissionRates ? CommissionRates.toAmino(message.commissionRates) : undefined;
-    obj.update_time = message.updateTime;
-    return obj;
-  },
-  fromAminoMsg(object: CommissionAminoMsg): Commission {
-    return Commission.fromAmino(object.value);
-  },
-  toAminoMsg(message: Commission): CommissionAminoMsg {
-    return {
-      type: "cosmos-sdk/Commission",
-      value: Commission.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CommissionProtoMsg): Commission {
-    return Commission.decode(message.value);
-  },
-  toProto(message: Commission): Uint8Array {
-    return Commission.encode(message).finish();
-  },
-  toProtoMsg(message: Commission): CommissionProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Commission",
-      value: Commission.encode(message).finish()
-    };
-  }
-};
-function createBaseDescription(): Description {
-  return {
-    moniker: "",
-    identity: "",
-    website: "",
-    securityContact: "",
-    details: ""
-  };
-}
-export const Description = {
-  typeUrl: "/cosmos.staking.v1beta1.Description",
-  aminoType: "cosmos-sdk/Description",
-  encode(message: Description, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.moniker !== "") {
-      writer.uint32(10).string(message.moniker);
-    }
-    if (message.identity !== "") {
-      writer.uint32(18).string(message.identity);
-    }
-    if (message.website !== "") {
-      writer.uint32(26).string(message.website);
-    }
-    if (message.securityContact !== "") {
-      writer.uint32(34).string(message.securityContact);
-    }
-    if (message.details !== "") {
-      writer.uint32(42).string(message.details);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Description {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDescription();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.moniker = reader.string();
-          break;
-        case 2:
-          message.identity = reader.string();
-          break;
-        case 3:
-          message.website = reader.string();
-          break;
-        case 4:
-          message.securityContact = reader.string();
-          break;
-        case 5:
-          message.details = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Description {
-    return {
-      moniker: isSet(object.moniker) ? String(object.moniker) : "",
-      identity: isSet(object.identity) ? String(object.identity) : "",
-      website: isSet(object.website) ? String(object.website) : "",
-      securityContact: isSet(object.securityContact) ? String(object.securityContact) : "",
-      details: isSet(object.details) ? String(object.details) : ""
-    };
-  },
-  toJSON(message: Description): unknown {
-    const obj: any = {};
-    message.moniker !== undefined && (obj.moniker = message.moniker);
-    message.identity !== undefined && (obj.identity = message.identity);
-    message.website !== undefined && (obj.website = message.website);
-    message.securityContact !== undefined && (obj.securityContact = message.securityContact);
-    message.details !== undefined && (obj.details = message.details);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Description>): Description {
-    const message = createBaseDescription();
-    message.moniker = object.moniker ?? "";
-    message.identity = object.identity ?? "";
-    message.website = object.website ?? "";
-    message.securityContact = object.securityContact ?? "";
-    message.details = object.details ?? "";
-    return message;
-  },
-  fromSDK(object: DescriptionSDKType): Description {
-    return {
-      moniker: object?.moniker,
-      identity: object?.identity,
-      website: object?.website,
-      securityContact: object?.security_contact,
-      details: object?.details
-    };
-  },
-  toSDK(message: Description): DescriptionSDKType {
-    const obj: any = {};
-    obj.moniker = message.moniker;
-    obj.identity = message.identity;
-    obj.website = message.website;
-    obj.security_contact = message.securityContact;
-    obj.details = message.details;
-    return obj;
-  },
-  fromAmino(object: DescriptionAmino): Description {
-    return {
-      moniker: object.moniker,
-      identity: object.identity,
-      website: object.website,
-      securityContact: object.security_contact,
-      details: object.details
-    };
-  },
-  toAmino(message: Description): DescriptionAmino {
-    const obj: any = {};
-    obj.moniker = message.moniker;
-    obj.identity = message.identity;
-    obj.website = message.website;
-    obj.security_contact = message.securityContact;
-    obj.details = message.details;
-    return obj;
-  },
-  fromAminoMsg(object: DescriptionAminoMsg): Description {
-    return Description.fromAmino(object.value);
-  },
-  toAminoMsg(message: Description): DescriptionAminoMsg {
-    return {
-      type: "cosmos-sdk/Description",
-      value: Description.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DescriptionProtoMsg): Description {
-    return Description.decode(message.value);
-  },
-  toProto(message: Description): Uint8Array {
-    return Description.encode(message).finish();
-  },
-  toProtoMsg(message: Description): DescriptionProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Description",
-      value: Description.encode(message).finish()
-    };
-  }
-};
-function createBaseValidator(): Validator {
-  return {
-    operatorAddress: "",
-    consensusPubkey: Any.fromPartial({}),
-    jailed: false,
-    status: 0,
-    tokens: "",
-    delegatorShares: "",
-    description: Description.fromPartial({}),
-    unbondingHeight: BigInt(0),
-    unbondingTime: new Date(),
-    commission: Commission.fromPartial({}),
-    minSelfDelegation: ""
-  };
-}
-export const Validator = {
-  typeUrl: "/cosmos.staking.v1beta1.Validator",
-  aminoType: "cosmos-sdk/Validator",
-  encode(message: Validator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.operatorAddress !== "") {
-      writer.uint32(10).string(message.operatorAddress);
-    }
-    if (message.consensusPubkey !== undefined) {
-      Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.jailed === true) {
-      writer.uint32(24).bool(message.jailed);
-    }
-    if (message.status !== 0) {
-      writer.uint32(32).int32(message.status);
-    }
-    if (message.tokens !== "") {
-      writer.uint32(42).string(message.tokens);
-    }
-    if (message.delegatorShares !== "") {
-      writer.uint32(50).string(Decimal.fromUserInput(message.delegatorShares, 18).atomics);
-    }
-    if (message.description !== undefined) {
-      Description.encode(message.description, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.unbondingHeight !== BigInt(0)) {
-      writer.uint32(64).int64(message.unbondingHeight);
-    }
-    if (message.unbondingTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.unbondingTime), writer.uint32(74).fork()).ldelim();
-    }
-    if (message.commission !== undefined) {
-      Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();
-    }
-    if (message.minSelfDelegation !== "") {
-      writer.uint32(90).string(message.minSelfDelegation);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Validator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.operatorAddress = reader.string();
-          break;
-        case 2:
-          message.consensusPubkey = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.jailed = reader.bool();
-          break;
-        case 4:
-          message.status = (reader.int32() as any);
-          break;
-        case 5:
-          message.tokens = reader.string();
-          break;
-        case 6:
-          message.delegatorShares = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 7:
-          message.description = Description.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.unbondingHeight = reader.int64();
-          break;
-        case 9:
-          message.unbondingTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 10:
-          message.commission = Commission.decode(reader, reader.uint32());
-          break;
-        case 11:
-          message.minSelfDelegation = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Validator {
-    return {
-      operatorAddress: isSet(object.operatorAddress) ? String(object.operatorAddress) : "",
-      consensusPubkey: isSet(object.consensusPubkey) ? Any.fromJSON(object.consensusPubkey) : undefined,
-      jailed: isSet(object.jailed) ? Boolean(object.jailed) : false,
-      status: isSet(object.status) ? bondStatusFromJSON(object.status) : -1,
-      tokens: isSet(object.tokens) ? String(object.tokens) : "",
-      delegatorShares: isSet(object.delegatorShares) ? String(object.delegatorShares) : "",
-      description: isSet(object.description) ? Description.fromJSON(object.description) : undefined,
-      unbondingHeight: isSet(object.unbondingHeight) ? BigInt(object.unbondingHeight.toString()) : BigInt(0),
-      unbondingTime: isSet(object.unbondingTime) ? new Date(object.unbondingTime) : undefined,
-      commission: isSet(object.commission) ? Commission.fromJSON(object.commission) : undefined,
-      minSelfDelegation: isSet(object.minSelfDelegation) ? String(object.minSelfDelegation) : ""
-    };
-  },
-  toJSON(message: Validator): unknown {
-    const obj: any = {};
-    message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);
-    message.consensusPubkey !== undefined && (obj.consensusPubkey = message.consensusPubkey ? Any.toJSON(message.consensusPubkey) : undefined);
-    message.jailed !== undefined && (obj.jailed = message.jailed);
-    message.status !== undefined && (obj.status = bondStatusToJSON(message.status));
-    message.tokens !== undefined && (obj.tokens = message.tokens);
-    message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);
-    message.description !== undefined && (obj.description = message.description ? Description.toJSON(message.description) : undefined);
-    message.unbondingHeight !== undefined && (obj.unbondingHeight = (message.unbondingHeight || BigInt(0)).toString());
-    message.unbondingTime !== undefined && (obj.unbondingTime = message.unbondingTime.toISOString());
-    message.commission !== undefined && (obj.commission = message.commission ? Commission.toJSON(message.commission) : undefined);
-    message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Validator>): Validator {
-    const message = createBaseValidator();
-    message.operatorAddress = object.operatorAddress ?? "";
-    message.consensusPubkey = object.consensusPubkey !== undefined && object.consensusPubkey !== null ? Any.fromPartial(object.consensusPubkey) : undefined;
-    message.jailed = object.jailed ?? false;
-    message.status = object.status ?? 0;
-    message.tokens = object.tokens ?? "";
-    message.delegatorShares = object.delegatorShares ?? "";
-    message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined;
-    message.unbondingHeight = object.unbondingHeight !== undefined && object.unbondingHeight !== null ? BigInt(object.unbondingHeight.toString()) : BigInt(0);
-    message.unbondingTime = object.unbondingTime ?? undefined;
-    message.commission = object.commission !== undefined && object.commission !== null ? Commission.fromPartial(object.commission) : undefined;
-    message.minSelfDelegation = object.minSelfDelegation ?? "";
-    return message;
-  },
-  fromSDK(object: ValidatorSDKType): Validator {
-    return {
-      operatorAddress: object?.operator_address,
-      consensusPubkey: object.consensus_pubkey ? Any.fromSDK(object.consensus_pubkey) : undefined,
-      jailed: object?.jailed,
-      status: isSet(object.status) ? bondStatusFromJSON(object.status) : -1,
-      tokens: object?.tokens,
-      delegatorShares: object?.delegator_shares,
-      description: object.description ? Description.fromSDK(object.description) : undefined,
-      unbondingHeight: object?.unbonding_height,
-      unbondingTime: object.unbonding_time ?? undefined,
-      commission: object.commission ? Commission.fromSDK(object.commission) : undefined,
-      minSelfDelegation: object?.min_self_delegation
-    };
-  },
-  toSDK(message: Validator): ValidatorSDKType {
-    const obj: any = {};
-    obj.operator_address = message.operatorAddress;
-    message.consensusPubkey !== undefined && (obj.consensus_pubkey = message.consensusPubkey ? Any.toSDK(message.consensusPubkey) : undefined);
-    obj.jailed = message.jailed;
-    message.status !== undefined && (obj.status = bondStatusToJSON(message.status));
-    obj.tokens = message.tokens;
-    obj.delegator_shares = message.delegatorShares;
-    message.description !== undefined && (obj.description = message.description ? Description.toSDK(message.description) : undefined);
-    obj.unbonding_height = message.unbondingHeight;
-    message.unbondingTime !== undefined && (obj.unbonding_time = message.unbondingTime ?? undefined);
-    message.commission !== undefined && (obj.commission = message.commission ? Commission.toSDK(message.commission) : undefined);
-    obj.min_self_delegation = message.minSelfDelegation;
-    return obj;
-  },
-  fromAmino(object: ValidatorAmino): Validator {
-    return {
-      operatorAddress: object.operator_address,
-      consensusPubkey: object?.consensus_pubkey ? encodePubkey(object.consensus_pubkey) : undefined,
-      jailed: object.jailed,
-      status: isSet(object.status) ? bondStatusFromJSON(object.status) : -1,
-      tokens: object.tokens,
-      delegatorShares: object.delegator_shares,
-      description: object?.description ? Description.fromAmino(object.description) : undefined,
-      unbondingHeight: isSet(object.unbonding_height) ? BigInt(object.unbonding_height) : 0n,
-      unbondingTime: object.unbonding_time,
-      commission: object?.commission ? Commission.fromAmino(object.commission) : undefined,
-      minSelfDelegation: object.min_self_delegation
-    };
-  },
-  toAmino(message: Validator): ValidatorAmino {
-    const obj: any = {};
-    obj.operator_address = message.operatorAddress;
-    obj.consensus_pubkey = message.consensusPubkey ? decodePubkey(message.consensusPubkey) : undefined;
-    obj.jailed = message.jailed;
-    obj.status = message.status;
-    obj.tokens = message.tokens;
-    obj.delegator_shares = message.delegatorShares;
-    obj.description = message.description ? Description.toAmino(message.description) : undefined;
-    obj.unbonding_height = message.unbondingHeight ? message.unbondingHeight.toString() : undefined;
-    obj.unbonding_time = message.unbondingTime;
-    obj.commission = message.commission ? Commission.toAmino(message.commission) : undefined;
-    obj.min_self_delegation = message.minSelfDelegation;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAminoMsg): Validator {
-    return Validator.fromAmino(object.value);
-  },
-  toAminoMsg(message: Validator): ValidatorAminoMsg {
-    return {
-      type: "cosmos-sdk/Validator",
-      value: Validator.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValidatorProtoMsg): Validator {
-    return Validator.decode(message.value);
-  },
-  toProto(message: Validator): Uint8Array {
-    return Validator.encode(message).finish();
-  },
-  toProtoMsg(message: Validator): ValidatorProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Validator",
-      value: Validator.encode(message).finish()
-    };
-  }
-};
-function createBaseValAddresses(): ValAddresses {
-  return {
-    addresses: []
-  };
-}
-export const ValAddresses = {
-  typeUrl: "/cosmos.staking.v1beta1.ValAddresses",
-  aminoType: "cosmos-sdk/ValAddresses",
-  encode(message: ValAddresses, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.addresses) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValAddresses {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValAddresses();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.addresses.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValAddresses {
-    return {
-      addresses: Array.isArray(object?.addresses) ? object.addresses.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ValAddresses): unknown {
-    const obj: any = {};
-    if (message.addresses) {
-      obj.addresses = message.addresses.map(e => e);
-    } else {
-      obj.addresses = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValAddresses>): ValAddresses {
-    const message = createBaseValAddresses();
-    message.addresses = object.addresses?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ValAddressesSDKType): ValAddresses {
-    return {
-      addresses: Array.isArray(object?.addresses) ? object.addresses.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ValAddresses): ValAddressesSDKType {
-    const obj: any = {};
-    if (message.addresses) {
-      obj.addresses = message.addresses.map(e => e);
-    } else {
-      obj.addresses = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValAddressesAmino): ValAddresses {
-    return {
-      addresses: Array.isArray(object?.addresses) ? object.addresses.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ValAddresses): ValAddressesAmino {
-    const obj: any = {};
-    if (message.addresses) {
-      obj.addresses = message.addresses.map(e => e);
-    } else {
-      obj.addresses = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValAddressesAminoMsg): ValAddresses {
-    return ValAddresses.fromAmino(object.value);
-  },
-  toAminoMsg(message: ValAddresses): ValAddressesAminoMsg {
-    return {
-      type: "cosmos-sdk/ValAddresses",
-      value: ValAddresses.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ValAddressesProtoMsg): ValAddresses {
-    return ValAddresses.decode(message.value);
-  },
-  toProto(message: ValAddresses): Uint8Array {
-    return ValAddresses.encode(message).finish();
-  },
-  toProtoMsg(message: ValAddresses): ValAddressesProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.ValAddresses",
-      value: ValAddresses.encode(message).finish()
-    };
-  }
-};
-function createBaseDVPair(): DVPair {
-  return {
-    delegatorAddress: "",
-    validatorAddress: ""
-  };
-}
-export const DVPair = {
-  typeUrl: "/cosmos.staking.v1beta1.DVPair",
-  aminoType: "cosmos-sdk/DVPair",
-  encode(message: DVPair, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DVPair {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDVPair();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DVPair {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : ""
-    };
-  },
-  toJSON(message: DVPair): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DVPair>): DVPair {
-    const message = createBaseDVPair();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: DVPairSDKType): DVPair {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address
-    };
-  },
-  toSDK(message: DVPair): DVPairSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAmino(object: DVPairAmino): DVPair {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address
-    };
-  },
-  toAmino(message: DVPair): DVPairAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: DVPairAminoMsg): DVPair {
-    return DVPair.fromAmino(object.value);
-  },
-  toAminoMsg(message: DVPair): DVPairAminoMsg {
-    return {
-      type: "cosmos-sdk/DVPair",
-      value: DVPair.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DVPairProtoMsg): DVPair {
-    return DVPair.decode(message.value);
-  },
-  toProto(message: DVPair): Uint8Array {
-    return DVPair.encode(message).finish();
-  },
-  toProtoMsg(message: DVPair): DVPairProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.DVPair",
-      value: DVPair.encode(message).finish()
-    };
-  }
-};
-function createBaseDVPairs(): DVPairs {
-  return {
-    pairs: []
-  };
-}
-export const DVPairs = {
-  typeUrl: "/cosmos.staking.v1beta1.DVPairs",
-  aminoType: "cosmos-sdk/DVPairs",
-  encode(message: DVPairs, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pairs) {
-      DVPair.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DVPairs {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDVPairs();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pairs.push(DVPair.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DVPairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => DVPair.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: DVPairs): unknown {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? DVPair.toJSON(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DVPairs>): DVPairs {
-    const message = createBaseDVPairs();
-    message.pairs = object.pairs?.map(e => DVPair.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DVPairsSDKType): DVPairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => DVPair.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: DVPairs): DVPairsSDKType {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? DVPair.toSDK(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DVPairsAmino): DVPairs {
-    return {
-      pairs: Array.isArray(object?.pairs) ? object.pairs.map((e: any) => DVPair.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: DVPairs): DVPairsAmino {
-    const obj: any = {};
-    if (message.pairs) {
-      obj.pairs = message.pairs.map(e => e ? DVPair.toAmino(e) : undefined);
-    } else {
-      obj.pairs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DVPairsAminoMsg): DVPairs {
-    return DVPairs.fromAmino(object.value);
-  },
-  toAminoMsg(message: DVPairs): DVPairsAminoMsg {
-    return {
-      type: "cosmos-sdk/DVPairs",
-      value: DVPairs.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DVPairsProtoMsg): DVPairs {
-    return DVPairs.decode(message.value);
-  },
-  toProto(message: DVPairs): Uint8Array {
-    return DVPairs.encode(message).finish();
-  },
-  toProtoMsg(message: DVPairs): DVPairsProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.DVPairs",
-      value: DVPairs.encode(message).finish()
-    };
-  }
-};
-function createBaseDVVTriplet(): DVVTriplet {
-  return {
-    delegatorAddress: "",
-    validatorSrcAddress: "",
-    validatorDstAddress: ""
-  };
-}
-export const DVVTriplet = {
-  typeUrl: "/cosmos.staking.v1beta1.DVVTriplet",
-  aminoType: "cosmos-sdk/DVVTriplet",
-  encode(message: DVVTriplet, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorSrcAddress !== "") {
-      writer.uint32(18).string(message.validatorSrcAddress);
-    }
-    if (message.validatorDstAddress !== "") {
-      writer.uint32(26).string(message.validatorDstAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DVVTriplet {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDVVTriplet();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorSrcAddress = reader.string();
-          break;
-        case 3:
-          message.validatorDstAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DVVTriplet {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorSrcAddress: isSet(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "",
-      validatorDstAddress: isSet(object.validatorDstAddress) ? String(object.validatorDstAddress) : ""
-    };
-  },
-  toJSON(message: DVVTriplet): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);
-    message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DVVTriplet>): DVVTriplet {
-    const message = createBaseDVVTriplet();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorSrcAddress = object.validatorSrcAddress ?? "";
-    message.validatorDstAddress = object.validatorDstAddress ?? "";
-    return message;
-  },
-  fromSDK(object: DVVTripletSDKType): DVVTriplet {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorSrcAddress: object?.validator_src_address,
-      validatorDstAddress: object?.validator_dst_address
-    };
-  },
-  toSDK(message: DVVTriplet): DVVTripletSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    return obj;
-  },
-  fromAmino(object: DVVTripletAmino): DVVTriplet {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorSrcAddress: object.validator_src_address,
-      validatorDstAddress: object.validator_dst_address
-    };
-  },
-  toAmino(message: DVVTriplet): DVVTripletAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    return obj;
-  },
-  fromAminoMsg(object: DVVTripletAminoMsg): DVVTriplet {
-    return DVVTriplet.fromAmino(object.value);
-  },
-  toAminoMsg(message: DVVTriplet): DVVTripletAminoMsg {
-    return {
-      type: "cosmos-sdk/DVVTriplet",
-      value: DVVTriplet.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DVVTripletProtoMsg): DVVTriplet {
-    return DVVTriplet.decode(message.value);
-  },
-  toProto(message: DVVTriplet): Uint8Array {
-    return DVVTriplet.encode(message).finish();
-  },
-  toProtoMsg(message: DVVTriplet): DVVTripletProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.DVVTriplet",
-      value: DVVTriplet.encode(message).finish()
-    };
-  }
-};
-function createBaseDVVTriplets(): DVVTriplets {
-  return {
-    triplets: []
-  };
-}
-export const DVVTriplets = {
-  typeUrl: "/cosmos.staking.v1beta1.DVVTriplets",
-  aminoType: "cosmos-sdk/DVVTriplets",
-  encode(message: DVVTriplets, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.triplets) {
-      DVVTriplet.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DVVTriplets {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDVVTriplets();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.triplets.push(DVVTriplet.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DVVTriplets {
-    return {
-      triplets: Array.isArray(object?.triplets) ? object.triplets.map((e: any) => DVVTriplet.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: DVVTriplets): unknown {
-    const obj: any = {};
-    if (message.triplets) {
-      obj.triplets = message.triplets.map(e => e ? DVVTriplet.toJSON(e) : undefined);
-    } else {
-      obj.triplets = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DVVTriplets>): DVVTriplets {
-    const message = createBaseDVVTriplets();
-    message.triplets = object.triplets?.map(e => DVVTriplet.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DVVTripletsSDKType): DVVTriplets {
-    return {
-      triplets: Array.isArray(object?.triplets) ? object.triplets.map((e: any) => DVVTriplet.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: DVVTriplets): DVVTripletsSDKType {
-    const obj: any = {};
-    if (message.triplets) {
-      obj.triplets = message.triplets.map(e => e ? DVVTriplet.toSDK(e) : undefined);
-    } else {
-      obj.triplets = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DVVTripletsAmino): DVVTriplets {
-    return {
-      triplets: Array.isArray(object?.triplets) ? object.triplets.map((e: any) => DVVTriplet.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: DVVTriplets): DVVTripletsAmino {
-    const obj: any = {};
-    if (message.triplets) {
-      obj.triplets = message.triplets.map(e => e ? DVVTriplet.toAmino(e) : undefined);
-    } else {
-      obj.triplets = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DVVTripletsAminoMsg): DVVTriplets {
-    return DVVTriplets.fromAmino(object.value);
-  },
-  toAminoMsg(message: DVVTriplets): DVVTripletsAminoMsg {
-    return {
-      type: "cosmos-sdk/DVVTriplets",
-      value: DVVTriplets.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DVVTripletsProtoMsg): DVVTriplets {
-    return DVVTriplets.decode(message.value);
-  },
-  toProto(message: DVVTriplets): Uint8Array {
-    return DVVTriplets.encode(message).finish();
-  },
-  toProtoMsg(message: DVVTriplets): DVVTripletsProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.DVVTriplets",
-      value: DVVTriplets.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegation(): Delegation {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    shares: ""
-  };
-}
-export const Delegation = {
-  typeUrl: "/cosmos.staking.v1beta1.Delegation",
-  aminoType: "cosmos-sdk/Delegation",
-  encode(message: Delegation, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.shares !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.shares, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Delegation {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegation();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.shares = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Delegation {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      shares: isSet(object.shares) ? String(object.shares) : ""
-    };
-  },
-  toJSON(message: Delegation): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.shares !== undefined && (obj.shares = message.shares);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Delegation>): Delegation {
-    const message = createBaseDelegation();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.shares = object.shares ?? "";
-    return message;
-  },
-  fromSDK(object: DelegationSDKType): Delegation {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      shares: object?.shares
-    };
-  },
-  toSDK(message: Delegation): DelegationSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.shares = message.shares;
-    return obj;
-  },
-  fromAmino(object: DelegationAmino): Delegation {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      shares: object.shares
-    };
-  },
-  toAmino(message: Delegation): DelegationAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.shares = message.shares;
-    return obj;
-  },
-  fromAminoMsg(object: DelegationAminoMsg): Delegation {
-    return Delegation.fromAmino(object.value);
-  },
-  toAminoMsg(message: Delegation): DelegationAminoMsg {
-    return {
-      type: "cosmos-sdk/Delegation",
-      value: Delegation.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegationProtoMsg): Delegation {
-    return Delegation.decode(message.value);
-  },
-  toProto(message: Delegation): Uint8Array {
-    return Delegation.encode(message).finish();
-  },
-  toProtoMsg(message: Delegation): DelegationProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Delegation",
-      value: Delegation.encode(message).finish()
-    };
-  }
-};
-function createBaseUnbondingDelegation(): UnbondingDelegation {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    entries: []
-  };
-}
-export const UnbondingDelegation = {
-  typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegation",
-  aminoType: "cosmos-sdk/UnbondingDelegation",
-  encode(message: UnbondingDelegation, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    for (const v of message.entries) {
-      UnbondingDelegationEntry.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UnbondingDelegation {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUnbondingDelegation();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.entries.push(UnbondingDelegationEntry.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UnbondingDelegation {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => UnbondingDelegationEntry.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: UnbondingDelegation): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? UnbondingDelegationEntry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UnbondingDelegation>): UnbondingDelegation {
-    const message = createBaseUnbondingDelegation();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.entries = object.entries?.map(e => UnbondingDelegationEntry.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: UnbondingDelegationSDKType): UnbondingDelegation {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => UnbondingDelegationEntry.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: UnbondingDelegation): UnbondingDelegationSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? UnbondingDelegationEntry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAmino(object: UnbondingDelegationAmino): UnbondingDelegation {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => UnbondingDelegationEntry.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: UnbondingDelegation): UnbondingDelegationAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? UnbondingDelegationEntry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: UnbondingDelegationAminoMsg): UnbondingDelegation {
-    return UnbondingDelegation.fromAmino(object.value);
-  },
-  toAminoMsg(message: UnbondingDelegation): UnbondingDelegationAminoMsg {
-    return {
-      type: "cosmos-sdk/UnbondingDelegation",
-      value: UnbondingDelegation.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UnbondingDelegationProtoMsg): UnbondingDelegation {
-    return UnbondingDelegation.decode(message.value);
-  },
-  toProto(message: UnbondingDelegation): Uint8Array {
-    return UnbondingDelegation.encode(message).finish();
-  },
-  toProtoMsg(message: UnbondingDelegation): UnbondingDelegationProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegation",
-      value: UnbondingDelegation.encode(message).finish()
-    };
-  }
-};
-function createBaseUnbondingDelegationEntry(): UnbondingDelegationEntry {
-  return {
-    creationHeight: BigInt(0),
-    completionTime: new Date(),
-    initialBalance: "",
-    balance: ""
-  };
-}
-export const UnbondingDelegationEntry = {
-  typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegationEntry",
-  aminoType: "cosmos-sdk/UnbondingDelegationEntry",
-  encode(message: UnbondingDelegationEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.creationHeight !== BigInt(0)) {
-      writer.uint32(8).int64(message.creationHeight);
-    }
-    if (message.completionTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.initialBalance !== "") {
-      writer.uint32(26).string(message.initialBalance);
-    }
-    if (message.balance !== "") {
-      writer.uint32(34).string(message.balance);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UnbondingDelegationEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUnbondingDelegationEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.creationHeight = reader.int64();
-          break;
-        case 2:
-          message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.initialBalance = reader.string();
-          break;
-        case 4:
-          message.balance = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UnbondingDelegationEntry {
-    return {
-      creationHeight: isSet(object.creationHeight) ? BigInt(object.creationHeight.toString()) : BigInt(0),
-      completionTime: isSet(object.completionTime) ? new Date(object.completionTime) : undefined,
-      initialBalance: isSet(object.initialBalance) ? String(object.initialBalance) : "",
-      balance: isSet(object.balance) ? String(object.balance) : ""
-    };
-  },
-  toJSON(message: UnbondingDelegationEntry): unknown {
-    const obj: any = {};
-    message.creationHeight !== undefined && (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());
-    message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());
-    message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);
-    message.balance !== undefined && (obj.balance = message.balance);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UnbondingDelegationEntry>): UnbondingDelegationEntry {
-    const message = createBaseUnbondingDelegationEntry();
-    message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? BigInt(object.creationHeight.toString()) : BigInt(0);
-    message.completionTime = object.completionTime ?? undefined;
-    message.initialBalance = object.initialBalance ?? "";
-    message.balance = object.balance ?? "";
-    return message;
-  },
-  fromSDK(object: UnbondingDelegationEntrySDKType): UnbondingDelegationEntry {
-    return {
-      creationHeight: object?.creation_height,
-      completionTime: object.completion_time ?? undefined,
-      initialBalance: object?.initial_balance,
-      balance: object?.balance
-    };
-  },
-  toSDK(message: UnbondingDelegationEntry): UnbondingDelegationEntrySDKType {
-    const obj: any = {};
-    obj.creation_height = message.creationHeight;
-    message.completionTime !== undefined && (obj.completion_time = message.completionTime ?? undefined);
-    obj.initial_balance = message.initialBalance;
-    obj.balance = message.balance;
-    return obj;
-  },
-  fromAmino(object: UnbondingDelegationEntryAmino): UnbondingDelegationEntry {
-    return {
-      creationHeight: BigInt(object.creation_height),
-      completionTime: object.completion_time,
-      initialBalance: object.initial_balance,
-      balance: object.balance
-    };
-  },
-  toAmino(message: UnbondingDelegationEntry): UnbondingDelegationEntryAmino {
-    const obj: any = {};
-    obj.creation_height = message.creationHeight ? message.creationHeight.toString() : undefined;
-    obj.completion_time = message.completionTime;
-    obj.initial_balance = message.initialBalance;
-    obj.balance = message.balance;
-    return obj;
-  },
-  fromAminoMsg(object: UnbondingDelegationEntryAminoMsg): UnbondingDelegationEntry {
-    return UnbondingDelegationEntry.fromAmino(object.value);
-  },
-  toAminoMsg(message: UnbondingDelegationEntry): UnbondingDelegationEntryAminoMsg {
-    return {
-      type: "cosmos-sdk/UnbondingDelegationEntry",
-      value: UnbondingDelegationEntry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UnbondingDelegationEntryProtoMsg): UnbondingDelegationEntry {
-    return UnbondingDelegationEntry.decode(message.value);
-  },
-  toProto(message: UnbondingDelegationEntry): Uint8Array {
-    return UnbondingDelegationEntry.encode(message).finish();
-  },
-  toProtoMsg(message: UnbondingDelegationEntry): UnbondingDelegationEntryProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegationEntry",
-      value: UnbondingDelegationEntry.encode(message).finish()
-    };
-  }
-};
-function createBaseRedelegationEntry(): RedelegationEntry {
-  return {
-    creationHeight: BigInt(0),
-    completionTime: new Date(),
-    initialBalance: "",
-    sharesDst: ""
-  };
-}
-export const RedelegationEntry = {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationEntry",
-  aminoType: "cosmos-sdk/RedelegationEntry",
-  encode(message: RedelegationEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.creationHeight !== BigInt(0)) {
-      writer.uint32(8).int64(message.creationHeight);
-    }
-    if (message.completionTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.initialBalance !== "") {
-      writer.uint32(26).string(message.initialBalance);
-    }
-    if (message.sharesDst !== "") {
-      writer.uint32(34).string(Decimal.fromUserInput(message.sharesDst, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RedelegationEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRedelegationEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.creationHeight = reader.int64();
-          break;
-        case 2:
-          message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.initialBalance = reader.string();
-          break;
-        case 4:
-          message.sharesDst = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RedelegationEntry {
-    return {
-      creationHeight: isSet(object.creationHeight) ? BigInt(object.creationHeight.toString()) : BigInt(0),
-      completionTime: isSet(object.completionTime) ? new Date(object.completionTime) : undefined,
-      initialBalance: isSet(object.initialBalance) ? String(object.initialBalance) : "",
-      sharesDst: isSet(object.sharesDst) ? String(object.sharesDst) : ""
-    };
-  },
-  toJSON(message: RedelegationEntry): unknown {
-    const obj: any = {};
-    message.creationHeight !== undefined && (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());
-    message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());
-    message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);
-    message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RedelegationEntry>): RedelegationEntry {
-    const message = createBaseRedelegationEntry();
-    message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? BigInt(object.creationHeight.toString()) : BigInt(0);
-    message.completionTime = object.completionTime ?? undefined;
-    message.initialBalance = object.initialBalance ?? "";
-    message.sharesDst = object.sharesDst ?? "";
-    return message;
-  },
-  fromSDK(object: RedelegationEntrySDKType): RedelegationEntry {
-    return {
-      creationHeight: object?.creation_height,
-      completionTime: object.completion_time ?? undefined,
-      initialBalance: object?.initial_balance,
-      sharesDst: object?.shares_dst
-    };
-  },
-  toSDK(message: RedelegationEntry): RedelegationEntrySDKType {
-    const obj: any = {};
-    obj.creation_height = message.creationHeight;
-    message.completionTime !== undefined && (obj.completion_time = message.completionTime ?? undefined);
-    obj.initial_balance = message.initialBalance;
-    obj.shares_dst = message.sharesDst;
-    return obj;
-  },
-  fromAmino(object: RedelegationEntryAmino): RedelegationEntry {
-    return {
-      creationHeight: BigInt(object.creation_height),
-      completionTime: object.completion_time,
-      initialBalance: object.initial_balance,
-      sharesDst: object.shares_dst
-    };
-  },
-  toAmino(message: RedelegationEntry): RedelegationEntryAmino {
-    const obj: any = {};
-    obj.creation_height = message.creationHeight ? message.creationHeight.toString() : undefined;
-    obj.completion_time = message.completionTime;
-    obj.initial_balance = message.initialBalance;
-    obj.shares_dst = message.sharesDst;
-    return obj;
-  },
-  fromAminoMsg(object: RedelegationEntryAminoMsg): RedelegationEntry {
-    return RedelegationEntry.fromAmino(object.value);
-  },
-  toAminoMsg(message: RedelegationEntry): RedelegationEntryAminoMsg {
-    return {
-      type: "cosmos-sdk/RedelegationEntry",
-      value: RedelegationEntry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RedelegationEntryProtoMsg): RedelegationEntry {
-    return RedelegationEntry.decode(message.value);
-  },
-  toProto(message: RedelegationEntry): Uint8Array {
-    return RedelegationEntry.encode(message).finish();
-  },
-  toProtoMsg(message: RedelegationEntry): RedelegationEntryProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.RedelegationEntry",
-      value: RedelegationEntry.encode(message).finish()
-    };
-  }
-};
-function createBaseRedelegation(): Redelegation {
-  return {
-    delegatorAddress: "",
-    validatorSrcAddress: "",
-    validatorDstAddress: "",
-    entries: []
-  };
-}
-export const Redelegation = {
-  typeUrl: "/cosmos.staking.v1beta1.Redelegation",
-  aminoType: "cosmos-sdk/Redelegation",
-  encode(message: Redelegation, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorSrcAddress !== "") {
-      writer.uint32(18).string(message.validatorSrcAddress);
-    }
-    if (message.validatorDstAddress !== "") {
-      writer.uint32(26).string(message.validatorDstAddress);
-    }
-    for (const v of message.entries) {
-      RedelegationEntry.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Redelegation {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRedelegation();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorSrcAddress = reader.string();
-          break;
-        case 3:
-          message.validatorDstAddress = reader.string();
-          break;
-        case 4:
-          message.entries.push(RedelegationEntry.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Redelegation {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorSrcAddress: isSet(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "",
-      validatorDstAddress: isSet(object.validatorDstAddress) ? String(object.validatorDstAddress) : "",
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntry.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Redelegation): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);
-    message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Redelegation>): Redelegation {
-    const message = createBaseRedelegation();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorSrcAddress = object.validatorSrcAddress ?? "";
-    message.validatorDstAddress = object.validatorDstAddress ?? "";
-    message.entries = object.entries?.map(e => RedelegationEntry.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: RedelegationSDKType): Redelegation {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorSrcAddress: object?.validator_src_address,
-      validatorDstAddress: object?.validator_dst_address,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntry.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Redelegation): RedelegationSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAmino(object: RedelegationAmino): Redelegation {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorSrcAddress: object.validator_src_address,
-      validatorDstAddress: object.validator_dst_address,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntry.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Redelegation): RedelegationAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: RedelegationAminoMsg): Redelegation {
-    return Redelegation.fromAmino(object.value);
-  },
-  toAminoMsg(message: Redelegation): RedelegationAminoMsg {
-    return {
-      type: "cosmos-sdk/Redelegation",
-      value: Redelegation.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RedelegationProtoMsg): Redelegation {
-    return Redelegation.decode(message.value);
-  },
-  toProto(message: Redelegation): Uint8Array {
-    return Redelegation.encode(message).finish();
-  },
-  toProtoMsg(message: Redelegation): RedelegationProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Redelegation",
-      value: Redelegation.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    unbondingTime: Duration.fromPartial({}),
-    maxValidators: 0,
-    maxEntries: 0,
-    historicalEntries: 0,
-    bondDenom: "",
-    minCommissionRate: ""
-  };
-}
-export const Params = {
-  typeUrl: "/cosmos.staking.v1beta1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.unbondingTime !== undefined) {
-      Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.maxValidators !== 0) {
-      writer.uint32(16).uint32(message.maxValidators);
-    }
-    if (message.maxEntries !== 0) {
-      writer.uint32(24).uint32(message.maxEntries);
-    }
-    if (message.historicalEntries !== 0) {
-      writer.uint32(32).uint32(message.historicalEntries);
-    }
-    if (message.bondDenom !== "") {
-      writer.uint32(42).string(message.bondDenom);
-    }
-    if (message.minCommissionRate !== "") {
-      writer.uint32(50).string(Decimal.fromUserInput(message.minCommissionRate, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.unbondingTime = Duration.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.maxValidators = reader.uint32();
-          break;
-        case 3:
-          message.maxEntries = reader.uint32();
-          break;
-        case 4:
-          message.historicalEntries = reader.uint32();
-          break;
-        case 5:
-          message.bondDenom = reader.string();
-          break;
-        case 6:
-          message.minCommissionRate = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      unbondingTime: isSet(object.unbondingTime) ? Duration.fromJSON(object.unbondingTime) : undefined,
-      maxValidators: isSet(object.maxValidators) ? Number(object.maxValidators) : 0,
-      maxEntries: isSet(object.maxEntries) ? Number(object.maxEntries) : 0,
-      historicalEntries: isSet(object.historicalEntries) ? Number(object.historicalEntries) : 0,
-      bondDenom: isSet(object.bondDenom) ? String(object.bondDenom) : "",
-      minCommissionRate: isSet(object.minCommissionRate) ? String(object.minCommissionRate) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.unbondingTime !== undefined && (obj.unbondingTime = message.unbondingTime ? Duration.toJSON(message.unbondingTime) : undefined);
-    message.maxValidators !== undefined && (obj.maxValidators = Math.round(message.maxValidators));
-    message.maxEntries !== undefined && (obj.maxEntries = Math.round(message.maxEntries));
-    message.historicalEntries !== undefined && (obj.historicalEntries = Math.round(message.historicalEntries));
-    message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);
-    message.minCommissionRate !== undefined && (obj.minCommissionRate = message.minCommissionRate);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.unbondingTime = object.unbondingTime !== undefined && object.unbondingTime !== null ? Duration.fromPartial(object.unbondingTime) : undefined;
-    message.maxValidators = object.maxValidators ?? 0;
-    message.maxEntries = object.maxEntries ?? 0;
-    message.historicalEntries = object.historicalEntries ?? 0;
-    message.bondDenom = object.bondDenom ?? "";
-    message.minCommissionRate = object.minCommissionRate ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      unbondingTime: object.unbonding_time ? Duration.fromSDK(object.unbonding_time) : undefined,
-      maxValidators: object?.max_validators,
-      maxEntries: object?.max_entries,
-      historicalEntries: object?.historical_entries,
-      bondDenom: object?.bond_denom,
-      minCommissionRate: object?.min_commission_rate
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    message.unbondingTime !== undefined && (obj.unbonding_time = message.unbondingTime ? Duration.toSDK(message.unbondingTime) : undefined);
-    obj.max_validators = message.maxValidators;
-    obj.max_entries = message.maxEntries;
-    obj.historical_entries = message.historicalEntries;
-    obj.bond_denom = message.bondDenom;
-    obj.min_commission_rate = message.minCommissionRate;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      unbondingTime: object?.unbonding_time ? Duration.fromAmino(object.unbonding_time) : undefined,
-      maxValidators: object.max_validators,
-      maxEntries: object.max_entries,
-      historicalEntries: object.historical_entries,
-      bondDenom: object.bond_denom,
-      minCommissionRate: object.min_commission_rate
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.unbonding_time = message.unbondingTime ? Duration.toAmino(message.unbondingTime) : undefined;
-    obj.max_validators = message.maxValidators;
-    obj.max_entries = message.maxEntries;
-    obj.historical_entries = message.historicalEntries;
-    obj.bond_denom = message.bondDenom;
-    obj.min_commission_rate = message.minCommissionRate;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegationResponse(): DelegationResponse {
-  return {
-    delegation: Delegation.fromPartial({}),
-    balance: Coin.fromPartial({})
-  };
-}
-export const DelegationResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.DelegationResponse",
-  aminoType: "cosmos-sdk/DelegationResponse",
-  encode(message: DelegationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegation !== undefined) {
-      Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.balance !== undefined) {
-      Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelegationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegation = Delegation.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.balance = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelegationResponse {
-    return {
-      delegation: isSet(object.delegation) ? Delegation.fromJSON(object.delegation) : undefined,
-      balance: isSet(object.balance) ? Coin.fromJSON(object.balance) : undefined
-    };
-  },
-  toJSON(message: DelegationResponse): unknown {
-    const obj: any = {};
-    message.delegation !== undefined && (obj.delegation = message.delegation ? Delegation.toJSON(message.delegation) : undefined);
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toJSON(message.balance) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelegationResponse>): DelegationResponse {
-    const message = createBaseDelegationResponse();
-    message.delegation = object.delegation !== undefined && object.delegation !== null ? Delegation.fromPartial(object.delegation) : undefined;
-    message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined;
-    return message;
-  },
-  fromSDK(object: DelegationResponseSDKType): DelegationResponse {
-    return {
-      delegation: object.delegation ? Delegation.fromSDK(object.delegation) : undefined,
-      balance: object.balance ? Coin.fromSDK(object.balance) : undefined
-    };
-  },
-  toSDK(message: DelegationResponse): DelegationResponseSDKType {
-    const obj: any = {};
-    message.delegation !== undefined && (obj.delegation = message.delegation ? Delegation.toSDK(message.delegation) : undefined);
-    message.balance !== undefined && (obj.balance = message.balance ? Coin.toSDK(message.balance) : undefined);
-    return obj;
-  },
-  fromAmino(object: DelegationResponseAmino): DelegationResponse {
-    return {
-      delegation: object?.delegation ? Delegation.fromAmino(object.delegation) : undefined,
-      balance: object?.balance ? Coin.fromAmino(object.balance) : undefined
-    };
-  },
-  toAmino(message: DelegationResponse): DelegationResponseAmino {
-    const obj: any = {};
-    obj.delegation = message.delegation ? Delegation.toAmino(message.delegation) : undefined;
-    obj.balance = message.balance ? Coin.toAmino(message.balance) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DelegationResponseAminoMsg): DelegationResponse {
-    return DelegationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelegationResponse): DelegationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/DelegationResponse",
-      value: DelegationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegationResponseProtoMsg): DelegationResponse {
-    return DelegationResponse.decode(message.value);
-  },
-  toProto(message: DelegationResponse): Uint8Array {
-    return DelegationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: DelegationResponse): DelegationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.DelegationResponse",
-      value: DelegationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseRedelegationEntryResponse(): RedelegationEntryResponse {
-  return {
-    redelegationEntry: RedelegationEntry.fromPartial({}),
-    balance: ""
-  };
-}
-export const RedelegationEntryResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationEntryResponse",
-  aminoType: "cosmos-sdk/RedelegationEntryResponse",
-  encode(message: RedelegationEntryResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.redelegationEntry !== undefined) {
-      RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.balance !== "") {
-      writer.uint32(34).string(message.balance);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RedelegationEntryResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRedelegationEntryResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.redelegationEntry = RedelegationEntry.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.balance = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RedelegationEntryResponse {
-    return {
-      redelegationEntry: isSet(object.redelegationEntry) ? RedelegationEntry.fromJSON(object.redelegationEntry) : undefined,
-      balance: isSet(object.balance) ? String(object.balance) : ""
-    };
-  },
-  toJSON(message: RedelegationEntryResponse): unknown {
-    const obj: any = {};
-    message.redelegationEntry !== undefined && (obj.redelegationEntry = message.redelegationEntry ? RedelegationEntry.toJSON(message.redelegationEntry) : undefined);
-    message.balance !== undefined && (obj.balance = message.balance);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RedelegationEntryResponse>): RedelegationEntryResponse {
-    const message = createBaseRedelegationEntryResponse();
-    message.redelegationEntry = object.redelegationEntry !== undefined && object.redelegationEntry !== null ? RedelegationEntry.fromPartial(object.redelegationEntry) : undefined;
-    message.balance = object.balance ?? "";
-    return message;
-  },
-  fromSDK(object: RedelegationEntryResponseSDKType): RedelegationEntryResponse {
-    return {
-      redelegationEntry: object.redelegation_entry ? RedelegationEntry.fromSDK(object.redelegation_entry) : undefined,
-      balance: object?.balance
-    };
-  },
-  toSDK(message: RedelegationEntryResponse): RedelegationEntryResponseSDKType {
-    const obj: any = {};
-    message.redelegationEntry !== undefined && (obj.redelegation_entry = message.redelegationEntry ? RedelegationEntry.toSDK(message.redelegationEntry) : undefined);
-    obj.balance = message.balance;
-    return obj;
-  },
-  fromAmino(object: RedelegationEntryResponseAmino): RedelegationEntryResponse {
-    return {
-      redelegationEntry: object?.redelegation_entry ? RedelegationEntry.fromAmino(object.redelegation_entry) : undefined,
-      balance: object.balance
-    };
-  },
-  toAmino(message: RedelegationEntryResponse): RedelegationEntryResponseAmino {
-    const obj: any = {};
-    obj.redelegation_entry = message.redelegationEntry ? RedelegationEntry.toAmino(message.redelegationEntry) : undefined;
-    obj.balance = message.balance;
-    return obj;
-  },
-  fromAminoMsg(object: RedelegationEntryResponseAminoMsg): RedelegationEntryResponse {
-    return RedelegationEntryResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: RedelegationEntryResponse): RedelegationEntryResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/RedelegationEntryResponse",
-      value: RedelegationEntryResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RedelegationEntryResponseProtoMsg): RedelegationEntryResponse {
-    return RedelegationEntryResponse.decode(message.value);
-  },
-  toProto(message: RedelegationEntryResponse): Uint8Array {
-    return RedelegationEntryResponse.encode(message).finish();
-  },
-  toProtoMsg(message: RedelegationEntryResponse): RedelegationEntryResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.RedelegationEntryResponse",
-      value: RedelegationEntryResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseRedelegationResponse(): RedelegationResponse {
-  return {
-    redelegation: Redelegation.fromPartial({}),
-    entries: []
-  };
-}
-export const RedelegationResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.RedelegationResponse",
-  aminoType: "cosmos-sdk/RedelegationResponse",
-  encode(message: RedelegationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.redelegation !== undefined) {
-      Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.entries) {
-      RedelegationEntryResponse.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RedelegationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRedelegationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.redelegation = Redelegation.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.entries.push(RedelegationEntryResponse.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RedelegationResponse {
-    return {
-      redelegation: isSet(object.redelegation) ? Redelegation.fromJSON(object.redelegation) : undefined,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntryResponse.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: RedelegationResponse): unknown {
-    const obj: any = {};
-    message.redelegation !== undefined && (obj.redelegation = message.redelegation ? Redelegation.toJSON(message.redelegation) : undefined);
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntryResponse.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RedelegationResponse>): RedelegationResponse {
-    const message = createBaseRedelegationResponse();
-    message.redelegation = object.redelegation !== undefined && object.redelegation !== null ? Redelegation.fromPartial(object.redelegation) : undefined;
-    message.entries = object.entries?.map(e => RedelegationEntryResponse.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: RedelegationResponseSDKType): RedelegationResponse {
-    return {
-      redelegation: object.redelegation ? Redelegation.fromSDK(object.redelegation) : undefined,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntryResponse.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: RedelegationResponse): RedelegationResponseSDKType {
-    const obj: any = {};
-    message.redelegation !== undefined && (obj.redelegation = message.redelegation ? Redelegation.toSDK(message.redelegation) : undefined);
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntryResponse.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAmino(object: RedelegationResponseAmino): RedelegationResponse {
-    return {
-      redelegation: object?.redelegation ? Redelegation.fromAmino(object.redelegation) : undefined,
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => RedelegationEntryResponse.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: RedelegationResponse): RedelegationResponseAmino {
-    const obj: any = {};
-    obj.redelegation = message.redelegation ? Redelegation.toAmino(message.redelegation) : undefined;
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? RedelegationEntryResponse.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: RedelegationResponseAminoMsg): RedelegationResponse {
-    return RedelegationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: RedelegationResponse): RedelegationResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/RedelegationResponse",
-      value: RedelegationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RedelegationResponseProtoMsg): RedelegationResponse {
-    return RedelegationResponse.decode(message.value);
-  },
-  toProto(message: RedelegationResponse): Uint8Array {
-    return RedelegationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: RedelegationResponse): RedelegationResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.RedelegationResponse",
-      value: RedelegationResponse.encode(message).finish()
-    };
-  }
-};
-function createBasePool(): Pool {
-  return {
-    notBondedTokens: "",
-    bondedTokens: ""
-  };
-}
-export const Pool = {
-  typeUrl: "/cosmos.staking.v1beta1.Pool",
-  aminoType: "cosmos-sdk/Pool",
-  encode(message: Pool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.notBondedTokens !== "") {
-      writer.uint32(10).string(message.notBondedTokens);
-    }
-    if (message.bondedTokens !== "") {
-      writer.uint32(18).string(message.bondedTokens);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Pool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.notBondedTokens = reader.string();
-          break;
-        case 2:
-          message.bondedTokens = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Pool {
-    return {
-      notBondedTokens: isSet(object.notBondedTokens) ? String(object.notBondedTokens) : "",
-      bondedTokens: isSet(object.bondedTokens) ? String(object.bondedTokens) : ""
-    };
-  },
-  toJSON(message: Pool): unknown {
-    const obj: any = {};
-    message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);
-    message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Pool>): Pool {
-    const message = createBasePool();
-    message.notBondedTokens = object.notBondedTokens ?? "";
-    message.bondedTokens = object.bondedTokens ?? "";
-    return message;
-  },
-  fromSDK(object: PoolSDKType): Pool {
-    return {
-      notBondedTokens: object?.not_bonded_tokens,
-      bondedTokens: object?.bonded_tokens
-    };
-  },
-  toSDK(message: Pool): PoolSDKType {
-    const obj: any = {};
-    obj.not_bonded_tokens = message.notBondedTokens;
-    obj.bonded_tokens = message.bondedTokens;
-    return obj;
-  },
-  fromAmino(object: PoolAmino): Pool {
-    return {
-      notBondedTokens: object.not_bonded_tokens,
-      bondedTokens: object.bonded_tokens
-    };
-  },
-  toAmino(message: Pool): PoolAmino {
-    const obj: any = {};
-    obj.not_bonded_tokens = message.notBondedTokens;
-    obj.bonded_tokens = message.bondedTokens;
-    return obj;
-  },
-  fromAminoMsg(object: PoolAminoMsg): Pool {
-    return Pool.fromAmino(object.value);
-  },
-  toAminoMsg(message: Pool): PoolAminoMsg {
-    return {
-      type: "cosmos-sdk/Pool",
-      value: Pool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolProtoMsg): Pool {
-    return Pool.decode(message.value);
-  },
-  toProto(message: Pool): Uint8Array {
-    return Pool.encode(message).finish();
-  },
-  toProtoMsg(message: Pool): PoolProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.Pool",
-      value: Pool.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.amino.ts
deleted file mode 100644
index 15942672..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-//@ts-nocheck
-import { MsgCreateValidator, MsgEditValidator, MsgDelegate, MsgBeginRedelegate, MsgUndelegate } from "./tx";
-export const AminoConverter = {
-  "/cosmos.staking.v1beta1.MsgCreateValidator": {
-    aminoType: "cosmos-sdk/MsgCreateValidator",
-    toAmino: MsgCreateValidator.toAmino,
-    fromAmino: MsgCreateValidator.fromAmino
-  },
-  "/cosmos.staking.v1beta1.MsgEditValidator": {
-    aminoType: "cosmos-sdk/MsgEditValidator",
-    toAmino: MsgEditValidator.toAmino,
-    fromAmino: MsgEditValidator.fromAmino
-  },
-  "/cosmos.staking.v1beta1.MsgDelegate": {
-    aminoType: "cosmos-sdk/MsgDelegate",
-    toAmino: MsgDelegate.toAmino,
-    fromAmino: MsgDelegate.fromAmino
-  },
-  "/cosmos.staking.v1beta1.MsgBeginRedelegate": {
-    aminoType: "cosmos-sdk/MsgBeginRedelegate",
-    toAmino: MsgBeginRedelegate.toAmino,
-    fromAmino: MsgBeginRedelegate.fromAmino
-  },
-  "/cosmos.staking.v1beta1.MsgUndelegate": {
-    aminoType: "cosmos-sdk/MsgUndelegate",
-    toAmino: MsgUndelegate.toAmino,
-    fromAmino: MsgUndelegate.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.registry.ts
deleted file mode 100644
index 63f7a905..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateValidator, MsgEditValidator, MsgDelegate, MsgBeginRedelegate, MsgUndelegate } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.staking.v1beta1.MsgCreateValidator", MsgCreateValidator], ["/cosmos.staking.v1beta1.MsgEditValidator", MsgEditValidator], ["/cosmos.staking.v1beta1.MsgDelegate", MsgDelegate], ["/cosmos.staking.v1beta1.MsgBeginRedelegate", MsgBeginRedelegate], ["/cosmos.staking.v1beta1.MsgUndelegate", MsgUndelegate]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createValidator(value: MsgCreateValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-        value: MsgCreateValidator.encode(value).finish()
-      };
-    },
-    editValidator(value: MsgEditValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-        value: MsgEditValidator.encode(value).finish()
-      };
-    },
-    delegate(value: MsgDelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-        value: MsgDelegate.encode(value).finish()
-      };
-    },
-    beginRedelegate(value: MsgBeginRedelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-        value: MsgBeginRedelegate.encode(value).finish()
-      };
-    },
-    undelegate(value: MsgUndelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-        value: MsgUndelegate.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createValidator(value: MsgCreateValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-        value
-      };
-    },
-    editValidator(value: MsgEditValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-        value
-      };
-    },
-    delegate(value: MsgDelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-        value
-      };
-    },
-    beginRedelegate(value: MsgBeginRedelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-        value
-      };
-    },
-    undelegate(value: MsgUndelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createValidator(value: MsgCreateValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-        value: MsgCreateValidator.toJSON(value)
-      };
-    },
-    editValidator(value: MsgEditValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-        value: MsgEditValidator.toJSON(value)
-      };
-    },
-    delegate(value: MsgDelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-        value: MsgDelegate.toJSON(value)
-      };
-    },
-    beginRedelegate(value: MsgBeginRedelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-        value: MsgBeginRedelegate.toJSON(value)
-      };
-    },
-    undelegate(value: MsgUndelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-        value: MsgUndelegate.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createValidator(value: any) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-        value: MsgCreateValidator.fromJSON(value)
-      };
-    },
-    editValidator(value: any) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-        value: MsgEditValidator.fromJSON(value)
-      };
-    },
-    delegate(value: any) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-        value: MsgDelegate.fromJSON(value)
-      };
-    },
-    beginRedelegate(value: any) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-        value: MsgBeginRedelegate.fromJSON(value)
-      };
-    },
-    undelegate(value: any) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-        value: MsgUndelegate.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createValidator(value: MsgCreateValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-        value: MsgCreateValidator.fromPartial(value)
-      };
-    },
-    editValidator(value: MsgEditValidator) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-        value: MsgEditValidator.fromPartial(value)
-      };
-    },
-    delegate(value: MsgDelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-        value: MsgDelegate.fromPartial(value)
-      };
-    },
-    beginRedelegate(value: MsgBeginRedelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-        value: MsgBeginRedelegate.fromPartial(value)
-      };
-    },
-    undelegate(value: MsgUndelegate) {
-      return {
-        typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-        value: MsgUndelegate.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index bc68ae5b..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgCreateValidator, MsgCreateValidatorResponse, MsgEditValidator, MsgEditValidatorResponse, MsgDelegate, MsgDelegateResponse, MsgBeginRedelegate, MsgBeginRedelegateResponse, MsgUndelegate, MsgUndelegateResponse } from "./tx";
-/** Msg defines the staking Msg service. */
-export interface Msg {
-  /** CreateValidator defines a method for creating a new validator. */
-  createValidator(request: MsgCreateValidator): Promise<MsgCreateValidatorResponse>;
-  /** EditValidator defines a method for editing an existing validator. */
-  editValidator(request: MsgEditValidator): Promise<MsgEditValidatorResponse>;
-  /**
-   * Delegate defines a method for performing a delegation of coins
-   * from a delegator to a validator.
-   */
-  delegate(request: MsgDelegate): Promise<MsgDelegateResponse>;
-  /**
-   * BeginRedelegate defines a method for performing a redelegation
-   * of coins from a delegator and source validator to a destination validator.
-   */
-  beginRedelegate(request: MsgBeginRedelegate): Promise<MsgBeginRedelegateResponse>;
-  /**
-   * Undelegate defines a method for performing an undelegation from a
-   * delegate and a validator.
-   */
-  undelegate(request: MsgUndelegate): Promise<MsgUndelegateResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createValidator = this.createValidator.bind(this);
-    this.editValidator = this.editValidator.bind(this);
-    this.delegate = this.delegate.bind(this);
-    this.beginRedelegate = this.beginRedelegate.bind(this);
-    this.undelegate = this.undelegate.bind(this);
-  }
-  createValidator(request: MsgCreateValidator): Promise<MsgCreateValidatorResponse> {
-    const data = MsgCreateValidator.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "CreateValidator", data);
-    return promise.then(data => MsgCreateValidatorResponse.decode(new BinaryReader(data)));
-  }
-  editValidator(request: MsgEditValidator): Promise<MsgEditValidatorResponse> {
-    const data = MsgEditValidator.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "EditValidator", data);
-    return promise.then(data => MsgEditValidatorResponse.decode(new BinaryReader(data)));
-  }
-  delegate(request: MsgDelegate): Promise<MsgDelegateResponse> {
-    const data = MsgDelegate.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Delegate", data);
-    return promise.then(data => MsgDelegateResponse.decode(new BinaryReader(data)));
-  }
-  beginRedelegate(request: MsgBeginRedelegate): Promise<MsgBeginRedelegateResponse> {
-    const data = MsgBeginRedelegate.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "BeginRedelegate", data);
-    return promise.then(data => MsgBeginRedelegateResponse.decode(new BinaryReader(data)));
-  }
-  undelegate(request: MsgUndelegate): Promise<MsgUndelegateResponse> {
-    const data = MsgUndelegate.encode(request).finish();
-    const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Undelegate", data);
-    return promise.then(data => MsgUndelegateResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.ts
deleted file mode 100644
index a15526ec..00000000
--- a/examples/injective/src/codegen/cosmos/staking/v1beta1/tx.ts
+++ /dev/null
@@ -1,1328 +0,0 @@
-//@ts-nocheck
-import { Description, DescriptionAmino, DescriptionSDKType, CommissionRates, CommissionRatesAmino, CommissionRatesSDKType } from "./staking";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers";
-import { encodePubkey, decodePubkey } from "@cosmjs/proto-signing";
-import { Decimal } from "@cosmjs/math";
-/** MsgCreateValidator defines a SDK message for creating a new validator. */
-export interface MsgCreateValidator {
-  description: Description | undefined;
-  commission: CommissionRates | undefined;
-  minSelfDelegation: string;
-  delegatorAddress: string;
-  validatorAddress: string;
-  pubkey: Any | undefined;
-  value: Coin | undefined;
-}
-export interface MsgCreateValidatorProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator";
-  value: Uint8Array;
-}
-/** MsgCreateValidator defines a SDK message for creating a new validator. */
-export interface MsgCreateValidatorAmino {
-  description?: DescriptionAmino | undefined;
-  commission?: CommissionRatesAmino | undefined;
-  min_self_delegation: string;
-  delegator_address: string;
-  validator_address: string;
-  pubkey?: AnyAmino | undefined;
-  value?: CoinAmino | undefined;
-}
-export interface MsgCreateValidatorAminoMsg {
-  type: "cosmos-sdk/MsgCreateValidator";
-  value: MsgCreateValidatorAmino;
-}
-/** MsgCreateValidator defines a SDK message for creating a new validator. */
-export interface MsgCreateValidatorSDKType {
-  description: DescriptionSDKType | undefined;
-  commission: CommissionRatesSDKType | undefined;
-  min_self_delegation: string;
-  delegator_address: string;
-  validator_address: string;
-  pubkey: AnySDKType | undefined;
-  value: CoinSDKType | undefined;
-}
-/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */
-export interface MsgCreateValidatorResponse {}
-export interface MsgCreateValidatorResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidatorResponse";
-  value: Uint8Array;
-}
-/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */
-export interface MsgCreateValidatorResponseAmino {}
-export interface MsgCreateValidatorResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateValidatorResponse";
-  value: MsgCreateValidatorResponseAmino;
-}
-/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */
-export interface MsgCreateValidatorResponseSDKType {}
-/** MsgEditValidator defines a SDK message for editing an existing validator. */
-export interface MsgEditValidator {
-  description: Description | undefined;
-  validatorAddress: string;
-  /**
-   * We pass a reference to the new commission rate and min self delegation as
-   * it's not mandatory to update. If not updated, the deserialized rate will be
-   * zero with no way to distinguish if an update was intended.
-   * REF: #2373
-   */
-  commissionRate: string;
-  minSelfDelegation: string;
-}
-export interface MsgEditValidatorProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator";
-  value: Uint8Array;
-}
-/** MsgEditValidator defines a SDK message for editing an existing validator. */
-export interface MsgEditValidatorAmino {
-  description?: DescriptionAmino | undefined;
-  validator_address: string;
-  /**
-   * We pass a reference to the new commission rate and min self delegation as
-   * it's not mandatory to update. If not updated, the deserialized rate will be
-   * zero with no way to distinguish if an update was intended.
-   * REF: #2373
-   */
-  commission_rate: string;
-  min_self_delegation: string;
-}
-export interface MsgEditValidatorAminoMsg {
-  type: "cosmos-sdk/MsgEditValidator";
-  value: MsgEditValidatorAmino;
-}
-/** MsgEditValidator defines a SDK message for editing an existing validator. */
-export interface MsgEditValidatorSDKType {
-  description: DescriptionSDKType | undefined;
-  validator_address: string;
-  commission_rate: string;
-  min_self_delegation: string;
-}
-/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */
-export interface MsgEditValidatorResponse {}
-export interface MsgEditValidatorResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgEditValidatorResponse";
-  value: Uint8Array;
-}
-/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */
-export interface MsgEditValidatorResponseAmino {}
-export interface MsgEditValidatorResponseAminoMsg {
-  type: "cosmos-sdk/MsgEditValidatorResponse";
-  value: MsgEditValidatorResponseAmino;
-}
-/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */
-export interface MsgEditValidatorResponseSDKType {}
-/**
- * MsgDelegate defines a SDK message for performing a delegation of coins
- * from a delegator to a validator.
- */
-export interface MsgDelegate {
-  delegatorAddress: string;
-  validatorAddress: string;
-  amount: Coin | undefined;
-}
-export interface MsgDelegateProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgDelegate";
-  value: Uint8Array;
-}
-/**
- * MsgDelegate defines a SDK message for performing a delegation of coins
- * from a delegator to a validator.
- */
-export interface MsgDelegateAmino {
-  delegator_address: string;
-  validator_address: string;
-  amount?: CoinAmino | undefined;
-}
-export interface MsgDelegateAminoMsg {
-  type: "cosmos-sdk/MsgDelegate";
-  value: MsgDelegateAmino;
-}
-/**
- * MsgDelegate defines a SDK message for performing a delegation of coins
- * from a delegator to a validator.
- */
-export interface MsgDelegateSDKType {
-  delegator_address: string;
-  validator_address: string;
-  amount: CoinSDKType | undefined;
-}
-/** MsgDelegateResponse defines the Msg/Delegate response type. */
-export interface MsgDelegateResponse {}
-export interface MsgDelegateResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgDelegateResponse";
-  value: Uint8Array;
-}
-/** MsgDelegateResponse defines the Msg/Delegate response type. */
-export interface MsgDelegateResponseAmino {}
-export interface MsgDelegateResponseAminoMsg {
-  type: "cosmos-sdk/MsgDelegateResponse";
-  value: MsgDelegateResponseAmino;
-}
-/** MsgDelegateResponse defines the Msg/Delegate response type. */
-export interface MsgDelegateResponseSDKType {}
-/**
- * MsgBeginRedelegate defines a SDK message for performing a redelegation
- * of coins from a delegator and source validator to a destination validator.
- */
-export interface MsgBeginRedelegate {
-  delegatorAddress: string;
-  validatorSrcAddress: string;
-  validatorDstAddress: string;
-  amount: Coin | undefined;
-}
-export interface MsgBeginRedelegateProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate";
-  value: Uint8Array;
-}
-/**
- * MsgBeginRedelegate defines a SDK message for performing a redelegation
- * of coins from a delegator and source validator to a destination validator.
- */
-export interface MsgBeginRedelegateAmino {
-  delegator_address: string;
-  validator_src_address: string;
-  validator_dst_address: string;
-  amount?: CoinAmino | undefined;
-}
-export interface MsgBeginRedelegateAminoMsg {
-  type: "cosmos-sdk/MsgBeginRedelegate";
-  value: MsgBeginRedelegateAmino;
-}
-/**
- * MsgBeginRedelegate defines a SDK message for performing a redelegation
- * of coins from a delegator and source validator to a destination validator.
- */
-export interface MsgBeginRedelegateSDKType {
-  delegator_address: string;
-  validator_src_address: string;
-  validator_dst_address: string;
-  amount: CoinSDKType | undefined;
-}
-/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */
-export interface MsgBeginRedelegateResponse {
-  completionTime: Date | undefined;
-}
-export interface MsgBeginRedelegateResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegateResponse";
-  value: Uint8Array;
-}
-/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */
-export interface MsgBeginRedelegateResponseAmino {
-  completion_time?: Date | undefined;
-}
-export interface MsgBeginRedelegateResponseAminoMsg {
-  type: "cosmos-sdk/MsgBeginRedelegateResponse";
-  value: MsgBeginRedelegateResponseAmino;
-}
-/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */
-export interface MsgBeginRedelegateResponseSDKType {
-  completion_time: Date | undefined;
-}
-/**
- * MsgUndelegate defines a SDK message for performing an undelegation from a
- * delegate and a validator.
- */
-export interface MsgUndelegate {
-  delegatorAddress: string;
-  validatorAddress: string;
-  amount: Coin | undefined;
-}
-export interface MsgUndelegateProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate";
-  value: Uint8Array;
-}
-/**
- * MsgUndelegate defines a SDK message for performing an undelegation from a
- * delegate and a validator.
- */
-export interface MsgUndelegateAmino {
-  delegator_address: string;
-  validator_address: string;
-  amount?: CoinAmino | undefined;
-}
-export interface MsgUndelegateAminoMsg {
-  type: "cosmos-sdk/MsgUndelegate";
-  value: MsgUndelegateAmino;
-}
-/**
- * MsgUndelegate defines a SDK message for performing an undelegation from a
- * delegate and a validator.
- */
-export interface MsgUndelegateSDKType {
-  delegator_address: string;
-  validator_address: string;
-  amount: CoinSDKType | undefined;
-}
-/** MsgUndelegateResponse defines the Msg/Undelegate response type. */
-export interface MsgUndelegateResponse {
-  completionTime: Date | undefined;
-}
-export interface MsgUndelegateResponseProtoMsg {
-  typeUrl: "/cosmos.staking.v1beta1.MsgUndelegateResponse";
-  value: Uint8Array;
-}
-/** MsgUndelegateResponse defines the Msg/Undelegate response type. */
-export interface MsgUndelegateResponseAmino {
-  completion_time?: Date | undefined;
-}
-export interface MsgUndelegateResponseAminoMsg {
-  type: "cosmos-sdk/MsgUndelegateResponse";
-  value: MsgUndelegateResponseAmino;
-}
-/** MsgUndelegateResponse defines the Msg/Undelegate response type. */
-export interface MsgUndelegateResponseSDKType {
-  completion_time: Date | undefined;
-}
-function createBaseMsgCreateValidator(): MsgCreateValidator {
-  return {
-    description: Description.fromPartial({}),
-    commission: CommissionRates.fromPartial({}),
-    minSelfDelegation: "",
-    delegatorAddress: "",
-    validatorAddress: "",
-    pubkey: Any.fromPartial({}),
-    value: Coin.fromPartial({})
-  };
-}
-export const MsgCreateValidator = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-  aminoType: "cosmos-sdk/MsgCreateValidator",
-  encode(message: MsgCreateValidator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.description !== undefined) {
-      Description.encode(message.description, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.commission !== undefined) {
-      CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.minSelfDelegation !== "") {
-      writer.uint32(26).string(message.minSelfDelegation);
-    }
-    if (message.delegatorAddress !== "") {
-      writer.uint32(34).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(42).string(message.validatorAddress);
-    }
-    if (message.pubkey !== undefined) {
-      Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.value !== undefined) {
-      Coin.encode(message.value, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateValidator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.description = Description.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.commission = CommissionRates.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.minSelfDelegation = reader.string();
-          break;
-        case 4:
-          message.delegatorAddress = reader.string();
-          break;
-        case 5:
-          message.validatorAddress = reader.string();
-          break;
-        case 6:
-          message.pubkey = Any.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.value = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateValidator {
-    return {
-      description: isSet(object.description) ? Description.fromJSON(object.description) : undefined,
-      commission: isSet(object.commission) ? CommissionRates.fromJSON(object.commission) : undefined,
-      minSelfDelegation: isSet(object.minSelfDelegation) ? String(object.minSelfDelegation) : "",
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      pubkey: isSet(object.pubkey) ? Any.fromJSON(object.pubkey) : undefined,
-      value: isSet(object.value) ? Coin.fromJSON(object.value) : undefined
-    };
-  },
-  toJSON(message: MsgCreateValidator): unknown {
-    const obj: any = {};
-    message.description !== undefined && (obj.description = message.description ? Description.toJSON(message.description) : undefined);
-    message.commission !== undefined && (obj.commission = message.commission ? CommissionRates.toJSON(message.commission) : undefined);
-    message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.pubkey !== undefined && (obj.pubkey = message.pubkey ? Any.toJSON(message.pubkey) : undefined);
-    message.value !== undefined && (obj.value = message.value ? Coin.toJSON(message.value) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateValidator>): MsgCreateValidator {
-    const message = createBaseMsgCreateValidator();
-    message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined;
-    message.commission = object.commission !== undefined && object.commission !== null ? CommissionRates.fromPartial(object.commission) : undefined;
-    message.minSelfDelegation = object.minSelfDelegation ?? "";
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.pubkey = object.pubkey !== undefined && object.pubkey !== null ? Any.fromPartial(object.pubkey) : undefined;
-    message.value = object.value !== undefined && object.value !== null ? Coin.fromPartial(object.value) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgCreateValidatorSDKType): MsgCreateValidator {
-    return {
-      description: object.description ? Description.fromSDK(object.description) : undefined,
-      commission: object.commission ? CommissionRates.fromSDK(object.commission) : undefined,
-      minSelfDelegation: object?.min_self_delegation,
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      pubkey: object.pubkey ? Any.fromSDK(object.pubkey) : undefined,
-      value: object.value ? Coin.fromSDK(object.value) : undefined
-    };
-  },
-  toSDK(message: MsgCreateValidator): MsgCreateValidatorSDKType {
-    const obj: any = {};
-    message.description !== undefined && (obj.description = message.description ? Description.toSDK(message.description) : undefined);
-    message.commission !== undefined && (obj.commission = message.commission ? CommissionRates.toSDK(message.commission) : undefined);
-    obj.min_self_delegation = message.minSelfDelegation;
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    message.pubkey !== undefined && (obj.pubkey = message.pubkey ? Any.toSDK(message.pubkey) : undefined);
-    message.value !== undefined && (obj.value = message.value ? Coin.toSDK(message.value) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgCreateValidatorAmino): MsgCreateValidator {
-    return {
-      description: object?.description ? Description.fromAmino(object.description) : undefined,
-      commission: object?.commission ? CommissionRates.fromAmino(object.commission) : undefined,
-      minSelfDelegation: object.min_self_delegation,
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      pubkey: object?.pubkey ? encodePubkey(object.pubkey) : undefined,
-      value: object?.value ? Coin.fromAmino(object.value) : undefined
-    };
-  },
-  toAmino(message: MsgCreateValidator): MsgCreateValidatorAmino {
-    const obj: any = {};
-    obj.description = message.description ? Description.toAmino(message.description) : undefined;
-    obj.commission = message.commission ? CommissionRates.toAmino(message.commission) : undefined;
-    obj.min_self_delegation = message.minSelfDelegation;
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.pubkey = message.pubkey ? decodePubkey(message.pubkey) : undefined;
-    obj.value = message.value ? Coin.toAmino(message.value) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateValidatorAminoMsg): MsgCreateValidator {
-    return MsgCreateValidator.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateValidator): MsgCreateValidatorAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateValidator",
-      value: MsgCreateValidator.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateValidatorProtoMsg): MsgCreateValidator {
-    return MsgCreateValidator.decode(message.value);
-  },
-  toProto(message: MsgCreateValidator): Uint8Array {
-    return MsgCreateValidator.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateValidator): MsgCreateValidatorProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator",
-      value: MsgCreateValidator.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateValidatorResponse(): MsgCreateValidatorResponse {
-  return {};
-}
-export const MsgCreateValidatorResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidatorResponse",
-  aminoType: "cosmos-sdk/MsgCreateValidatorResponse",
-  encode(_: MsgCreateValidatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateValidatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateValidatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreateValidatorResponse {
-    return {};
-  },
-  toJSON(_: MsgCreateValidatorResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreateValidatorResponse>): MsgCreateValidatorResponse {
-    const message = createBaseMsgCreateValidatorResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreateValidatorResponseSDKType): MsgCreateValidatorResponse {
-    return {};
-  },
-  toSDK(_: MsgCreateValidatorResponse): MsgCreateValidatorResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreateValidatorResponseAmino): MsgCreateValidatorResponse {
-    return {};
-  },
-  toAmino(_: MsgCreateValidatorResponse): MsgCreateValidatorResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateValidatorResponseAminoMsg): MsgCreateValidatorResponse {
-    return MsgCreateValidatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateValidatorResponse): MsgCreateValidatorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateValidatorResponse",
-      value: MsgCreateValidatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateValidatorResponseProtoMsg): MsgCreateValidatorResponse {
-    return MsgCreateValidatorResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateValidatorResponse): Uint8Array {
-    return MsgCreateValidatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateValidatorResponse): MsgCreateValidatorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidatorResponse",
-      value: MsgCreateValidatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgEditValidator(): MsgEditValidator {
-  return {
-    description: Description.fromPartial({}),
-    validatorAddress: "",
-    commissionRate: "",
-    minSelfDelegation: ""
-  };
-}
-export const MsgEditValidator = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-  aminoType: "cosmos-sdk/MsgEditValidator",
-  encode(message: MsgEditValidator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.description !== undefined) {
-      Description.encode(message.description, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.commissionRate !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.commissionRate, 18).atomics);
-    }
-    if (message.minSelfDelegation !== "") {
-      writer.uint32(34).string(message.minSelfDelegation);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgEditValidator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgEditValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.description = Description.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.commissionRate = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 4:
-          message.minSelfDelegation = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgEditValidator {
-    return {
-      description: isSet(object.description) ? Description.fromJSON(object.description) : undefined,
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      commissionRate: isSet(object.commissionRate) ? String(object.commissionRate) : "",
-      minSelfDelegation: isSet(object.minSelfDelegation) ? String(object.minSelfDelegation) : ""
-    };
-  },
-  toJSON(message: MsgEditValidator): unknown {
-    const obj: any = {};
-    message.description !== undefined && (obj.description = message.description ? Description.toJSON(message.description) : undefined);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);
-    message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgEditValidator>): MsgEditValidator {
-    const message = createBaseMsgEditValidator();
-    message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined;
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.commissionRate = object.commissionRate ?? "";
-    message.minSelfDelegation = object.minSelfDelegation ?? "";
-    return message;
-  },
-  fromSDK(object: MsgEditValidatorSDKType): MsgEditValidator {
-    return {
-      description: object.description ? Description.fromSDK(object.description) : undefined,
-      validatorAddress: object?.validator_address,
-      commissionRate: object?.commission_rate,
-      minSelfDelegation: object?.min_self_delegation
-    };
-  },
-  toSDK(message: MsgEditValidator): MsgEditValidatorSDKType {
-    const obj: any = {};
-    message.description !== undefined && (obj.description = message.description ? Description.toSDK(message.description) : undefined);
-    obj.validator_address = message.validatorAddress;
-    obj.commission_rate = message.commissionRate;
-    obj.min_self_delegation = message.minSelfDelegation;
-    return obj;
-  },
-  fromAmino(object: MsgEditValidatorAmino): MsgEditValidator {
-    return {
-      description: object?.description ? Description.fromAmino(object.description) : undefined,
-      validatorAddress: object.validator_address,
-      commissionRate: object.commission_rate,
-      minSelfDelegation: object.min_self_delegation
-    };
-  },
-  toAmino(message: MsgEditValidator): MsgEditValidatorAmino {
-    const obj: any = {};
-    obj.description = message.description ? Description.toAmino(message.description) : undefined;
-    obj.validator_address = message.validatorAddress;
-    obj.commission_rate = message.commissionRate;
-    obj.min_self_delegation = message.minSelfDelegation;
-    return obj;
-  },
-  fromAminoMsg(object: MsgEditValidatorAminoMsg): MsgEditValidator {
-    return MsgEditValidator.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgEditValidator): MsgEditValidatorAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgEditValidator",
-      value: MsgEditValidator.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgEditValidatorProtoMsg): MsgEditValidator {
-    return MsgEditValidator.decode(message.value);
-  },
-  toProto(message: MsgEditValidator): Uint8Array {
-    return MsgEditValidator.encode(message).finish();
-  },
-  toProtoMsg(message: MsgEditValidator): MsgEditValidatorProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator",
-      value: MsgEditValidator.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgEditValidatorResponse(): MsgEditValidatorResponse {
-  return {};
-}
-export const MsgEditValidatorResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgEditValidatorResponse",
-  aminoType: "cosmos-sdk/MsgEditValidatorResponse",
-  encode(_: MsgEditValidatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgEditValidatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgEditValidatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgEditValidatorResponse {
-    return {};
-  },
-  toJSON(_: MsgEditValidatorResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgEditValidatorResponse>): MsgEditValidatorResponse {
-    const message = createBaseMsgEditValidatorResponse();
-    return message;
-  },
-  fromSDK(_: MsgEditValidatorResponseSDKType): MsgEditValidatorResponse {
-    return {};
-  },
-  toSDK(_: MsgEditValidatorResponse): MsgEditValidatorResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgEditValidatorResponseAmino): MsgEditValidatorResponse {
-    return {};
-  },
-  toAmino(_: MsgEditValidatorResponse): MsgEditValidatorResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgEditValidatorResponseAminoMsg): MsgEditValidatorResponse {
-    return MsgEditValidatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgEditValidatorResponse): MsgEditValidatorResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgEditValidatorResponse",
-      value: MsgEditValidatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgEditValidatorResponseProtoMsg): MsgEditValidatorResponse {
-    return MsgEditValidatorResponse.decode(message.value);
-  },
-  toProto(message: MsgEditValidatorResponse): Uint8Array {
-    return MsgEditValidatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgEditValidatorResponse): MsgEditValidatorResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgEditValidatorResponse",
-      value: MsgEditValidatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDelegate(): MsgDelegate {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    amount: Coin.fromPartial({})
-  };
-}
-export const MsgDelegate = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-  aminoType: "cosmos-sdk/MsgDelegate",
-  encode(message: MsgDelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgDelegate {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: MsgDelegate): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgDelegate>): MsgDelegate {
-    const message = createBaseMsgDelegate();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgDelegateSDKType): MsgDelegate {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: MsgDelegate): MsgDelegateSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgDelegateAmino): MsgDelegate {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: MsgDelegate): MsgDelegateAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgDelegateAminoMsg): MsgDelegate {
-    return MsgDelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDelegate): MsgDelegateAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgDelegate",
-      value: MsgDelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDelegateProtoMsg): MsgDelegate {
-    return MsgDelegate.decode(message.value);
-  },
-  toProto(message: MsgDelegate): Uint8Array {
-    return MsgDelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDelegate): MsgDelegateProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgDelegate",
-      value: MsgDelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgDelegateResponse(): MsgDelegateResponse {
-  return {};
-}
-export const MsgDelegateResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgDelegateResponse",
-  aminoType: "cosmos-sdk/MsgDelegateResponse",
-  encode(_: MsgDelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgDelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgDelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgDelegateResponse {
-    return {};
-  },
-  toJSON(_: MsgDelegateResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgDelegateResponse>): MsgDelegateResponse {
-    const message = createBaseMsgDelegateResponse();
-    return message;
-  },
-  fromSDK(_: MsgDelegateResponseSDKType): MsgDelegateResponse {
-    return {};
-  },
-  toSDK(_: MsgDelegateResponse): MsgDelegateResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgDelegateResponseAmino): MsgDelegateResponse {
-    return {};
-  },
-  toAmino(_: MsgDelegateResponse): MsgDelegateResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgDelegateResponseAminoMsg): MsgDelegateResponse {
-    return MsgDelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgDelegateResponse): MsgDelegateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgDelegateResponse",
-      value: MsgDelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgDelegateResponseProtoMsg): MsgDelegateResponse {
-    return MsgDelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgDelegateResponse): Uint8Array {
-    return MsgDelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgDelegateResponse): MsgDelegateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgDelegateResponse",
-      value: MsgDelegateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginRedelegate(): MsgBeginRedelegate {
-  return {
-    delegatorAddress: "",
-    validatorSrcAddress: "",
-    validatorDstAddress: "",
-    amount: Coin.fromPartial({})
-  };
-}
-export const MsgBeginRedelegate = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-  aminoType: "cosmos-sdk/MsgBeginRedelegate",
-  encode(message: MsgBeginRedelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorSrcAddress !== "") {
-      writer.uint32(18).string(message.validatorSrcAddress);
-    }
-    if (message.validatorDstAddress !== "") {
-      writer.uint32(26).string(message.validatorDstAddress);
-    }
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginRedelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginRedelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorSrcAddress = reader.string();
-          break;
-        case 3:
-          message.validatorDstAddress = reader.string();
-          break;
-        case 4:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginRedelegate {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorSrcAddress: isSet(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "",
-      validatorDstAddress: isSet(object.validatorDstAddress) ? String(object.validatorDstAddress) : "",
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: MsgBeginRedelegate): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);
-    message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginRedelegate>): MsgBeginRedelegate {
-    const message = createBaseMsgBeginRedelegate();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorSrcAddress = object.validatorSrcAddress ?? "";
-    message.validatorDstAddress = object.validatorDstAddress ?? "";
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgBeginRedelegateSDKType): MsgBeginRedelegate {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorSrcAddress: object?.validator_src_address,
-      validatorDstAddress: object?.validator_dst_address,
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: MsgBeginRedelegate): MsgBeginRedelegateSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgBeginRedelegateAmino): MsgBeginRedelegate {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorSrcAddress: object.validator_src_address,
-      validatorDstAddress: object.validator_dst_address,
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: MsgBeginRedelegate): MsgBeginRedelegateAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_src_address = message.validatorSrcAddress;
-    obj.validator_dst_address = message.validatorDstAddress;
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginRedelegateAminoMsg): MsgBeginRedelegate {
-    return MsgBeginRedelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginRedelegate): MsgBeginRedelegateAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgBeginRedelegate",
-      value: MsgBeginRedelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginRedelegateProtoMsg): MsgBeginRedelegate {
-    return MsgBeginRedelegate.decode(message.value);
-  },
-  toProto(message: MsgBeginRedelegate): Uint8Array {
-    return MsgBeginRedelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginRedelegate): MsgBeginRedelegateProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate",
-      value: MsgBeginRedelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginRedelegateResponse(): MsgBeginRedelegateResponse {
-  return {
-    completionTime: new Date()
-  };
-}
-export const MsgBeginRedelegateResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegateResponse",
-  aminoType: "cosmos-sdk/MsgBeginRedelegateResponse",
-  encode(message: MsgBeginRedelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.completionTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginRedelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginRedelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginRedelegateResponse {
-    return {
-      completionTime: isSet(object.completionTime) ? new Date(object.completionTime) : undefined
-    };
-  },
-  toJSON(message: MsgBeginRedelegateResponse): unknown {
-    const obj: any = {};
-    message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginRedelegateResponse>): MsgBeginRedelegateResponse {
-    const message = createBaseMsgBeginRedelegateResponse();
-    message.completionTime = object.completionTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: MsgBeginRedelegateResponseSDKType): MsgBeginRedelegateResponse {
-    return {
-      completionTime: object.completion_time ?? undefined
-    };
-  },
-  toSDK(message: MsgBeginRedelegateResponse): MsgBeginRedelegateResponseSDKType {
-    const obj: any = {};
-    message.completionTime !== undefined && (obj.completion_time = message.completionTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: MsgBeginRedelegateResponseAmino): MsgBeginRedelegateResponse {
-    return {
-      completionTime: object.completion_time
-    };
-  },
-  toAmino(message: MsgBeginRedelegateResponse): MsgBeginRedelegateResponseAmino {
-    const obj: any = {};
-    obj.completion_time = message.completionTime;
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginRedelegateResponseAminoMsg): MsgBeginRedelegateResponse {
-    return MsgBeginRedelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginRedelegateResponse): MsgBeginRedelegateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgBeginRedelegateResponse",
-      value: MsgBeginRedelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginRedelegateResponseProtoMsg): MsgBeginRedelegateResponse {
-    return MsgBeginRedelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgBeginRedelegateResponse): Uint8Array {
-    return MsgBeginRedelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginRedelegateResponse): MsgBeginRedelegateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegateResponse",
-      value: MsgBeginRedelegateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUndelegate(): MsgUndelegate {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    amount: Coin.fromPartial({})
-  };
-}
-export const MsgUndelegate = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-  aminoType: "cosmos-sdk/MsgUndelegate",
-  encode(message: MsgUndelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUndelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUndelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUndelegate {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: MsgUndelegate): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUndelegate>): MsgUndelegate {
-    const message = createBaseMsgUndelegate();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgUndelegateSDKType): MsgUndelegate {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: MsgUndelegate): MsgUndelegateSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgUndelegateAmino): MsgUndelegate {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: MsgUndelegate): MsgUndelegateAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUndelegateAminoMsg): MsgUndelegate {
-    return MsgUndelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUndelegate): MsgUndelegateAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUndelegate",
-      value: MsgUndelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUndelegateProtoMsg): MsgUndelegate {
-    return MsgUndelegate.decode(message.value);
-  },
-  toProto(message: MsgUndelegate): Uint8Array {
-    return MsgUndelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUndelegate): MsgUndelegateProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate",
-      value: MsgUndelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUndelegateResponse(): MsgUndelegateResponse {
-  return {
-    completionTime: new Date()
-  };
-}
-export const MsgUndelegateResponse = {
-  typeUrl: "/cosmos.staking.v1beta1.MsgUndelegateResponse",
-  aminoType: "cosmos-sdk/MsgUndelegateResponse",
-  encode(message: MsgUndelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.completionTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUndelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUndelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUndelegateResponse {
-    return {
-      completionTime: isSet(object.completionTime) ? new Date(object.completionTime) : undefined
-    };
-  },
-  toJSON(message: MsgUndelegateResponse): unknown {
-    const obj: any = {};
-    message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUndelegateResponse>): MsgUndelegateResponse {
-    const message = createBaseMsgUndelegateResponse();
-    message.completionTime = object.completionTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: MsgUndelegateResponseSDKType): MsgUndelegateResponse {
-    return {
-      completionTime: object.completion_time ?? undefined
-    };
-  },
-  toSDK(message: MsgUndelegateResponse): MsgUndelegateResponseSDKType {
-    const obj: any = {};
-    message.completionTime !== undefined && (obj.completion_time = message.completionTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: MsgUndelegateResponseAmino): MsgUndelegateResponse {
-    return {
-      completionTime: object.completion_time
-    };
-  },
-  toAmino(message: MsgUndelegateResponse): MsgUndelegateResponseAmino {
-    const obj: any = {};
-    obj.completion_time = message.completionTime;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUndelegateResponseAminoMsg): MsgUndelegateResponse {
-    return MsgUndelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUndelegateResponse): MsgUndelegateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUndelegateResponse",
-      value: MsgUndelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUndelegateResponseProtoMsg): MsgUndelegateResponse {
-    return MsgUndelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgUndelegateResponse): Uint8Array {
-    return MsgUndelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUndelegateResponse): MsgUndelegateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.staking.v1beta1.MsgUndelegateResponse",
-      value: MsgUndelegateResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/tx/signing/v1beta1/signing.ts b/examples/injective/src/codegen/cosmos/tx/signing/v1beta1/signing.ts
deleted file mode 100644
index 402f430e..00000000
--- a/examples/injective/src/codegen/cosmos/tx/signing/v1beta1/signing.ts
+++ /dev/null
@@ -1,780 +0,0 @@
-//@ts-nocheck
-import { CompactBitArray, CompactBitArrayAmino, CompactBitArraySDKType } from "../../../crypto/multisig/v1beta1/multisig";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * SignMode represents a signing mode with its own security guarantees.
- * 
- * This enum should be considered a registry of all known sign modes
- * in the Cosmos ecosystem. Apps are not expected to support all known
- * sign modes. Apps that would like to support custom  sign modes are
- * encouraged to open a small PR against this file to add a new case
- * to this SignMode enum describing their sign mode so that different
- * apps have a consistent version of this enum.
- */
-export enum SignMode {
-  /**
-   * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be
-   * rejected.
-   */
-  SIGN_MODE_UNSPECIFIED = 0,
-  /**
-   * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is
-   * verified with raw bytes from Tx.
-   */
-  SIGN_MODE_DIRECT = 1,
-  /**
-   * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some
-   * human-readable textual representation on top of the binary representation
-   * from SIGN_MODE_DIRECT. It is currently not supported.
-   */
-  SIGN_MODE_TEXTUAL = 2,
-  /**
-   * SIGN_MODE_DIRECT_AUX - SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
-   * SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not
-   * require signers signing over other signers' `signer_info`. It also allows
-   * for adding Tips in transactions.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  SIGN_MODE_DIRECT_AUX = 3,
-  /**
-   * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses
-   * Amino JSON and will be removed in the future.
-   */
-  SIGN_MODE_LEGACY_AMINO_JSON = 127,
-  UNRECOGNIZED = -1,
-}
-export const SignModeSDKType = SignMode;
-export const SignModeAmino = SignMode;
-export function signModeFromJSON(object: any): SignMode {
-  switch (object) {
-    case 0:
-    case "SIGN_MODE_UNSPECIFIED":
-      return SignMode.SIGN_MODE_UNSPECIFIED;
-    case 1:
-    case "SIGN_MODE_DIRECT":
-      return SignMode.SIGN_MODE_DIRECT;
-    case 2:
-    case "SIGN_MODE_TEXTUAL":
-      return SignMode.SIGN_MODE_TEXTUAL;
-    case 3:
-    case "SIGN_MODE_DIRECT_AUX":
-      return SignMode.SIGN_MODE_DIRECT_AUX;
-    case 127:
-    case "SIGN_MODE_LEGACY_AMINO_JSON":
-      return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return SignMode.UNRECOGNIZED;
-  }
-}
-export function signModeToJSON(object: SignMode): string {
-  switch (object) {
-    case SignMode.SIGN_MODE_UNSPECIFIED:
-      return "SIGN_MODE_UNSPECIFIED";
-    case SignMode.SIGN_MODE_DIRECT:
-      return "SIGN_MODE_DIRECT";
-    case SignMode.SIGN_MODE_TEXTUAL:
-      return "SIGN_MODE_TEXTUAL";
-    case SignMode.SIGN_MODE_DIRECT_AUX:
-      return "SIGN_MODE_DIRECT_AUX";
-    case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:
-      return "SIGN_MODE_LEGACY_AMINO_JSON";
-    case SignMode.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** SignatureDescriptors wraps multiple SignatureDescriptor's. */
-export interface SignatureDescriptors {
-  /** signatures are the signature descriptors */
-  signatures: SignatureDescriptor[];
-}
-export interface SignatureDescriptorsProtoMsg {
-  typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptors";
-  value: Uint8Array;
-}
-/** SignatureDescriptors wraps multiple SignatureDescriptor's. */
-export interface SignatureDescriptorsAmino {
-  /** signatures are the signature descriptors */
-  signatures: SignatureDescriptorAmino[];
-}
-export interface SignatureDescriptorsAminoMsg {
-  type: "cosmos-sdk/SignatureDescriptors";
-  value: SignatureDescriptorsAmino;
-}
-/** SignatureDescriptors wraps multiple SignatureDescriptor's. */
-export interface SignatureDescriptorsSDKType {
-  signatures: SignatureDescriptorSDKType[];
-}
-/**
- * SignatureDescriptor is a convenience type which represents the full data for
- * a signature including the public key of the signer, signing modes and the
- * signature itself. It is primarily used for coordinating signatures between
- * clients.
- */
-export interface SignatureDescriptor {
-  /** public_key is the public key of the signer */
-  publicKey: Any | undefined;
-  data: SignatureDescriptor_Data | undefined;
-  /**
-   * sequence is the sequence of the account, which describes the
-   * number of committed transactions signed by a given address. It is used to prevent
-   * replay attacks.
-   */
-  sequence: bigint;
-}
-export interface SignatureDescriptorProtoMsg {
-  typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptor";
-  value: Uint8Array;
-}
-/**
- * SignatureDescriptor is a convenience type which represents the full data for
- * a signature including the public key of the signer, signing modes and the
- * signature itself. It is primarily used for coordinating signatures between
- * clients.
- */
-export interface SignatureDescriptorAmino {
-  /** public_key is the public key of the signer */
-  public_key?: AnyAmino | undefined;
-  data?: SignatureDescriptor_DataAmino | undefined;
-  /**
-   * sequence is the sequence of the account, which describes the
-   * number of committed transactions signed by a given address. It is used to prevent
-   * replay attacks.
-   */
-  sequence: string;
-}
-export interface SignatureDescriptorAminoMsg {
-  type: "cosmos-sdk/SignatureDescriptor";
-  value: SignatureDescriptorAmino;
-}
-/**
- * SignatureDescriptor is a convenience type which represents the full data for
- * a signature including the public key of the signer, signing modes and the
- * signature itself. It is primarily used for coordinating signatures between
- * clients.
- */
-export interface SignatureDescriptorSDKType {
-  public_key: AnySDKType | undefined;
-  data: SignatureDescriptor_DataSDKType | undefined;
-  sequence: bigint;
-}
-/** Data represents signature data */
-export interface SignatureDescriptor_Data {
-  /** single represents a single signer */
-  single?: SignatureDescriptor_Data_Single | undefined;
-  /** multi represents a multisig signer */
-  multi?: SignatureDescriptor_Data_Multi | undefined;
-}
-export interface SignatureDescriptor_DataProtoMsg {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Data";
-  value: Uint8Array;
-}
-/** Data represents signature data */
-export interface SignatureDescriptor_DataAmino {
-  /** single represents a single signer */
-  single?: SignatureDescriptor_Data_SingleAmino | undefined;
-  /** multi represents a multisig signer */
-  multi?: SignatureDescriptor_Data_MultiAmino | undefined;
-}
-export interface SignatureDescriptor_DataAminoMsg {
-  type: "cosmos-sdk/Data";
-  value: SignatureDescriptor_DataAmino;
-}
-/** Data represents signature data */
-export interface SignatureDescriptor_DataSDKType {
-  single?: SignatureDescriptor_Data_SingleSDKType | undefined;
-  multi?: SignatureDescriptor_Data_MultiSDKType | undefined;
-}
-/** Single is the signature data for a single signer */
-export interface SignatureDescriptor_Data_Single {
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-  /** signature is the raw signature bytes */
-  signature: Uint8Array;
-}
-export interface SignatureDescriptor_Data_SingleProtoMsg {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Single";
-  value: Uint8Array;
-}
-/** Single is the signature data for a single signer */
-export interface SignatureDescriptor_Data_SingleAmino {
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-  /** signature is the raw signature bytes */
-  signature: Uint8Array;
-}
-export interface SignatureDescriptor_Data_SingleAminoMsg {
-  type: "cosmos-sdk/Single";
-  value: SignatureDescriptor_Data_SingleAmino;
-}
-/** Single is the signature data for a single signer */
-export interface SignatureDescriptor_Data_SingleSDKType {
-  mode: SignMode;
-  signature: Uint8Array;
-}
-/** Multi is the signature data for a multisig public key */
-export interface SignatureDescriptor_Data_Multi {
-  /** bitarray specifies which keys within the multisig are signing */
-  bitarray: CompactBitArray | undefined;
-  /** signatures is the signatures of the multi-signature */
-  signatures: SignatureDescriptor_Data[];
-}
-export interface SignatureDescriptor_Data_MultiProtoMsg {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Multi";
-  value: Uint8Array;
-}
-/** Multi is the signature data for a multisig public key */
-export interface SignatureDescriptor_Data_MultiAmino {
-  /** bitarray specifies which keys within the multisig are signing */
-  bitarray?: CompactBitArrayAmino | undefined;
-  /** signatures is the signatures of the multi-signature */
-  signatures: SignatureDescriptor_DataAmino[];
-}
-export interface SignatureDescriptor_Data_MultiAminoMsg {
-  type: "cosmos-sdk/Multi";
-  value: SignatureDescriptor_Data_MultiAmino;
-}
-/** Multi is the signature data for a multisig public key */
-export interface SignatureDescriptor_Data_MultiSDKType {
-  bitarray: CompactBitArraySDKType | undefined;
-  signatures: SignatureDescriptor_DataSDKType[];
-}
-function createBaseSignatureDescriptors(): SignatureDescriptors {
-  return {
-    signatures: []
-  };
-}
-export const SignatureDescriptors = {
-  typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptors",
-  aminoType: "cosmos-sdk/SignatureDescriptors",
-  encode(message: SignatureDescriptors, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.signatures) {
-      SignatureDescriptor.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureDescriptors {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureDescriptors();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signatures.push(SignatureDescriptor.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureDescriptors {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SignatureDescriptors): unknown {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor.toJSON(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureDescriptors>): SignatureDescriptors {
-    const message = createBaseSignatureDescriptors();
-    message.signatures = object.signatures?.map(e => SignatureDescriptor.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SignatureDescriptorsSDKType): SignatureDescriptors {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SignatureDescriptors): SignatureDescriptorsSDKType {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor.toSDK(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SignatureDescriptorsAmino): SignatureDescriptors {
-    return {
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SignatureDescriptors): SignatureDescriptorsAmino {
-    const obj: any = {};
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor.toAmino(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SignatureDescriptorsAminoMsg): SignatureDescriptors {
-    return SignatureDescriptors.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureDescriptors): SignatureDescriptorsAminoMsg {
-    return {
-      type: "cosmos-sdk/SignatureDescriptors",
-      value: SignatureDescriptors.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureDescriptorsProtoMsg): SignatureDescriptors {
-    return SignatureDescriptors.decode(message.value);
-  },
-  toProto(message: SignatureDescriptors): Uint8Array {
-    return SignatureDescriptors.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureDescriptors): SignatureDescriptorsProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptors",
-      value: SignatureDescriptors.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureDescriptor(): SignatureDescriptor {
-  return {
-    publicKey: Any.fromPartial({}),
-    data: SignatureDescriptor_Data.fromPartial({}),
-    sequence: BigInt(0)
-  };
-}
-export const SignatureDescriptor = {
-  typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptor",
-  aminoType: "cosmos-sdk/SignatureDescriptor",
-  encode(message: SignatureDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.publicKey !== undefined) {
-      Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.data !== undefined) {
-      SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.publicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.data = SignatureDescriptor_Data.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureDescriptor {
-    return {
-      publicKey: isSet(object.publicKey) ? Any.fromJSON(object.publicKey) : undefined,
-      data: isSet(object.data) ? SignatureDescriptor_Data.fromJSON(object.data) : undefined,
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SignatureDescriptor): unknown {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined);
-    message.data !== undefined && (obj.data = message.data ? SignatureDescriptor_Data.toJSON(message.data) : undefined);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureDescriptor>): SignatureDescriptor {
-    const message = createBaseSignatureDescriptor();
-    message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
-    message.data = object.data !== undefined && object.data !== null ? SignatureDescriptor_Data.fromPartial(object.data) : undefined;
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SignatureDescriptorSDKType): SignatureDescriptor {
-    return {
-      publicKey: object.public_key ? Any.fromSDK(object.public_key) : undefined,
-      data: object.data ? SignatureDescriptor_Data.fromSDK(object.data) : undefined,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: SignatureDescriptor): SignatureDescriptorSDKType {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.public_key = message.publicKey ? Any.toSDK(message.publicKey) : undefined);
-    message.data !== undefined && (obj.data = message.data ? SignatureDescriptor_Data.toSDK(message.data) : undefined);
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: SignatureDescriptorAmino): SignatureDescriptor {
-    return {
-      publicKey: object?.public_key ? Any.fromAmino(object.public_key) : undefined,
-      data: object?.data ? SignatureDescriptor_Data.fromAmino(object.data) : undefined,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: SignatureDescriptor): SignatureDescriptorAmino {
-    const obj: any = {};
-    obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
-    obj.data = message.data ? SignatureDescriptor_Data.toAmino(message.data) : undefined;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignatureDescriptorAminoMsg): SignatureDescriptor {
-    return SignatureDescriptor.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureDescriptor): SignatureDescriptorAminoMsg {
-    return {
-      type: "cosmos-sdk/SignatureDescriptor",
-      value: SignatureDescriptor.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureDescriptorProtoMsg): SignatureDescriptor {
-    return SignatureDescriptor.decode(message.value);
-  },
-  toProto(message: SignatureDescriptor): Uint8Array {
-    return SignatureDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureDescriptor): SignatureDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptor",
-      value: SignatureDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureDescriptor_Data(): SignatureDescriptor_Data {
-  return {
-    single: undefined,
-    multi: undefined
-  };
-}
-export const SignatureDescriptor_Data = {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Data",
-  aminoType: "cosmos-sdk/Data",
-  encode(message: SignatureDescriptor_Data, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.single !== undefined) {
-      SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.multi !== undefined) {
-      SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureDescriptor_Data {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureDescriptor_Data();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.single = SignatureDescriptor_Data_Single.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.multi = SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureDescriptor_Data {
-    return {
-      single: isSet(object.single) ? SignatureDescriptor_Data_Single.fromJSON(object.single) : undefined,
-      multi: isSet(object.multi) ? SignatureDescriptor_Data_Multi.fromJSON(object.multi) : undefined
-    };
-  },
-  toJSON(message: SignatureDescriptor_Data): unknown {
-    const obj: any = {};
-    message.single !== undefined && (obj.single = message.single ? SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureDescriptor_Data>): SignatureDescriptor_Data {
-    const message = createBaseSignatureDescriptor_Data();
-    message.single = object.single !== undefined && object.single !== null ? SignatureDescriptor_Data_Single.fromPartial(object.single) : undefined;
-    message.multi = object.multi !== undefined && object.multi !== null ? SignatureDescriptor_Data_Multi.fromPartial(object.multi) : undefined;
-    return message;
-  },
-  fromSDK(object: SignatureDescriptor_DataSDKType): SignatureDescriptor_Data {
-    return {
-      single: object.single ? SignatureDescriptor_Data_Single.fromSDK(object.single) : undefined,
-      multi: object.multi ? SignatureDescriptor_Data_Multi.fromSDK(object.multi) : undefined
-    };
-  },
-  toSDK(message: SignatureDescriptor_Data): SignatureDescriptor_DataSDKType {
-    const obj: any = {};
-    message.single !== undefined && (obj.single = message.single ? SignatureDescriptor_Data_Single.toSDK(message.single) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? SignatureDescriptor_Data_Multi.toSDK(message.multi) : undefined);
-    return obj;
-  },
-  fromAmino(object: SignatureDescriptor_DataAmino): SignatureDescriptor_Data {
-    return {
-      single: object?.single ? SignatureDescriptor_Data_Single.fromAmino(object.single) : undefined,
-      multi: object?.multi ? SignatureDescriptor_Data_Multi.fromAmino(object.multi) : undefined
-    };
-  },
-  toAmino(message: SignatureDescriptor_Data): SignatureDescriptor_DataAmino {
-    const obj: any = {};
-    obj.single = message.single ? SignatureDescriptor_Data_Single.toAmino(message.single) : undefined;
-    obj.multi = message.multi ? SignatureDescriptor_Data_Multi.toAmino(message.multi) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignatureDescriptor_DataAminoMsg): SignatureDescriptor_Data {
-    return SignatureDescriptor_Data.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureDescriptor_Data): SignatureDescriptor_DataAminoMsg {
-    return {
-      type: "cosmos-sdk/Data",
-      value: SignatureDescriptor_Data.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureDescriptor_DataProtoMsg): SignatureDescriptor_Data {
-    return SignatureDescriptor_Data.decode(message.value);
-  },
-  toProto(message: SignatureDescriptor_Data): Uint8Array {
-    return SignatureDescriptor_Data.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureDescriptor_Data): SignatureDescriptor_DataProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.signing.v1beta1.Data",
-      value: SignatureDescriptor_Data.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureDescriptor_Data_Single(): SignatureDescriptor_Data_Single {
-  return {
-    mode: 0,
-    signature: new Uint8Array()
-  };
-}
-export const SignatureDescriptor_Data_Single = {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Single",
-  aminoType: "cosmos-sdk/Single",
-  encode(message: SignatureDescriptor_Data_Single, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.mode !== 0) {
-      writer.uint32(8).int32(message.mode);
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(18).bytes(message.signature);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureDescriptor_Data_Single {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureDescriptor_Data_Single();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.mode = (reader.int32() as any);
-          break;
-        case 2:
-          message.signature = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureDescriptor_Data_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array()
-    };
-  },
-  toJSON(message: SignatureDescriptor_Data_Single): unknown {
-    const obj: any = {};
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureDescriptor_Data_Single>): SignatureDescriptor_Data_Single {
-    const message = createBaseSignatureDescriptor_Data_Single();
-    message.mode = object.mode ?? 0;
-    message.signature = object.signature ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SignatureDescriptor_Data_SingleSDKType): SignatureDescriptor_Data_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      signature: object?.signature
-    };
-  },
-  toSDK(message: SignatureDescriptor_Data_Single): SignatureDescriptor_Data_SingleSDKType {
-    const obj: any = {};
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAmino(object: SignatureDescriptor_Data_SingleAmino): SignatureDescriptor_Data_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      signature: object.signature
-    };
-  },
-  toAmino(message: SignatureDescriptor_Data_Single): SignatureDescriptor_Data_SingleAmino {
-    const obj: any = {};
-    obj.mode = message.mode;
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAminoMsg(object: SignatureDescriptor_Data_SingleAminoMsg): SignatureDescriptor_Data_Single {
-    return SignatureDescriptor_Data_Single.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureDescriptor_Data_Single): SignatureDescriptor_Data_SingleAminoMsg {
-    return {
-      type: "cosmos-sdk/Single",
-      value: SignatureDescriptor_Data_Single.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureDescriptor_Data_SingleProtoMsg): SignatureDescriptor_Data_Single {
-    return SignatureDescriptor_Data_Single.decode(message.value);
-  },
-  toProto(message: SignatureDescriptor_Data_Single): Uint8Array {
-    return SignatureDescriptor_Data_Single.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureDescriptor_Data_Single): SignatureDescriptor_Data_SingleProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.signing.v1beta1.Single",
-      value: SignatureDescriptor_Data_Single.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureDescriptor_Data_Multi(): SignatureDescriptor_Data_Multi {
-  return {
-    bitarray: CompactBitArray.fromPartial({}),
-    signatures: []
-  };
-}
-export const SignatureDescriptor_Data_Multi = {
-  typeUrl: "/cosmos.tx.signing.v1beta1.Multi",
-  aminoType: "cosmos-sdk/Multi",
-  encode(message: SignatureDescriptor_Data_Multi, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bitarray !== undefined) {
-      CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.signatures) {
-      SignatureDescriptor_Data.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureDescriptor_Data_Multi {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureDescriptor_Data_Multi();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bitarray = CompactBitArray.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.signatures.push(SignatureDescriptor_Data.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureDescriptor_Data_Multi {
-    return {
-      bitarray: isSet(object.bitarray) ? CompactBitArray.fromJSON(object.bitarray) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor_Data.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SignatureDescriptor_Data_Multi): unknown {
-    const obj: any = {};
-    message.bitarray !== undefined && (obj.bitarray = message.bitarray ? CompactBitArray.toJSON(message.bitarray) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor_Data.toJSON(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureDescriptor_Data_Multi>): SignatureDescriptor_Data_Multi {
-    const message = createBaseSignatureDescriptor_Data_Multi();
-    message.bitarray = object.bitarray !== undefined && object.bitarray !== null ? CompactBitArray.fromPartial(object.bitarray) : undefined;
-    message.signatures = object.signatures?.map(e => SignatureDescriptor_Data.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SignatureDescriptor_Data_MultiSDKType): SignatureDescriptor_Data_Multi {
-    return {
-      bitarray: object.bitarray ? CompactBitArray.fromSDK(object.bitarray) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor_Data.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SignatureDescriptor_Data_Multi): SignatureDescriptor_Data_MultiSDKType {
-    const obj: any = {};
-    message.bitarray !== undefined && (obj.bitarray = message.bitarray ? CompactBitArray.toSDK(message.bitarray) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor_Data.toSDK(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SignatureDescriptor_Data_MultiAmino): SignatureDescriptor_Data_Multi {
-    return {
-      bitarray: object?.bitarray ? CompactBitArray.fromAmino(object.bitarray) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => SignatureDescriptor_Data.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SignatureDescriptor_Data_Multi): SignatureDescriptor_Data_MultiAmino {
-    const obj: any = {};
-    obj.bitarray = message.bitarray ? CompactBitArray.toAmino(message.bitarray) : undefined;
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? SignatureDescriptor_Data.toAmino(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SignatureDescriptor_Data_MultiAminoMsg): SignatureDescriptor_Data_Multi {
-    return SignatureDescriptor_Data_Multi.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureDescriptor_Data_Multi): SignatureDescriptor_Data_MultiAminoMsg {
-    return {
-      type: "cosmos-sdk/Multi",
-      value: SignatureDescriptor_Data_Multi.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureDescriptor_Data_MultiProtoMsg): SignatureDescriptor_Data_Multi {
-    return SignatureDescriptor_Data_Multi.decode(message.value);
-  },
-  toProto(message: SignatureDescriptor_Data_Multi): Uint8Array {
-    return SignatureDescriptor_Data_Multi.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureDescriptor_Data_Multi): SignatureDescriptor_Data_MultiProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.signing.v1beta1.Multi",
-      value: SignatureDescriptor_Data_Multi.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/tx/v1beta1/service.rpc.Service.ts b/examples/injective/src/codegen/cosmos/tx/v1beta1/service.rpc.Service.ts
deleted file mode 100644
index 79092e89..00000000
--- a/examples/injective/src/codegen/cosmos/tx/v1beta1/service.rpc.Service.ts
+++ /dev/null
@@ -1,211 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { SimulateRequest, SimulateResponse, GetTxRequest, GetTxResponse, BroadcastTxRequest, BroadcastTxResponse, GetTxsEventRequest, GetTxsEventResponse, GetBlockWithTxsRequest, GetBlockWithTxsResponse } from "./service";
-/** Service defines a gRPC service for interacting with transactions. */
-export interface Service {
-  /** Simulate simulates executing a transaction for estimating gas usage. */
-  simulate(request: SimulateRequest): Promise<SimulateResponse>;
-  /** GetTx fetches a tx by hash. */
-  getTx(request: GetTxRequest): Promise<GetTxResponse>;
-  /** BroadcastTx broadcast transaction. */
-  broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
-  /** GetTxsEvent fetches txs by event. */
-  getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
-  /**
-   * GetBlockWithTxs fetches a block with decoded txs.
-   * 
-   * Since: cosmos-sdk 0.45.2
-   */
-  getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
-}
-export class ServiceClientImpl implements Service {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.simulate = this.simulate.bind(this);
-    this.getTx = this.getTx.bind(this);
-    this.broadcastTx = this.broadcastTx.bind(this);
-    this.getTxsEvent = this.getTxsEvent.bind(this);
-    this.getBlockWithTxs = this.getBlockWithTxs.bind(this);
-  }
-  simulate(request: SimulateRequest): Promise<SimulateResponse> {
-    const data = SimulateRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "Simulate", data);
-    return promise.then(data => SimulateResponse.decode(new BinaryReader(data)));
-  }
-  getTx(request: GetTxRequest): Promise<GetTxResponse> {
-    const data = GetTxRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTx", data);
-    return promise.then(data => GetTxResponse.decode(new BinaryReader(data)));
-  }
-  broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse> {
-    const data = BroadcastTxRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "BroadcastTx", data);
-    return promise.then(data => BroadcastTxResponse.decode(new BinaryReader(data)));
-  }
-  getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse> {
-    const data = GetTxsEventRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTxsEvent", data);
-    return promise.then(data => GetTxsEventResponse.decode(new BinaryReader(data)));
-  }
-  getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse> {
-    const data = GetBlockWithTxsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetBlockWithTxs", data);
-    return promise.then(data => GetBlockWithTxsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new ServiceClientImpl(rpc);
-  return {
-    simulate(request: SimulateRequest): Promise<SimulateResponse> {
-      return queryService.simulate(request);
-    },
-    getTx(request: GetTxRequest): Promise<GetTxResponse> {
-      return queryService.getTx(request);
-    },
-    broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse> {
-      return queryService.broadcastTx(request);
-    },
-    getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse> {
-      return queryService.getTxsEvent(request);
-    },
-    getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse> {
-      return queryService.getBlockWithTxs(request);
-    }
-  };
-};
-export interface UseSimulateQuery<TData> extends ReactQueryParams<SimulateResponse, TData> {
-  request: SimulateRequest;
-}
-export interface UseGetTxQuery<TData> extends ReactQueryParams<GetTxResponse, TData> {
-  request: GetTxRequest;
-}
-export interface UseBroadcastTxQuery<TData> extends ReactQueryParams<BroadcastTxResponse, TData> {
-  request: BroadcastTxRequest;
-}
-export interface UseGetTxsEventQuery<TData> extends ReactQueryParams<GetTxsEventResponse, TData> {
-  request: GetTxsEventRequest;
-}
-export interface UseGetBlockWithTxsQuery<TData> extends ReactQueryParams<GetBlockWithTxsResponse, TData> {
-  request: GetBlockWithTxsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, ServiceClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): ServiceClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new ServiceClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useSimulate = <TData = SimulateResponse,>({
-    request,
-    options
-  }: UseSimulateQuery<TData>) => {
-    return useQuery<SimulateResponse, Error, TData>(["simulateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.simulate(request);
-    }, options);
-  };
-  const useGetTx = <TData = GetTxResponse,>({
-    request,
-    options
-  }: UseGetTxQuery<TData>) => {
-    return useQuery<GetTxResponse, Error, TData>(["getTxQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getTx(request);
-    }, options);
-  };
-  const useBroadcastTx = <TData = BroadcastTxResponse,>({
-    request,
-    options
-  }: UseBroadcastTxQuery<TData>) => {
-    return useQuery<BroadcastTxResponse, Error, TData>(["broadcastTxQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.broadcastTx(request);
-    }, options);
-  };
-  const useGetTxsEvent = <TData = GetTxsEventResponse,>({
-    request,
-    options
-  }: UseGetTxsEventQuery<TData>) => {
-    return useQuery<GetTxsEventResponse, Error, TData>(["getTxsEventQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getTxsEvent(request);
-    }, options);
-  };
-  const useGetBlockWithTxs = <TData = GetBlockWithTxsResponse,>({
-    request,
-    options
-  }: UseGetBlockWithTxsQuery<TData>) => {
-    return useQuery<GetBlockWithTxsResponse, Error, TData>(["getBlockWithTxsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.getBlockWithTxs(request);
-    }, options);
-  };
-  return {
-    /** Simulate simulates executing a transaction for estimating gas usage. */useSimulate,
-    /** GetTx fetches a tx by hash. */useGetTx,
-    /** BroadcastTx broadcast transaction. */useBroadcastTx,
-    /** GetTxsEvent fetches txs by event. */useGetTxsEvent,
-    /**
-     * GetBlockWithTxs fetches a block with decoded txs.
-     * 
-     * Since: cosmos-sdk 0.45.2
-     */
-    useGetBlockWithTxs
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QuerySimulateStore {
-    store = new QueryStore<SimulateRequest, SimulateResponse>(queryService?.simulate);
-    simulate(request: SimulateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetTxStore {
-    store = new QueryStore<GetTxRequest, GetTxResponse>(queryService?.getTx);
-    getTx(request: GetTxRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryBroadcastTxStore {
-    store = new QueryStore<BroadcastTxRequest, BroadcastTxResponse>(queryService?.broadcastTx);
-    broadcastTx(request: BroadcastTxRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetTxsEventStore {
-    store = new QueryStore<GetTxsEventRequest, GetTxsEventResponse>(queryService?.getTxsEvent);
-    getTxsEvent(request: GetTxsEventRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGetBlockWithTxsStore {
-    store = new QueryStore<GetBlockWithTxsRequest, GetBlockWithTxsResponse>(queryService?.getBlockWithTxs);
-    getBlockWithTxs(request: GetBlockWithTxsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Simulate simulates executing a transaction for estimating gas usage. */QuerySimulateStore,
-    /** GetTx fetches a tx by hash. */QueryGetTxStore,
-    /** BroadcastTx broadcast transaction. */QueryBroadcastTxStore,
-    /** GetTxsEvent fetches txs by event. */QueryGetTxsEventStore,
-    /**
-     * GetBlockWithTxs fetches a block with decoded txs.
-     * 
-     * Since: cosmos-sdk 0.45.2
-     */
-    QueryGetBlockWithTxsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/tx/v1beta1/service.ts b/examples/injective/src/codegen/cosmos/tx/v1beta1/service.ts
deleted file mode 100644
index a0817a52..00000000
--- a/examples/injective/src/codegen/cosmos/tx/v1beta1/service.ts
+++ /dev/null
@@ -1,1582 +0,0 @@
-import { Tx, TxAmino, TxSDKType } from "./tx";
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../base/query/v1beta1/pagination";
-import { TxResponse, TxResponseAmino, TxResponseSDKType, GasInfo, GasInfoAmino, GasInfoSDKType, Result, ResultAmino, ResultSDKType } from "../../base/abci/v1beta1/abci";
-import { BlockID, BlockIDAmino, BlockIDSDKType } from "../../../tendermint/types/types";
-import { Block, BlockAmino, BlockSDKType } from "../../../tendermint/types/block";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/** OrderBy defines the sorting order */
-export enum OrderBy {
-  /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */
-  ORDER_BY_UNSPECIFIED = 0,
-  /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */
-  ORDER_BY_ASC = 1,
-  /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */
-  ORDER_BY_DESC = 2,
-  UNRECOGNIZED = -1,
-}
-export const OrderBySDKType = OrderBy;
-export const OrderByAmino = OrderBy;
-export function orderByFromJSON(object: any): OrderBy {
-  switch (object) {
-    case 0:
-    case "ORDER_BY_UNSPECIFIED":
-      return OrderBy.ORDER_BY_UNSPECIFIED;
-    case 1:
-    case "ORDER_BY_ASC":
-      return OrderBy.ORDER_BY_ASC;
-    case 2:
-    case "ORDER_BY_DESC":
-      return OrderBy.ORDER_BY_DESC;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return OrderBy.UNRECOGNIZED;
-  }
-}
-export function orderByToJSON(object: OrderBy): string {
-  switch (object) {
-    case OrderBy.ORDER_BY_UNSPECIFIED:
-      return "ORDER_BY_UNSPECIFIED";
-    case OrderBy.ORDER_BY_ASC:
-      return "ORDER_BY_ASC";
-    case OrderBy.ORDER_BY_DESC:
-      return "ORDER_BY_DESC";
-    case OrderBy.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */
-export enum BroadcastMode {
-  /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */
-  BROADCAST_MODE_UNSPECIFIED = 0,
-  /**
-   * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for
-   * the tx to be committed in a block.
-   */
-  BROADCAST_MODE_BLOCK = 1,
-  /**
-   * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for
-   * a CheckTx execution response only.
-   */
-  BROADCAST_MODE_SYNC = 2,
-  /**
-   * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns
-   * immediately.
-   */
-  BROADCAST_MODE_ASYNC = 3,
-  UNRECOGNIZED = -1,
-}
-export const BroadcastModeSDKType = BroadcastMode;
-export const BroadcastModeAmino = BroadcastMode;
-export function broadcastModeFromJSON(object: any): BroadcastMode {
-  switch (object) {
-    case 0:
-    case "BROADCAST_MODE_UNSPECIFIED":
-      return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;
-    case 1:
-    case "BROADCAST_MODE_BLOCK":
-      return BroadcastMode.BROADCAST_MODE_BLOCK;
-    case 2:
-    case "BROADCAST_MODE_SYNC":
-      return BroadcastMode.BROADCAST_MODE_SYNC;
-    case 3:
-    case "BROADCAST_MODE_ASYNC":
-      return BroadcastMode.BROADCAST_MODE_ASYNC;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return BroadcastMode.UNRECOGNIZED;
-  }
-}
-export function broadcastModeToJSON(object: BroadcastMode): string {
-  switch (object) {
-    case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:
-      return "BROADCAST_MODE_UNSPECIFIED";
-    case BroadcastMode.BROADCAST_MODE_BLOCK:
-      return "BROADCAST_MODE_BLOCK";
-    case BroadcastMode.BROADCAST_MODE_SYNC:
-      return "BROADCAST_MODE_SYNC";
-    case BroadcastMode.BROADCAST_MODE_ASYNC:
-      return "BROADCAST_MODE_ASYNC";
-    case BroadcastMode.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * GetTxsEventRequest is the request type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventRequest {
-  /** events is the list of transaction event type. */
-  events: string[];
-  /** pagination defines a pagination for the request. */
-  pagination: PageRequest | undefined;
-  orderBy: OrderBy;
-}
-export interface GetTxsEventRequestProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxsEventRequest";
-  value: Uint8Array;
-}
-/**
- * GetTxsEventRequest is the request type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventRequestAmino {
-  /** events is the list of transaction event type. */
-  events: string[];
-  /** pagination defines a pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-  order_by: OrderBy;
-}
-export interface GetTxsEventRequestAminoMsg {
-  type: "cosmos-sdk/GetTxsEventRequest";
-  value: GetTxsEventRequestAmino;
-}
-/**
- * GetTxsEventRequest is the request type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventRequestSDKType {
-  events: string[];
-  pagination: PageRequestSDKType | undefined;
-  order_by: OrderBy;
-}
-/**
- * GetTxsEventResponse is the response type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventResponse {
-  /** txs is the list of queried transactions. */
-  txs: Tx[];
-  /** tx_responses is the list of queried TxResponses. */
-  txResponses: TxResponse[];
-  /** pagination defines a pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface GetTxsEventResponseProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxsEventResponse";
-  value: Uint8Array;
-}
-/**
- * GetTxsEventResponse is the response type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventResponseAmino {
-  /** txs is the list of queried transactions. */
-  txs: TxAmino[];
-  /** tx_responses is the list of queried TxResponses. */
-  tx_responses: TxResponseAmino[];
-  /** pagination defines a pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface GetTxsEventResponseAminoMsg {
-  type: "cosmos-sdk/GetTxsEventResponse";
-  value: GetTxsEventResponseAmino;
-}
-/**
- * GetTxsEventResponse is the response type for the Service.TxsByEvents
- * RPC method.
- */
-export interface GetTxsEventResponseSDKType {
-  txs: TxSDKType[];
-  tx_responses: TxResponseSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest
- * RPC method.
- */
-export interface BroadcastTxRequest {
-  /** tx_bytes is the raw transaction. */
-  txBytes: Uint8Array;
-  mode: BroadcastMode;
-}
-export interface BroadcastTxRequestProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.BroadcastTxRequest";
-  value: Uint8Array;
-}
-/**
- * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest
- * RPC method.
- */
-export interface BroadcastTxRequestAmino {
-  /** tx_bytes is the raw transaction. */
-  tx_bytes: Uint8Array;
-  mode: BroadcastMode;
-}
-export interface BroadcastTxRequestAminoMsg {
-  type: "cosmos-sdk/BroadcastTxRequest";
-  value: BroadcastTxRequestAmino;
-}
-/**
- * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest
- * RPC method.
- */
-export interface BroadcastTxRequestSDKType {
-  tx_bytes: Uint8Array;
-  mode: BroadcastMode;
-}
-/**
- * BroadcastTxResponse is the response type for the
- * Service.BroadcastTx method.
- */
-export interface BroadcastTxResponse {
-  /** tx_response is the queried TxResponses. */
-  txResponse: TxResponse | undefined;
-}
-export interface BroadcastTxResponseProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.BroadcastTxResponse";
-  value: Uint8Array;
-}
-/**
- * BroadcastTxResponse is the response type for the
- * Service.BroadcastTx method.
- */
-export interface BroadcastTxResponseAmino {
-  /** tx_response is the queried TxResponses. */
-  tx_response?: TxResponseAmino | undefined;
-}
-export interface BroadcastTxResponseAminoMsg {
-  type: "cosmos-sdk/BroadcastTxResponse";
-  value: BroadcastTxResponseAmino;
-}
-/**
- * BroadcastTxResponse is the response type for the
- * Service.BroadcastTx method.
- */
-export interface BroadcastTxResponseSDKType {
-  tx_response: TxResponseSDKType | undefined;
-}
-/**
- * SimulateRequest is the request type for the Service.Simulate
- * RPC method.
- */
-export interface SimulateRequest {
-  /**
-   * tx is the transaction to simulate.
-   * Deprecated. Send raw tx bytes instead.
-   */
-  /** @deprecated */
-  tx: Tx | undefined;
-  /**
-   * tx_bytes is the raw transaction.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  txBytes: Uint8Array;
-}
-export interface SimulateRequestProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.SimulateRequest";
-  value: Uint8Array;
-}
-/**
- * SimulateRequest is the request type for the Service.Simulate
- * RPC method.
- */
-export interface SimulateRequestAmino {
-  /**
-   * tx is the transaction to simulate.
-   * Deprecated. Send raw tx bytes instead.
-   */
-  /** @deprecated */
-  tx?: TxAmino | undefined;
-  /**
-   * tx_bytes is the raw transaction.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  tx_bytes: Uint8Array;
-}
-export interface SimulateRequestAminoMsg {
-  type: "cosmos-sdk/SimulateRequest";
-  value: SimulateRequestAmino;
-}
-/**
- * SimulateRequest is the request type for the Service.Simulate
- * RPC method.
- */
-export interface SimulateRequestSDKType {
-  /** @deprecated */
-  tx: TxSDKType | undefined;
-  tx_bytes: Uint8Array;
-}
-/**
- * SimulateResponse is the response type for the
- * Service.SimulateRPC method.
- */
-export interface SimulateResponse {
-  /** gas_info is the information about gas used in the simulation. */
-  gasInfo: GasInfo | undefined;
-  /** result is the result of the simulation. */
-  result: Result | undefined;
-}
-export interface SimulateResponseProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.SimulateResponse";
-  value: Uint8Array;
-}
-/**
- * SimulateResponse is the response type for the
- * Service.SimulateRPC method.
- */
-export interface SimulateResponseAmino {
-  /** gas_info is the information about gas used in the simulation. */
-  gas_info?: GasInfoAmino | undefined;
-  /** result is the result of the simulation. */
-  result?: ResultAmino | undefined;
-}
-export interface SimulateResponseAminoMsg {
-  type: "cosmos-sdk/SimulateResponse";
-  value: SimulateResponseAmino;
-}
-/**
- * SimulateResponse is the response type for the
- * Service.SimulateRPC method.
- */
-export interface SimulateResponseSDKType {
-  gas_info: GasInfoSDKType | undefined;
-  result: ResultSDKType | undefined;
-}
-/**
- * GetTxRequest is the request type for the Service.GetTx
- * RPC method.
- */
-export interface GetTxRequest {
-  /** hash is the tx hash to query, encoded as a hex string. */
-  hash: string;
-}
-export interface GetTxRequestProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxRequest";
-  value: Uint8Array;
-}
-/**
- * GetTxRequest is the request type for the Service.GetTx
- * RPC method.
- */
-export interface GetTxRequestAmino {
-  /** hash is the tx hash to query, encoded as a hex string. */
-  hash: string;
-}
-export interface GetTxRequestAminoMsg {
-  type: "cosmos-sdk/GetTxRequest";
-  value: GetTxRequestAmino;
-}
-/**
- * GetTxRequest is the request type for the Service.GetTx
- * RPC method.
- */
-export interface GetTxRequestSDKType {
-  hash: string;
-}
-/** GetTxResponse is the response type for the Service.GetTx method. */
-export interface GetTxResponse {
-  /** tx is the queried transaction. */
-  tx: Tx | undefined;
-  /** tx_response is the queried TxResponses. */
-  txResponse: TxResponse | undefined;
-}
-export interface GetTxResponseProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxResponse";
-  value: Uint8Array;
-}
-/** GetTxResponse is the response type for the Service.GetTx method. */
-export interface GetTxResponseAmino {
-  /** tx is the queried transaction. */
-  tx?: TxAmino | undefined;
-  /** tx_response is the queried TxResponses. */
-  tx_response?: TxResponseAmino | undefined;
-}
-export interface GetTxResponseAminoMsg {
-  type: "cosmos-sdk/GetTxResponse";
-  value: GetTxResponseAmino;
-}
-/** GetTxResponse is the response type for the Service.GetTx method. */
-export interface GetTxResponseSDKType {
-  tx: TxSDKType | undefined;
-  tx_response: TxResponseSDKType | undefined;
-}
-/**
- * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs
- * RPC method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsRequest {
-  /** height is the height of the block to query. */
-  height: bigint;
-  /** pagination defines a pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface GetBlockWithTxsRequestProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsRequest";
-  value: Uint8Array;
-}
-/**
- * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs
- * RPC method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsRequestAmino {
-  /** height is the height of the block to query. */
-  height: string;
-  /** pagination defines a pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface GetBlockWithTxsRequestAminoMsg {
-  type: "cosmos-sdk/GetBlockWithTxsRequest";
-  value: GetBlockWithTxsRequestAmino;
-}
-/**
- * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs
- * RPC method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsRequestSDKType {
-  height: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsResponse {
-  /** txs are the transactions in the block. */
-  txs: Tx[];
-  blockId: BlockID | undefined;
-  block: Block | undefined;
-  /** pagination defines a pagination for the response. */
-  pagination: PageResponse | undefined;
-}
-export interface GetBlockWithTxsResponseProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsResponse";
-  value: Uint8Array;
-}
-/**
- * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsResponseAmino {
-  /** txs are the transactions in the block. */
-  txs: TxAmino[];
-  block_id?: BlockIDAmino | undefined;
-  block?: BlockAmino | undefined;
-  /** pagination defines a pagination for the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface GetBlockWithTxsResponseAminoMsg {
-  type: "cosmos-sdk/GetBlockWithTxsResponse";
-  value: GetBlockWithTxsResponseAmino;
-}
-/**
- * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method.
- * 
- * Since: cosmos-sdk 0.45.2
- */
-export interface GetBlockWithTxsResponseSDKType {
-  txs: TxSDKType[];
-  block_id: BlockIDSDKType | undefined;
-  block: BlockSDKType | undefined;
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseGetTxsEventRequest(): GetTxsEventRequest {
-  return {
-    events: [],
-    pagination: PageRequest.fromPartial({}),
-    orderBy: 0
-  };
-}
-export const GetTxsEventRequest = {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxsEventRequest",
-  aminoType: "cosmos-sdk/GetTxsEventRequest",
-  encode(message: GetTxsEventRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.events) {
-      writer.uint32(10).string(v!);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.orderBy !== 0) {
-      writer.uint32(24).int32(message.orderBy);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxsEventRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxsEventRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.events.push(reader.string());
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.orderBy = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetTxsEventRequest {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => String(e)) : [],
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,
-      orderBy: isSet(object.orderBy) ? orderByFromJSON(object.orderBy) : -1
-    };
-  },
-  toJSON(message: GetTxsEventRequest): unknown {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e);
-    } else {
-      obj.events = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetTxsEventRequest>): GetTxsEventRequest {
-    const message = createBaseGetTxsEventRequest();
-    message.events = object.events?.map(e => e) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    message.orderBy = object.orderBy ?? 0;
-    return message;
-  },
-  fromSDK(object: GetTxsEventRequestSDKType): GetTxsEventRequest {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => e) : [],
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined,
-      orderBy: isSet(object.order_by) ? orderByFromJSON(object.order_by) : -1
-    };
-  },
-  toSDK(message: GetTxsEventRequest): GetTxsEventRequestSDKType {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e);
-    } else {
-      obj.events = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    message.orderBy !== undefined && (obj.order_by = orderByToJSON(message.orderBy));
-    return obj;
-  },
-  fromAmino(object: GetTxsEventRequestAmino): GetTxsEventRequest {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => e) : [],
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined,
-      orderBy: isSet(object.order_by) ? orderByFromJSON(object.order_by) : -1
-    };
-  },
-  toAmino(message: GetTxsEventRequest): GetTxsEventRequestAmino {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e);
-    } else {
-      obj.events = [];
-    }
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    obj.order_by = message.orderBy;
-    return obj;
-  },
-  fromAminoMsg(object: GetTxsEventRequestAminoMsg): GetTxsEventRequest {
-    return GetTxsEventRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxsEventRequest): GetTxsEventRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxsEventRequest",
-      value: GetTxsEventRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxsEventRequestProtoMsg): GetTxsEventRequest {
-    return GetTxsEventRequest.decode(message.value);
-  },
-  toProto(message: GetTxsEventRequest): Uint8Array {
-    return GetTxsEventRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxsEventRequest): GetTxsEventRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetTxsEventRequest",
-      value: GetTxsEventRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetTxsEventResponse(): GetTxsEventResponse {
-  return {
-    txs: [],
-    txResponses: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const GetTxsEventResponse = {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxsEventResponse",
-  aminoType: "cosmos-sdk/GetTxsEventResponse",
-  encode(message: GetTxsEventResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.txs) {
-      Tx.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.txResponses) {
-      TxResponse.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxsEventResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxsEventResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txs.push(Tx.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.txResponses.push(TxResponse.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetTxsEventResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromJSON(e)) : [],
-      txResponses: Array.isArray(object?.txResponses) ? object.txResponses.map((e: any) => TxResponse.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetTxsEventResponse): unknown {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toJSON(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    if (message.txResponses) {
-      obj.txResponses = message.txResponses.map(e => e ? TxResponse.toJSON(e) : undefined);
-    } else {
-      obj.txResponses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetTxsEventResponse>): GetTxsEventResponse {
-    const message = createBaseGetTxsEventResponse();
-    message.txs = object.txs?.map(e => Tx.fromPartial(e)) || [];
-    message.txResponses = object.txResponses?.map(e => TxResponse.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetTxsEventResponseSDKType): GetTxsEventResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromSDK(e)) : [],
-      txResponses: Array.isArray(object?.tx_responses) ? object.tx_responses.map((e: any) => TxResponse.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetTxsEventResponse): GetTxsEventResponseSDKType {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toSDK(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    if (message.txResponses) {
-      obj.tx_responses = message.txResponses.map(e => e ? TxResponse.toSDK(e) : undefined);
-    } else {
-      obj.tx_responses = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetTxsEventResponseAmino): GetTxsEventResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromAmino(e)) : [],
-      txResponses: Array.isArray(object?.tx_responses) ? object.tx_responses.map((e: any) => TxResponse.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetTxsEventResponse): GetTxsEventResponseAmino {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toAmino(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    if (message.txResponses) {
-      obj.tx_responses = message.txResponses.map(e => e ? TxResponse.toAmino(e) : undefined);
-    } else {
-      obj.tx_responses = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetTxsEventResponseAminoMsg): GetTxsEventResponse {
-    return GetTxsEventResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxsEventResponse): GetTxsEventResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxsEventResponse",
-      value: GetTxsEventResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxsEventResponseProtoMsg): GetTxsEventResponse {
-    return GetTxsEventResponse.decode(message.value);
-  },
-  toProto(message: GetTxsEventResponse): Uint8Array {
-    return GetTxsEventResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxsEventResponse): GetTxsEventResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetTxsEventResponse",
-      value: GetTxsEventResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseBroadcastTxRequest(): BroadcastTxRequest {
-  return {
-    txBytes: new Uint8Array(),
-    mode: 0
-  };
-}
-export const BroadcastTxRequest = {
-  typeUrl: "/cosmos.tx.v1beta1.BroadcastTxRequest",
-  aminoType: "cosmos-sdk/BroadcastTxRequest",
-  encode(message: BroadcastTxRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.txBytes.length !== 0) {
-      writer.uint32(10).bytes(message.txBytes);
-    }
-    if (message.mode !== 0) {
-      writer.uint32(16).int32(message.mode);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BroadcastTxRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBroadcastTxRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txBytes = reader.bytes();
-          break;
-        case 2:
-          message.mode = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BroadcastTxRequest {
-    return {
-      txBytes: isSet(object.txBytes) ? bytesFromBase64(object.txBytes) : new Uint8Array(),
-      mode: isSet(object.mode) ? broadcastModeFromJSON(object.mode) : -1
-    };
-  },
-  toJSON(message: BroadcastTxRequest): unknown {
-    const obj: any = {};
-    message.txBytes !== undefined && (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));
-    message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BroadcastTxRequest>): BroadcastTxRequest {
-    const message = createBaseBroadcastTxRequest();
-    message.txBytes = object.txBytes ?? new Uint8Array();
-    message.mode = object.mode ?? 0;
-    return message;
-  },
-  fromSDK(object: BroadcastTxRequestSDKType): BroadcastTxRequest {
-    return {
-      txBytes: object?.tx_bytes,
-      mode: isSet(object.mode) ? broadcastModeFromJSON(object.mode) : -1
-    };
-  },
-  toSDK(message: BroadcastTxRequest): BroadcastTxRequestSDKType {
-    const obj: any = {};
-    obj.tx_bytes = message.txBytes;
-    message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));
-    return obj;
-  },
-  fromAmino(object: BroadcastTxRequestAmino): BroadcastTxRequest {
-    return {
-      txBytes: object.tx_bytes,
-      mode: isSet(object.mode) ? broadcastModeFromJSON(object.mode) : -1
-    };
-  },
-  toAmino(message: BroadcastTxRequest): BroadcastTxRequestAmino {
-    const obj: any = {};
-    obj.tx_bytes = message.txBytes;
-    obj.mode = message.mode;
-    return obj;
-  },
-  fromAminoMsg(object: BroadcastTxRequestAminoMsg): BroadcastTxRequest {
-    return BroadcastTxRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: BroadcastTxRequest): BroadcastTxRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/BroadcastTxRequest",
-      value: BroadcastTxRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BroadcastTxRequestProtoMsg): BroadcastTxRequest {
-    return BroadcastTxRequest.decode(message.value);
-  },
-  toProto(message: BroadcastTxRequest): Uint8Array {
-    return BroadcastTxRequest.encode(message).finish();
-  },
-  toProtoMsg(message: BroadcastTxRequest): BroadcastTxRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.BroadcastTxRequest",
-      value: BroadcastTxRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseBroadcastTxResponse(): BroadcastTxResponse {
-  return {
-    txResponse: TxResponse.fromPartial({})
-  };
-}
-export const BroadcastTxResponse = {
-  typeUrl: "/cosmos.tx.v1beta1.BroadcastTxResponse",
-  aminoType: "cosmos-sdk/BroadcastTxResponse",
-  encode(message: BroadcastTxResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.txResponse !== undefined) {
-      TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BroadcastTxResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBroadcastTxResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txResponse = TxResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BroadcastTxResponse {
-    return {
-      txResponse: isSet(object.txResponse) ? TxResponse.fromJSON(object.txResponse) : undefined
-    };
-  },
-  toJSON(message: BroadcastTxResponse): unknown {
-    const obj: any = {};
-    message.txResponse !== undefined && (obj.txResponse = message.txResponse ? TxResponse.toJSON(message.txResponse) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BroadcastTxResponse>): BroadcastTxResponse {
-    const message = createBaseBroadcastTxResponse();
-    message.txResponse = object.txResponse !== undefined && object.txResponse !== null ? TxResponse.fromPartial(object.txResponse) : undefined;
-    return message;
-  },
-  fromSDK(object: BroadcastTxResponseSDKType): BroadcastTxResponse {
-    return {
-      txResponse: object.tx_response ? TxResponse.fromSDK(object.tx_response) : undefined
-    };
-  },
-  toSDK(message: BroadcastTxResponse): BroadcastTxResponseSDKType {
-    const obj: any = {};
-    message.txResponse !== undefined && (obj.tx_response = message.txResponse ? TxResponse.toSDK(message.txResponse) : undefined);
-    return obj;
-  },
-  fromAmino(object: BroadcastTxResponseAmino): BroadcastTxResponse {
-    return {
-      txResponse: object?.tx_response ? TxResponse.fromAmino(object.tx_response) : undefined
-    };
-  },
-  toAmino(message: BroadcastTxResponse): BroadcastTxResponseAmino {
-    const obj: any = {};
-    obj.tx_response = message.txResponse ? TxResponse.toAmino(message.txResponse) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BroadcastTxResponseAminoMsg): BroadcastTxResponse {
-    return BroadcastTxResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: BroadcastTxResponse): BroadcastTxResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/BroadcastTxResponse",
-      value: BroadcastTxResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BroadcastTxResponseProtoMsg): BroadcastTxResponse {
-    return BroadcastTxResponse.decode(message.value);
-  },
-  toProto(message: BroadcastTxResponse): Uint8Array {
-    return BroadcastTxResponse.encode(message).finish();
-  },
-  toProtoMsg(message: BroadcastTxResponse): BroadcastTxResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.BroadcastTxResponse",
-      value: BroadcastTxResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSimulateRequest(): SimulateRequest {
-  return {
-    tx: Tx.fromPartial({}),
-    txBytes: new Uint8Array()
-  };
-}
-export const SimulateRequest = {
-  typeUrl: "/cosmos.tx.v1beta1.SimulateRequest",
-  aminoType: "cosmos-sdk/SimulateRequest",
-  encode(message: SimulateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tx !== undefined) {
-      Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.txBytes.length !== 0) {
-      writer.uint32(18).bytes(message.txBytes);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SimulateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSimulateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tx = Tx.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.txBytes = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SimulateRequest {
-    return {
-      tx: isSet(object.tx) ? Tx.fromJSON(object.tx) : undefined,
-      txBytes: isSet(object.txBytes) ? bytesFromBase64(object.txBytes) : new Uint8Array()
-    };
-  },
-  toJSON(message: SimulateRequest): unknown {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? Tx.toJSON(message.tx) : undefined);
-    message.txBytes !== undefined && (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SimulateRequest>): SimulateRequest {
-    const message = createBaseSimulateRequest();
-    message.tx = object.tx !== undefined && object.tx !== null ? Tx.fromPartial(object.tx) : undefined;
-    message.txBytes = object.txBytes ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SimulateRequestSDKType): SimulateRequest {
-    return {
-      tx: object.tx ? Tx.fromSDK(object.tx) : undefined,
-      txBytes: object?.tx_bytes
-    };
-  },
-  toSDK(message: SimulateRequest): SimulateRequestSDKType {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? Tx.toSDK(message.tx) : undefined);
-    obj.tx_bytes = message.txBytes;
-    return obj;
-  },
-  fromAmino(object: SimulateRequestAmino): SimulateRequest {
-    return {
-      tx: object?.tx ? Tx.fromAmino(object.tx) : undefined,
-      txBytes: object.tx_bytes
-    };
-  },
-  toAmino(message: SimulateRequest): SimulateRequestAmino {
-    const obj: any = {};
-    obj.tx = message.tx ? Tx.toAmino(message.tx) : undefined;
-    obj.tx_bytes = message.txBytes;
-    return obj;
-  },
-  fromAminoMsg(object: SimulateRequestAminoMsg): SimulateRequest {
-    return SimulateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SimulateRequest): SimulateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/SimulateRequest",
-      value: SimulateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SimulateRequestProtoMsg): SimulateRequest {
-    return SimulateRequest.decode(message.value);
-  },
-  toProto(message: SimulateRequest): Uint8Array {
-    return SimulateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SimulateRequest): SimulateRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.SimulateRequest",
-      value: SimulateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSimulateResponse(): SimulateResponse {
-  return {
-    gasInfo: GasInfo.fromPartial({}),
-    result: Result.fromPartial({})
-  };
-}
-export const SimulateResponse = {
-  typeUrl: "/cosmos.tx.v1beta1.SimulateResponse",
-  aminoType: "cosmos-sdk/SimulateResponse",
-  encode(message: SimulateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gasInfo !== undefined) {
-      GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.result !== undefined) {
-      Result.encode(message.result, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SimulateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSimulateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gasInfo = GasInfo.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.result = Result.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SimulateResponse {
-    return {
-      gasInfo: isSet(object.gasInfo) ? GasInfo.fromJSON(object.gasInfo) : undefined,
-      result: isSet(object.result) ? Result.fromJSON(object.result) : undefined
-    };
-  },
-  toJSON(message: SimulateResponse): unknown {
-    const obj: any = {};
-    message.gasInfo !== undefined && (obj.gasInfo = message.gasInfo ? GasInfo.toJSON(message.gasInfo) : undefined);
-    message.result !== undefined && (obj.result = message.result ? Result.toJSON(message.result) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SimulateResponse>): SimulateResponse {
-    const message = createBaseSimulateResponse();
-    message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? GasInfo.fromPartial(object.gasInfo) : undefined;
-    message.result = object.result !== undefined && object.result !== null ? Result.fromPartial(object.result) : undefined;
-    return message;
-  },
-  fromSDK(object: SimulateResponseSDKType): SimulateResponse {
-    return {
-      gasInfo: object.gas_info ? GasInfo.fromSDK(object.gas_info) : undefined,
-      result: object.result ? Result.fromSDK(object.result) : undefined
-    };
-  },
-  toSDK(message: SimulateResponse): SimulateResponseSDKType {
-    const obj: any = {};
-    message.gasInfo !== undefined && (obj.gas_info = message.gasInfo ? GasInfo.toSDK(message.gasInfo) : undefined);
-    message.result !== undefined && (obj.result = message.result ? Result.toSDK(message.result) : undefined);
-    return obj;
-  },
-  fromAmino(object: SimulateResponseAmino): SimulateResponse {
-    return {
-      gasInfo: object?.gas_info ? GasInfo.fromAmino(object.gas_info) : undefined,
-      result: object?.result ? Result.fromAmino(object.result) : undefined
-    };
-  },
-  toAmino(message: SimulateResponse): SimulateResponseAmino {
-    const obj: any = {};
-    obj.gas_info = message.gasInfo ? GasInfo.toAmino(message.gasInfo) : undefined;
-    obj.result = message.result ? Result.toAmino(message.result) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SimulateResponseAminoMsg): SimulateResponse {
-    return SimulateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SimulateResponse): SimulateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/SimulateResponse",
-      value: SimulateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SimulateResponseProtoMsg): SimulateResponse {
-    return SimulateResponse.decode(message.value);
-  },
-  toProto(message: SimulateResponse): Uint8Array {
-    return SimulateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SimulateResponse): SimulateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.SimulateResponse",
-      value: SimulateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetTxRequest(): GetTxRequest {
-  return {
-    hash: ""
-  };
-}
-export const GetTxRequest = {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxRequest",
-  aminoType: "cosmos-sdk/GetTxRequest",
-  encode(message: GetTxRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash !== "") {
-      writer.uint32(10).string(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetTxRequest {
-    return {
-      hash: isSet(object.hash) ? String(object.hash) : ""
-    };
-  },
-  toJSON(message: GetTxRequest): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = message.hash);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetTxRequest>): GetTxRequest {
-    const message = createBaseGetTxRequest();
-    message.hash = object.hash ?? "";
-    return message;
-  },
-  fromSDK(object: GetTxRequestSDKType): GetTxRequest {
-    return {
-      hash: object?.hash
-    };
-  },
-  toSDK(message: GetTxRequest): GetTxRequestSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: GetTxRequestAmino): GetTxRequest {
-    return {
-      hash: object.hash
-    };
-  },
-  toAmino(message: GetTxRequest): GetTxRequestAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: GetTxRequestAminoMsg): GetTxRequest {
-    return GetTxRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxRequest): GetTxRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxRequest",
-      value: GetTxRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxRequestProtoMsg): GetTxRequest {
-    return GetTxRequest.decode(message.value);
-  },
-  toProto(message: GetTxRequest): Uint8Array {
-    return GetTxRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxRequest): GetTxRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetTxRequest",
-      value: GetTxRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetTxResponse(): GetTxResponse {
-  return {
-    tx: Tx.fromPartial({}),
-    txResponse: TxResponse.fromPartial({})
-  };
-}
-export const GetTxResponse = {
-  typeUrl: "/cosmos.tx.v1beta1.GetTxResponse",
-  aminoType: "cosmos-sdk/GetTxResponse",
-  encode(message: GetTxResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tx !== undefined) {
-      Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.txResponse !== undefined) {
-      TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetTxResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetTxResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tx = Tx.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.txResponse = TxResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetTxResponse {
-    return {
-      tx: isSet(object.tx) ? Tx.fromJSON(object.tx) : undefined,
-      txResponse: isSet(object.txResponse) ? TxResponse.fromJSON(object.txResponse) : undefined
-    };
-  },
-  toJSON(message: GetTxResponse): unknown {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? Tx.toJSON(message.tx) : undefined);
-    message.txResponse !== undefined && (obj.txResponse = message.txResponse ? TxResponse.toJSON(message.txResponse) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetTxResponse>): GetTxResponse {
-    const message = createBaseGetTxResponse();
-    message.tx = object.tx !== undefined && object.tx !== null ? Tx.fromPartial(object.tx) : undefined;
-    message.txResponse = object.txResponse !== undefined && object.txResponse !== null ? TxResponse.fromPartial(object.txResponse) : undefined;
-    return message;
-  },
-  fromSDK(object: GetTxResponseSDKType): GetTxResponse {
-    return {
-      tx: object.tx ? Tx.fromSDK(object.tx) : undefined,
-      txResponse: object.tx_response ? TxResponse.fromSDK(object.tx_response) : undefined
-    };
-  },
-  toSDK(message: GetTxResponse): GetTxResponseSDKType {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = message.tx ? Tx.toSDK(message.tx) : undefined);
-    message.txResponse !== undefined && (obj.tx_response = message.txResponse ? TxResponse.toSDK(message.txResponse) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetTxResponseAmino): GetTxResponse {
-    return {
-      tx: object?.tx ? Tx.fromAmino(object.tx) : undefined,
-      txResponse: object?.tx_response ? TxResponse.fromAmino(object.tx_response) : undefined
-    };
-  },
-  toAmino(message: GetTxResponse): GetTxResponseAmino {
-    const obj: any = {};
-    obj.tx = message.tx ? Tx.toAmino(message.tx) : undefined;
-    obj.tx_response = message.txResponse ? TxResponse.toAmino(message.txResponse) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetTxResponseAminoMsg): GetTxResponse {
-    return GetTxResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetTxResponse): GetTxResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetTxResponse",
-      value: GetTxResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetTxResponseProtoMsg): GetTxResponse {
-    return GetTxResponse.decode(message.value);
-  },
-  toProto(message: GetTxResponse): Uint8Array {
-    return GetTxResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetTxResponse): GetTxResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetTxResponse",
-      value: GetTxResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGetBlockWithTxsRequest(): GetBlockWithTxsRequest {
-  return {
-    height: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const GetBlockWithTxsRequest = {
-  typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsRequest",
-  aminoType: "cosmos-sdk/GetBlockWithTxsRequest",
-  encode(message: GetBlockWithTxsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetBlockWithTxsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetBlockWithTxsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetBlockWithTxsRequest {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetBlockWithTxsRequest): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetBlockWithTxsRequest>): GetBlockWithTxsRequest {
-    const message = createBaseGetBlockWithTxsRequest();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetBlockWithTxsRequestSDKType): GetBlockWithTxsRequest {
-    return {
-      height: object?.height,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetBlockWithTxsRequest): GetBlockWithTxsRequestSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetBlockWithTxsRequestAmino): GetBlockWithTxsRequest {
-    return {
-      height: BigInt(object.height),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetBlockWithTxsRequest): GetBlockWithTxsRequestAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetBlockWithTxsRequestAminoMsg): GetBlockWithTxsRequest {
-    return GetBlockWithTxsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetBlockWithTxsRequest): GetBlockWithTxsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/GetBlockWithTxsRequest",
-      value: GetBlockWithTxsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetBlockWithTxsRequestProtoMsg): GetBlockWithTxsRequest {
-    return GetBlockWithTxsRequest.decode(message.value);
-  },
-  toProto(message: GetBlockWithTxsRequest): Uint8Array {
-    return GetBlockWithTxsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GetBlockWithTxsRequest): GetBlockWithTxsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsRequest",
-      value: GetBlockWithTxsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGetBlockWithTxsResponse(): GetBlockWithTxsResponse {
-  return {
-    txs: [],
-    blockId: BlockID.fromPartial({}),
-    block: Block.fromPartial({}),
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const GetBlockWithTxsResponse = {
-  typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsResponse",
-  aminoType: "cosmos-sdk/GetBlockWithTxsResponse",
-  encode(message: GetBlockWithTxsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.txs) {
-      Tx.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.block !== undefined) {
-      Block.encode(message.block, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GetBlockWithTxsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGetBlockWithTxsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txs.push(Tx.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.block = Block.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GetBlockWithTxsResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromJSON(e)) : [],
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      block: isSet(object.block) ? Block.fromJSON(object.block) : undefined,
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GetBlockWithTxsResponse): unknown {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toJSON(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toJSON(message.block) : undefined);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GetBlockWithTxsResponse>): GetBlockWithTxsResponse {
-    const message = createBaseGetBlockWithTxsResponse();
-    message.txs = object.txs?.map(e => Tx.fromPartial(e)) || [];
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined;
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GetBlockWithTxsResponseSDKType): GetBlockWithTxsResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromSDK(e)) : [],
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      block: object.block ? Block.fromSDK(object.block) : undefined,
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GetBlockWithTxsResponse): GetBlockWithTxsResponseSDKType {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toSDK(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    message.block !== undefined && (obj.block = message.block ? Block.toSDK(message.block) : undefined);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GetBlockWithTxsResponseAmino): GetBlockWithTxsResponse {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => Tx.fromAmino(e)) : [],
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      block: object?.block ? Block.fromAmino(object.block) : undefined,
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GetBlockWithTxsResponse): GetBlockWithTxsResponseAmino {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e ? Tx.toAmino(e) : undefined);
-    } else {
-      obj.txs = [];
-    }
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.block = message.block ? Block.toAmino(message.block) : undefined;
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GetBlockWithTxsResponseAminoMsg): GetBlockWithTxsResponse {
-    return GetBlockWithTxsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GetBlockWithTxsResponse): GetBlockWithTxsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/GetBlockWithTxsResponse",
-      value: GetBlockWithTxsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GetBlockWithTxsResponseProtoMsg): GetBlockWithTxsResponse {
-    return GetBlockWithTxsResponse.decode(message.value);
-  },
-  toProto(message: GetBlockWithTxsResponse): Uint8Array {
-    return GetBlockWithTxsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GetBlockWithTxsResponse): GetBlockWithTxsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsResponse",
-      value: GetBlockWithTxsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/tx/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/tx/v1beta1/tx.ts
deleted file mode 100644
index 16126743..00000000
--- a/examples/injective/src/codegen/cosmos/tx/v1beta1/tx.ts
+++ /dev/null
@@ -1,2417 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { SignMode, signModeFromJSON, signModeToJSON } from "../signing/v1beta1/signing";
-import { CompactBitArray, CompactBitArrayAmino, CompactBitArraySDKType } from "../../crypto/multisig/v1beta1/multisig";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** Tx is the standard type used for broadcasting transactions. */
-export interface Tx {
-  /** body is the processable content of the transaction */
-  body: TxBody | undefined;
-  /**
-   * auth_info is the authorization related content of the transaction,
-   * specifically signers, signer modes and fee
-   */
-  authInfo: AuthInfo | undefined;
-  /**
-   * signatures is a list of signatures that matches the length and order of
-   * AuthInfo's signer_infos to allow connecting signature meta information like
-   * public key and signing mode by position.
-   */
-  signatures: Uint8Array[];
-}
-export interface TxProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.Tx";
-  value: Uint8Array;
-}
-/** Tx is the standard type used for broadcasting transactions. */
-export interface TxAmino {
-  /** body is the processable content of the transaction */
-  body?: TxBodyAmino | undefined;
-  /**
-   * auth_info is the authorization related content of the transaction,
-   * specifically signers, signer modes and fee
-   */
-  auth_info?: AuthInfoAmino | undefined;
-  /**
-   * signatures is a list of signatures that matches the length and order of
-   * AuthInfo's signer_infos to allow connecting signature meta information like
-   * public key and signing mode by position.
-   */
-  signatures: Uint8Array[];
-}
-export interface TxAminoMsg {
-  type: "cosmos-sdk/Tx";
-  value: TxAmino;
-}
-/** Tx is the standard type used for broadcasting transactions. */
-export interface TxSDKType {
-  body: TxBodySDKType | undefined;
-  auth_info: AuthInfoSDKType | undefined;
-  signatures: Uint8Array[];
-}
-/**
- * TxRaw is a variant of Tx that pins the signer's exact binary representation
- * of body and auth_info. This is used for signing, broadcasting and
- * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and
- * the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used
- * as the transaction ID.
- */
-export interface TxRaw {
-  /**
-   * body_bytes is a protobuf serialization of a TxBody that matches the
-   * representation in SignDoc.
-   */
-  bodyBytes: Uint8Array;
-  /**
-   * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
-   * representation in SignDoc.
-   */
-  authInfoBytes: Uint8Array;
-  /**
-   * signatures is a list of signatures that matches the length and order of
-   * AuthInfo's signer_infos to allow connecting signature meta information like
-   * public key and signing mode by position.
-   */
-  signatures: Uint8Array[];
-}
-export interface TxRawProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.TxRaw";
-  value: Uint8Array;
-}
-/**
- * TxRaw is a variant of Tx that pins the signer's exact binary representation
- * of body and auth_info. This is used for signing, broadcasting and
- * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and
- * the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used
- * as the transaction ID.
- */
-export interface TxRawAmino {
-  /**
-   * body_bytes is a protobuf serialization of a TxBody that matches the
-   * representation in SignDoc.
-   */
-  body_bytes: Uint8Array;
-  /**
-   * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
-   * representation in SignDoc.
-   */
-  auth_info_bytes: Uint8Array;
-  /**
-   * signatures is a list of signatures that matches the length and order of
-   * AuthInfo's signer_infos to allow connecting signature meta information like
-   * public key and signing mode by position.
-   */
-  signatures: Uint8Array[];
-}
-export interface TxRawAminoMsg {
-  type: "cosmos-sdk/TxRaw";
-  value: TxRawAmino;
-}
-/**
- * TxRaw is a variant of Tx that pins the signer's exact binary representation
- * of body and auth_info. This is used for signing, broadcasting and
- * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and
- * the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used
- * as the transaction ID.
- */
-export interface TxRawSDKType {
-  body_bytes: Uint8Array;
-  auth_info_bytes: Uint8Array;
-  signatures: Uint8Array[];
-}
-/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */
-export interface SignDoc {
-  /**
-   * body_bytes is protobuf serialization of a TxBody that matches the
-   * representation in TxRaw.
-   */
-  bodyBytes: Uint8Array;
-  /**
-   * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
-   * representation in TxRaw.
-   */
-  authInfoBytes: Uint8Array;
-  /**
-   * chain_id is the unique identifier of the chain this transaction targets.
-   * It prevents signed transactions from being used on another chain by an
-   * attacker
-   */
-  chainId: string;
-  /** account_number is the account number of the account in state */
-  accountNumber: bigint;
-}
-export interface SignDocProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.SignDoc";
-  value: Uint8Array;
-}
-/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */
-export interface SignDocAmino {
-  /**
-   * body_bytes is protobuf serialization of a TxBody that matches the
-   * representation in TxRaw.
-   */
-  body_bytes: Uint8Array;
-  /**
-   * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the
-   * representation in TxRaw.
-   */
-  auth_info_bytes: Uint8Array;
-  /**
-   * chain_id is the unique identifier of the chain this transaction targets.
-   * It prevents signed transactions from being used on another chain by an
-   * attacker
-   */
-  chain_id: string;
-  /** account_number is the account number of the account in state */
-  account_number: string;
-}
-export interface SignDocAminoMsg {
-  type: "cosmos-sdk/SignDoc";
-  value: SignDocAmino;
-}
-/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */
-export interface SignDocSDKType {
-  body_bytes: Uint8Array;
-  auth_info_bytes: Uint8Array;
-  chain_id: string;
-  account_number: bigint;
-}
-/**
- * SignDocDirectAux is the type used for generating sign bytes for
- * SIGN_MODE_DIRECT_AUX.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface SignDocDirectAux {
-  /**
-   * body_bytes is protobuf serialization of a TxBody that matches the
-   * representation in TxRaw.
-   */
-  bodyBytes: Uint8Array;
-  /** public_key is the public key of the signing account. */
-  publicKey: Any | undefined;
-  /**
-   * chain_id is the identifier of the chain this transaction targets.
-   * It prevents signed transactions from being used on another chain by an
-   * attacker.
-   */
-  chainId: string;
-  /** account_number is the account number of the account in state. */
-  accountNumber: bigint;
-  /** sequence is the sequence number of the signing account. */
-  sequence: bigint;
-  /**
-   * Tip is the optional tip used for meta-transactions. It should be left
-   * empty if the signer is not the tipper for this transaction.
-   */
-  tip: Tip | undefined;
-}
-export interface SignDocDirectAuxProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux";
-  value: Uint8Array;
-}
-/**
- * SignDocDirectAux is the type used for generating sign bytes for
- * SIGN_MODE_DIRECT_AUX.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface SignDocDirectAuxAmino {
-  /**
-   * body_bytes is protobuf serialization of a TxBody that matches the
-   * representation in TxRaw.
-   */
-  body_bytes: Uint8Array;
-  /** public_key is the public key of the signing account. */
-  public_key?: AnyAmino | undefined;
-  /**
-   * chain_id is the identifier of the chain this transaction targets.
-   * It prevents signed transactions from being used on another chain by an
-   * attacker.
-   */
-  chain_id: string;
-  /** account_number is the account number of the account in state. */
-  account_number: string;
-  /** sequence is the sequence number of the signing account. */
-  sequence: string;
-  /**
-   * Tip is the optional tip used for meta-transactions. It should be left
-   * empty if the signer is not the tipper for this transaction.
-   */
-  tip?: TipAmino | undefined;
-}
-export interface SignDocDirectAuxAminoMsg {
-  type: "cosmos-sdk/SignDocDirectAux";
-  value: SignDocDirectAuxAmino;
-}
-/**
- * SignDocDirectAux is the type used for generating sign bytes for
- * SIGN_MODE_DIRECT_AUX.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface SignDocDirectAuxSDKType {
-  body_bytes: Uint8Array;
-  public_key: AnySDKType | undefined;
-  chain_id: string;
-  account_number: bigint;
-  sequence: bigint;
-  tip: TipSDKType | undefined;
-}
-/** TxBody is the body of a transaction that all signers sign over. */
-export interface TxBody {
-  /**
-   * messages is a list of messages to be executed. The required signers of
-   * those messages define the number and order of elements in AuthInfo's
-   * signer_infos and Tx's signatures. Each required signer address is added to
-   * the list only the first time it occurs.
-   * By convention, the first required signer (usually from the first message)
-   * is referred to as the primary signer and pays the fee for the whole
-   * transaction.
-   */
-  messages: Any[];
-  /**
-   * memo is any arbitrary note/comment to be added to the transaction.
-   * WARNING: in clients, any publicly exposed text should not be called memo,
-   * but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122).
-   */
-  memo: string;
-  /**
-   * timeout is the block height after which this transaction will not
-   * be processed by the chain
-   */
-  timeoutHeight: bigint;
-  /**
-   * extension_options are arbitrary options that can be added by chains
-   * when the default options are not sufficient. If any of these are present
-   * and can't be handled, the transaction will be rejected
-   */
-  extensionOptions: Any[];
-  /**
-   * extension_options are arbitrary options that can be added by chains
-   * when the default options are not sufficient. If any of these are present
-   * and can't be handled, they will be ignored
-   */
-  nonCriticalExtensionOptions: Any[];
-}
-export interface TxBodyProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.TxBody";
-  value: Uint8Array;
-}
-/** TxBody is the body of a transaction that all signers sign over. */
-export interface TxBodyAmino {
-  /**
-   * messages is a list of messages to be executed. The required signers of
-   * those messages define the number and order of elements in AuthInfo's
-   * signer_infos and Tx's signatures. Each required signer address is added to
-   * the list only the first time it occurs.
-   * By convention, the first required signer (usually from the first message)
-   * is referred to as the primary signer and pays the fee for the whole
-   * transaction.
-   */
-  messages: AnyAmino[];
-  /**
-   * memo is any arbitrary note/comment to be added to the transaction.
-   * WARNING: in clients, any publicly exposed text should not be called memo,
-   * but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122).
-   */
-  memo: string;
-  /**
-   * timeout is the block height after which this transaction will not
-   * be processed by the chain
-   */
-  timeout_height: string;
-  /**
-   * extension_options are arbitrary options that can be added by chains
-   * when the default options are not sufficient. If any of these are present
-   * and can't be handled, the transaction will be rejected
-   */
-  extension_options: AnyAmino[];
-  /**
-   * extension_options are arbitrary options that can be added by chains
-   * when the default options are not sufficient. If any of these are present
-   * and can't be handled, they will be ignored
-   */
-  non_critical_extension_options: AnyAmino[];
-}
-export interface TxBodyAminoMsg {
-  type: "cosmos-sdk/TxBody";
-  value: TxBodyAmino;
-}
-/** TxBody is the body of a transaction that all signers sign over. */
-export interface TxBodySDKType {
-  messages: AnySDKType[];
-  memo: string;
-  timeout_height: bigint;
-  extension_options: AnySDKType[];
-  non_critical_extension_options: AnySDKType[];
-}
-/**
- * AuthInfo describes the fee and signer modes that are used to sign a
- * transaction.
- */
-export interface AuthInfo {
-  /**
-   * signer_infos defines the signing modes for the required signers. The number
-   * and order of elements must match the required signers from TxBody's
-   * messages. The first element is the primary signer and the one which pays
-   * the fee.
-   */
-  signerInfos: SignerInfo[];
-  /**
-   * Fee is the fee and gas limit for the transaction. The first signer is the
-   * primary signer and the one which pays the fee. The fee can be calculated
-   * based on the cost of evaluating the body and doing signature verification
-   * of the signers. This can be estimated via simulation.
-   */
-  fee: Fee | undefined;
-  /**
-   * Tip is the optional tip used for meta-transactions.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  tip: Tip | undefined;
-}
-export interface AuthInfoProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.AuthInfo";
-  value: Uint8Array;
-}
-/**
- * AuthInfo describes the fee and signer modes that are used to sign a
- * transaction.
- */
-export interface AuthInfoAmino {
-  /**
-   * signer_infos defines the signing modes for the required signers. The number
-   * and order of elements must match the required signers from TxBody's
-   * messages. The first element is the primary signer and the one which pays
-   * the fee.
-   */
-  signer_infos: SignerInfoAmino[];
-  /**
-   * Fee is the fee and gas limit for the transaction. The first signer is the
-   * primary signer and the one which pays the fee. The fee can be calculated
-   * based on the cost of evaluating the body and doing signature verification
-   * of the signers. This can be estimated via simulation.
-   */
-  fee?: FeeAmino | undefined;
-  /**
-   * Tip is the optional tip used for meta-transactions.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  tip?: TipAmino | undefined;
-}
-export interface AuthInfoAminoMsg {
-  type: "cosmos-sdk/AuthInfo";
-  value: AuthInfoAmino;
-}
-/**
- * AuthInfo describes the fee and signer modes that are used to sign a
- * transaction.
- */
-export interface AuthInfoSDKType {
-  signer_infos: SignerInfoSDKType[];
-  fee: FeeSDKType | undefined;
-  tip: TipSDKType | undefined;
-}
-/**
- * SignerInfo describes the public key and signing mode of a single top-level
- * signer.
- */
-export interface SignerInfo {
-  /**
-   * public_key is the public key of the signer. It is optional for accounts
-   * that already exist in state. If unset, the verifier can use the required \
-   * signer address for this position and lookup the public key.
-   */
-  publicKey: Any | undefined;
-  /**
-   * mode_info describes the signing mode of the signer and is a nested
-   * structure to support nested multisig pubkey's
-   */
-  modeInfo: ModeInfo | undefined;
-  /**
-   * sequence is the sequence of the account, which describes the
-   * number of committed transactions signed by a given address. It is used to
-   * prevent replay attacks.
-   */
-  sequence: bigint;
-}
-export interface SignerInfoProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.SignerInfo";
-  value: Uint8Array;
-}
-/**
- * SignerInfo describes the public key and signing mode of a single top-level
- * signer.
- */
-export interface SignerInfoAmino {
-  /**
-   * public_key is the public key of the signer. It is optional for accounts
-   * that already exist in state. If unset, the verifier can use the required \
-   * signer address for this position and lookup the public key.
-   */
-  public_key?: AnyAmino | undefined;
-  /**
-   * mode_info describes the signing mode of the signer and is a nested
-   * structure to support nested multisig pubkey's
-   */
-  mode_info?: ModeInfoAmino | undefined;
-  /**
-   * sequence is the sequence of the account, which describes the
-   * number of committed transactions signed by a given address. It is used to
-   * prevent replay attacks.
-   */
-  sequence: string;
-}
-export interface SignerInfoAminoMsg {
-  type: "cosmos-sdk/SignerInfo";
-  value: SignerInfoAmino;
-}
-/**
- * SignerInfo describes the public key and signing mode of a single top-level
- * signer.
- */
-export interface SignerInfoSDKType {
-  public_key: AnySDKType | undefined;
-  mode_info: ModeInfoSDKType | undefined;
-  sequence: bigint;
-}
-/** ModeInfo describes the signing mode of a single or nested multisig signer. */
-export interface ModeInfo {
-  /** single represents a single signer */
-  single?: ModeInfo_Single | undefined;
-  /** multi represents a nested multisig signer */
-  multi?: ModeInfo_Multi | undefined;
-}
-export interface ModeInfoProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.ModeInfo";
-  value: Uint8Array;
-}
-/** ModeInfo describes the signing mode of a single or nested multisig signer. */
-export interface ModeInfoAmino {
-  /** single represents a single signer */
-  single?: ModeInfo_SingleAmino | undefined;
-  /** multi represents a nested multisig signer */
-  multi?: ModeInfo_MultiAmino | undefined;
-}
-export interface ModeInfoAminoMsg {
-  type: "cosmos-sdk/ModeInfo";
-  value: ModeInfoAmino;
-}
-/** ModeInfo describes the signing mode of a single or nested multisig signer. */
-export interface ModeInfoSDKType {
-  single?: ModeInfo_SingleSDKType | undefined;
-  multi?: ModeInfo_MultiSDKType | undefined;
-}
-/**
- * Single is the mode info for a single signer. It is structured as a message
- * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the
- * future
- */
-export interface ModeInfo_Single {
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-}
-export interface ModeInfo_SingleProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.Single";
-  value: Uint8Array;
-}
-/**
- * Single is the mode info for a single signer. It is structured as a message
- * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the
- * future
- */
-export interface ModeInfo_SingleAmino {
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-}
-export interface ModeInfo_SingleAminoMsg {
-  type: "cosmos-sdk/Single";
-  value: ModeInfo_SingleAmino;
-}
-/**
- * Single is the mode info for a single signer. It is structured as a message
- * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the
- * future
- */
-export interface ModeInfo_SingleSDKType {
-  mode: SignMode;
-}
-/** Multi is the mode info for a multisig public key */
-export interface ModeInfo_Multi {
-  /** bitarray specifies which keys within the multisig are signing */
-  bitarray: CompactBitArray | undefined;
-  /**
-   * mode_infos is the corresponding modes of the signers of the multisig
-   * which could include nested multisig public keys
-   */
-  modeInfos: ModeInfo[];
-}
-export interface ModeInfo_MultiProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.Multi";
-  value: Uint8Array;
-}
-/** Multi is the mode info for a multisig public key */
-export interface ModeInfo_MultiAmino {
-  /** bitarray specifies which keys within the multisig are signing */
-  bitarray?: CompactBitArrayAmino | undefined;
-  /**
-   * mode_infos is the corresponding modes of the signers of the multisig
-   * which could include nested multisig public keys
-   */
-  mode_infos: ModeInfoAmino[];
-}
-export interface ModeInfo_MultiAminoMsg {
-  type: "cosmos-sdk/Multi";
-  value: ModeInfo_MultiAmino;
-}
-/** Multi is the mode info for a multisig public key */
-export interface ModeInfo_MultiSDKType {
-  bitarray: CompactBitArraySDKType | undefined;
-  mode_infos: ModeInfoSDKType[];
-}
-/**
- * Fee includes the amount of coins paid in fees and the maximum
- * gas to be used by the transaction. The ratio yields an effective "gasprice",
- * which must be above some miminum to be accepted into the mempool.
- */
-export interface Fee {
-  /** amount is the amount of coins to be paid as a fee */
-  amount: Coin[];
-  /**
-   * gas_limit is the maximum gas that can be used in transaction processing
-   * before an out of gas error occurs
-   */
-  gasLimit: bigint;
-  /**
-   * if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees.
-   * the payer must be a tx signer (and thus have signed this field in AuthInfo).
-   * setting this field does *not* change the ordering of required signers for the transaction.
-   */
-  payer: string;
-  /**
-   * if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used
-   * to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does
-   * not support fee grants, this will fail
-   */
-  granter: string;
-}
-export interface FeeProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.Fee";
-  value: Uint8Array;
-}
-/**
- * Fee includes the amount of coins paid in fees and the maximum
- * gas to be used by the transaction. The ratio yields an effective "gasprice",
- * which must be above some miminum to be accepted into the mempool.
- */
-export interface FeeAmino {
-  /** amount is the amount of coins to be paid as a fee */
-  amount: CoinAmino[];
-  /**
-   * gas_limit is the maximum gas that can be used in transaction processing
-   * before an out of gas error occurs
-   */
-  gas_limit: string;
-  /**
-   * if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees.
-   * the payer must be a tx signer (and thus have signed this field in AuthInfo).
-   * setting this field does *not* change the ordering of required signers for the transaction.
-   */
-  payer: string;
-  /**
-   * if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used
-   * to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does
-   * not support fee grants, this will fail
-   */
-  granter: string;
-}
-export interface FeeAminoMsg {
-  type: "cosmos-sdk/Fee";
-  value: FeeAmino;
-}
-/**
- * Fee includes the amount of coins paid in fees and the maximum
- * gas to be used by the transaction. The ratio yields an effective "gasprice",
- * which must be above some miminum to be accepted into the mempool.
- */
-export interface FeeSDKType {
-  amount: CoinSDKType[];
-  gas_limit: bigint;
-  payer: string;
-  granter: string;
-}
-/**
- * Tip is the tip used for meta-transactions.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface Tip {
-  /** amount is the amount of the tip */
-  amount: Coin[];
-  /** tipper is the address of the account paying for the tip */
-  tipper: string;
-}
-export interface TipProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.Tip";
-  value: Uint8Array;
-}
-/**
- * Tip is the tip used for meta-transactions.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface TipAmino {
-  /** amount is the amount of the tip */
-  amount: CoinAmino[];
-  /** tipper is the address of the account paying for the tip */
-  tipper: string;
-}
-export interface TipAminoMsg {
-  type: "cosmos-sdk/Tip";
-  value: TipAmino;
-}
-/**
- * Tip is the tip used for meta-transactions.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface TipSDKType {
-  amount: CoinSDKType[];
-  tipper: string;
-}
-/**
- * AuxSignerData is the intermediary format that an auxiliary signer (e.g. a
- * tipper) builds and sends to the fee payer (who will build and broadcast the
- * actual tx). AuxSignerData is not a valid tx in itself, and will be rejected
- * by the node if sent directly as-is.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface AuxSignerData {
-  /**
-   * address is the bech32-encoded address of the auxiliary signer. If using
-   * AuxSignerData across different chains, the bech32 prefix of the target
-   * chain (where the final transaction is broadcasted) should be used.
-   */
-  address: string;
-  /**
-   * sign_doc is the SIGN_MOD_DIRECT_AUX sign doc that the auxiliary signer
-   * signs. Note: we use the same sign doc even if we're signing with
-   * LEGACY_AMINO_JSON.
-   */
-  signDoc: SignDocDirectAux | undefined;
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-  /** sig is the signature of the sign doc. */
-  sig: Uint8Array;
-}
-export interface AuxSignerDataProtoMsg {
-  typeUrl: "/cosmos.tx.v1beta1.AuxSignerData";
-  value: Uint8Array;
-}
-/**
- * AuxSignerData is the intermediary format that an auxiliary signer (e.g. a
- * tipper) builds and sends to the fee payer (who will build and broadcast the
- * actual tx). AuxSignerData is not a valid tx in itself, and will be rejected
- * by the node if sent directly as-is.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface AuxSignerDataAmino {
-  /**
-   * address is the bech32-encoded address of the auxiliary signer. If using
-   * AuxSignerData across different chains, the bech32 prefix of the target
-   * chain (where the final transaction is broadcasted) should be used.
-   */
-  address: string;
-  /**
-   * sign_doc is the SIGN_MOD_DIRECT_AUX sign doc that the auxiliary signer
-   * signs. Note: we use the same sign doc even if we're signing with
-   * LEGACY_AMINO_JSON.
-   */
-  sign_doc?: SignDocDirectAuxAmino | undefined;
-  /** mode is the signing mode of the single signer */
-  mode: SignMode;
-  /** sig is the signature of the sign doc. */
-  sig: Uint8Array;
-}
-export interface AuxSignerDataAminoMsg {
-  type: "cosmos-sdk/AuxSignerData";
-  value: AuxSignerDataAmino;
-}
-/**
- * AuxSignerData is the intermediary format that an auxiliary signer (e.g. a
- * tipper) builds and sends to the fee payer (who will build and broadcast the
- * actual tx). AuxSignerData is not a valid tx in itself, and will be rejected
- * by the node if sent directly as-is.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface AuxSignerDataSDKType {
-  address: string;
-  sign_doc: SignDocDirectAuxSDKType | undefined;
-  mode: SignMode;
-  sig: Uint8Array;
-}
-function createBaseTx(): Tx {
-  return {
-    body: TxBody.fromPartial({}),
-    authInfo: AuthInfo.fromPartial({}),
-    signatures: []
-  };
-}
-export const Tx = {
-  typeUrl: "/cosmos.tx.v1beta1.Tx",
-  aminoType: "cosmos-sdk/Tx",
-  encode(message: Tx, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.body !== undefined) {
-      TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.authInfo !== undefined) {
-      AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.signatures) {
-      writer.uint32(26).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Tx {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTx();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.body = TxBody.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.authInfo = AuthInfo.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.signatures.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Tx {
-    return {
-      body: isSet(object.body) ? TxBody.fromJSON(object.body) : undefined,
-      authInfo: isSet(object.authInfo) ? AuthInfo.fromJSON(object.authInfo) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: Tx): unknown {
-    const obj: any = {};
-    message.body !== undefined && (obj.body = message.body ? TxBody.toJSON(message.body) : undefined);
-    message.authInfo !== undefined && (obj.authInfo = message.authInfo ? AuthInfo.toJSON(message.authInfo) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Tx>): Tx {
-    const message = createBaseTx();
-    message.body = object.body !== undefined && object.body !== null ? TxBody.fromPartial(object.body) : undefined;
-    message.authInfo = object.authInfo !== undefined && object.authInfo !== null ? AuthInfo.fromPartial(object.authInfo) : undefined;
-    message.signatures = object.signatures?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: TxSDKType): Tx {
-    return {
-      body: object.body ? TxBody.fromSDK(object.body) : undefined,
-      authInfo: object.auth_info ? AuthInfo.fromSDK(object.auth_info) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Tx): TxSDKType {
-    const obj: any = {};
-    message.body !== undefined && (obj.body = message.body ? TxBody.toSDK(message.body) : undefined);
-    message.authInfo !== undefined && (obj.auth_info = message.authInfo ? AuthInfo.toSDK(message.authInfo) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxAmino): Tx {
-    return {
-      body: object?.body ? TxBody.fromAmino(object.body) : undefined,
-      authInfo: object?.auth_info ? AuthInfo.fromAmino(object.auth_info) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Tx): TxAmino {
-    const obj: any = {};
-    obj.body = message.body ? TxBody.toAmino(message.body) : undefined;
-    obj.auth_info = message.authInfo ? AuthInfo.toAmino(message.authInfo) : undefined;
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxAminoMsg): Tx {
-    return Tx.fromAmino(object.value);
-  },
-  toAminoMsg(message: Tx): TxAminoMsg {
-    return {
-      type: "cosmos-sdk/Tx",
-      value: Tx.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxProtoMsg): Tx {
-    return Tx.decode(message.value);
-  },
-  toProto(message: Tx): Uint8Array {
-    return Tx.encode(message).finish();
-  },
-  toProtoMsg(message: Tx): TxProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.Tx",
-      value: Tx.encode(message).finish()
-    };
-  }
-};
-function createBaseTxRaw(): TxRaw {
-  return {
-    bodyBytes: new Uint8Array(),
-    authInfoBytes: new Uint8Array(),
-    signatures: []
-  };
-}
-export const TxRaw = {
-  typeUrl: "/cosmos.tx.v1beta1.TxRaw",
-  aminoType: "cosmos-sdk/TxRaw",
-  encode(message: TxRaw, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bodyBytes.length !== 0) {
-      writer.uint32(10).bytes(message.bodyBytes);
-    }
-    if (message.authInfoBytes.length !== 0) {
-      writer.uint32(18).bytes(message.authInfoBytes);
-    }
-    for (const v of message.signatures) {
-      writer.uint32(26).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxRaw {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxRaw();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bodyBytes = reader.bytes();
-          break;
-        case 2:
-          message.authInfoBytes = reader.bytes();
-          break;
-        case 3:
-          message.signatures.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxRaw {
-    return {
-      bodyBytes: isSet(object.bodyBytes) ? bytesFromBase64(object.bodyBytes) : new Uint8Array(),
-      authInfoBytes: isSet(object.authInfoBytes) ? bytesFromBase64(object.authInfoBytes) : new Uint8Array(),
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: TxRaw): unknown {
-    const obj: any = {};
-    message.bodyBytes !== undefined && (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));
-    message.authInfoBytes !== undefined && (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxRaw>): TxRaw {
-    const message = createBaseTxRaw();
-    message.bodyBytes = object.bodyBytes ?? new Uint8Array();
-    message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();
-    message.signatures = object.signatures?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: TxRawSDKType): TxRaw {
-    return {
-      bodyBytes: object?.body_bytes,
-      authInfoBytes: object?.auth_info_bytes,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: TxRaw): TxRawSDKType {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    obj.auth_info_bytes = message.authInfoBytes;
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxRawAmino): TxRaw {
-    return {
-      bodyBytes: object.body_bytes,
-      authInfoBytes: object.auth_info_bytes,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: TxRaw): TxRawAmino {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    obj.auth_info_bytes = message.authInfoBytes;
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxRawAminoMsg): TxRaw {
-    return TxRaw.fromAmino(object.value);
-  },
-  toAminoMsg(message: TxRaw): TxRawAminoMsg {
-    return {
-      type: "cosmos-sdk/TxRaw",
-      value: TxRaw.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxRawProtoMsg): TxRaw {
-    return TxRaw.decode(message.value);
-  },
-  toProto(message: TxRaw): Uint8Array {
-    return TxRaw.encode(message).finish();
-  },
-  toProtoMsg(message: TxRaw): TxRawProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.TxRaw",
-      value: TxRaw.encode(message).finish()
-    };
-  }
-};
-function createBaseSignDoc(): SignDoc {
-  return {
-    bodyBytes: new Uint8Array(),
-    authInfoBytes: new Uint8Array(),
-    chainId: "",
-    accountNumber: BigInt(0)
-  };
-}
-export const SignDoc = {
-  typeUrl: "/cosmos.tx.v1beta1.SignDoc",
-  aminoType: "cosmos-sdk/SignDoc",
-  encode(message: SignDoc, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bodyBytes.length !== 0) {
-      writer.uint32(10).bytes(message.bodyBytes);
-    }
-    if (message.authInfoBytes.length !== 0) {
-      writer.uint32(18).bytes(message.authInfoBytes);
-    }
-    if (message.chainId !== "") {
-      writer.uint32(26).string(message.chainId);
-    }
-    if (message.accountNumber !== BigInt(0)) {
-      writer.uint32(32).uint64(message.accountNumber);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignDoc {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignDoc();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bodyBytes = reader.bytes();
-          break;
-        case 2:
-          message.authInfoBytes = reader.bytes();
-          break;
-        case 3:
-          message.chainId = reader.string();
-          break;
-        case 4:
-          message.accountNumber = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignDoc {
-    return {
-      bodyBytes: isSet(object.bodyBytes) ? bytesFromBase64(object.bodyBytes) : new Uint8Array(),
-      authInfoBytes: isSet(object.authInfoBytes) ? bytesFromBase64(object.authInfoBytes) : new Uint8Array(),
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      accountNumber: isSet(object.accountNumber) ? BigInt(object.accountNumber.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SignDoc): unknown {
-    const obj: any = {};
-    message.bodyBytes !== undefined && (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));
-    message.authInfoBytes !== undefined && (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.accountNumber !== undefined && (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignDoc>): SignDoc {
-    const message = createBaseSignDoc();
-    message.bodyBytes = object.bodyBytes ?? new Uint8Array();
-    message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();
-    message.chainId = object.chainId ?? "";
-    message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? BigInt(object.accountNumber.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SignDocSDKType): SignDoc {
-    return {
-      bodyBytes: object?.body_bytes,
-      authInfoBytes: object?.auth_info_bytes,
-      chainId: object?.chain_id,
-      accountNumber: object?.account_number
-    };
-  },
-  toSDK(message: SignDoc): SignDocSDKType {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    obj.auth_info_bytes = message.authInfoBytes;
-    obj.chain_id = message.chainId;
-    obj.account_number = message.accountNumber;
-    return obj;
-  },
-  fromAmino(object: SignDocAmino): SignDoc {
-    return {
-      bodyBytes: object.body_bytes,
-      authInfoBytes: object.auth_info_bytes,
-      chainId: object.chain_id,
-      accountNumber: BigInt(object.account_number)
-    };
-  },
-  toAmino(message: SignDoc): SignDocAmino {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    obj.auth_info_bytes = message.authInfoBytes;
-    obj.chain_id = message.chainId;
-    obj.account_number = message.accountNumber ? message.accountNumber.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignDocAminoMsg): SignDoc {
-    return SignDoc.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignDoc): SignDocAminoMsg {
-    return {
-      type: "cosmos-sdk/SignDoc",
-      value: SignDoc.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignDocProtoMsg): SignDoc {
-    return SignDoc.decode(message.value);
-  },
-  toProto(message: SignDoc): Uint8Array {
-    return SignDoc.encode(message).finish();
-  },
-  toProtoMsg(message: SignDoc): SignDocProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.SignDoc",
-      value: SignDoc.encode(message).finish()
-    };
-  }
-};
-function createBaseSignDocDirectAux(): SignDocDirectAux {
-  return {
-    bodyBytes: new Uint8Array(),
-    publicKey: Any.fromPartial({}),
-    chainId: "",
-    accountNumber: BigInt(0),
-    sequence: BigInt(0),
-    tip: Tip.fromPartial({})
-  };
-}
-export const SignDocDirectAux = {
-  typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux",
-  aminoType: "cosmos-sdk/SignDocDirectAux",
-  encode(message: SignDocDirectAux, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bodyBytes.length !== 0) {
-      writer.uint32(10).bytes(message.bodyBytes);
-    }
-    if (message.publicKey !== undefined) {
-      Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.chainId !== "") {
-      writer.uint32(26).string(message.chainId);
-    }
-    if (message.accountNumber !== BigInt(0)) {
-      writer.uint32(32).uint64(message.accountNumber);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(40).uint64(message.sequence);
-    }
-    if (message.tip !== undefined) {
-      Tip.encode(message.tip, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignDocDirectAux {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignDocDirectAux();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bodyBytes = reader.bytes();
-          break;
-        case 2:
-          message.publicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.chainId = reader.string();
-          break;
-        case 4:
-          message.accountNumber = reader.uint64();
-          break;
-        case 5:
-          message.sequence = reader.uint64();
-          break;
-        case 6:
-          message.tip = Tip.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignDocDirectAux {
-    return {
-      bodyBytes: isSet(object.bodyBytes) ? bytesFromBase64(object.bodyBytes) : new Uint8Array(),
-      publicKey: isSet(object.publicKey) ? Any.fromJSON(object.publicKey) : undefined,
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      accountNumber: isSet(object.accountNumber) ? BigInt(object.accountNumber.toString()) : BigInt(0),
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      tip: isSet(object.tip) ? Tip.fromJSON(object.tip) : undefined
-    };
-  },
-  toJSON(message: SignDocDirectAux): unknown {
-    const obj: any = {};
-    message.bodyBytes !== undefined && (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));
-    message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined);
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.accountNumber !== undefined && (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.tip !== undefined && (obj.tip = message.tip ? Tip.toJSON(message.tip) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignDocDirectAux>): SignDocDirectAux {
-    const message = createBaseSignDocDirectAux();
-    message.bodyBytes = object.bodyBytes ?? new Uint8Array();
-    message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
-    message.chainId = object.chainId ?? "";
-    message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? BigInt(object.accountNumber.toString()) : BigInt(0);
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined;
-    return message;
-  },
-  fromSDK(object: SignDocDirectAuxSDKType): SignDocDirectAux {
-    return {
-      bodyBytes: object?.body_bytes,
-      publicKey: object.public_key ? Any.fromSDK(object.public_key) : undefined,
-      chainId: object?.chain_id,
-      accountNumber: object?.account_number,
-      sequence: object?.sequence,
-      tip: object.tip ? Tip.fromSDK(object.tip) : undefined
-    };
-  },
-  toSDK(message: SignDocDirectAux): SignDocDirectAuxSDKType {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    message.publicKey !== undefined && (obj.public_key = message.publicKey ? Any.toSDK(message.publicKey) : undefined);
-    obj.chain_id = message.chainId;
-    obj.account_number = message.accountNumber;
-    obj.sequence = message.sequence;
-    message.tip !== undefined && (obj.tip = message.tip ? Tip.toSDK(message.tip) : undefined);
-    return obj;
-  },
-  fromAmino(object: SignDocDirectAuxAmino): SignDocDirectAux {
-    return {
-      bodyBytes: object.body_bytes,
-      publicKey: object?.public_key ? Any.fromAmino(object.public_key) : undefined,
-      chainId: object.chain_id,
-      accountNumber: BigInt(object.account_number),
-      sequence: BigInt(object.sequence),
-      tip: object?.tip ? Tip.fromAmino(object.tip) : undefined
-    };
-  },
-  toAmino(message: SignDocDirectAux): SignDocDirectAuxAmino {
-    const obj: any = {};
-    obj.body_bytes = message.bodyBytes;
-    obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
-    obj.chain_id = message.chainId;
-    obj.account_number = message.accountNumber ? message.accountNumber.toString() : undefined;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.tip = message.tip ? Tip.toAmino(message.tip) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignDocDirectAuxAminoMsg): SignDocDirectAux {
-    return SignDocDirectAux.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignDocDirectAux): SignDocDirectAuxAminoMsg {
-    return {
-      type: "cosmos-sdk/SignDocDirectAux",
-      value: SignDocDirectAux.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignDocDirectAuxProtoMsg): SignDocDirectAux {
-    return SignDocDirectAux.decode(message.value);
-  },
-  toProto(message: SignDocDirectAux): Uint8Array {
-    return SignDocDirectAux.encode(message).finish();
-  },
-  toProtoMsg(message: SignDocDirectAux): SignDocDirectAuxProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux",
-      value: SignDocDirectAux.encode(message).finish()
-    };
-  }
-};
-function createBaseTxBody(): TxBody {
-  return {
-    messages: [],
-    memo: "",
-    timeoutHeight: BigInt(0),
-    extensionOptions: [],
-    nonCriticalExtensionOptions: []
-  };
-}
-export const TxBody = {
-  typeUrl: "/cosmos.tx.v1beta1.TxBody",
-  aminoType: "cosmos-sdk/TxBody",
-  encode(message: TxBody, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.messages) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.memo !== "") {
-      writer.uint32(18).string(message.memo);
-    }
-    if (message.timeoutHeight !== BigInt(0)) {
-      writer.uint32(24).uint64(message.timeoutHeight);
-    }
-    for (const v of message.extensionOptions) {
-      Any.encode(v!, writer.uint32(8186).fork()).ldelim();
-    }
-    for (const v of message.nonCriticalExtensionOptions) {
-      Any.encode(v!, writer.uint32(16378).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxBody {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxBody();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.messages.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.memo = reader.string();
-          break;
-        case 3:
-          message.timeoutHeight = reader.uint64();
-          break;
-        case 1023:
-          message.extensionOptions.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2047:
-          message.nonCriticalExtensionOptions.push(Any.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxBody {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromJSON(e)) : [],
-      memo: isSet(object.memo) ? String(object.memo) : "",
-      timeoutHeight: isSet(object.timeoutHeight) ? BigInt(object.timeoutHeight.toString()) : BigInt(0),
-      extensionOptions: Array.isArray(object?.extensionOptions) ? object.extensionOptions.map((e: any) => Any.fromJSON(e)) : [],
-      nonCriticalExtensionOptions: Array.isArray(object?.nonCriticalExtensionOptions) ? object.nonCriticalExtensionOptions.map((e: any) => Any.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: TxBody): unknown {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    message.memo !== undefined && (obj.memo = message.memo);
-    message.timeoutHeight !== undefined && (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString());
-    if (message.extensionOptions) {
-      obj.extensionOptions = message.extensionOptions.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.extensionOptions = [];
-    }
-    if (message.nonCriticalExtensionOptions) {
-      obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.nonCriticalExtensionOptions = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxBody>): TxBody {
-    const message = createBaseTxBody();
-    message.messages = object.messages?.map(e => Any.fromPartial(e)) || [];
-    message.memo = object.memo ?? "";
-    message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? BigInt(object.timeoutHeight.toString()) : BigInt(0);
-    message.extensionOptions = object.extensionOptions?.map(e => Any.fromPartial(e)) || [];
-    message.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions?.map(e => Any.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: TxBodySDKType): TxBody {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromSDK(e)) : [],
-      memo: object?.memo,
-      timeoutHeight: object?.timeout_height,
-      extensionOptions: Array.isArray(object?.extension_options) ? object.extension_options.map((e: any) => Any.fromSDK(e)) : [],
-      nonCriticalExtensionOptions: Array.isArray(object?.non_critical_extension_options) ? object.non_critical_extension_options.map((e: any) => Any.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: TxBody): TxBodySDKType {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    obj.memo = message.memo;
-    obj.timeout_height = message.timeoutHeight;
-    if (message.extensionOptions) {
-      obj.extension_options = message.extensionOptions.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.extension_options = [];
-    }
-    if (message.nonCriticalExtensionOptions) {
-      obj.non_critical_extension_options = message.nonCriticalExtensionOptions.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.non_critical_extension_options = [];
-    }
-    return obj;
-  },
-  fromAmino(object: TxBodyAmino): TxBody {
-    return {
-      messages: Array.isArray(object?.messages) ? object.messages.map((e: any) => Any.fromAmino(e)) : [],
-      memo: object.memo,
-      timeoutHeight: BigInt(object.timeout_height),
-      extensionOptions: Array.isArray(object?.extension_options) ? object.extension_options.map((e: any) => Any.fromAmino(e)) : [],
-      nonCriticalExtensionOptions: Array.isArray(object?.non_critical_extension_options) ? object.non_critical_extension_options.map((e: any) => Any.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: TxBody): TxBodyAmino {
-    const obj: any = {};
-    if (message.messages) {
-      obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.messages = [];
-    }
-    obj.memo = message.memo;
-    obj.timeout_height = message.timeoutHeight ? message.timeoutHeight.toString() : undefined;
-    if (message.extensionOptions) {
-      obj.extension_options = message.extensionOptions.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.extension_options = [];
-    }
-    if (message.nonCriticalExtensionOptions) {
-      obj.non_critical_extension_options = message.nonCriticalExtensionOptions.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.non_critical_extension_options = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: TxBodyAminoMsg): TxBody {
-    return TxBody.fromAmino(object.value);
-  },
-  toAminoMsg(message: TxBody): TxBodyAminoMsg {
-    return {
-      type: "cosmos-sdk/TxBody",
-      value: TxBody.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TxBodyProtoMsg): TxBody {
-    return TxBody.decode(message.value);
-  },
-  toProto(message: TxBody): Uint8Array {
-    return TxBody.encode(message).finish();
-  },
-  toProtoMsg(message: TxBody): TxBodyProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.TxBody",
-      value: TxBody.encode(message).finish()
-    };
-  }
-};
-function createBaseAuthInfo(): AuthInfo {
-  return {
-    signerInfos: [],
-    fee: Fee.fromPartial({}),
-    tip: Tip.fromPartial({})
-  };
-}
-export const AuthInfo = {
-  typeUrl: "/cosmos.tx.v1beta1.AuthInfo",
-  aminoType: "cosmos-sdk/AuthInfo",
-  encode(message: AuthInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.signerInfos) {
-      SignerInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.fee !== undefined) {
-      Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.tip !== undefined) {
-      Tip.encode(message.tip, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AuthInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAuthInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signerInfos.push(SignerInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.fee = Fee.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.tip = Tip.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AuthInfo {
-    return {
-      signerInfos: Array.isArray(object?.signerInfos) ? object.signerInfos.map((e: any) => SignerInfo.fromJSON(e)) : [],
-      fee: isSet(object.fee) ? Fee.fromJSON(object.fee) : undefined,
-      tip: isSet(object.tip) ? Tip.fromJSON(object.tip) : undefined
-    };
-  },
-  toJSON(message: AuthInfo): unknown {
-    const obj: any = {};
-    if (message.signerInfos) {
-      obj.signerInfos = message.signerInfos.map(e => e ? SignerInfo.toJSON(e) : undefined);
-    } else {
-      obj.signerInfos = [];
-    }
-    message.fee !== undefined && (obj.fee = message.fee ? Fee.toJSON(message.fee) : undefined);
-    message.tip !== undefined && (obj.tip = message.tip ? Tip.toJSON(message.tip) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AuthInfo>): AuthInfo {
-    const message = createBaseAuthInfo();
-    message.signerInfos = object.signerInfos?.map(e => SignerInfo.fromPartial(e)) || [];
-    message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromPartial(object.fee) : undefined;
-    message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined;
-    return message;
-  },
-  fromSDK(object: AuthInfoSDKType): AuthInfo {
-    return {
-      signerInfos: Array.isArray(object?.signer_infos) ? object.signer_infos.map((e: any) => SignerInfo.fromSDK(e)) : [],
-      fee: object.fee ? Fee.fromSDK(object.fee) : undefined,
-      tip: object.tip ? Tip.fromSDK(object.tip) : undefined
-    };
-  },
-  toSDK(message: AuthInfo): AuthInfoSDKType {
-    const obj: any = {};
-    if (message.signerInfos) {
-      obj.signer_infos = message.signerInfos.map(e => e ? SignerInfo.toSDK(e) : undefined);
-    } else {
-      obj.signer_infos = [];
-    }
-    message.fee !== undefined && (obj.fee = message.fee ? Fee.toSDK(message.fee) : undefined);
-    message.tip !== undefined && (obj.tip = message.tip ? Tip.toSDK(message.tip) : undefined);
-    return obj;
-  },
-  fromAmino(object: AuthInfoAmino): AuthInfo {
-    return {
-      signerInfos: Array.isArray(object?.signer_infos) ? object.signer_infos.map((e: any) => SignerInfo.fromAmino(e)) : [],
-      fee: object?.fee ? Fee.fromAmino(object.fee) : undefined,
-      tip: object?.tip ? Tip.fromAmino(object.tip) : undefined
-    };
-  },
-  toAmino(message: AuthInfo): AuthInfoAmino {
-    const obj: any = {};
-    if (message.signerInfos) {
-      obj.signer_infos = message.signerInfos.map(e => e ? SignerInfo.toAmino(e) : undefined);
-    } else {
-      obj.signer_infos = [];
-    }
-    obj.fee = message.fee ? Fee.toAmino(message.fee) : undefined;
-    obj.tip = message.tip ? Tip.toAmino(message.tip) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AuthInfoAminoMsg): AuthInfo {
-    return AuthInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: AuthInfo): AuthInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/AuthInfo",
-      value: AuthInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AuthInfoProtoMsg): AuthInfo {
-    return AuthInfo.decode(message.value);
-  },
-  toProto(message: AuthInfo): Uint8Array {
-    return AuthInfo.encode(message).finish();
-  },
-  toProtoMsg(message: AuthInfo): AuthInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.AuthInfo",
-      value: AuthInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseSignerInfo(): SignerInfo {
-  return {
-    publicKey: Any.fromPartial({}),
-    modeInfo: ModeInfo.fromPartial({}),
-    sequence: BigInt(0)
-  };
-}
-export const SignerInfo = {
-  typeUrl: "/cosmos.tx.v1beta1.SignerInfo",
-  aminoType: "cosmos-sdk/SignerInfo",
-  encode(message: SignerInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.publicKey !== undefined) {
-      Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.modeInfo !== undefined) {
-      ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignerInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignerInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.publicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.modeInfo = ModeInfo.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignerInfo {
-    return {
-      publicKey: isSet(object.publicKey) ? Any.fromJSON(object.publicKey) : undefined,
-      modeInfo: isSet(object.modeInfo) ? ModeInfo.fromJSON(object.modeInfo) : undefined,
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SignerInfo): unknown {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined);
-    message.modeInfo !== undefined && (obj.modeInfo = message.modeInfo ? ModeInfo.toJSON(message.modeInfo) : undefined);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignerInfo>): SignerInfo {
-    const message = createBaseSignerInfo();
-    message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
-    message.modeInfo = object.modeInfo !== undefined && object.modeInfo !== null ? ModeInfo.fromPartial(object.modeInfo) : undefined;
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SignerInfoSDKType): SignerInfo {
-    return {
-      publicKey: object.public_key ? Any.fromSDK(object.public_key) : undefined,
-      modeInfo: object.mode_info ? ModeInfo.fromSDK(object.mode_info) : undefined,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: SignerInfo): SignerInfoSDKType {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.public_key = message.publicKey ? Any.toSDK(message.publicKey) : undefined);
-    message.modeInfo !== undefined && (obj.mode_info = message.modeInfo ? ModeInfo.toSDK(message.modeInfo) : undefined);
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: SignerInfoAmino): SignerInfo {
-    return {
-      publicKey: object?.public_key ? Any.fromAmino(object.public_key) : undefined,
-      modeInfo: object?.mode_info ? ModeInfo.fromAmino(object.mode_info) : undefined,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: SignerInfo): SignerInfoAmino {
-    const obj: any = {};
-    obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
-    obj.mode_info = message.modeInfo ? ModeInfo.toAmino(message.modeInfo) : undefined;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignerInfoAminoMsg): SignerInfo {
-    return SignerInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignerInfo): SignerInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/SignerInfo",
-      value: SignerInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignerInfoProtoMsg): SignerInfo {
-    return SignerInfo.decode(message.value);
-  },
-  toProto(message: SignerInfo): Uint8Array {
-    return SignerInfo.encode(message).finish();
-  },
-  toProtoMsg(message: SignerInfo): SignerInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.SignerInfo",
-      value: SignerInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseModeInfo(): ModeInfo {
-  return {
-    single: undefined,
-    multi: undefined
-  };
-}
-export const ModeInfo = {
-  typeUrl: "/cosmos.tx.v1beta1.ModeInfo",
-  aminoType: "cosmos-sdk/ModeInfo",
-  encode(message: ModeInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.single !== undefined) {
-      ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.multi !== undefined) {
-      ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModeInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModeInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.single = ModeInfo_Single.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.multi = ModeInfo_Multi.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModeInfo {
-    return {
-      single: isSet(object.single) ? ModeInfo_Single.fromJSON(object.single) : undefined,
-      multi: isSet(object.multi) ? ModeInfo_Multi.fromJSON(object.multi) : undefined
-    };
-  },
-  toJSON(message: ModeInfo): unknown {
-    const obj: any = {};
-    message.single !== undefined && (obj.single = message.single ? ModeInfo_Single.toJSON(message.single) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? ModeInfo_Multi.toJSON(message.multi) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModeInfo>): ModeInfo {
-    const message = createBaseModeInfo();
-    message.single = object.single !== undefined && object.single !== null ? ModeInfo_Single.fromPartial(object.single) : undefined;
-    message.multi = object.multi !== undefined && object.multi !== null ? ModeInfo_Multi.fromPartial(object.multi) : undefined;
-    return message;
-  },
-  fromSDK(object: ModeInfoSDKType): ModeInfo {
-    return {
-      single: object.single ? ModeInfo_Single.fromSDK(object.single) : undefined,
-      multi: object.multi ? ModeInfo_Multi.fromSDK(object.multi) : undefined
-    };
-  },
-  toSDK(message: ModeInfo): ModeInfoSDKType {
-    const obj: any = {};
-    message.single !== undefined && (obj.single = message.single ? ModeInfo_Single.toSDK(message.single) : undefined);
-    message.multi !== undefined && (obj.multi = message.multi ? ModeInfo_Multi.toSDK(message.multi) : undefined);
-    return obj;
-  },
-  fromAmino(object: ModeInfoAmino): ModeInfo {
-    return {
-      single: object?.single ? ModeInfo_Single.fromAmino(object.single) : undefined,
-      multi: object?.multi ? ModeInfo_Multi.fromAmino(object.multi) : undefined
-    };
-  },
-  toAmino(message: ModeInfo): ModeInfoAmino {
-    const obj: any = {};
-    obj.single = message.single ? ModeInfo_Single.toAmino(message.single) : undefined;
-    obj.multi = message.multi ? ModeInfo_Multi.toAmino(message.multi) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ModeInfoAminoMsg): ModeInfo {
-    return ModeInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModeInfo): ModeInfoAminoMsg {
-    return {
-      type: "cosmos-sdk/ModeInfo",
-      value: ModeInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModeInfoProtoMsg): ModeInfo {
-    return ModeInfo.decode(message.value);
-  },
-  toProto(message: ModeInfo): Uint8Array {
-    return ModeInfo.encode(message).finish();
-  },
-  toProtoMsg(message: ModeInfo): ModeInfoProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.ModeInfo",
-      value: ModeInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseModeInfo_Single(): ModeInfo_Single {
-  return {
-    mode: 0
-  };
-}
-export const ModeInfo_Single = {
-  typeUrl: "/cosmos.tx.v1beta1.Single",
-  aminoType: "cosmos-sdk/Single",
-  encode(message: ModeInfo_Single, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.mode !== 0) {
-      writer.uint32(8).int32(message.mode);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModeInfo_Single {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModeInfo_Single();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.mode = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModeInfo_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1
-    };
-  },
-  toJSON(message: ModeInfo_Single): unknown {
-    const obj: any = {};
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModeInfo_Single>): ModeInfo_Single {
-    const message = createBaseModeInfo_Single();
-    message.mode = object.mode ?? 0;
-    return message;
-  },
-  fromSDK(object: ModeInfo_SingleSDKType): ModeInfo_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1
-    };
-  },
-  toSDK(message: ModeInfo_Single): ModeInfo_SingleSDKType {
-    const obj: any = {};
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    return obj;
-  },
-  fromAmino(object: ModeInfo_SingleAmino): ModeInfo_Single {
-    return {
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1
-    };
-  },
-  toAmino(message: ModeInfo_Single): ModeInfo_SingleAmino {
-    const obj: any = {};
-    obj.mode = message.mode;
-    return obj;
-  },
-  fromAminoMsg(object: ModeInfo_SingleAminoMsg): ModeInfo_Single {
-    return ModeInfo_Single.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModeInfo_Single): ModeInfo_SingleAminoMsg {
-    return {
-      type: "cosmos-sdk/Single",
-      value: ModeInfo_Single.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModeInfo_SingleProtoMsg): ModeInfo_Single {
-    return ModeInfo_Single.decode(message.value);
-  },
-  toProto(message: ModeInfo_Single): Uint8Array {
-    return ModeInfo_Single.encode(message).finish();
-  },
-  toProtoMsg(message: ModeInfo_Single): ModeInfo_SingleProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.Single",
-      value: ModeInfo_Single.encode(message).finish()
-    };
-  }
-};
-function createBaseModeInfo_Multi(): ModeInfo_Multi {
-  return {
-    bitarray: CompactBitArray.fromPartial({}),
-    modeInfos: []
-  };
-}
-export const ModeInfo_Multi = {
-  typeUrl: "/cosmos.tx.v1beta1.Multi",
-  aminoType: "cosmos-sdk/Multi",
-  encode(message: ModeInfo_Multi, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bitarray !== undefined) {
-      CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.modeInfos) {
-      ModeInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModeInfo_Multi {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModeInfo_Multi();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bitarray = CompactBitArray.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.modeInfos.push(ModeInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModeInfo_Multi {
-    return {
-      bitarray: isSet(object.bitarray) ? CompactBitArray.fromJSON(object.bitarray) : undefined,
-      modeInfos: Array.isArray(object?.modeInfos) ? object.modeInfos.map((e: any) => ModeInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ModeInfo_Multi): unknown {
-    const obj: any = {};
-    message.bitarray !== undefined && (obj.bitarray = message.bitarray ? CompactBitArray.toJSON(message.bitarray) : undefined);
-    if (message.modeInfos) {
-      obj.modeInfos = message.modeInfos.map(e => e ? ModeInfo.toJSON(e) : undefined);
-    } else {
-      obj.modeInfos = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModeInfo_Multi>): ModeInfo_Multi {
-    const message = createBaseModeInfo_Multi();
-    message.bitarray = object.bitarray !== undefined && object.bitarray !== null ? CompactBitArray.fromPartial(object.bitarray) : undefined;
-    message.modeInfos = object.modeInfos?.map(e => ModeInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ModeInfo_MultiSDKType): ModeInfo_Multi {
-    return {
-      bitarray: object.bitarray ? CompactBitArray.fromSDK(object.bitarray) : undefined,
-      modeInfos: Array.isArray(object?.mode_infos) ? object.mode_infos.map((e: any) => ModeInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ModeInfo_Multi): ModeInfo_MultiSDKType {
-    const obj: any = {};
-    message.bitarray !== undefined && (obj.bitarray = message.bitarray ? CompactBitArray.toSDK(message.bitarray) : undefined);
-    if (message.modeInfos) {
-      obj.mode_infos = message.modeInfos.map(e => e ? ModeInfo.toSDK(e) : undefined);
-    } else {
-      obj.mode_infos = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModeInfo_MultiAmino): ModeInfo_Multi {
-    return {
-      bitarray: object?.bitarray ? CompactBitArray.fromAmino(object.bitarray) : undefined,
-      modeInfos: Array.isArray(object?.mode_infos) ? object.mode_infos.map((e: any) => ModeInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ModeInfo_Multi): ModeInfo_MultiAmino {
-    const obj: any = {};
-    obj.bitarray = message.bitarray ? CompactBitArray.toAmino(message.bitarray) : undefined;
-    if (message.modeInfos) {
-      obj.mode_infos = message.modeInfos.map(e => e ? ModeInfo.toAmino(e) : undefined);
-    } else {
-      obj.mode_infos = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModeInfo_MultiAminoMsg): ModeInfo_Multi {
-    return ModeInfo_Multi.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModeInfo_Multi): ModeInfo_MultiAminoMsg {
-    return {
-      type: "cosmos-sdk/Multi",
-      value: ModeInfo_Multi.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModeInfo_MultiProtoMsg): ModeInfo_Multi {
-    return ModeInfo_Multi.decode(message.value);
-  },
-  toProto(message: ModeInfo_Multi): Uint8Array {
-    return ModeInfo_Multi.encode(message).finish();
-  },
-  toProtoMsg(message: ModeInfo_Multi): ModeInfo_MultiProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.Multi",
-      value: ModeInfo_Multi.encode(message).finish()
-    };
-  }
-};
-function createBaseFee(): Fee {
-  return {
-    amount: [],
-    gasLimit: BigInt(0),
-    payer: "",
-    granter: ""
-  };
-}
-export const Fee = {
-  typeUrl: "/cosmos.tx.v1beta1.Fee",
-  aminoType: "cosmos-sdk/Fee",
-  encode(message: Fee, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.gasLimit !== BigInt(0)) {
-      writer.uint32(16).uint64(message.gasLimit);
-    }
-    if (message.payer !== "") {
-      writer.uint32(26).string(message.payer);
-    }
-    if (message.granter !== "") {
-      writer.uint32(34).string(message.granter);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Fee {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFee();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.gasLimit = reader.uint64();
-          break;
-        case 3:
-          message.payer = reader.string();
-          break;
-        case 4:
-          message.granter = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Fee {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],
-      gasLimit: isSet(object.gasLimit) ? BigInt(object.gasLimit.toString()) : BigInt(0),
-      payer: isSet(object.payer) ? String(object.payer) : "",
-      granter: isSet(object.granter) ? String(object.granter) : ""
-    };
-  },
-  toJSON(message: Fee): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || BigInt(0)).toString());
-    message.payer !== undefined && (obj.payer = message.payer);
-    message.granter !== undefined && (obj.granter = message.granter);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Fee>): Fee {
-    const message = createBaseFee();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    message.gasLimit = object.gasLimit !== undefined && object.gasLimit !== null ? BigInt(object.gasLimit.toString()) : BigInt(0);
-    message.payer = object.payer ?? "";
-    message.granter = object.granter ?? "";
-    return message;
-  },
-  fromSDK(object: FeeSDKType): Fee {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : [],
-      gasLimit: object?.gas_limit,
-      payer: object?.payer,
-      granter: object?.granter
-    };
-  },
-  toSDK(message: Fee): FeeSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.gas_limit = message.gasLimit;
-    obj.payer = message.payer;
-    obj.granter = message.granter;
-    return obj;
-  },
-  fromAmino(object: FeeAmino): Fee {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : [],
-      gasLimit: BigInt(object.gas_limit),
-      payer: object.payer,
-      granter: object.granter
-    };
-  },
-  toAmino(message: Fee): FeeAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.gas_limit = message.gasLimit ? message.gasLimit.toString() : undefined;
-    obj.payer = message.payer;
-    obj.granter = message.granter;
-    return obj;
-  },
-  fromAminoMsg(object: FeeAminoMsg): Fee {
-    return Fee.fromAmino(object.value);
-  },
-  toAminoMsg(message: Fee): FeeAminoMsg {
-    return {
-      type: "cosmos-sdk/Fee",
-      value: Fee.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: FeeProtoMsg): Fee {
-    return Fee.decode(message.value);
-  },
-  toProto(message: Fee): Uint8Array {
-    return Fee.encode(message).finish();
-  },
-  toProtoMsg(message: Fee): FeeProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.Fee",
-      value: Fee.encode(message).finish()
-    };
-  }
-};
-function createBaseTip(): Tip {
-  return {
-    amount: [],
-    tipper: ""
-  };
-}
-export const Tip = {
-  typeUrl: "/cosmos.tx.v1beta1.Tip",
-  aminoType: "cosmos-sdk/Tip",
-  encode(message: Tip, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.tipper !== "") {
-      writer.uint32(18).string(message.tipper);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Tip {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTip();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.tipper = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Tip {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],
-      tipper: isSet(object.tipper) ? String(object.tipper) : ""
-    };
-  },
-  toJSON(message: Tip): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    message.tipper !== undefined && (obj.tipper = message.tipper);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Tip>): Tip {
-    const message = createBaseTip();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    message.tipper = object.tipper ?? "";
-    return message;
-  },
-  fromSDK(object: TipSDKType): Tip {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : [],
-      tipper: object?.tipper
-    };
-  },
-  toSDK(message: Tip): TipSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.tipper = message.tipper;
-    return obj;
-  },
-  fromAmino(object: TipAmino): Tip {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : [],
-      tipper: object.tipper
-    };
-  },
-  toAmino(message: Tip): TipAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.tipper = message.tipper;
-    return obj;
-  },
-  fromAminoMsg(object: TipAminoMsg): Tip {
-    return Tip.fromAmino(object.value);
-  },
-  toAminoMsg(message: Tip): TipAminoMsg {
-    return {
-      type: "cosmos-sdk/Tip",
-      value: Tip.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TipProtoMsg): Tip {
-    return Tip.decode(message.value);
-  },
-  toProto(message: Tip): Uint8Array {
-    return Tip.encode(message).finish();
-  },
-  toProtoMsg(message: Tip): TipProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.Tip",
-      value: Tip.encode(message).finish()
-    };
-  }
-};
-function createBaseAuxSignerData(): AuxSignerData {
-  return {
-    address: "",
-    signDoc: SignDocDirectAux.fromPartial({}),
-    mode: 0,
-    sig: new Uint8Array()
-  };
-}
-export const AuxSignerData = {
-  typeUrl: "/cosmos.tx.v1beta1.AuxSignerData",
-  aminoType: "cosmos-sdk/AuxSignerData",
-  encode(message: AuxSignerData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.signDoc !== undefined) {
-      SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.mode !== 0) {
-      writer.uint32(24).int32(message.mode);
-    }
-    if (message.sig.length !== 0) {
-      writer.uint32(34).bytes(message.sig);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AuxSignerData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAuxSignerData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.signDoc = SignDocDirectAux.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.mode = (reader.int32() as any);
-          break;
-        case 4:
-          message.sig = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AuxSignerData {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      signDoc: isSet(object.signDoc) ? SignDocDirectAux.fromJSON(object.signDoc) : undefined,
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      sig: isSet(object.sig) ? bytesFromBase64(object.sig) : new Uint8Array()
-    };
-  },
-  toJSON(message: AuxSignerData): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.signDoc !== undefined && (obj.signDoc = message.signDoc ? SignDocDirectAux.toJSON(message.signDoc) : undefined);
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    message.sig !== undefined && (obj.sig = base64FromBytes(message.sig !== undefined ? message.sig : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AuxSignerData>): AuxSignerData {
-    const message = createBaseAuxSignerData();
-    message.address = object.address ?? "";
-    message.signDoc = object.signDoc !== undefined && object.signDoc !== null ? SignDocDirectAux.fromPartial(object.signDoc) : undefined;
-    message.mode = object.mode ?? 0;
-    message.sig = object.sig ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: AuxSignerDataSDKType): AuxSignerData {
-    return {
-      address: object?.address,
-      signDoc: object.sign_doc ? SignDocDirectAux.fromSDK(object.sign_doc) : undefined,
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      sig: object?.sig
-    };
-  },
-  toSDK(message: AuxSignerData): AuxSignerDataSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.signDoc !== undefined && (obj.sign_doc = message.signDoc ? SignDocDirectAux.toSDK(message.signDoc) : undefined);
-    message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));
-    obj.sig = message.sig;
-    return obj;
-  },
-  fromAmino(object: AuxSignerDataAmino): AuxSignerData {
-    return {
-      address: object.address,
-      signDoc: object?.sign_doc ? SignDocDirectAux.fromAmino(object.sign_doc) : undefined,
-      mode: isSet(object.mode) ? signModeFromJSON(object.mode) : -1,
-      sig: object.sig
-    };
-  },
-  toAmino(message: AuxSignerData): AuxSignerDataAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.sign_doc = message.signDoc ? SignDocDirectAux.toAmino(message.signDoc) : undefined;
-    obj.mode = message.mode;
-    obj.sig = message.sig;
-    return obj;
-  },
-  fromAminoMsg(object: AuxSignerDataAminoMsg): AuxSignerData {
-    return AuxSignerData.fromAmino(object.value);
-  },
-  toAminoMsg(message: AuxSignerData): AuxSignerDataAminoMsg {
-    return {
-      type: "cosmos-sdk/AuxSignerData",
-      value: AuxSignerData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AuxSignerDataProtoMsg): AuxSignerData {
-    return AuxSignerData.decode(message.value);
-  },
-  toProto(message: AuxSignerData): Uint8Array {
-    return AuxSignerData.encode(message).finish();
-  },
-  toProtoMsg(message: AuxSignerData): AuxSignerDataProtoMsg {
-    return {
-      typeUrl: "/cosmos.tx.v1beta1.AuxSignerData",
-      value: AuxSignerData.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 4f30d255..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,234 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryCurrentPlanRequest, QueryCurrentPlanResponse, QueryAppliedPlanRequest, QueryAppliedPlanResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse, QueryModuleVersionsRequest, QueryModuleVersionsResponse, QueryAuthorityRequest, QueryAuthorityResponse } from "./query";
-/** Query defines the gRPC upgrade querier service. */
-export interface Query {
-  /** CurrentPlan queries the current upgrade plan. */
-  currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
-  /** AppliedPlan queries a previously applied upgrade plan by its name. */
-  appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
-  /**
-   * UpgradedConsensusState queries the consensus state that will serve
-   * as a trusted kernel for the next version of this chain. It will only be
-   * stored at the last height of this chain.
-   * UpgradedConsensusState RPC not supported with legacy querier
-   * This rpc is deprecated now that IBC has its own replacement
-   * (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
-   */
-  upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
-  /**
-   * ModuleVersions queries the list of module versions from state.
-   * 
-   * Since: cosmos-sdk 0.43
-   */
-  moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
-  /** Returns the account with authority to conduct upgrades */
-  authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.currentPlan = this.currentPlan.bind(this);
-    this.appliedPlan = this.appliedPlan.bind(this);
-    this.upgradedConsensusState = this.upgradedConsensusState.bind(this);
-    this.moduleVersions = this.moduleVersions.bind(this);
-    this.authority = this.authority.bind(this);
-  }
-  currentPlan(request: QueryCurrentPlanRequest = {}): Promise<QueryCurrentPlanResponse> {
-    const data = QueryCurrentPlanRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "CurrentPlan", data);
-    return promise.then(data => QueryCurrentPlanResponse.decode(new BinaryReader(data)));
-  }
-  appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse> {
-    const data = QueryAppliedPlanRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "AppliedPlan", data);
-    return promise.then(data => QueryAppliedPlanResponse.decode(new BinaryReader(data)));
-  }
-  upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse> {
-    const data = QueryUpgradedConsensusStateRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "UpgradedConsensusState", data);
-    return promise.then(data => QueryUpgradedConsensusStateResponse.decode(new BinaryReader(data)));
-  }
-  moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse> {
-    const data = QueryModuleVersionsRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "ModuleVersions", data);
-    return promise.then(data => QueryModuleVersionsResponse.decode(new BinaryReader(data)));
-  }
-  authority(request: QueryAuthorityRequest = {}): Promise<QueryAuthorityResponse> {
-    const data = QueryAuthorityRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "Authority", data);
-    return promise.then(data => QueryAuthorityResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse> {
-      return queryService.currentPlan(request);
-    },
-    appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse> {
-      return queryService.appliedPlan(request);
-    },
-    upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse> {
-      return queryService.upgradedConsensusState(request);
-    },
-    moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse> {
-      return queryService.moduleVersions(request);
-    },
-    authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse> {
-      return queryService.authority(request);
-    }
-  };
-};
-export interface UseCurrentPlanQuery<TData> extends ReactQueryParams<QueryCurrentPlanResponse, TData> {
-  request?: QueryCurrentPlanRequest;
-}
-export interface UseAppliedPlanQuery<TData> extends ReactQueryParams<QueryAppliedPlanResponse, TData> {
-  request: QueryAppliedPlanRequest;
-}
-export interface UseUpgradedConsensusStateQuery<TData> extends ReactQueryParams<QueryUpgradedConsensusStateResponse, TData> {
-  request: QueryUpgradedConsensusStateRequest;
-}
-export interface UseModuleVersionsQuery<TData> extends ReactQueryParams<QueryModuleVersionsResponse, TData> {
-  request: QueryModuleVersionsRequest;
-}
-export interface UseAuthorityQuery<TData> extends ReactQueryParams<QueryAuthorityResponse, TData> {
-  request?: QueryAuthorityRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useCurrentPlan = <TData = QueryCurrentPlanResponse,>({
-    request,
-    options
-  }: UseCurrentPlanQuery<TData>) => {
-    return useQuery<QueryCurrentPlanResponse, Error, TData>(["currentPlanQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.currentPlan(request);
-    }, options);
-  };
-  const useAppliedPlan = <TData = QueryAppliedPlanResponse,>({
-    request,
-    options
-  }: UseAppliedPlanQuery<TData>) => {
-    return useQuery<QueryAppliedPlanResponse, Error, TData>(["appliedPlanQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.appliedPlan(request);
-    }, options);
-  };
-  const useUpgradedConsensusState = <TData = QueryUpgradedConsensusStateResponse,>({
-    request,
-    options
-  }: UseUpgradedConsensusStateQuery<TData>) => {
-    return useQuery<QueryUpgradedConsensusStateResponse, Error, TData>(["upgradedConsensusStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.upgradedConsensusState(request);
-    }, options);
-  };
-  const useModuleVersions = <TData = QueryModuleVersionsResponse,>({
-    request,
-    options
-  }: UseModuleVersionsQuery<TData>) => {
-    return useQuery<QueryModuleVersionsResponse, Error, TData>(["moduleVersionsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleVersions(request);
-    }, options);
-  };
-  const useAuthority = <TData = QueryAuthorityResponse,>({
-    request,
-    options
-  }: UseAuthorityQuery<TData>) => {
-    return useQuery<QueryAuthorityResponse, Error, TData>(["authorityQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.authority(request);
-    }, options);
-  };
-  return {
-    /** CurrentPlan queries the current upgrade plan. */useCurrentPlan,
-    /** AppliedPlan queries a previously applied upgrade plan by its name. */useAppliedPlan,
-    /**
-     * UpgradedConsensusState queries the consensus state that will serve
-     * as a trusted kernel for the next version of this chain. It will only be
-     * stored at the last height of this chain.
-     * UpgradedConsensusState RPC not supported with legacy querier
-     * This rpc is deprecated now that IBC has its own replacement
-     * (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
-     */
-    useUpgradedConsensusState,
-    /**
-     * ModuleVersions queries the list of module versions from state.
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    useModuleVersions,
-    /** Returns the account with authority to conduct upgrades */useAuthority
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryCurrentPlanStore {
-    store = new QueryStore<QueryCurrentPlanRequest, QueryCurrentPlanResponse>(queryService?.currentPlan);
-    currentPlan(request: QueryCurrentPlanRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAppliedPlanStore {
-    store = new QueryStore<QueryAppliedPlanRequest, QueryAppliedPlanResponse>(queryService?.appliedPlan);
-    appliedPlan(request: QueryAppliedPlanRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUpgradedConsensusStateStore {
-    store = new QueryStore<QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse>(queryService?.upgradedConsensusState);
-    upgradedConsensusState(request: QueryUpgradedConsensusStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryModuleVersionsStore {
-    store = new QueryStore<QueryModuleVersionsRequest, QueryModuleVersionsResponse>(queryService?.moduleVersions);
-    moduleVersions(request: QueryModuleVersionsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAuthorityStore {
-    store = new QueryStore<QueryAuthorityRequest, QueryAuthorityResponse>(queryService?.authority);
-    authority(request: QueryAuthorityRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** CurrentPlan queries the current upgrade plan. */QueryCurrentPlanStore,
-    /** AppliedPlan queries a previously applied upgrade plan by its name. */QueryAppliedPlanStore,
-    /**
-     * UpgradedConsensusState queries the consensus state that will serve
-     * as a trusted kernel for the next version of this chain. It will only be
-     * stored at the last height of this chain.
-     * UpgradedConsensusState RPC not supported with legacy querier
-     * This rpc is deprecated now that IBC has its own replacement
-     * (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
-     */
-    QueryUpgradedConsensusStateStore,
-    /**
-     * ModuleVersions queries the list of module versions from state.
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    QueryModuleVersionsStore,
-    /** Returns the account with authority to conduct upgrades */QueryAuthorityStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.ts
deleted file mode 100644
index cbee1eeb..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/query.ts
+++ /dev/null
@@ -1,1189 +0,0 @@
-import { Plan, PlanAmino, PlanSDKType, ModuleVersion, ModuleVersionAmino, ModuleVersionSDKType } from "./upgrade";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/**
- * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanRequest {}
-export interface QueryCurrentPlanRequestProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanRequest";
-  value: Uint8Array;
-}
-/**
- * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanRequestAmino {}
-export interface QueryCurrentPlanRequestAminoMsg {
-  type: "cosmos-sdk/QueryCurrentPlanRequest";
-  value: QueryCurrentPlanRequestAmino;
-}
-/**
- * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanRequestSDKType {}
-/**
- * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanResponse {
-  /** plan is the current upgrade plan. */
-  plan: Plan | undefined;
-}
-export interface QueryCurrentPlanResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanResponse";
-  value: Uint8Array;
-}
-/**
- * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanResponseAmino {
-  /** plan is the current upgrade plan. */
-  plan?: PlanAmino | undefined;
-}
-export interface QueryCurrentPlanResponseAminoMsg {
-  type: "cosmos-sdk/QueryCurrentPlanResponse";
-  value: QueryCurrentPlanResponseAmino;
-}
-/**
- * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC
- * method.
- */
-export interface QueryCurrentPlanResponseSDKType {
-  plan: PlanSDKType | undefined;
-}
-/**
- * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanRequest {
-  /** name is the name of the applied plan to query for. */
-  name: string;
-}
-export interface QueryAppliedPlanRequestProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanRequest";
-  value: Uint8Array;
-}
-/**
- * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanRequestAmino {
-  /** name is the name of the applied plan to query for. */
-  name: string;
-}
-export interface QueryAppliedPlanRequestAminoMsg {
-  type: "cosmos-sdk/QueryAppliedPlanRequest";
-  value: QueryAppliedPlanRequestAmino;
-}
-/**
- * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanRequestSDKType {
-  name: string;
-}
-/**
- * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanResponse {
-  /** height is the block height at which the plan was applied. */
-  height: bigint;
-}
-export interface QueryAppliedPlanResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanResponseAmino {
-  /** height is the block height at which the plan was applied. */
-  height: string;
-}
-export interface QueryAppliedPlanResponseAminoMsg {
-  type: "cosmos-sdk/QueryAppliedPlanResponse";
-  value: QueryAppliedPlanResponseAmino;
-}
-/**
- * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC
- * method.
- */
-export interface QueryAppliedPlanResponseSDKType {
-  height: bigint;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateRequest {
-  /**
-   * last height of the current chain must be sent in request
-   * as this is the height under which next consensus state is stored
-   */
-  lastHeight: bigint;
-}
-export interface QueryUpgradedConsensusStateRequestProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateRequestAmino {
-  /**
-   * last height of the current chain must be sent in request
-   * as this is the height under which next consensus state is stored
-   */
-  last_height: string;
-}
-export interface QueryUpgradedConsensusStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedConsensusStateRequest";
-  value: QueryUpgradedConsensusStateRequestAmino;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateRequestSDKType {
-  last_height: bigint;
-}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateResponse {
-  /** Since: cosmos-sdk 0.43 */
-  upgradedConsensusState: Uint8Array;
-}
-export interface QueryUpgradedConsensusStateResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateResponseAmino {
-  /** Since: cosmos-sdk 0.43 */
-  upgraded_consensus_state: Uint8Array;
-}
-export interface QueryUpgradedConsensusStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedConsensusStateResponse";
-  value: QueryUpgradedConsensusStateResponseAmino;
-}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState
- * RPC method.
- */
-/** @deprecated */
-export interface QueryUpgradedConsensusStateResponseSDKType {
-  upgraded_consensus_state: Uint8Array;
-}
-/**
- * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsRequest {
-  /**
-   * module_name is a field to query a specific module
-   * consensus version from state. Leaving this empty will
-   * fetch the full list of module versions from state
-   */
-  moduleName: string;
-}
-export interface QueryModuleVersionsRequestProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsRequestAmino {
-  /**
-   * module_name is a field to query a specific module
-   * consensus version from state. Leaving this empty will
-   * fetch the full list of module versions from state
-   */
-  module_name: string;
-}
-export interface QueryModuleVersionsRequestAminoMsg {
-  type: "cosmos-sdk/QueryModuleVersionsRequest";
-  value: QueryModuleVersionsRequestAmino;
-}
-/**
- * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsRequestSDKType {
-  module_name: string;
-}
-/**
- * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsResponse {
-  /** module_versions is a list of module names with their consensus versions. */
-  moduleVersions: ModuleVersion[];
-}
-export interface QueryModuleVersionsResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsResponseAmino {
-  /** module_versions is a list of module names with their consensus versions. */
-  module_versions: ModuleVersionAmino[];
-}
-export interface QueryModuleVersionsResponseAminoMsg {
-  type: "cosmos-sdk/QueryModuleVersionsResponse";
-  value: QueryModuleVersionsResponseAmino;
-}
-/**
- * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions
- * RPC method.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface QueryModuleVersionsResponseSDKType {
-  module_versions: ModuleVersionSDKType[];
-}
-/**
- * QueryAuthorityRequest is the request type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityRequest {}
-export interface QueryAuthorityRequestProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityRequest";
-  value: Uint8Array;
-}
-/**
- * QueryAuthorityRequest is the request type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityRequestAmino {}
-export interface QueryAuthorityRequestAminoMsg {
-  type: "cosmos-sdk/QueryAuthorityRequest";
-  value: QueryAuthorityRequestAmino;
-}
-/**
- * QueryAuthorityRequest is the request type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityRequestSDKType {}
-/**
- * QueryAuthorityResponse is the response type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityResponse {
-  address: string;
-}
-export interface QueryAuthorityResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAuthorityResponse is the response type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityResponseAmino {
-  address: string;
-}
-export interface QueryAuthorityResponseAminoMsg {
-  type: "cosmos-sdk/QueryAuthorityResponse";
-  value: QueryAuthorityResponseAmino;
-}
-/**
- * QueryAuthorityResponse is the response type for Query/Authority
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface QueryAuthorityResponseSDKType {
-  address: string;
-}
-function createBaseQueryCurrentPlanRequest(): QueryCurrentPlanRequest {
-  return {};
-}
-export const QueryCurrentPlanRequest = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanRequest",
-  aminoType: "cosmos-sdk/QueryCurrentPlanRequest",
-  encode(_: QueryCurrentPlanRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCurrentPlanRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCurrentPlanRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryCurrentPlanRequest {
-    return {};
-  },
-  toJSON(_: QueryCurrentPlanRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryCurrentPlanRequest>): QueryCurrentPlanRequest {
-    const message = createBaseQueryCurrentPlanRequest();
-    return message;
-  },
-  fromSDK(_: QueryCurrentPlanRequestSDKType): QueryCurrentPlanRequest {
-    return {};
-  },
-  toSDK(_: QueryCurrentPlanRequest): QueryCurrentPlanRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryCurrentPlanRequestAmino): QueryCurrentPlanRequest {
-    return {};
-  },
-  toAmino(_: QueryCurrentPlanRequest): QueryCurrentPlanRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryCurrentPlanRequestAminoMsg): QueryCurrentPlanRequest {
-    return QueryCurrentPlanRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCurrentPlanRequest): QueryCurrentPlanRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryCurrentPlanRequest",
-      value: QueryCurrentPlanRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCurrentPlanRequestProtoMsg): QueryCurrentPlanRequest {
-    return QueryCurrentPlanRequest.decode(message.value);
-  },
-  toProto(message: QueryCurrentPlanRequest): Uint8Array {
-    return QueryCurrentPlanRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCurrentPlanRequest): QueryCurrentPlanRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanRequest",
-      value: QueryCurrentPlanRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCurrentPlanResponse(): QueryCurrentPlanResponse {
-  return {
-    plan: Plan.fromPartial({})
-  };
-}
-export const QueryCurrentPlanResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanResponse",
-  aminoType: "cosmos-sdk/QueryCurrentPlanResponse",
-  encode(message: QueryCurrentPlanResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.plan !== undefined) {
-      Plan.encode(message.plan, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCurrentPlanResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCurrentPlanResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.plan = Plan.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCurrentPlanResponse {
-    return {
-      plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined
-    };
-  },
-  toJSON(message: QueryCurrentPlanResponse): unknown {
-    const obj: any = {};
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCurrentPlanResponse>): QueryCurrentPlanResponse {
-    const message = createBaseQueryCurrentPlanResponse();
-    message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryCurrentPlanResponseSDKType): QueryCurrentPlanResponse {
-    return {
-      plan: object.plan ? Plan.fromSDK(object.plan) : undefined
-    };
-  },
-  toSDK(message: QueryCurrentPlanResponse): QueryCurrentPlanResponseSDKType {
-    const obj: any = {};
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toSDK(message.plan) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryCurrentPlanResponseAmino): QueryCurrentPlanResponse {
-    return {
-      plan: object?.plan ? Plan.fromAmino(object.plan) : undefined
-    };
-  },
-  toAmino(message: QueryCurrentPlanResponse): QueryCurrentPlanResponseAmino {
-    const obj: any = {};
-    obj.plan = message.plan ? Plan.toAmino(message.plan) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCurrentPlanResponseAminoMsg): QueryCurrentPlanResponse {
-    return QueryCurrentPlanResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCurrentPlanResponse): QueryCurrentPlanResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryCurrentPlanResponse",
-      value: QueryCurrentPlanResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCurrentPlanResponseProtoMsg): QueryCurrentPlanResponse {
-    return QueryCurrentPlanResponse.decode(message.value);
-  },
-  toProto(message: QueryCurrentPlanResponse): Uint8Array {
-    return QueryCurrentPlanResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCurrentPlanResponse): QueryCurrentPlanResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryCurrentPlanResponse",
-      value: QueryCurrentPlanResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAppliedPlanRequest(): QueryAppliedPlanRequest {
-  return {
-    name: ""
-  };
-}
-export const QueryAppliedPlanRequest = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanRequest",
-  aminoType: "cosmos-sdk/QueryAppliedPlanRequest",
-  encode(message: QueryAppliedPlanRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAppliedPlanRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAppliedPlanRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAppliedPlanRequest {
-    return {
-      name: isSet(object.name) ? String(object.name) : ""
-    };
-  },
-  toJSON(message: QueryAppliedPlanRequest): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAppliedPlanRequest>): QueryAppliedPlanRequest {
-    const message = createBaseQueryAppliedPlanRequest();
-    message.name = object.name ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAppliedPlanRequestSDKType): QueryAppliedPlanRequest {
-    return {
-      name: object?.name
-    };
-  },
-  toSDK(message: QueryAppliedPlanRequest): QueryAppliedPlanRequestSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    return obj;
-  },
-  fromAmino(object: QueryAppliedPlanRequestAmino): QueryAppliedPlanRequest {
-    return {
-      name: object.name
-    };
-  },
-  toAmino(message: QueryAppliedPlanRequest): QueryAppliedPlanRequestAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAppliedPlanRequestAminoMsg): QueryAppliedPlanRequest {
-    return QueryAppliedPlanRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAppliedPlanRequest): QueryAppliedPlanRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAppliedPlanRequest",
-      value: QueryAppliedPlanRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAppliedPlanRequestProtoMsg): QueryAppliedPlanRequest {
-    return QueryAppliedPlanRequest.decode(message.value);
-  },
-  toProto(message: QueryAppliedPlanRequest): Uint8Array {
-    return QueryAppliedPlanRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAppliedPlanRequest): QueryAppliedPlanRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanRequest",
-      value: QueryAppliedPlanRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAppliedPlanResponse(): QueryAppliedPlanResponse {
-  return {
-    height: BigInt(0)
-  };
-}
-export const QueryAppliedPlanResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanResponse",
-  aminoType: "cosmos-sdk/QueryAppliedPlanResponse",
-  encode(message: QueryAppliedPlanResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAppliedPlanResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAppliedPlanResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAppliedPlanResponse {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryAppliedPlanResponse): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAppliedPlanResponse>): QueryAppliedPlanResponse {
-    const message = createBaseQueryAppliedPlanResponse();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryAppliedPlanResponseSDKType): QueryAppliedPlanResponse {
-    return {
-      height: object?.height
-    };
-  },
-  toSDK(message: QueryAppliedPlanResponse): QueryAppliedPlanResponseSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: QueryAppliedPlanResponseAmino): QueryAppliedPlanResponse {
-    return {
-      height: BigInt(object.height)
-    };
-  },
-  toAmino(message: QueryAppliedPlanResponse): QueryAppliedPlanResponseAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAppliedPlanResponseAminoMsg): QueryAppliedPlanResponse {
-    return QueryAppliedPlanResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAppliedPlanResponse): QueryAppliedPlanResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAppliedPlanResponse",
-      value: QueryAppliedPlanResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAppliedPlanResponseProtoMsg): QueryAppliedPlanResponse {
-    return QueryAppliedPlanResponse.decode(message.value);
-  },
-  toProto(message: QueryAppliedPlanResponse): Uint8Array {
-    return QueryAppliedPlanResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAppliedPlanResponse): QueryAppliedPlanResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryAppliedPlanResponse",
-      value: QueryAppliedPlanResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedConsensusStateRequest(): QueryUpgradedConsensusStateRequest {
-  return {
-    lastHeight: BigInt(0)
-  };
-}
-export const QueryUpgradedConsensusStateRequest = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateRequest",
-  aminoType: "cosmos-sdk/QueryUpgradedConsensusStateRequest",
-  encode(message: QueryUpgradedConsensusStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lastHeight !== BigInt(0)) {
-      writer.uint32(8).int64(message.lastHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedConsensusStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lastHeight = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUpgradedConsensusStateRequest {
-    return {
-      lastHeight: isSet(object.lastHeight) ? BigInt(object.lastHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryUpgradedConsensusStateRequest): unknown {
-    const obj: any = {};
-    message.lastHeight !== undefined && (obj.lastHeight = (message.lastHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUpgradedConsensusStateRequest>): QueryUpgradedConsensusStateRequest {
-    const message = createBaseQueryUpgradedConsensusStateRequest();
-    message.lastHeight = object.lastHeight !== undefined && object.lastHeight !== null ? BigInt(object.lastHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryUpgradedConsensusStateRequestSDKType): QueryUpgradedConsensusStateRequest {
-    return {
-      lastHeight: object?.last_height
-    };
-  },
-  toSDK(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestSDKType {
-    const obj: any = {};
-    obj.last_height = message.lastHeight;
-    return obj;
-  },
-  fromAmino(object: QueryUpgradedConsensusStateRequestAmino): QueryUpgradedConsensusStateRequest {
-    return {
-      lastHeight: BigInt(object.last_height)
-    };
-  },
-  toAmino(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestAmino {
-    const obj: any = {};
-    obj.last_height = message.lastHeight ? message.lastHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedConsensusStateRequestAminoMsg): QueryUpgradedConsensusStateRequest {
-    return QueryUpgradedConsensusStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedConsensusStateRequest",
-      value: QueryUpgradedConsensusStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedConsensusStateRequestProtoMsg): QueryUpgradedConsensusStateRequest {
-    return QueryUpgradedConsensusStateRequest.decode(message.value);
-  },
-  toProto(message: QueryUpgradedConsensusStateRequest): Uint8Array {
-    return QueryUpgradedConsensusStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateRequest",
-      value: QueryUpgradedConsensusStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedConsensusStateResponse(): QueryUpgradedConsensusStateResponse {
-  return {
-    upgradedConsensusState: new Uint8Array()
-  };
-}
-export const QueryUpgradedConsensusStateResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateResponse",
-  aminoType: "cosmos-sdk/QueryUpgradedConsensusStateResponse",
-  encode(message: QueryUpgradedConsensusStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.upgradedConsensusState.length !== 0) {
-      writer.uint32(18).bytes(message.upgradedConsensusState);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedConsensusStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.upgradedConsensusState = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: isSet(object.upgradedConsensusState) ? bytesFromBase64(object.upgradedConsensusState) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryUpgradedConsensusStateResponse): unknown {
-    const obj: any = {};
-    message.upgradedConsensusState !== undefined && (obj.upgradedConsensusState = base64FromBytes(message.upgradedConsensusState !== undefined ? message.upgradedConsensusState : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUpgradedConsensusStateResponse>): QueryUpgradedConsensusStateResponse {
-    const message = createBaseQueryUpgradedConsensusStateResponse();
-    message.upgradedConsensusState = object.upgradedConsensusState ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryUpgradedConsensusStateResponseSDKType): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: object?.upgraded_consensus_state
-    };
-  },
-  toSDK(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseSDKType {
-    const obj: any = {};
-    obj.upgraded_consensus_state = message.upgradedConsensusState;
-    return obj;
-  },
-  fromAmino(object: QueryUpgradedConsensusStateResponseAmino): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: object.upgraded_consensus_state
-    };
-  },
-  toAmino(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseAmino {
-    const obj: any = {};
-    obj.upgraded_consensus_state = message.upgradedConsensusState;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedConsensusStateResponseAminoMsg): QueryUpgradedConsensusStateResponse {
-    return QueryUpgradedConsensusStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedConsensusStateResponse",
-      value: QueryUpgradedConsensusStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedConsensusStateResponseProtoMsg): QueryUpgradedConsensusStateResponse {
-    return QueryUpgradedConsensusStateResponse.decode(message.value);
-  },
-  toProto(message: QueryUpgradedConsensusStateResponse): Uint8Array {
-    return QueryUpgradedConsensusStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateResponse",
-      value: QueryUpgradedConsensusStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryModuleVersionsRequest(): QueryModuleVersionsRequest {
-  return {
-    moduleName: ""
-  };
-}
-export const QueryModuleVersionsRequest = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsRequest",
-  aminoType: "cosmos-sdk/QueryModuleVersionsRequest",
-  encode(message: QueryModuleVersionsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.moduleName !== "") {
-      writer.uint32(10).string(message.moduleName);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleVersionsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleVersionsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.moduleName = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryModuleVersionsRequest {
-    return {
-      moduleName: isSet(object.moduleName) ? String(object.moduleName) : ""
-    };
-  },
-  toJSON(message: QueryModuleVersionsRequest): unknown {
-    const obj: any = {};
-    message.moduleName !== undefined && (obj.moduleName = message.moduleName);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryModuleVersionsRequest>): QueryModuleVersionsRequest {
-    const message = createBaseQueryModuleVersionsRequest();
-    message.moduleName = object.moduleName ?? "";
-    return message;
-  },
-  fromSDK(object: QueryModuleVersionsRequestSDKType): QueryModuleVersionsRequest {
-    return {
-      moduleName: object?.module_name
-    };
-  },
-  toSDK(message: QueryModuleVersionsRequest): QueryModuleVersionsRequestSDKType {
-    const obj: any = {};
-    obj.module_name = message.moduleName;
-    return obj;
-  },
-  fromAmino(object: QueryModuleVersionsRequestAmino): QueryModuleVersionsRequest {
-    return {
-      moduleName: object.module_name
-    };
-  },
-  toAmino(message: QueryModuleVersionsRequest): QueryModuleVersionsRequestAmino {
-    const obj: any = {};
-    obj.module_name = message.moduleName;
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleVersionsRequestAminoMsg): QueryModuleVersionsRequest {
-    return QueryModuleVersionsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleVersionsRequest): QueryModuleVersionsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryModuleVersionsRequest",
-      value: QueryModuleVersionsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleVersionsRequestProtoMsg): QueryModuleVersionsRequest {
-    return QueryModuleVersionsRequest.decode(message.value);
-  },
-  toProto(message: QueryModuleVersionsRequest): Uint8Array {
-    return QueryModuleVersionsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleVersionsRequest): QueryModuleVersionsRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsRequest",
-      value: QueryModuleVersionsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryModuleVersionsResponse(): QueryModuleVersionsResponse {
-  return {
-    moduleVersions: []
-  };
-}
-export const QueryModuleVersionsResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsResponse",
-  aminoType: "cosmos-sdk/QueryModuleVersionsResponse",
-  encode(message: QueryModuleVersionsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.moduleVersions) {
-      ModuleVersion.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleVersionsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleVersionsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.moduleVersions.push(ModuleVersion.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryModuleVersionsResponse {
-    return {
-      moduleVersions: Array.isArray(object?.moduleVersions) ? object.moduleVersions.map((e: any) => ModuleVersion.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryModuleVersionsResponse): unknown {
-    const obj: any = {};
-    if (message.moduleVersions) {
-      obj.moduleVersions = message.moduleVersions.map(e => e ? ModuleVersion.toJSON(e) : undefined);
-    } else {
-      obj.moduleVersions = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryModuleVersionsResponse>): QueryModuleVersionsResponse {
-    const message = createBaseQueryModuleVersionsResponse();
-    message.moduleVersions = object.moduleVersions?.map(e => ModuleVersion.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryModuleVersionsResponseSDKType): QueryModuleVersionsResponse {
-    return {
-      moduleVersions: Array.isArray(object?.module_versions) ? object.module_versions.map((e: any) => ModuleVersion.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryModuleVersionsResponse): QueryModuleVersionsResponseSDKType {
-    const obj: any = {};
-    if (message.moduleVersions) {
-      obj.module_versions = message.moduleVersions.map(e => e ? ModuleVersion.toSDK(e) : undefined);
-    } else {
-      obj.module_versions = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryModuleVersionsResponseAmino): QueryModuleVersionsResponse {
-    return {
-      moduleVersions: Array.isArray(object?.module_versions) ? object.module_versions.map((e: any) => ModuleVersion.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryModuleVersionsResponse): QueryModuleVersionsResponseAmino {
-    const obj: any = {};
-    if (message.moduleVersions) {
-      obj.module_versions = message.moduleVersions.map(e => e ? ModuleVersion.toAmino(e) : undefined);
-    } else {
-      obj.module_versions = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleVersionsResponseAminoMsg): QueryModuleVersionsResponse {
-    return QueryModuleVersionsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleVersionsResponse): QueryModuleVersionsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryModuleVersionsResponse",
-      value: QueryModuleVersionsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleVersionsResponseProtoMsg): QueryModuleVersionsResponse {
-    return QueryModuleVersionsResponse.decode(message.value);
-  },
-  toProto(message: QueryModuleVersionsResponse): Uint8Array {
-    return QueryModuleVersionsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleVersionsResponse): QueryModuleVersionsResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryModuleVersionsResponse",
-      value: QueryModuleVersionsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAuthorityRequest(): QueryAuthorityRequest {
-  return {};
-}
-export const QueryAuthorityRequest = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityRequest",
-  aminoType: "cosmos-sdk/QueryAuthorityRequest",
-  encode(_: QueryAuthorityRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAuthorityRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAuthorityRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryAuthorityRequest {
-    return {};
-  },
-  toJSON(_: QueryAuthorityRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryAuthorityRequest>): QueryAuthorityRequest {
-    const message = createBaseQueryAuthorityRequest();
-    return message;
-  },
-  fromSDK(_: QueryAuthorityRequestSDKType): QueryAuthorityRequest {
-    return {};
-  },
-  toSDK(_: QueryAuthorityRequest): QueryAuthorityRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryAuthorityRequestAmino): QueryAuthorityRequest {
-    return {};
-  },
-  toAmino(_: QueryAuthorityRequest): QueryAuthorityRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryAuthorityRequestAminoMsg): QueryAuthorityRequest {
-    return QueryAuthorityRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAuthorityRequest): QueryAuthorityRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAuthorityRequest",
-      value: QueryAuthorityRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAuthorityRequestProtoMsg): QueryAuthorityRequest {
-    return QueryAuthorityRequest.decode(message.value);
-  },
-  toProto(message: QueryAuthorityRequest): Uint8Array {
-    return QueryAuthorityRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAuthorityRequest): QueryAuthorityRequestProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityRequest",
-      value: QueryAuthorityRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAuthorityResponse(): QueryAuthorityResponse {
-  return {
-    address: ""
-  };
-}
-export const QueryAuthorityResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityResponse",
-  aminoType: "cosmos-sdk/QueryAuthorityResponse",
-  encode(message: QueryAuthorityResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAuthorityResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAuthorityResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAuthorityResponse {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryAuthorityResponse): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAuthorityResponse>): QueryAuthorityResponse {
-    const message = createBaseQueryAuthorityResponse();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAuthorityResponseSDKType): QueryAuthorityResponse {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryAuthorityResponse): QueryAuthorityResponseSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryAuthorityResponseAmino): QueryAuthorityResponse {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryAuthorityResponse): QueryAuthorityResponseAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAuthorityResponseAminoMsg): QueryAuthorityResponse {
-    return QueryAuthorityResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAuthorityResponse): QueryAuthorityResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAuthorityResponse",
-      value: QueryAuthorityResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAuthorityResponseProtoMsg): QueryAuthorityResponse {
-    return QueryAuthorityResponse.decode(message.value);
-  },
-  toProto(message: QueryAuthorityResponse): Uint8Array {
-    return QueryAuthorityResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAuthorityResponse): QueryAuthorityResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.QueryAuthorityResponse",
-      value: QueryAuthorityResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.amino.ts
deleted file mode 100644
index 1734b0fa..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MsgSoftwareUpgrade, MsgCancelUpgrade } from "./tx";
-export const AminoConverter = {
-  "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade": {
-    aminoType: "cosmos-sdk/MsgSoftwareUpgrade",
-    toAmino: MsgSoftwareUpgrade.toAmino,
-    fromAmino: MsgSoftwareUpgrade.fromAmino
-  },
-  "/cosmos.upgrade.v1beta1.MsgCancelUpgrade": {
-    aminoType: "cosmos-sdk/MsgCancelUpgrade",
-    toAmino: MsgCancelUpgrade.toAmino,
-    fromAmino: MsgCancelUpgrade.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.registry.ts
deleted file mode 100644
index e57c26fd..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSoftwareUpgrade, MsgCancelUpgrade } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade", MsgSoftwareUpgrade], ["/cosmos.upgrade.v1beta1.MsgCancelUpgrade", MsgCancelUpgrade]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    softwareUpgrade(value: MsgSoftwareUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-        value: MsgSoftwareUpgrade.encode(value).finish()
-      };
-    },
-    cancelUpgrade(value: MsgCancelUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-        value: MsgCancelUpgrade.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    softwareUpgrade(value: MsgSoftwareUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-        value
-      };
-    },
-    cancelUpgrade(value: MsgCancelUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-        value
-      };
-    }
-  },
-  toJSON: {
-    softwareUpgrade(value: MsgSoftwareUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-        value: MsgSoftwareUpgrade.toJSON(value)
-      };
-    },
-    cancelUpgrade(value: MsgCancelUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-        value: MsgCancelUpgrade.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    softwareUpgrade(value: any) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-        value: MsgSoftwareUpgrade.fromJSON(value)
-      };
-    },
-    cancelUpgrade(value: any) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-        value: MsgCancelUpgrade.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    softwareUpgrade(value: MsgSoftwareUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-        value: MsgSoftwareUpgrade.fromPartial(value)
-      };
-    },
-    cancelUpgrade(value: MsgCancelUpgrade) {
-      return {
-        typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-        value: MsgCancelUpgrade.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index cbef95a8..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgSoftwareUpgrade, MsgSoftwareUpgradeResponse, MsgCancelUpgrade, MsgCancelUpgradeResponse } from "./tx";
-/** Msg defines the upgrade Msg service. */
-export interface Msg {
-  /**
-   * SoftwareUpgrade is a governance operation for initiating a software upgrade.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  softwareUpgrade(request: MsgSoftwareUpgrade): Promise<MsgSoftwareUpgradeResponse>;
-  /**
-   * CancelUpgrade is a governance operation for cancelling a previously
-   * approvid software upgrade.
-   * 
-   * Since: cosmos-sdk 0.46
-   */
-  cancelUpgrade(request: MsgCancelUpgrade): Promise<MsgCancelUpgradeResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.softwareUpgrade = this.softwareUpgrade.bind(this);
-    this.cancelUpgrade = this.cancelUpgrade.bind(this);
-  }
-  softwareUpgrade(request: MsgSoftwareUpgrade): Promise<MsgSoftwareUpgradeResponse> {
-    const data = MsgSoftwareUpgrade.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Msg", "SoftwareUpgrade", data);
-    return promise.then(data => MsgSoftwareUpgradeResponse.decode(new BinaryReader(data)));
-  }
-  cancelUpgrade(request: MsgCancelUpgrade): Promise<MsgCancelUpgradeResponse> {
-    const data = MsgCancelUpgrade.encode(request).finish();
-    const promise = this.rpc.request("cosmos.upgrade.v1beta1.Msg", "CancelUpgrade", data);
-    return promise.then(data => MsgCancelUpgradeResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.ts
deleted file mode 100644
index aab777be..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/tx.ts
+++ /dev/null
@@ -1,458 +0,0 @@
-import { Plan, PlanAmino, PlanSDKType } from "./upgrade";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgrade {
-  /** authority is the address of the governance account. */
-  authority: string;
-  /** plan is the upgrade plan. */
-  plan: Plan | undefined;
-}
-export interface MsgSoftwareUpgradeProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade";
-  value: Uint8Array;
-}
-/**
- * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgradeAmino {
-  /** authority is the address of the governance account. */
-  authority: string;
-  /** plan is the upgrade plan. */
-  plan?: PlanAmino | undefined;
-}
-export interface MsgSoftwareUpgradeAminoMsg {
-  type: "cosmos-sdk/MsgSoftwareUpgrade";
-  value: MsgSoftwareUpgradeAmino;
-}
-/**
- * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgradeSDKType {
-  authority: string;
-  plan: PlanSDKType | undefined;
-}
-/**
- * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgradeResponse {}
-export interface MsgSoftwareUpgradeResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgradeResponse";
-  value: Uint8Array;
-}
-/**
- * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgradeResponseAmino {}
-export interface MsgSoftwareUpgradeResponseAminoMsg {
-  type: "cosmos-sdk/MsgSoftwareUpgradeResponse";
-  value: MsgSoftwareUpgradeResponseAmino;
-}
-/**
- * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgSoftwareUpgradeResponseSDKType {}
-/**
- * MsgCancelUpgrade is the Msg/CancelUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgrade {
-  /** authority is the address of the governance account. */
-  authority: string;
-}
-export interface MsgCancelUpgradeProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade";
-  value: Uint8Array;
-}
-/**
- * MsgCancelUpgrade is the Msg/CancelUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgradeAmino {
-  /** authority is the address of the governance account. */
-  authority: string;
-}
-export interface MsgCancelUpgradeAminoMsg {
-  type: "cosmos-sdk/MsgCancelUpgrade";
-  value: MsgCancelUpgradeAmino;
-}
-/**
- * MsgCancelUpgrade is the Msg/CancelUpgrade request type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgradeSDKType {
-  authority: string;
-}
-/**
- * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgradeResponse {}
-export interface MsgCancelUpgradeResponseProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgradeResponse";
-  value: Uint8Array;
-}
-/**
- * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgradeResponseAmino {}
-export interface MsgCancelUpgradeResponseAminoMsg {
-  type: "cosmos-sdk/MsgCancelUpgradeResponse";
-  value: MsgCancelUpgradeResponseAmino;
-}
-/**
- * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type.
- * 
- * Since: cosmos-sdk 0.46
- */
-export interface MsgCancelUpgradeResponseSDKType {}
-function createBaseMsgSoftwareUpgrade(): MsgSoftwareUpgrade {
-  return {
-    authority: "",
-    plan: Plan.fromPartial({})
-  };
-}
-export const MsgSoftwareUpgrade = {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-  aminoType: "cosmos-sdk/MsgSoftwareUpgrade",
-  encode(message: MsgSoftwareUpgrade, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authority !== "") {
-      writer.uint32(10).string(message.authority);
-    }
-    if (message.plan !== undefined) {
-      Plan.encode(message.plan, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSoftwareUpgrade {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSoftwareUpgrade();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authority = reader.string();
-          break;
-        case 2:
-          message.plan = Plan.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSoftwareUpgrade {
-    return {
-      authority: isSet(object.authority) ? String(object.authority) : "",
-      plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined
-    };
-  },
-  toJSON(message: MsgSoftwareUpgrade): unknown {
-    const obj: any = {};
-    message.authority !== undefined && (obj.authority = message.authority);
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSoftwareUpgrade>): MsgSoftwareUpgrade {
-    const message = createBaseMsgSoftwareUpgrade();
-    message.authority = object.authority ?? "";
-    message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgSoftwareUpgradeSDKType): MsgSoftwareUpgrade {
-    return {
-      authority: object?.authority,
-      plan: object.plan ? Plan.fromSDK(object.plan) : undefined
-    };
-  },
-  toSDK(message: MsgSoftwareUpgrade): MsgSoftwareUpgradeSDKType {
-    const obj: any = {};
-    obj.authority = message.authority;
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toSDK(message.plan) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgSoftwareUpgradeAmino): MsgSoftwareUpgrade {
-    return {
-      authority: object.authority,
-      plan: object?.plan ? Plan.fromAmino(object.plan) : undefined
-    };
-  },
-  toAmino(message: MsgSoftwareUpgrade): MsgSoftwareUpgradeAmino {
-    const obj: any = {};
-    obj.authority = message.authority;
-    obj.plan = message.plan ? Plan.toAmino(message.plan) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSoftwareUpgradeAminoMsg): MsgSoftwareUpgrade {
-    return MsgSoftwareUpgrade.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSoftwareUpgrade): MsgSoftwareUpgradeAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSoftwareUpgrade",
-      value: MsgSoftwareUpgrade.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSoftwareUpgradeProtoMsg): MsgSoftwareUpgrade {
-    return MsgSoftwareUpgrade.decode(message.value);
-  },
-  toProto(message: MsgSoftwareUpgrade): Uint8Array {
-    return MsgSoftwareUpgrade.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSoftwareUpgrade): MsgSoftwareUpgradeProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
-      value: MsgSoftwareUpgrade.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSoftwareUpgradeResponse(): MsgSoftwareUpgradeResponse {
-  return {};
-}
-export const MsgSoftwareUpgradeResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgradeResponse",
-  aminoType: "cosmos-sdk/MsgSoftwareUpgradeResponse",
-  encode(_: MsgSoftwareUpgradeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSoftwareUpgradeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSoftwareUpgradeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSoftwareUpgradeResponse {
-    return {};
-  },
-  toJSON(_: MsgSoftwareUpgradeResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSoftwareUpgradeResponse>): MsgSoftwareUpgradeResponse {
-    const message = createBaseMsgSoftwareUpgradeResponse();
-    return message;
-  },
-  fromSDK(_: MsgSoftwareUpgradeResponseSDKType): MsgSoftwareUpgradeResponse {
-    return {};
-  },
-  toSDK(_: MsgSoftwareUpgradeResponse): MsgSoftwareUpgradeResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSoftwareUpgradeResponseAmino): MsgSoftwareUpgradeResponse {
-    return {};
-  },
-  toAmino(_: MsgSoftwareUpgradeResponse): MsgSoftwareUpgradeResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSoftwareUpgradeResponseAminoMsg): MsgSoftwareUpgradeResponse {
-    return MsgSoftwareUpgradeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSoftwareUpgradeResponse): MsgSoftwareUpgradeResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSoftwareUpgradeResponse",
-      value: MsgSoftwareUpgradeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSoftwareUpgradeResponseProtoMsg): MsgSoftwareUpgradeResponse {
-    return MsgSoftwareUpgradeResponse.decode(message.value);
-  },
-  toProto(message: MsgSoftwareUpgradeResponse): Uint8Array {
-    return MsgSoftwareUpgradeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSoftwareUpgradeResponse): MsgSoftwareUpgradeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.MsgSoftwareUpgradeResponse",
-      value: MsgSoftwareUpgradeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCancelUpgrade(): MsgCancelUpgrade {
-  return {
-    authority: ""
-  };
-}
-export const MsgCancelUpgrade = {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-  aminoType: "cosmos-sdk/MsgCancelUpgrade",
-  encode(message: MsgCancelUpgrade, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authority !== "") {
-      writer.uint32(10).string(message.authority);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCancelUpgrade {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCancelUpgrade();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authority = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCancelUpgrade {
-    return {
-      authority: isSet(object.authority) ? String(object.authority) : ""
-    };
-  },
-  toJSON(message: MsgCancelUpgrade): unknown {
-    const obj: any = {};
-    message.authority !== undefined && (obj.authority = message.authority);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCancelUpgrade>): MsgCancelUpgrade {
-    const message = createBaseMsgCancelUpgrade();
-    message.authority = object.authority ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCancelUpgradeSDKType): MsgCancelUpgrade {
-    return {
-      authority: object?.authority
-    };
-  },
-  toSDK(message: MsgCancelUpgrade): MsgCancelUpgradeSDKType {
-    const obj: any = {};
-    obj.authority = message.authority;
-    return obj;
-  },
-  fromAmino(object: MsgCancelUpgradeAmino): MsgCancelUpgrade {
-    return {
-      authority: object.authority
-    };
-  },
-  toAmino(message: MsgCancelUpgrade): MsgCancelUpgradeAmino {
-    const obj: any = {};
-    obj.authority = message.authority;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCancelUpgradeAminoMsg): MsgCancelUpgrade {
-    return MsgCancelUpgrade.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCancelUpgrade): MsgCancelUpgradeAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCancelUpgrade",
-      value: MsgCancelUpgrade.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCancelUpgradeProtoMsg): MsgCancelUpgrade {
-    return MsgCancelUpgrade.decode(message.value);
-  },
-  toProto(message: MsgCancelUpgrade): Uint8Array {
-    return MsgCancelUpgrade.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCancelUpgrade): MsgCancelUpgradeProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgrade",
-      value: MsgCancelUpgrade.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCancelUpgradeResponse(): MsgCancelUpgradeResponse {
-  return {};
-}
-export const MsgCancelUpgradeResponse = {
-  typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgradeResponse",
-  aminoType: "cosmos-sdk/MsgCancelUpgradeResponse",
-  encode(_: MsgCancelUpgradeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCancelUpgradeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCancelUpgradeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCancelUpgradeResponse {
-    return {};
-  },
-  toJSON(_: MsgCancelUpgradeResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCancelUpgradeResponse>): MsgCancelUpgradeResponse {
-    const message = createBaseMsgCancelUpgradeResponse();
-    return message;
-  },
-  fromSDK(_: MsgCancelUpgradeResponseSDKType): MsgCancelUpgradeResponse {
-    return {};
-  },
-  toSDK(_: MsgCancelUpgradeResponse): MsgCancelUpgradeResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCancelUpgradeResponseAmino): MsgCancelUpgradeResponse {
-    return {};
-  },
-  toAmino(_: MsgCancelUpgradeResponse): MsgCancelUpgradeResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCancelUpgradeResponseAminoMsg): MsgCancelUpgradeResponse {
-    return MsgCancelUpgradeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCancelUpgradeResponse): MsgCancelUpgradeResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCancelUpgradeResponse",
-      value: MsgCancelUpgradeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCancelUpgradeResponseProtoMsg): MsgCancelUpgradeResponse {
-    return MsgCancelUpgradeResponse.decode(message.value);
-  },
-  toProto(message: MsgCancelUpgradeResponse): Uint8Array {
-    return MsgCancelUpgradeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCancelUpgradeResponse): MsgCancelUpgradeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.MsgCancelUpgradeResponse",
-      value: MsgCancelUpgradeResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/upgrade.ts b/examples/injective/src/codegen/cosmos/upgrade/v1beta1/upgrade.ts
deleted file mode 100644
index 5dea89a3..00000000
--- a/examples/injective/src/codegen/cosmos/upgrade/v1beta1/upgrade.ts
+++ /dev/null
@@ -1,684 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-/** Plan specifies information about a planned upgrade and when it should occur. */
-export interface Plan {
-  /**
-   * Sets the name for the upgrade. This name will be used by the upgraded
-   * version of the software to apply any special "on-upgrade" commands during
-   * the first BeginBlock method after the upgrade is applied. It is also used
-   * to detect whether a software version can handle a given upgrade. If no
-   * upgrade handler with this name has been set in the software, it will be
-   * assumed that the software is out-of-date when the upgrade Time or Height is
-   * reached and the software will exit.
-   */
-  name: string;
-  /**
-   * Deprecated: Time based upgrades have been deprecated. Time based upgrade logic
-   * has been removed from the SDK.
-   * If this field is not empty, an error will be thrown.
-   */
-  /** @deprecated */
-  time: Date | undefined;
-  /**
-   * The height at which the upgrade must be performed.
-   * Only used if Time is not set.
-   */
-  height: bigint;
-  /**
-   * Any application specific upgrade info to be included on-chain
-   * such as a git commit that validators could automatically upgrade to
-   */
-  info: string;
-  /**
-   * Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been
-   * moved to the IBC module in the sub module 02-client.
-   * If this field is not empty, an error will be thrown.
-   */
-  /** @deprecated */
-  upgradedClientState: Any | undefined;
-}
-export interface PlanProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.Plan";
-  value: Uint8Array;
-}
-/** Plan specifies information about a planned upgrade and when it should occur. */
-export interface PlanAmino {
-  /**
-   * Sets the name for the upgrade. This name will be used by the upgraded
-   * version of the software to apply any special "on-upgrade" commands during
-   * the first BeginBlock method after the upgrade is applied. It is also used
-   * to detect whether a software version can handle a given upgrade. If no
-   * upgrade handler with this name has been set in the software, it will be
-   * assumed that the software is out-of-date when the upgrade Time or Height is
-   * reached and the software will exit.
-   */
-  name: string;
-  /**
-   * Deprecated: Time based upgrades have been deprecated. Time based upgrade logic
-   * has been removed from the SDK.
-   * If this field is not empty, an error will be thrown.
-   */
-  /** @deprecated */
-  time?: Date | undefined;
-  /**
-   * The height at which the upgrade must be performed.
-   * Only used if Time is not set.
-   */
-  height: string;
-  /**
-   * Any application specific upgrade info to be included on-chain
-   * such as a git commit that validators could automatically upgrade to
-   */
-  info: string;
-  /**
-   * Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been
-   * moved to the IBC module in the sub module 02-client.
-   * If this field is not empty, an error will be thrown.
-   */
-  /** @deprecated */
-  upgraded_client_state?: AnyAmino | undefined;
-}
-export interface PlanAminoMsg {
-  type: "cosmos-sdk/Plan";
-  value: PlanAmino;
-}
-/** Plan specifies information about a planned upgrade and when it should occur. */
-export interface PlanSDKType {
-  name: string;
-  /** @deprecated */
-  time: Date | undefined;
-  height: bigint;
-  info: string;
-  /** @deprecated */
-  upgraded_client_state: AnySDKType | undefined;
-}
-/**
- * SoftwareUpgradeProposal is a gov Content type for initiating a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgSoftwareUpgrade.
- */
-/** @deprecated */
-export interface SoftwareUpgradeProposal {
-  title: string;
-  description: string;
-  plan: Plan | undefined;
-}
-export interface SoftwareUpgradeProposalProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal";
-  value: Uint8Array;
-}
-/**
- * SoftwareUpgradeProposal is a gov Content type for initiating a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgSoftwareUpgrade.
- */
-/** @deprecated */
-export interface SoftwareUpgradeProposalAmino {
-  title: string;
-  description: string;
-  plan?: PlanAmino | undefined;
-}
-export interface SoftwareUpgradeProposalAminoMsg {
-  type: "cosmos-sdk/SoftwareUpgradeProposal";
-  value: SoftwareUpgradeProposalAmino;
-}
-/**
- * SoftwareUpgradeProposal is a gov Content type for initiating a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgSoftwareUpgrade.
- */
-/** @deprecated */
-export interface SoftwareUpgradeProposalSDKType {
-  title: string;
-  description: string;
-  plan: PlanSDKType | undefined;
-}
-/**
- * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgCancelUpgrade.
- */
-/** @deprecated */
-export interface CancelSoftwareUpgradeProposal {
-  title: string;
-  description: string;
-}
-export interface CancelSoftwareUpgradeProposalProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal";
-  value: Uint8Array;
-}
-/**
- * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgCancelUpgrade.
- */
-/** @deprecated */
-export interface CancelSoftwareUpgradeProposalAmino {
-  title: string;
-  description: string;
-}
-export interface CancelSoftwareUpgradeProposalAminoMsg {
-  type: "cosmos-sdk/CancelSoftwareUpgradeProposal";
-  value: CancelSoftwareUpgradeProposalAmino;
-}
-/**
- * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software
- * upgrade.
- * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov
- * proposals, see MsgCancelUpgrade.
- */
-/** @deprecated */
-export interface CancelSoftwareUpgradeProposalSDKType {
-  title: string;
-  description: string;
-}
-/**
- * ModuleVersion specifies a module and its consensus version.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface ModuleVersion {
-  /** name of the app module */
-  name: string;
-  /** consensus version of the app module */
-  version: bigint;
-}
-export interface ModuleVersionProtoMsg {
-  typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion";
-  value: Uint8Array;
-}
-/**
- * ModuleVersion specifies a module and its consensus version.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface ModuleVersionAmino {
-  /** name of the app module */
-  name: string;
-  /** consensus version of the app module */
-  version: string;
-}
-export interface ModuleVersionAminoMsg {
-  type: "cosmos-sdk/ModuleVersion";
-  value: ModuleVersionAmino;
-}
-/**
- * ModuleVersion specifies a module and its consensus version.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface ModuleVersionSDKType {
-  name: string;
-  version: bigint;
-}
-function createBasePlan(): Plan {
-  return {
-    name: "",
-    time: new Date(),
-    height: BigInt(0),
-    info: "",
-    upgradedClientState: Any.fromPartial({})
-  };
-}
-export const Plan = {
-  typeUrl: "/cosmos.upgrade.v1beta1.Plan",
-  aminoType: "cosmos-sdk/Plan",
-  encode(message: Plan, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(24).int64(message.height);
-    }
-    if (message.info !== "") {
-      writer.uint32(34).string(message.info);
-    }
-    if (message.upgradedClientState !== undefined) {
-      Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Plan {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePlan();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.height = reader.int64();
-          break;
-        case 4:
-          message.info = reader.string();
-          break;
-        case 5:
-          message.upgradedClientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Plan {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      info: isSet(object.info) ? String(object.info) : "",
-      upgradedClientState: isSet(object.upgradedClientState) ? Any.fromJSON(object.upgradedClientState) : undefined
-    };
-  },
-  toJSON(message: Plan): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.info !== undefined && (obj.info = message.info);
-    message.upgradedClientState !== undefined && (obj.upgradedClientState = message.upgradedClientState ? Any.toJSON(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Plan>): Plan {
-    const message = createBasePlan();
-    message.name = object.name ?? "";
-    message.time = object.time ?? undefined;
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.info = object.info ?? "";
-    message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined;
-    return message;
-  },
-  fromSDK(object: PlanSDKType): Plan {
-    return {
-      name: object?.name,
-      time: object.time ?? undefined,
-      height: object?.height,
-      info: object?.info,
-      upgradedClientState: object.upgraded_client_state ? Any.fromSDK(object.upgraded_client_state) : undefined
-    };
-  },
-  toSDK(message: Plan): PlanSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    obj.height = message.height;
-    obj.info = message.info;
-    message.upgradedClientState !== undefined && (obj.upgraded_client_state = message.upgradedClientState ? Any.toSDK(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: PlanAmino): Plan {
-    return {
-      name: object.name,
-      time: object.time,
-      height: BigInt(object.height),
-      info: object.info,
-      upgradedClientState: object?.upgraded_client_state ? Any.fromAmino(object.upgraded_client_state) : undefined
-    };
-  },
-  toAmino(message: Plan): PlanAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.time = message.time;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.info = message.info;
-    obj.upgraded_client_state = message.upgradedClientState ? Any.toAmino(message.upgradedClientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PlanAminoMsg): Plan {
-    return Plan.fromAmino(object.value);
-  },
-  toAminoMsg(message: Plan): PlanAminoMsg {
-    return {
-      type: "cosmos-sdk/Plan",
-      value: Plan.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PlanProtoMsg): Plan {
-    return Plan.decode(message.value);
-  },
-  toProto(message: Plan): Uint8Array {
-    return Plan.encode(message).finish();
-  },
-  toProtoMsg(message: Plan): PlanProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.Plan",
-      value: Plan.encode(message).finish()
-    };
-  }
-};
-function createBaseSoftwareUpgradeProposal(): SoftwareUpgradeProposal {
-  return {
-    title: "",
-    description: "",
-    plan: Plan.fromPartial({})
-  };
-}
-export const SoftwareUpgradeProposal = {
-  typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal",
-  aminoType: "cosmos-sdk/SoftwareUpgradeProposal",
-  encode(message: SoftwareUpgradeProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.plan !== undefined) {
-      Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SoftwareUpgradeProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSoftwareUpgradeProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.plan = Plan.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SoftwareUpgradeProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined
-    };
-  },
-  toJSON(message: SoftwareUpgradeProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SoftwareUpgradeProposal>): SoftwareUpgradeProposal {
-    const message = createBaseSoftwareUpgradeProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined;
-    return message;
-  },
-  fromSDK(object: SoftwareUpgradeProposalSDKType): SoftwareUpgradeProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      plan: object.plan ? Plan.fromSDK(object.plan) : undefined
-    };
-  },
-  toSDK(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toSDK(message.plan) : undefined);
-    return obj;
-  },
-  fromAmino(object: SoftwareUpgradeProposalAmino): SoftwareUpgradeProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      plan: object?.plan ? Plan.fromAmino(object.plan) : undefined
-    };
-  },
-  toAmino(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.plan = message.plan ? Plan.toAmino(message.plan) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SoftwareUpgradeProposalAminoMsg): SoftwareUpgradeProposal {
-    return SoftwareUpgradeProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/SoftwareUpgradeProposal",
-      value: SoftwareUpgradeProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SoftwareUpgradeProposalProtoMsg): SoftwareUpgradeProposal {
-    return SoftwareUpgradeProposal.decode(message.value);
-  },
-  toProto(message: SoftwareUpgradeProposal): Uint8Array {
-    return SoftwareUpgradeProposal.encode(message).finish();
-  },
-  toProtoMsg(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal",
-      value: SoftwareUpgradeProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseCancelSoftwareUpgradeProposal(): CancelSoftwareUpgradeProposal {
-  return {
-    title: "",
-    description: ""
-  };
-}
-export const CancelSoftwareUpgradeProposal = {
-  typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal",
-  aminoType: "cosmos-sdk/CancelSoftwareUpgradeProposal",
-  encode(message: CancelSoftwareUpgradeProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CancelSoftwareUpgradeProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCancelSoftwareUpgradeProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CancelSoftwareUpgradeProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : ""
-    };
-  },
-  toJSON(message: CancelSoftwareUpgradeProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CancelSoftwareUpgradeProposal>): CancelSoftwareUpgradeProposal {
-    const message = createBaseCancelSoftwareUpgradeProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    return message;
-  },
-  fromSDK(object: CancelSoftwareUpgradeProposalSDKType): CancelSoftwareUpgradeProposal {
-    return {
-      title: object?.title,
-      description: object?.description
-    };
-  },
-  toSDK(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAmino(object: CancelSoftwareUpgradeProposalAmino): CancelSoftwareUpgradeProposal {
-    return {
-      title: object.title,
-      description: object.description
-    };
-  },
-  toAmino(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAminoMsg(object: CancelSoftwareUpgradeProposalAminoMsg): CancelSoftwareUpgradeProposal {
-    return CancelSoftwareUpgradeProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/CancelSoftwareUpgradeProposal",
-      value: CancelSoftwareUpgradeProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CancelSoftwareUpgradeProposalProtoMsg): CancelSoftwareUpgradeProposal {
-    return CancelSoftwareUpgradeProposal.decode(message.value);
-  },
-  toProto(message: CancelSoftwareUpgradeProposal): Uint8Array {
-    return CancelSoftwareUpgradeProposal.encode(message).finish();
-  },
-  toProtoMsg(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal",
-      value: CancelSoftwareUpgradeProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleVersion(): ModuleVersion {
-  return {
-    name: "",
-    version: BigInt(0)
-  };
-}
-export const ModuleVersion = {
-  typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion",
-  aminoType: "cosmos-sdk/ModuleVersion",
-  encode(message: ModuleVersion, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.version !== BigInt(0)) {
-      writer.uint32(16).uint64(message.version);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleVersion {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleVersion();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.version = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleVersion {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      version: isSet(object.version) ? BigInt(object.version.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ModuleVersion): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleVersion>): ModuleVersion {
-    const message = createBaseModuleVersion();
-    message.name = object.name ?? "";
-    message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ModuleVersionSDKType): ModuleVersion {
-    return {
-      name: object?.name,
-      version: object?.version
-    };
-  },
-  toSDK(message: ModuleVersion): ModuleVersionSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.version = message.version;
-    return obj;
-  },
-  fromAmino(object: ModuleVersionAmino): ModuleVersion {
-    return {
-      name: object.name,
-      version: BigInt(object.version)
-    };
-  },
-  toAmino(message: ModuleVersion): ModuleVersionAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.version = message.version ? message.version.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ModuleVersionAminoMsg): ModuleVersion {
-    return ModuleVersion.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleVersion): ModuleVersionAminoMsg {
-    return {
-      type: "cosmos-sdk/ModuleVersion",
-      value: ModuleVersion.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleVersionProtoMsg): ModuleVersion {
-    return ModuleVersion.decode(message.value);
-  },
-  toProto(message: ModuleVersion): Uint8Array {
-    return ModuleVersion.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleVersion): ModuleVersionProtoMsg {
-    return {
-      typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion",
-      value: ModuleVersion.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.amino.ts b/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.amino.ts
deleted file mode 100644
index a197b23b..00000000
--- a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { MsgCreateVestingAccount, MsgCreatePermanentLockedAccount, MsgCreatePeriodicVestingAccount } from "./tx";
-export const AminoConverter = {
-  "/cosmos.vesting.v1beta1.MsgCreateVestingAccount": {
-    aminoType: "cosmos-sdk/MsgCreateVestingAccount",
-    toAmino: MsgCreateVestingAccount.toAmino,
-    fromAmino: MsgCreateVestingAccount.fromAmino
-  },
-  "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount": {
-    aminoType: "cosmos-sdk/MsgCreatePermanentLockedAccount",
-    toAmino: MsgCreatePermanentLockedAccount.toAmino,
-    fromAmino: MsgCreatePermanentLockedAccount.fromAmino
-  },
-  "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount": {
-    aminoType: "cosmos-sdk/MsgCreatePeriodicVestingAccount",
-    toAmino: MsgCreatePeriodicVestingAccount.toAmino,
-    fromAmino: MsgCreatePeriodicVestingAccount.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.registry.ts b/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.registry.ts
deleted file mode 100644
index 258b6f52..00000000
--- a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateVestingAccount, MsgCreatePermanentLockedAccount, MsgCreatePeriodicVestingAccount } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmos.vesting.v1beta1.MsgCreateVestingAccount", MsgCreateVestingAccount], ["/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount", MsgCreatePermanentLockedAccount], ["/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount", MsgCreatePeriodicVestingAccount]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createVestingAccount(value: MsgCreateVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-        value: MsgCreateVestingAccount.encode(value).finish()
-      };
-    },
-    createPermanentLockedAccount(value: MsgCreatePermanentLockedAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-        value: MsgCreatePermanentLockedAccount.encode(value).finish()
-      };
-    },
-    createPeriodicVestingAccount(value: MsgCreatePeriodicVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-        value: MsgCreatePeriodicVestingAccount.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createVestingAccount(value: MsgCreateVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-        value
-      };
-    },
-    createPermanentLockedAccount(value: MsgCreatePermanentLockedAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-        value
-      };
-    },
-    createPeriodicVestingAccount(value: MsgCreatePeriodicVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createVestingAccount(value: MsgCreateVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-        value: MsgCreateVestingAccount.toJSON(value)
-      };
-    },
-    createPermanentLockedAccount(value: MsgCreatePermanentLockedAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-        value: MsgCreatePermanentLockedAccount.toJSON(value)
-      };
-    },
-    createPeriodicVestingAccount(value: MsgCreatePeriodicVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-        value: MsgCreatePeriodicVestingAccount.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createVestingAccount(value: any) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-        value: MsgCreateVestingAccount.fromJSON(value)
-      };
-    },
-    createPermanentLockedAccount(value: any) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-        value: MsgCreatePermanentLockedAccount.fromJSON(value)
-      };
-    },
-    createPeriodicVestingAccount(value: any) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-        value: MsgCreatePeriodicVestingAccount.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createVestingAccount(value: MsgCreateVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-        value: MsgCreateVestingAccount.fromPartial(value)
-      };
-    },
-    createPermanentLockedAccount(value: MsgCreatePermanentLockedAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-        value: MsgCreatePermanentLockedAccount.fromPartial(value)
-      };
-    },
-    createPeriodicVestingAccount(value: MsgCreatePeriodicVestingAccount) {
-      return {
-        typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-        value: MsgCreatePeriodicVestingAccount.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index b30e2e7f..00000000
--- a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgCreateVestingAccount, MsgCreateVestingAccountResponse, MsgCreatePermanentLockedAccount, MsgCreatePermanentLockedAccountResponse, MsgCreatePeriodicVestingAccount, MsgCreatePeriodicVestingAccountResponse } from "./tx";
-/** Msg defines the bank Msg service. */
-export interface Msg {
-  /**
-   * CreateVestingAccount defines a method that enables creating a vesting
-   * account.
-   */
-  createVestingAccount(request: MsgCreateVestingAccount): Promise<MsgCreateVestingAccountResponse>;
-  /**
-   * CreatePermanentLockedAccount defines a method that enables creating a permanent
-   * locked account.
-   */
-  createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise<MsgCreatePermanentLockedAccountResponse>;
-  /**
-   * CreatePeriodicVestingAccount defines a method that enables creating a
-   * periodic vesting account.
-   */
-  createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise<MsgCreatePeriodicVestingAccountResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createVestingAccount = this.createVestingAccount.bind(this);
-    this.createPermanentLockedAccount = this.createPermanentLockedAccount.bind(this);
-    this.createPeriodicVestingAccount = this.createPeriodicVestingAccount.bind(this);
-  }
-  createVestingAccount(request: MsgCreateVestingAccount): Promise<MsgCreateVestingAccountResponse> {
-    const data = MsgCreateVestingAccount.encode(request).finish();
-    const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreateVestingAccount", data);
-    return promise.then(data => MsgCreateVestingAccountResponse.decode(new BinaryReader(data)));
-  }
-  createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise<MsgCreatePermanentLockedAccountResponse> {
-    const data = MsgCreatePermanentLockedAccount.encode(request).finish();
-    const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePermanentLockedAccount", data);
-    return promise.then(data => MsgCreatePermanentLockedAccountResponse.decode(new BinaryReader(data)));
-  }
-  createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise<MsgCreatePeriodicVestingAccountResponse> {
-    const data = MsgCreatePeriodicVestingAccount.encode(request).finish();
-    const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePeriodicVestingAccount", data);
-    return promise.then(data => MsgCreatePeriodicVestingAccountResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.ts b/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.ts
deleted file mode 100644
index 07bc0fe9..00000000
--- a/examples/injective/src/codegen/cosmos/vesting/v1beta1/tx.ts
+++ /dev/null
@@ -1,805 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { Period, PeriodAmino, PeriodSDKType } from "./vesting";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreateVestingAccount {
-  fromAddress: string;
-  toAddress: string;
-  amount: Coin[];
-  endTime: bigint;
-  delayed: boolean;
-}
-export interface MsgCreateVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount";
-  value: Uint8Array;
-}
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreateVestingAccountAmino {
-  from_address: string;
-  to_address: string;
-  amount: CoinAmino[];
-  end_time: string;
-  delayed: boolean;
-}
-export interface MsgCreateVestingAccountAminoMsg {
-  type: "cosmos-sdk/MsgCreateVestingAccount";
-  value: MsgCreateVestingAccountAmino;
-}
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreateVestingAccountSDKType {
-  from_address: string;
-  to_address: string;
-  amount: CoinSDKType[];
-  end_time: bigint;
-  delayed: boolean;
-}
-/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */
-export interface MsgCreateVestingAccountResponse {}
-export interface MsgCreateVestingAccountResponseProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse";
-  value: Uint8Array;
-}
-/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */
-export interface MsgCreateVestingAccountResponseAmino {}
-export interface MsgCreateVestingAccountResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateVestingAccountResponse";
-  value: MsgCreateVestingAccountResponseAmino;
-}
-/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */
-export interface MsgCreateVestingAccountResponseSDKType {}
-/**
- * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent
- * locked account.
- */
-export interface MsgCreatePermanentLockedAccount {
-  fromAddress: string;
-  toAddress: string;
-  amount: Coin[];
-}
-export interface MsgCreatePermanentLockedAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount";
-  value: Uint8Array;
-}
-/**
- * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent
- * locked account.
- */
-export interface MsgCreatePermanentLockedAccountAmino {
-  from_address: string;
-  to_address: string;
-  amount: CoinAmino[];
-}
-export interface MsgCreatePermanentLockedAccountAminoMsg {
-  type: "cosmos-sdk/MsgCreatePermanentLockedAccount";
-  value: MsgCreatePermanentLockedAccountAmino;
-}
-/**
- * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent
- * locked account.
- */
-export interface MsgCreatePermanentLockedAccountSDKType {
-  from_address: string;
-  to_address: string;
-  amount: CoinSDKType[];
-}
-/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */
-export interface MsgCreatePermanentLockedAccountResponse {}
-export interface MsgCreatePermanentLockedAccountResponseProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse";
-  value: Uint8Array;
-}
-/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */
-export interface MsgCreatePermanentLockedAccountResponseAmino {}
-export interface MsgCreatePermanentLockedAccountResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreatePermanentLockedAccountResponse";
-  value: MsgCreatePermanentLockedAccountResponseAmino;
-}
-/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */
-export interface MsgCreatePermanentLockedAccountResponseSDKType {}
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreatePeriodicVestingAccount {
-  fromAddress: string;
-  toAddress: string;
-  startTime: bigint;
-  vestingPeriods: Period[];
-}
-export interface MsgCreatePeriodicVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount";
-  value: Uint8Array;
-}
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreatePeriodicVestingAccountAmino {
-  from_address: string;
-  to_address: string;
-  start_time: string;
-  vesting_periods: PeriodAmino[];
-}
-export interface MsgCreatePeriodicVestingAccountAminoMsg {
-  type: "cosmos-sdk/MsgCreatePeriodicVestingAccount";
-  value: MsgCreatePeriodicVestingAccountAmino;
-}
-/**
- * MsgCreateVestingAccount defines a message that enables creating a vesting
- * account.
- */
-export interface MsgCreatePeriodicVestingAccountSDKType {
-  from_address: string;
-  to_address: string;
-  start_time: bigint;
-  vesting_periods: PeriodSDKType[];
-}
-/**
- * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount
- * response type.
- */
-export interface MsgCreatePeriodicVestingAccountResponse {}
-export interface MsgCreatePeriodicVestingAccountResponseProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse";
-  value: Uint8Array;
-}
-/**
- * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount
- * response type.
- */
-export interface MsgCreatePeriodicVestingAccountResponseAmino {}
-export interface MsgCreatePeriodicVestingAccountResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreatePeriodicVestingAccountResponse";
-  value: MsgCreatePeriodicVestingAccountResponseAmino;
-}
-/**
- * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount
- * response type.
- */
-export interface MsgCreatePeriodicVestingAccountResponseSDKType {}
-function createBaseMsgCreateVestingAccount(): MsgCreateVestingAccount {
-  return {
-    fromAddress: "",
-    toAddress: "",
-    amount: [],
-    endTime: BigInt(0),
-    delayed: false
-  };
-}
-export const MsgCreateVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-  aminoType: "cosmos-sdk/MsgCreateVestingAccount",
-  encode(message: MsgCreateVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fromAddress !== "") {
-      writer.uint32(10).string(message.fromAddress);
-    }
-    if (message.toAddress !== "") {
-      writer.uint32(18).string(message.toAddress);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.endTime !== BigInt(0)) {
-      writer.uint32(32).int64(message.endTime);
-    }
-    if (message.delayed === true) {
-      writer.uint32(40).bool(message.delayed);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fromAddress = reader.string();
-          break;
-        case 2:
-          message.toAddress = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.endTime = reader.int64();
-          break;
-        case 5:
-          message.delayed = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateVestingAccount {
-    return {
-      fromAddress: isSet(object.fromAddress) ? String(object.fromAddress) : "",
-      toAddress: isSet(object.toAddress) ? String(object.toAddress) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],
-      endTime: isSet(object.endTime) ? BigInt(object.endTime.toString()) : BigInt(0),
-      delayed: isSet(object.delayed) ? Boolean(object.delayed) : false
-    };
-  },
-  toJSON(message: MsgCreateVestingAccount): unknown {
-    const obj: any = {};
-    message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);
-    message.toAddress !== undefined && (obj.toAddress = message.toAddress);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());
-    message.delayed !== undefined && (obj.delayed = message.delayed);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateVestingAccount>): MsgCreateVestingAccount {
-    const message = createBaseMsgCreateVestingAccount();
-    message.fromAddress = object.fromAddress ?? "";
-    message.toAddress = object.toAddress ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    message.endTime = object.endTime !== undefined && object.endTime !== null ? BigInt(object.endTime.toString()) : BigInt(0);
-    message.delayed = object.delayed ?? false;
-    return message;
-  },
-  fromSDK(object: MsgCreateVestingAccountSDKType): MsgCreateVestingAccount {
-    return {
-      fromAddress: object?.from_address,
-      toAddress: object?.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : [],
-      endTime: object?.end_time,
-      delayed: object?.delayed
-    };
-  },
-  toSDK(message: MsgCreateVestingAccount): MsgCreateVestingAccountSDKType {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.end_time = message.endTime;
-    obj.delayed = message.delayed;
-    return obj;
-  },
-  fromAmino(object: MsgCreateVestingAccountAmino): MsgCreateVestingAccount {
-    return {
-      fromAddress: object.from_address,
-      toAddress: object.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : [],
-      endTime: BigInt(object.end_time),
-      delayed: object.delayed
-    };
-  },
-  toAmino(message: MsgCreateVestingAccount): MsgCreateVestingAccountAmino {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    obj.end_time = message.endTime ? message.endTime.toString() : undefined;
-    obj.delayed = message.delayed;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateVestingAccountAminoMsg): MsgCreateVestingAccount {
-    return MsgCreateVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateVestingAccount): MsgCreateVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateVestingAccount",
-      value: MsgCreateVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateVestingAccountProtoMsg): MsgCreateVestingAccount {
-    return MsgCreateVestingAccount.decode(message.value);
-  },
-  toProto(message: MsgCreateVestingAccount): Uint8Array {
-    return MsgCreateVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateVestingAccount): MsgCreateVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount",
-      value: MsgCreateVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateVestingAccountResponse(): MsgCreateVestingAccountResponse {
-  return {};
-}
-export const MsgCreateVestingAccountResponse = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse",
-  aminoType: "cosmos-sdk/MsgCreateVestingAccountResponse",
-  encode(_: MsgCreateVestingAccountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateVestingAccountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateVestingAccountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreateVestingAccountResponse {
-    return {};
-  },
-  toJSON(_: MsgCreateVestingAccountResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreateVestingAccountResponse>): MsgCreateVestingAccountResponse {
-    const message = createBaseMsgCreateVestingAccountResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreateVestingAccountResponseSDKType): MsgCreateVestingAccountResponse {
-    return {};
-  },
-  toSDK(_: MsgCreateVestingAccountResponse): MsgCreateVestingAccountResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreateVestingAccountResponseAmino): MsgCreateVestingAccountResponse {
-    return {};
-  },
-  toAmino(_: MsgCreateVestingAccountResponse): MsgCreateVestingAccountResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateVestingAccountResponseAminoMsg): MsgCreateVestingAccountResponse {
-    return MsgCreateVestingAccountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateVestingAccountResponse): MsgCreateVestingAccountResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateVestingAccountResponse",
-      value: MsgCreateVestingAccountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateVestingAccountResponseProtoMsg): MsgCreateVestingAccountResponse {
-    return MsgCreateVestingAccountResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateVestingAccountResponse): Uint8Array {
-    return MsgCreateVestingAccountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateVestingAccountResponse): MsgCreateVestingAccountResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse",
-      value: MsgCreateVestingAccountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreatePermanentLockedAccount(): MsgCreatePermanentLockedAccount {
-  return {
-    fromAddress: "",
-    toAddress: "",
-    amount: []
-  };
-}
-export const MsgCreatePermanentLockedAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-  aminoType: "cosmos-sdk/MsgCreatePermanentLockedAccount",
-  encode(message: MsgCreatePermanentLockedAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fromAddress !== "") {
-      writer.uint32(10).string(message.fromAddress);
-    }
-    if (message.toAddress !== "") {
-      writer.uint32(18).string(message.toAddress);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreatePermanentLockedAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreatePermanentLockedAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fromAddress = reader.string();
-          break;
-        case 2:
-          message.toAddress = reader.string();
-          break;
-        case 3:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreatePermanentLockedAccount {
-    return {
-      fromAddress: isSet(object.fromAddress) ? String(object.fromAddress) : "",
-      toAddress: isSet(object.toAddress) ? String(object.toAddress) : "",
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgCreatePermanentLockedAccount): unknown {
-    const obj: any = {};
-    message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);
-    message.toAddress !== undefined && (obj.toAddress = message.toAddress);
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreatePermanentLockedAccount>): MsgCreatePermanentLockedAccount {
-    const message = createBaseMsgCreatePermanentLockedAccount();
-    message.fromAddress = object.fromAddress ?? "";
-    message.toAddress = object.toAddress ?? "";
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgCreatePermanentLockedAccountSDKType): MsgCreatePermanentLockedAccount {
-    return {
-      fromAddress: object?.from_address,
-      toAddress: object?.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgCreatePermanentLockedAccount): MsgCreatePermanentLockedAccountSDKType {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgCreatePermanentLockedAccountAmino): MsgCreatePermanentLockedAccount {
-    return {
-      fromAddress: object.from_address,
-      toAddress: object.to_address,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgCreatePermanentLockedAccount): MsgCreatePermanentLockedAccountAmino {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreatePermanentLockedAccountAminoMsg): MsgCreatePermanentLockedAccount {
-    return MsgCreatePermanentLockedAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreatePermanentLockedAccount): MsgCreatePermanentLockedAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreatePermanentLockedAccount",
-      value: MsgCreatePermanentLockedAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreatePermanentLockedAccountProtoMsg): MsgCreatePermanentLockedAccount {
-    return MsgCreatePermanentLockedAccount.decode(message.value);
-  },
-  toProto(message: MsgCreatePermanentLockedAccount): Uint8Array {
-    return MsgCreatePermanentLockedAccount.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreatePermanentLockedAccount): MsgCreatePermanentLockedAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount",
-      value: MsgCreatePermanentLockedAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreatePermanentLockedAccountResponse(): MsgCreatePermanentLockedAccountResponse {
-  return {};
-}
-export const MsgCreatePermanentLockedAccountResponse = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse",
-  aminoType: "cosmos-sdk/MsgCreatePermanentLockedAccountResponse",
-  encode(_: MsgCreatePermanentLockedAccountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreatePermanentLockedAccountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreatePermanentLockedAccountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreatePermanentLockedAccountResponse {
-    return {};
-  },
-  toJSON(_: MsgCreatePermanentLockedAccountResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreatePermanentLockedAccountResponse>): MsgCreatePermanentLockedAccountResponse {
-    const message = createBaseMsgCreatePermanentLockedAccountResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreatePermanentLockedAccountResponseSDKType): MsgCreatePermanentLockedAccountResponse {
-    return {};
-  },
-  toSDK(_: MsgCreatePermanentLockedAccountResponse): MsgCreatePermanentLockedAccountResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreatePermanentLockedAccountResponseAmino): MsgCreatePermanentLockedAccountResponse {
-    return {};
-  },
-  toAmino(_: MsgCreatePermanentLockedAccountResponse): MsgCreatePermanentLockedAccountResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreatePermanentLockedAccountResponseAminoMsg): MsgCreatePermanentLockedAccountResponse {
-    return MsgCreatePermanentLockedAccountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreatePermanentLockedAccountResponse): MsgCreatePermanentLockedAccountResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreatePermanentLockedAccountResponse",
-      value: MsgCreatePermanentLockedAccountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreatePermanentLockedAccountResponseProtoMsg): MsgCreatePermanentLockedAccountResponse {
-    return MsgCreatePermanentLockedAccountResponse.decode(message.value);
-  },
-  toProto(message: MsgCreatePermanentLockedAccountResponse): Uint8Array {
-    return MsgCreatePermanentLockedAccountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreatePermanentLockedAccountResponse): MsgCreatePermanentLockedAccountResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse",
-      value: MsgCreatePermanentLockedAccountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreatePeriodicVestingAccount(): MsgCreatePeriodicVestingAccount {
-  return {
-    fromAddress: "",
-    toAddress: "",
-    startTime: BigInt(0),
-    vestingPeriods: []
-  };
-}
-export const MsgCreatePeriodicVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-  aminoType: "cosmos-sdk/MsgCreatePeriodicVestingAccount",
-  encode(message: MsgCreatePeriodicVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.fromAddress !== "") {
-      writer.uint32(10).string(message.fromAddress);
-    }
-    if (message.toAddress !== "") {
-      writer.uint32(18).string(message.toAddress);
-    }
-    if (message.startTime !== BigInt(0)) {
-      writer.uint32(24).int64(message.startTime);
-    }
-    for (const v of message.vestingPeriods) {
-      Period.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreatePeriodicVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.fromAddress = reader.string();
-          break;
-        case 2:
-          message.toAddress = reader.string();
-          break;
-        case 3:
-          message.startTime = reader.int64();
-          break;
-        case 4:
-          message.vestingPeriods.push(Period.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreatePeriodicVestingAccount {
-    return {
-      fromAddress: isSet(object.fromAddress) ? String(object.fromAddress) : "",
-      toAddress: isSet(object.toAddress) ? String(object.toAddress) : "",
-      startTime: isSet(object.startTime) ? BigInt(object.startTime.toString()) : BigInt(0),
-      vestingPeriods: Array.isArray(object?.vestingPeriods) ? object.vestingPeriods.map((e: any) => Period.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgCreatePeriodicVestingAccount): unknown {
-    const obj: any = {};
-    message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);
-    message.toAddress !== undefined && (obj.toAddress = message.toAddress);
-    message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());
-    if (message.vestingPeriods) {
-      obj.vestingPeriods = message.vestingPeriods.map(e => e ? Period.toJSON(e) : undefined);
-    } else {
-      obj.vestingPeriods = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreatePeriodicVestingAccount>): MsgCreatePeriodicVestingAccount {
-    const message = createBaseMsgCreatePeriodicVestingAccount();
-    message.fromAddress = object.fromAddress ?? "";
-    message.toAddress = object.toAddress ?? "";
-    message.startTime = object.startTime !== undefined && object.startTime !== null ? BigInt(object.startTime.toString()) : BigInt(0);
-    message.vestingPeriods = object.vestingPeriods?.map(e => Period.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgCreatePeriodicVestingAccountSDKType): MsgCreatePeriodicVestingAccount {
-    return {
-      fromAddress: object?.from_address,
-      toAddress: object?.to_address,
-      startTime: object?.start_time,
-      vestingPeriods: Array.isArray(object?.vesting_periods) ? object.vesting_periods.map((e: any) => Period.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgCreatePeriodicVestingAccount): MsgCreatePeriodicVestingAccountSDKType {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    obj.start_time = message.startTime;
-    if (message.vestingPeriods) {
-      obj.vesting_periods = message.vestingPeriods.map(e => e ? Period.toSDK(e) : undefined);
-    } else {
-      obj.vesting_periods = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgCreatePeriodicVestingAccountAmino): MsgCreatePeriodicVestingAccount {
-    return {
-      fromAddress: object.from_address,
-      toAddress: object.to_address,
-      startTime: BigInt(object.start_time),
-      vestingPeriods: Array.isArray(object?.vesting_periods) ? object.vesting_periods.map((e: any) => Period.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgCreatePeriodicVestingAccount): MsgCreatePeriodicVestingAccountAmino {
-    const obj: any = {};
-    obj.from_address = message.fromAddress;
-    obj.to_address = message.toAddress;
-    obj.start_time = message.startTime ? message.startTime.toString() : undefined;
-    if (message.vestingPeriods) {
-      obj.vesting_periods = message.vestingPeriods.map(e => e ? Period.toAmino(e) : undefined);
-    } else {
-      obj.vesting_periods = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreatePeriodicVestingAccountAminoMsg): MsgCreatePeriodicVestingAccount {
-    return MsgCreatePeriodicVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreatePeriodicVestingAccount): MsgCreatePeriodicVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreatePeriodicVestingAccount",
-      value: MsgCreatePeriodicVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreatePeriodicVestingAccountProtoMsg): MsgCreatePeriodicVestingAccount {
-    return MsgCreatePeriodicVestingAccount.decode(message.value);
-  },
-  toProto(message: MsgCreatePeriodicVestingAccount): Uint8Array {
-    return MsgCreatePeriodicVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreatePeriodicVestingAccount): MsgCreatePeriodicVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",
-      value: MsgCreatePeriodicVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreatePeriodicVestingAccountResponse(): MsgCreatePeriodicVestingAccountResponse {
-  return {};
-}
-export const MsgCreatePeriodicVestingAccountResponse = {
-  typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse",
-  aminoType: "cosmos-sdk/MsgCreatePeriodicVestingAccountResponse",
-  encode(_: MsgCreatePeriodicVestingAccountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreatePeriodicVestingAccountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreatePeriodicVestingAccountResponse {
-    return {};
-  },
-  toJSON(_: MsgCreatePeriodicVestingAccountResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreatePeriodicVestingAccountResponse>): MsgCreatePeriodicVestingAccountResponse {
-    const message = createBaseMsgCreatePeriodicVestingAccountResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreatePeriodicVestingAccountResponseSDKType): MsgCreatePeriodicVestingAccountResponse {
-    return {};
-  },
-  toSDK(_: MsgCreatePeriodicVestingAccountResponse): MsgCreatePeriodicVestingAccountResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreatePeriodicVestingAccountResponseAmino): MsgCreatePeriodicVestingAccountResponse {
-    return {};
-  },
-  toAmino(_: MsgCreatePeriodicVestingAccountResponse): MsgCreatePeriodicVestingAccountResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreatePeriodicVestingAccountResponseAminoMsg): MsgCreatePeriodicVestingAccountResponse {
-    return MsgCreatePeriodicVestingAccountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreatePeriodicVestingAccountResponse): MsgCreatePeriodicVestingAccountResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreatePeriodicVestingAccountResponse",
-      value: MsgCreatePeriodicVestingAccountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreatePeriodicVestingAccountResponseProtoMsg): MsgCreatePeriodicVestingAccountResponse {
-    return MsgCreatePeriodicVestingAccountResponse.decode(message.value);
-  },
-  toProto(message: MsgCreatePeriodicVestingAccountResponse): Uint8Array {
-    return MsgCreatePeriodicVestingAccountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreatePeriodicVestingAccountResponse): MsgCreatePeriodicVestingAccountResponseProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse",
-      value: MsgCreatePeriodicVestingAccountResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos/vesting/v1beta1/vesting.ts b/examples/injective/src/codegen/cosmos/vesting/v1beta1/vesting.ts
deleted file mode 100644
index 0d85477d..00000000
--- a/examples/injective/src/codegen/cosmos/vesting/v1beta1/vesting.ts
+++ /dev/null
@@ -1,905 +0,0 @@
-import { BaseAccount, BaseAccountAmino, BaseAccountSDKType } from "../../auth/v1beta1/auth";
-import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * BaseVestingAccount implements the VestingAccount interface. It contains all
- * the necessary fields needed for any vesting account implementation.
- */
-export interface BaseVestingAccount {
-  baseAccount: BaseAccount | undefined;
-  originalVesting: Coin[];
-  delegatedFree: Coin[];
-  delegatedVesting: Coin[];
-  endTime: bigint;
-}
-export interface BaseVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.BaseVestingAccount";
-  value: Uint8Array;
-}
-/**
- * BaseVestingAccount implements the VestingAccount interface. It contains all
- * the necessary fields needed for any vesting account implementation.
- */
-export interface BaseVestingAccountAmino {
-  base_account?: BaseAccountAmino | undefined;
-  original_vesting: CoinAmino[];
-  delegated_free: CoinAmino[];
-  delegated_vesting: CoinAmino[];
-  end_time: string;
-}
-export interface BaseVestingAccountAminoMsg {
-  type: "cosmos-sdk/BaseVestingAccount";
-  value: BaseVestingAccountAmino;
-}
-/**
- * BaseVestingAccount implements the VestingAccount interface. It contains all
- * the necessary fields needed for any vesting account implementation.
- */
-export interface BaseVestingAccountSDKType {
-  base_account: BaseAccountSDKType | undefined;
-  original_vesting: CoinSDKType[];
-  delegated_free: CoinSDKType[];
-  delegated_vesting: CoinSDKType[];
-  end_time: bigint;
-}
-/**
- * ContinuousVestingAccount implements the VestingAccount interface. It
- * continuously vests by unlocking coins linearly with respect to time.
- */
-export interface ContinuousVestingAccount {
-  baseVestingAccount: BaseVestingAccount | undefined;
-  startTime: bigint;
-}
-export interface ContinuousVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.ContinuousVestingAccount";
-  value: Uint8Array;
-}
-/**
- * ContinuousVestingAccount implements the VestingAccount interface. It
- * continuously vests by unlocking coins linearly with respect to time.
- */
-export interface ContinuousVestingAccountAmino {
-  base_vesting_account?: BaseVestingAccountAmino | undefined;
-  start_time: string;
-}
-export interface ContinuousVestingAccountAminoMsg {
-  type: "cosmos-sdk/ContinuousVestingAccount";
-  value: ContinuousVestingAccountAmino;
-}
-/**
- * ContinuousVestingAccount implements the VestingAccount interface. It
- * continuously vests by unlocking coins linearly with respect to time.
- */
-export interface ContinuousVestingAccountSDKType {
-  base_vesting_account: BaseVestingAccountSDKType | undefined;
-  start_time: bigint;
-}
-/**
- * DelayedVestingAccount implements the VestingAccount interface. It vests all
- * coins after a specific time, but non prior. In other words, it keeps them
- * locked until a specified time.
- */
-export interface DelayedVestingAccount {
-  baseVestingAccount: BaseVestingAccount | undefined;
-}
-export interface DelayedVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.DelayedVestingAccount";
-  value: Uint8Array;
-}
-/**
- * DelayedVestingAccount implements the VestingAccount interface. It vests all
- * coins after a specific time, but non prior. In other words, it keeps them
- * locked until a specified time.
- */
-export interface DelayedVestingAccountAmino {
-  base_vesting_account?: BaseVestingAccountAmino | undefined;
-}
-export interface DelayedVestingAccountAminoMsg {
-  type: "cosmos-sdk/DelayedVestingAccount";
-  value: DelayedVestingAccountAmino;
-}
-/**
- * DelayedVestingAccount implements the VestingAccount interface. It vests all
- * coins after a specific time, but non prior. In other words, it keeps them
- * locked until a specified time.
- */
-export interface DelayedVestingAccountSDKType {
-  base_vesting_account: BaseVestingAccountSDKType | undefined;
-}
-/** Period defines a length of time and amount of coins that will vest. */
-export interface Period {
-  length: bigint;
-  amount: Coin[];
-}
-export interface PeriodProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.Period";
-  value: Uint8Array;
-}
-/** Period defines a length of time and amount of coins that will vest. */
-export interface PeriodAmino {
-  length: string;
-  amount: CoinAmino[];
-}
-export interface PeriodAminoMsg {
-  type: "cosmos-sdk/Period";
-  value: PeriodAmino;
-}
-/** Period defines a length of time and amount of coins that will vest. */
-export interface PeriodSDKType {
-  length: bigint;
-  amount: CoinSDKType[];
-}
-/**
- * PeriodicVestingAccount implements the VestingAccount interface. It
- * periodically vests by unlocking coins during each specified period.
- */
-export interface PeriodicVestingAccount {
-  baseVestingAccount: BaseVestingAccount | undefined;
-  startTime: bigint;
-  vestingPeriods: Period[];
-}
-export interface PeriodicVestingAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.PeriodicVestingAccount";
-  value: Uint8Array;
-}
-/**
- * PeriodicVestingAccount implements the VestingAccount interface. It
- * periodically vests by unlocking coins during each specified period.
- */
-export interface PeriodicVestingAccountAmino {
-  base_vesting_account?: BaseVestingAccountAmino | undefined;
-  start_time: string;
-  vesting_periods: PeriodAmino[];
-}
-export interface PeriodicVestingAccountAminoMsg {
-  type: "cosmos-sdk/PeriodicVestingAccount";
-  value: PeriodicVestingAccountAmino;
-}
-/**
- * PeriodicVestingAccount implements the VestingAccount interface. It
- * periodically vests by unlocking coins during each specified period.
- */
-export interface PeriodicVestingAccountSDKType {
-  base_vesting_account: BaseVestingAccountSDKType | undefined;
-  start_time: bigint;
-  vesting_periods: PeriodSDKType[];
-}
-/**
- * PermanentLockedAccount implements the VestingAccount interface. It does
- * not ever release coins, locking them indefinitely. Coins in this account can
- * still be used for delegating and for governance votes even while locked.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface PermanentLockedAccount {
-  baseVestingAccount: BaseVestingAccount | undefined;
-}
-export interface PermanentLockedAccountProtoMsg {
-  typeUrl: "/cosmos.vesting.v1beta1.PermanentLockedAccount";
-  value: Uint8Array;
-}
-/**
- * PermanentLockedAccount implements the VestingAccount interface. It does
- * not ever release coins, locking them indefinitely. Coins in this account can
- * still be used for delegating and for governance votes even while locked.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface PermanentLockedAccountAmino {
-  base_vesting_account?: BaseVestingAccountAmino | undefined;
-}
-export interface PermanentLockedAccountAminoMsg {
-  type: "cosmos-sdk/PermanentLockedAccount";
-  value: PermanentLockedAccountAmino;
-}
-/**
- * PermanentLockedAccount implements the VestingAccount interface. It does
- * not ever release coins, locking them indefinitely. Coins in this account can
- * still be used for delegating and for governance votes even while locked.
- * 
- * Since: cosmos-sdk 0.43
- */
-export interface PermanentLockedAccountSDKType {
-  base_vesting_account: BaseVestingAccountSDKType | undefined;
-}
-function createBaseBaseVestingAccount(): BaseVestingAccount {
-  return {
-    baseAccount: BaseAccount.fromPartial({}),
-    originalVesting: [],
-    delegatedFree: [],
-    delegatedVesting: [],
-    endTime: BigInt(0)
-  };
-}
-export const BaseVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.BaseVestingAccount",
-  aminoType: "cosmos-sdk/BaseVestingAccount",
-  encode(message: BaseVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseAccount !== undefined) {
-      BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.originalVesting) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.delegatedFree) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.delegatedVesting) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.endTime !== BigInt(0)) {
-      writer.uint32(40).int64(message.endTime);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BaseVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBaseVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseAccount = BaseAccount.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.originalVesting.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.delegatedFree.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.delegatedVesting.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.endTime = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BaseVestingAccount {
-    return {
-      baseAccount: isSet(object.baseAccount) ? BaseAccount.fromJSON(object.baseAccount) : undefined,
-      originalVesting: Array.isArray(object?.originalVesting) ? object.originalVesting.map((e: any) => Coin.fromJSON(e)) : [],
-      delegatedFree: Array.isArray(object?.delegatedFree) ? object.delegatedFree.map((e: any) => Coin.fromJSON(e)) : [],
-      delegatedVesting: Array.isArray(object?.delegatedVesting) ? object.delegatedVesting.map((e: any) => Coin.fromJSON(e)) : [],
-      endTime: isSet(object.endTime) ? BigInt(object.endTime.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: BaseVestingAccount): unknown {
-    const obj: any = {};
-    message.baseAccount !== undefined && (obj.baseAccount = message.baseAccount ? BaseAccount.toJSON(message.baseAccount) : undefined);
-    if (message.originalVesting) {
-      obj.originalVesting = message.originalVesting.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.originalVesting = [];
-    }
-    if (message.delegatedFree) {
-      obj.delegatedFree = message.delegatedFree.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.delegatedFree = [];
-    }
-    if (message.delegatedVesting) {
-      obj.delegatedVesting = message.delegatedVesting.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.delegatedVesting = [];
-    }
-    message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BaseVestingAccount>): BaseVestingAccount {
-    const message = createBaseBaseVestingAccount();
-    message.baseAccount = object.baseAccount !== undefined && object.baseAccount !== null ? BaseAccount.fromPartial(object.baseAccount) : undefined;
-    message.originalVesting = object.originalVesting?.map(e => Coin.fromPartial(e)) || [];
-    message.delegatedFree = object.delegatedFree?.map(e => Coin.fromPartial(e)) || [];
-    message.delegatedVesting = object.delegatedVesting?.map(e => Coin.fromPartial(e)) || [];
-    message.endTime = object.endTime !== undefined && object.endTime !== null ? BigInt(object.endTime.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: BaseVestingAccountSDKType): BaseVestingAccount {
-    return {
-      baseAccount: object.base_account ? BaseAccount.fromSDK(object.base_account) : undefined,
-      originalVesting: Array.isArray(object?.original_vesting) ? object.original_vesting.map((e: any) => Coin.fromSDK(e)) : [],
-      delegatedFree: Array.isArray(object?.delegated_free) ? object.delegated_free.map((e: any) => Coin.fromSDK(e)) : [],
-      delegatedVesting: Array.isArray(object?.delegated_vesting) ? object.delegated_vesting.map((e: any) => Coin.fromSDK(e)) : [],
-      endTime: object?.end_time
-    };
-  },
-  toSDK(message: BaseVestingAccount): BaseVestingAccountSDKType {
-    const obj: any = {};
-    message.baseAccount !== undefined && (obj.base_account = message.baseAccount ? BaseAccount.toSDK(message.baseAccount) : undefined);
-    if (message.originalVesting) {
-      obj.original_vesting = message.originalVesting.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.original_vesting = [];
-    }
-    if (message.delegatedFree) {
-      obj.delegated_free = message.delegatedFree.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.delegated_free = [];
-    }
-    if (message.delegatedVesting) {
-      obj.delegated_vesting = message.delegatedVesting.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.delegated_vesting = [];
-    }
-    obj.end_time = message.endTime;
-    return obj;
-  },
-  fromAmino(object: BaseVestingAccountAmino): BaseVestingAccount {
-    return {
-      baseAccount: object?.base_account ? BaseAccount.fromAmino(object.base_account) : undefined,
-      originalVesting: Array.isArray(object?.original_vesting) ? object.original_vesting.map((e: any) => Coin.fromAmino(e)) : [],
-      delegatedFree: Array.isArray(object?.delegated_free) ? object.delegated_free.map((e: any) => Coin.fromAmino(e)) : [],
-      delegatedVesting: Array.isArray(object?.delegated_vesting) ? object.delegated_vesting.map((e: any) => Coin.fromAmino(e)) : [],
-      endTime: BigInt(object.end_time)
-    };
-  },
-  toAmino(message: BaseVestingAccount): BaseVestingAccountAmino {
-    const obj: any = {};
-    obj.base_account = message.baseAccount ? BaseAccount.toAmino(message.baseAccount) : undefined;
-    if (message.originalVesting) {
-      obj.original_vesting = message.originalVesting.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.original_vesting = [];
-    }
-    if (message.delegatedFree) {
-      obj.delegated_free = message.delegatedFree.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.delegated_free = [];
-    }
-    if (message.delegatedVesting) {
-      obj.delegated_vesting = message.delegatedVesting.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.delegated_vesting = [];
-    }
-    obj.end_time = message.endTime ? message.endTime.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BaseVestingAccountAminoMsg): BaseVestingAccount {
-    return BaseVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: BaseVestingAccount): BaseVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/BaseVestingAccount",
-      value: BaseVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: BaseVestingAccountProtoMsg): BaseVestingAccount {
-    return BaseVestingAccount.decode(message.value);
-  },
-  toProto(message: BaseVestingAccount): Uint8Array {
-    return BaseVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: BaseVestingAccount): BaseVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.BaseVestingAccount",
-      value: BaseVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseContinuousVestingAccount(): ContinuousVestingAccount {
-  return {
-    baseVestingAccount: BaseVestingAccount.fromPartial({}),
-    startTime: BigInt(0)
-  };
-}
-export const ContinuousVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.ContinuousVestingAccount",
-  aminoType: "cosmos-sdk/ContinuousVestingAccount",
-  encode(message: ContinuousVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseVestingAccount !== undefined) {
-      BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.startTime !== BigInt(0)) {
-      writer.uint32(16).int64(message.startTime);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ContinuousVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseContinuousVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.startTime = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ContinuousVestingAccount {
-    return {
-      baseVestingAccount: isSet(object.baseVestingAccount) ? BaseVestingAccount.fromJSON(object.baseVestingAccount) : undefined,
-      startTime: isSet(object.startTime) ? BigInt(object.startTime.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ContinuousVestingAccount): unknown {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.baseVestingAccount = message.baseVestingAccount ? BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined);
-    message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ContinuousVestingAccount>): ContinuousVestingAccount {
-    const message = createBaseContinuousVestingAccount();
-    message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined;
-    message.startTime = object.startTime !== undefined && object.startTime !== null ? BigInt(object.startTime.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ContinuousVestingAccountSDKType): ContinuousVestingAccount {
-    return {
-      baseVestingAccount: object.base_vesting_account ? BaseVestingAccount.fromSDK(object.base_vesting_account) : undefined,
-      startTime: object?.start_time
-    };
-  },
-  toSDK(message: ContinuousVestingAccount): ContinuousVestingAccountSDKType {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toSDK(message.baseVestingAccount) : undefined);
-    obj.start_time = message.startTime;
-    return obj;
-  },
-  fromAmino(object: ContinuousVestingAccountAmino): ContinuousVestingAccount {
-    return {
-      baseVestingAccount: object?.base_vesting_account ? BaseVestingAccount.fromAmino(object.base_vesting_account) : undefined,
-      startTime: BigInt(object.start_time)
-    };
-  },
-  toAmino(message: ContinuousVestingAccount): ContinuousVestingAccountAmino {
-    const obj: any = {};
-    obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toAmino(message.baseVestingAccount) : undefined;
-    obj.start_time = message.startTime ? message.startTime.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ContinuousVestingAccountAminoMsg): ContinuousVestingAccount {
-    return ContinuousVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: ContinuousVestingAccount): ContinuousVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/ContinuousVestingAccount",
-      value: ContinuousVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ContinuousVestingAccountProtoMsg): ContinuousVestingAccount {
-    return ContinuousVestingAccount.decode(message.value);
-  },
-  toProto(message: ContinuousVestingAccount): Uint8Array {
-    return ContinuousVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: ContinuousVestingAccount): ContinuousVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.ContinuousVestingAccount",
-      value: ContinuousVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseDelayedVestingAccount(): DelayedVestingAccount {
-  return {
-    baseVestingAccount: BaseVestingAccount.fromPartial({})
-  };
-}
-export const DelayedVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.DelayedVestingAccount",
-  aminoType: "cosmos-sdk/DelayedVestingAccount",
-  encode(message: DelayedVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseVestingAccount !== undefined) {
-      BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DelayedVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelayedVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DelayedVestingAccount {
-    return {
-      baseVestingAccount: isSet(object.baseVestingAccount) ? BaseVestingAccount.fromJSON(object.baseVestingAccount) : undefined
-    };
-  },
-  toJSON(message: DelayedVestingAccount): unknown {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.baseVestingAccount = message.baseVestingAccount ? BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DelayedVestingAccount>): DelayedVestingAccount {
-    const message = createBaseDelayedVestingAccount();
-    message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined;
-    return message;
-  },
-  fromSDK(object: DelayedVestingAccountSDKType): DelayedVestingAccount {
-    return {
-      baseVestingAccount: object.base_vesting_account ? BaseVestingAccount.fromSDK(object.base_vesting_account) : undefined
-    };
-  },
-  toSDK(message: DelayedVestingAccount): DelayedVestingAccountSDKType {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toSDK(message.baseVestingAccount) : undefined);
-    return obj;
-  },
-  fromAmino(object: DelayedVestingAccountAmino): DelayedVestingAccount {
-    return {
-      baseVestingAccount: object?.base_vesting_account ? BaseVestingAccount.fromAmino(object.base_vesting_account) : undefined
-    };
-  },
-  toAmino(message: DelayedVestingAccount): DelayedVestingAccountAmino {
-    const obj: any = {};
-    obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toAmino(message.baseVestingAccount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DelayedVestingAccountAminoMsg): DelayedVestingAccount {
-    return DelayedVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: DelayedVestingAccount): DelayedVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/DelayedVestingAccount",
-      value: DelayedVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelayedVestingAccountProtoMsg): DelayedVestingAccount {
-    return DelayedVestingAccount.decode(message.value);
-  },
-  toProto(message: DelayedVestingAccount): Uint8Array {
-    return DelayedVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: DelayedVestingAccount): DelayedVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.DelayedVestingAccount",
-      value: DelayedVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBasePeriod(): Period {
-  return {
-    length: BigInt(0),
-    amount: []
-  };
-}
-export const Period = {
-  typeUrl: "/cosmos.vesting.v1beta1.Period",
-  aminoType: "cosmos-sdk/Period",
-  encode(message: Period, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.length !== BigInt(0)) {
-      writer.uint32(8).int64(message.length);
-    }
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Period {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeriod();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.length = reader.int64();
-          break;
-        case 2:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Period {
-    return {
-      length: isSet(object.length) ? BigInt(object.length.toString()) : BigInt(0),
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Period): unknown {
-    const obj: any = {};
-    message.length !== undefined && (obj.length = (message.length || BigInt(0)).toString());
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Period>): Period {
-    const message = createBasePeriod();
-    message.length = object.length !== undefined && object.length !== null ? BigInt(object.length.toString()) : BigInt(0);
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: PeriodSDKType): Period {
-    return {
-      length: object?.length,
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Period): PeriodSDKType {
-    const obj: any = {};
-    obj.length = message.length;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PeriodAmino): Period {
-    return {
-      length: BigInt(object.length),
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Period): PeriodAmino {
-    const obj: any = {};
-    obj.length = message.length ? message.length.toString() : undefined;
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PeriodAminoMsg): Period {
-    return Period.fromAmino(object.value);
-  },
-  toAminoMsg(message: Period): PeriodAminoMsg {
-    return {
-      type: "cosmos-sdk/Period",
-      value: Period.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PeriodProtoMsg): Period {
-    return Period.decode(message.value);
-  },
-  toProto(message: Period): Uint8Array {
-    return Period.encode(message).finish();
-  },
-  toProtoMsg(message: Period): PeriodProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.Period",
-      value: Period.encode(message).finish()
-    };
-  }
-};
-function createBasePeriodicVestingAccount(): PeriodicVestingAccount {
-  return {
-    baseVestingAccount: BaseVestingAccount.fromPartial({}),
-    startTime: BigInt(0),
-    vestingPeriods: []
-  };
-}
-export const PeriodicVestingAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.PeriodicVestingAccount",
-  aminoType: "cosmos-sdk/PeriodicVestingAccount",
-  encode(message: PeriodicVestingAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseVestingAccount !== undefined) {
-      BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.startTime !== BigInt(0)) {
-      writer.uint32(16).int64(message.startTime);
-    }
-    for (const v of message.vestingPeriods) {
-      Period.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PeriodicVestingAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeriodicVestingAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.startTime = reader.int64();
-          break;
-        case 3:
-          message.vestingPeriods.push(Period.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PeriodicVestingAccount {
-    return {
-      baseVestingAccount: isSet(object.baseVestingAccount) ? BaseVestingAccount.fromJSON(object.baseVestingAccount) : undefined,
-      startTime: isSet(object.startTime) ? BigInt(object.startTime.toString()) : BigInt(0),
-      vestingPeriods: Array.isArray(object?.vestingPeriods) ? object.vestingPeriods.map((e: any) => Period.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: PeriodicVestingAccount): unknown {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.baseVestingAccount = message.baseVestingAccount ? BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined);
-    message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());
-    if (message.vestingPeriods) {
-      obj.vestingPeriods = message.vestingPeriods.map(e => e ? Period.toJSON(e) : undefined);
-    } else {
-      obj.vestingPeriods = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PeriodicVestingAccount>): PeriodicVestingAccount {
-    const message = createBasePeriodicVestingAccount();
-    message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined;
-    message.startTime = object.startTime !== undefined && object.startTime !== null ? BigInt(object.startTime.toString()) : BigInt(0);
-    message.vestingPeriods = object.vestingPeriods?.map(e => Period.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: PeriodicVestingAccountSDKType): PeriodicVestingAccount {
-    return {
-      baseVestingAccount: object.base_vesting_account ? BaseVestingAccount.fromSDK(object.base_vesting_account) : undefined,
-      startTime: object?.start_time,
-      vestingPeriods: Array.isArray(object?.vesting_periods) ? object.vesting_periods.map((e: any) => Period.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: PeriodicVestingAccount): PeriodicVestingAccountSDKType {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toSDK(message.baseVestingAccount) : undefined);
-    obj.start_time = message.startTime;
-    if (message.vestingPeriods) {
-      obj.vesting_periods = message.vestingPeriods.map(e => e ? Period.toSDK(e) : undefined);
-    } else {
-      obj.vesting_periods = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PeriodicVestingAccountAmino): PeriodicVestingAccount {
-    return {
-      baseVestingAccount: object?.base_vesting_account ? BaseVestingAccount.fromAmino(object.base_vesting_account) : undefined,
-      startTime: BigInt(object.start_time),
-      vestingPeriods: Array.isArray(object?.vesting_periods) ? object.vesting_periods.map((e: any) => Period.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: PeriodicVestingAccount): PeriodicVestingAccountAmino {
-    const obj: any = {};
-    obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toAmino(message.baseVestingAccount) : undefined;
-    obj.start_time = message.startTime ? message.startTime.toString() : undefined;
-    if (message.vestingPeriods) {
-      obj.vesting_periods = message.vestingPeriods.map(e => e ? Period.toAmino(e) : undefined);
-    } else {
-      obj.vesting_periods = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PeriodicVestingAccountAminoMsg): PeriodicVestingAccount {
-    return PeriodicVestingAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: PeriodicVestingAccount): PeriodicVestingAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/PeriodicVestingAccount",
-      value: PeriodicVestingAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PeriodicVestingAccountProtoMsg): PeriodicVestingAccount {
-    return PeriodicVestingAccount.decode(message.value);
-  },
-  toProto(message: PeriodicVestingAccount): Uint8Array {
-    return PeriodicVestingAccount.encode(message).finish();
-  },
-  toProtoMsg(message: PeriodicVestingAccount): PeriodicVestingAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.PeriodicVestingAccount",
-      value: PeriodicVestingAccount.encode(message).finish()
-    };
-  }
-};
-function createBasePermanentLockedAccount(): PermanentLockedAccount {
-  return {
-    baseVestingAccount: BaseVestingAccount.fromPartial({})
-  };
-}
-export const PermanentLockedAccount = {
-  typeUrl: "/cosmos.vesting.v1beta1.PermanentLockedAccount",
-  aminoType: "cosmos-sdk/PermanentLockedAccount",
-  encode(message: PermanentLockedAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseVestingAccount !== undefined) {
-      BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PermanentLockedAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePermanentLockedAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PermanentLockedAccount {
-    return {
-      baseVestingAccount: isSet(object.baseVestingAccount) ? BaseVestingAccount.fromJSON(object.baseVestingAccount) : undefined
-    };
-  },
-  toJSON(message: PermanentLockedAccount): unknown {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.baseVestingAccount = message.baseVestingAccount ? BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PermanentLockedAccount>): PermanentLockedAccount {
-    const message = createBasePermanentLockedAccount();
-    message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined;
-    return message;
-  },
-  fromSDK(object: PermanentLockedAccountSDKType): PermanentLockedAccount {
-    return {
-      baseVestingAccount: object.base_vesting_account ? BaseVestingAccount.fromSDK(object.base_vesting_account) : undefined
-    };
-  },
-  toSDK(message: PermanentLockedAccount): PermanentLockedAccountSDKType {
-    const obj: any = {};
-    message.baseVestingAccount !== undefined && (obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toSDK(message.baseVestingAccount) : undefined);
-    return obj;
-  },
-  fromAmino(object: PermanentLockedAccountAmino): PermanentLockedAccount {
-    return {
-      baseVestingAccount: object?.base_vesting_account ? BaseVestingAccount.fromAmino(object.base_vesting_account) : undefined
-    };
-  },
-  toAmino(message: PermanentLockedAccount): PermanentLockedAccountAmino {
-    const obj: any = {};
-    obj.base_vesting_account = message.baseVestingAccount ? BaseVestingAccount.toAmino(message.baseVestingAccount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PermanentLockedAccountAminoMsg): PermanentLockedAccount {
-    return PermanentLockedAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: PermanentLockedAccount): PermanentLockedAccountAminoMsg {
-    return {
-      type: "cosmos-sdk/PermanentLockedAccount",
-      value: PermanentLockedAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PermanentLockedAccountProtoMsg): PermanentLockedAccount {
-    return PermanentLockedAccount.decode(message.value);
-  },
-  toProto(message: PermanentLockedAccount): Uint8Array {
-    return PermanentLockedAccount.encode(message).finish();
-  },
-  toProtoMsg(message: PermanentLockedAccount): PermanentLockedAccountProtoMsg {
-    return {
-      typeUrl: "/cosmos.vesting.v1beta1.PermanentLockedAccount",
-      value: PermanentLockedAccount.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos_proto/bundle.ts b/examples/injective/src/codegen/cosmos_proto/bundle.ts
deleted file mode 100644
index fd490026..00000000
--- a/examples/injective/src/codegen/cosmos_proto/bundle.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as _1 from "./cosmos";
-export const cosmos_proto = {
-  ..._1
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmos_proto/cosmos.ts b/examples/injective/src/codegen/cosmos_proto/cosmos.ts
deleted file mode 100644
index 98ca78a2..00000000
--- a/examples/injective/src/codegen/cosmos_proto/cosmos.ts
+++ /dev/null
@@ -1,401 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../binary";
-import { isSet, DeepPartial } from "../helpers";
-export enum ScalarType {
-  SCALAR_TYPE_UNSPECIFIED = 0,
-  SCALAR_TYPE_STRING = 1,
-  SCALAR_TYPE_BYTES = 2,
-  UNRECOGNIZED = -1,
-}
-export const ScalarTypeSDKType = ScalarType;
-export const ScalarTypeAmino = ScalarType;
-export function scalarTypeFromJSON(object: any): ScalarType {
-  switch (object) {
-    case 0:
-    case "SCALAR_TYPE_UNSPECIFIED":
-      return ScalarType.SCALAR_TYPE_UNSPECIFIED;
-    case 1:
-    case "SCALAR_TYPE_STRING":
-      return ScalarType.SCALAR_TYPE_STRING;
-    case 2:
-    case "SCALAR_TYPE_BYTES":
-      return ScalarType.SCALAR_TYPE_BYTES;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ScalarType.UNRECOGNIZED;
-  }
-}
-export function scalarTypeToJSON(object: ScalarType): string {
-  switch (object) {
-    case ScalarType.SCALAR_TYPE_UNSPECIFIED:
-      return "SCALAR_TYPE_UNSPECIFIED";
-    case ScalarType.SCALAR_TYPE_STRING:
-      return "SCALAR_TYPE_STRING";
-    case ScalarType.SCALAR_TYPE_BYTES:
-      return "SCALAR_TYPE_BYTES";
-    case ScalarType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * InterfaceDescriptor describes an interface type to be used with
- * accepts_interface and implements_interface and declared by declare_interface.
- */
-export interface InterfaceDescriptor {
-  /**
-   * name is the name of the interface. It should be a short-name (without
-   * a period) such that the fully qualified name of the interface will be
-   * package.name, ex. for the package a.b and interface named C, the
-   * fully-qualified name will be a.b.C.
-   */
-  name: string;
-  /**
-   * description is a human-readable description of the interface and its
-   * purpose.
-   */
-  description: string;
-}
-export interface InterfaceDescriptorProtoMsg {
-  typeUrl: "/cosmos_proto.InterfaceDescriptor";
-  value: Uint8Array;
-}
-/**
- * InterfaceDescriptor describes an interface type to be used with
- * accepts_interface and implements_interface and declared by declare_interface.
- */
-export interface InterfaceDescriptorAmino {
-  /**
-   * name is the name of the interface. It should be a short-name (without
-   * a period) such that the fully qualified name of the interface will be
-   * package.name, ex. for the package a.b and interface named C, the
-   * fully-qualified name will be a.b.C.
-   */
-  name: string;
-  /**
-   * description is a human-readable description of the interface and its
-   * purpose.
-   */
-  description: string;
-}
-export interface InterfaceDescriptorAminoMsg {
-  type: "/cosmos_proto.InterfaceDescriptor";
-  value: InterfaceDescriptorAmino;
-}
-/**
- * InterfaceDescriptor describes an interface type to be used with
- * accepts_interface and implements_interface and declared by declare_interface.
- */
-export interface InterfaceDescriptorSDKType {
-  name: string;
-  description: string;
-}
-/**
- * ScalarDescriptor describes an scalar type to be used with
- * the scalar field option and declared by declare_scalar.
- * Scalars extend simple protobuf built-in types with additional
- * syntax and semantics, for instance to represent big integers.
- * Scalars should ideally define an encoding such that there is only one
- * valid syntactical representation for a given semantic meaning,
- * i.e. the encoding should be deterministic.
- */
-export interface ScalarDescriptor {
-  /**
-   * name is the name of the scalar. It should be a short-name (without
-   * a period) such that the fully qualified name of the scalar will be
-   * package.name, ex. for the package a.b and scalar named C, the
-   * fully-qualified name will be a.b.C.
-   */
-  name: string;
-  /**
-   * description is a human-readable description of the scalar and its
-   * encoding format. For instance a big integer or decimal scalar should
-   * specify precisely the expected encoding format.
-   */
-  description: string;
-  /**
-   * field_type is the type of field with which this scalar can be used.
-   * Scalars can be used with one and only one type of field so that
-   * encoding standards and simple and clear. Currently only string and
-   * bytes fields are supported for scalars.
-   */
-  fieldType: ScalarType[];
-}
-export interface ScalarDescriptorProtoMsg {
-  typeUrl: "/cosmos_proto.ScalarDescriptor";
-  value: Uint8Array;
-}
-/**
- * ScalarDescriptor describes an scalar type to be used with
- * the scalar field option and declared by declare_scalar.
- * Scalars extend simple protobuf built-in types with additional
- * syntax and semantics, for instance to represent big integers.
- * Scalars should ideally define an encoding such that there is only one
- * valid syntactical representation for a given semantic meaning,
- * i.e. the encoding should be deterministic.
- */
-export interface ScalarDescriptorAmino {
-  /**
-   * name is the name of the scalar. It should be a short-name (without
-   * a period) such that the fully qualified name of the scalar will be
-   * package.name, ex. for the package a.b and scalar named C, the
-   * fully-qualified name will be a.b.C.
-   */
-  name: string;
-  /**
-   * description is a human-readable description of the scalar and its
-   * encoding format. For instance a big integer or decimal scalar should
-   * specify precisely the expected encoding format.
-   */
-  description: string;
-  /**
-   * field_type is the type of field with which this scalar can be used.
-   * Scalars can be used with one and only one type of field so that
-   * encoding standards and simple and clear. Currently only string and
-   * bytes fields are supported for scalars.
-   */
-  field_type: ScalarType[];
-}
-export interface ScalarDescriptorAminoMsg {
-  type: "/cosmos_proto.ScalarDescriptor";
-  value: ScalarDescriptorAmino;
-}
-/**
- * ScalarDescriptor describes an scalar type to be used with
- * the scalar field option and declared by declare_scalar.
- * Scalars extend simple protobuf built-in types with additional
- * syntax and semantics, for instance to represent big integers.
- * Scalars should ideally define an encoding such that there is only one
- * valid syntactical representation for a given semantic meaning,
- * i.e. the encoding should be deterministic.
- */
-export interface ScalarDescriptorSDKType {
-  name: string;
-  description: string;
-  field_type: ScalarType[];
-}
-function createBaseInterfaceDescriptor(): InterfaceDescriptor {
-  return {
-    name: "",
-    description: ""
-  };
-}
-export const InterfaceDescriptor = {
-  typeUrl: "/cosmos_proto.InterfaceDescriptor",
-  encode(message: InterfaceDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InterfaceDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInterfaceDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InterfaceDescriptor {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      description: isSet(object.description) ? String(object.description) : ""
-    };
-  },
-  toJSON(message: InterfaceDescriptor): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.description !== undefined && (obj.description = message.description);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InterfaceDescriptor>): InterfaceDescriptor {
-    const message = createBaseInterfaceDescriptor();
-    message.name = object.name ?? "";
-    message.description = object.description ?? "";
-    return message;
-  },
-  fromSDK(object: InterfaceDescriptorSDKType): InterfaceDescriptor {
-    return {
-      name: object?.name,
-      description: object?.description
-    };
-  },
-  toSDK(message: InterfaceDescriptor): InterfaceDescriptorSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAmino(object: InterfaceDescriptorAmino): InterfaceDescriptor {
-    return {
-      name: object.name,
-      description: object.description
-    };
-  },
-  toAmino(message: InterfaceDescriptor): InterfaceDescriptorAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.description = message.description;
-    return obj;
-  },
-  fromAminoMsg(object: InterfaceDescriptorAminoMsg): InterfaceDescriptor {
-    return InterfaceDescriptor.fromAmino(object.value);
-  },
-  fromProtoMsg(message: InterfaceDescriptorProtoMsg): InterfaceDescriptor {
-    return InterfaceDescriptor.decode(message.value);
-  },
-  toProto(message: InterfaceDescriptor): Uint8Array {
-    return InterfaceDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: InterfaceDescriptor): InterfaceDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos_proto.InterfaceDescriptor",
-      value: InterfaceDescriptor.encode(message).finish()
-    };
-  }
-};
-function createBaseScalarDescriptor(): ScalarDescriptor {
-  return {
-    name: "",
-    description: "",
-    fieldType: []
-  };
-}
-export const ScalarDescriptor = {
-  typeUrl: "/cosmos_proto.ScalarDescriptor",
-  encode(message: ScalarDescriptor, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.fieldType) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ScalarDescriptor {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseScalarDescriptor();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.fieldType.push((reader.int32() as any));
-            }
-          } else {
-            message.fieldType.push((reader.int32() as any));
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ScalarDescriptor {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      fieldType: Array.isArray(object?.fieldType) ? object.fieldType.map((e: any) => scalarTypeFromJSON(e)) : []
-    };
-  },
-  toJSON(message: ScalarDescriptor): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.fieldType) {
-      obj.fieldType = message.fieldType.map(e => scalarTypeToJSON(e));
-    } else {
-      obj.fieldType = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ScalarDescriptor>): ScalarDescriptor {
-    const message = createBaseScalarDescriptor();
-    message.name = object.name ?? "";
-    message.description = object.description ?? "";
-    message.fieldType = object.fieldType?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ScalarDescriptorSDKType): ScalarDescriptor {
-    return {
-      name: object?.name,
-      description: object?.description,
-      fieldType: Array.isArray(object?.field_type) ? object.field_type.map((e: any) => scalarTypeFromJSON(e)) : []
-    };
-  },
-  toSDK(message: ScalarDescriptor): ScalarDescriptorSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.description = message.description;
-    if (message.fieldType) {
-      obj.field_type = message.fieldType.map(e => scalarTypeToJSON(e));
-    } else {
-      obj.field_type = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ScalarDescriptorAmino): ScalarDescriptor {
-    return {
-      name: object.name,
-      description: object.description,
-      fieldType: Array.isArray(object?.field_type) ? object.field_type.map((e: any) => scalarTypeFromJSON(e)) : []
-    };
-  },
-  toAmino(message: ScalarDescriptor): ScalarDescriptorAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.description = message.description;
-    if (message.fieldType) {
-      obj.field_type = message.fieldType.map(e => scalarTypeToJSON(e));
-    } else {
-      obj.field_type = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ScalarDescriptorAminoMsg): ScalarDescriptor {
-    return ScalarDescriptor.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ScalarDescriptorProtoMsg): ScalarDescriptor {
-    return ScalarDescriptor.decode(message.value);
-  },
-  toProto(message: ScalarDescriptor): Uint8Array {
-    return ScalarDescriptor.encode(message).finish();
-  },
-  toProtoMsg(message: ScalarDescriptor): ScalarDescriptorProtoMsg {
-    return {
-      typeUrl: "/cosmos_proto.ScalarDescriptor",
-      value: ScalarDescriptor.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/bundle.ts b/examples/injective/src/codegen/cosmwasm/bundle.ts
deleted file mode 100644
index 6ee41a07..00000000
--- a/examples/injective/src/codegen/cosmwasm/bundle.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import * as _94 from "./wasm/v1/genesis";
-import * as _95 from "./wasm/v1/ibc";
-import * as _96 from "./wasm/v1/proposal";
-import * as _97 from "./wasm/v1/query";
-import * as _98 from "./wasm/v1/tx";
-import * as _99 from "./wasm/v1/types";
-import * as _254 from "./wasm/v1/tx.amino";
-import * as _255 from "./wasm/v1/tx.registry";
-import * as _256 from "./wasm/v1/query.rpc.Query";
-import * as _257 from "./wasm/v1/tx.rpc.msg";
-import * as _311 from "./rpc.query";
-import * as _312 from "./rpc.tx";
-export namespace cosmwasm {
-  export namespace wasm {
-    export const v1 = {
-      ..._94,
-      ..._95,
-      ..._96,
-      ..._97,
-      ..._98,
-      ..._99,
-      ..._254,
-      ..._255,
-      ..._256,
-      ..._257
-    };
-  }
-  export const ClientFactory = {
-    ..._311,
-    ..._312
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/client.ts b/examples/injective/src/codegen/cosmwasm/client.ts
deleted file mode 100644
index 1b6196fc..00000000
--- a/examples/injective/src/codegen/cosmwasm/client.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { GeneratedType, Registry, OfflineSigner } from "@cosmjs/proto-signing";
-import { defaultRegistryTypes, AminoTypes, SigningStargateClient } from "@cosmjs/stargate";
-import { HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import * as cosmwasmWasmV1TxRegistry from "./wasm/v1/tx.registry";
-import * as cosmwasmWasmV1TxAmino from "./wasm/v1/tx.amino";
-export const cosmwasmAminoConverters = {
-  ...cosmwasmWasmV1TxAmino.AminoConverter
-};
-export const cosmwasmProtoRegistry: ReadonlyArray<[string, GeneratedType]> = [...cosmwasmWasmV1TxRegistry.registry];
-export const getSigningCosmwasmClientOptions = ({
-  defaultTypes = defaultRegistryTypes
-}: {
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-} = {}): {
-  registry: Registry;
-  aminoTypes: AminoTypes;
-} => {
-  const registry = new Registry([...defaultTypes, ...cosmwasmProtoRegistry]);
-  const aminoTypes = new AminoTypes({
-    ...cosmwasmAminoConverters
-  });
-  return {
-    registry,
-    aminoTypes
-  };
-};
-export const getSigningCosmwasmClient = async ({
-  rpcEndpoint,
-  signer,
-  defaultTypes = defaultRegistryTypes
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-  signer: OfflineSigner;
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-}) => {
-  const {
-    registry,
-    aminoTypes
-  } = getSigningCosmwasmClientOptions({
-    defaultTypes
-  });
-  const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
-    registry: (registry as any),
-    aminoTypes
-  });
-  return client;
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/rpc.query.ts b/examples/injective/src/codegen/cosmwasm/rpc.query.ts
deleted file mode 100644
index 8fa98029..00000000
--- a/examples/injective/src/codegen/cosmwasm/rpc.query.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import { QueryClient } from "@cosmjs/stargate";
-export const createRPCQueryClient = async ({
-  rpcEndpoint
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-}) => {
-  const tmClient = await Tendermint34Client.connect(rpcEndpoint);
-  const client = new QueryClient(tmClient);
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: (await import("../cosmos/app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      auth: {
-        v1beta1: (await import("../cosmos/auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      authz: {
-        v1beta1: (await import("../cosmos/authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      bank: {
-        v1beta1: (await import("../cosmos/bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      base: {
-        tendermint: {
-          v1beta1: (await import("../cosmos/base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client)
-        }
-      },
-      distribution: {
-        v1beta1: (await import("../cosmos/distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      evidence: {
-        v1beta1: (await import("../cosmos/evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      feegrant: {
-        v1beta1: (await import("../cosmos/feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      gov: {
-        v1: (await import("../cosmos/gov/v1/query.rpc.Query")).createRpcQueryExtension(client),
-        v1beta1: (await import("../cosmos/gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      group: {
-        v1: (await import("../cosmos/group/v1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      mint: {
-        v1beta1: (await import("../cosmos/mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      nft: {
-        v1beta1: (await import("../cosmos/nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      params: {
-        v1beta1: (await import("../cosmos/params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      slashing: {
-        v1beta1: (await import("../cosmos/slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      staking: {
-        v1beta1: (await import("../cosmos/staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      tx: {
-        v1beta1: (await import("../cosmos/tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client)
-      },
-      upgrade: {
-        v1beta1: (await import("../cosmos/upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    },
-    cosmwasm: {
-      wasm: {
-        v1: (await import("./wasm/v1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    }
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/rpc.tx.ts b/examples/injective/src/codegen/cosmwasm/rpc.tx.ts
deleted file mode 100644
index e0ff07d4..00000000
--- a/examples/injective/src/codegen/cosmwasm/rpc.tx.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Rpc } from "../helpers";
-export const createRPCMsgClient = async ({
-  rpc
-}: {
-  rpc: Rpc;
-}) => ({
-  cosmos: {
-    authz: {
-      v1beta1: new (await import("../cosmos/authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    bank: {
-      v1beta1: new (await import("../cosmos/bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    crisis: {
-      v1beta1: new (await import("../cosmos/crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    distribution: {
-      v1beta1: new (await import("../cosmos/distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    evidence: {
-      v1beta1: new (await import("../cosmos/evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    feegrant: {
-      v1beta1: new (await import("../cosmos/feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    gov: {
-      v1: new (await import("../cosmos/gov/v1/tx.rpc.msg")).MsgClientImpl(rpc),
-      v1beta1: new (await import("../cosmos/gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    group: {
-      v1: new (await import("../cosmos/group/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    nft: {
-      v1beta1: new (await import("../cosmos/nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    slashing: {
-      v1beta1: new (await import("../cosmos/slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    staking: {
-      v1beta1: new (await import("../cosmos/staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    upgrade: {
-      v1beta1: new (await import("../cosmos/upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    vesting: {
-      v1beta1: new (await import("../cosmos/vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  },
-  cosmwasm: {
-    wasm: {
-      v1: new (await import("./wasm/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  }
-});
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/genesis.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/genesis.ts
deleted file mode 100644
index a9f27e62..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/genesis.ts
+++ /dev/null
@@ -1,819 +0,0 @@
-import { MsgStoreCode, MsgStoreCodeAmino, MsgStoreCodeSDKType, MsgInstantiateContract, MsgInstantiateContractAmino, MsgInstantiateContractSDKType, MsgExecuteContract, MsgExecuteContractAmino, MsgExecuteContractSDKType } from "./tx";
-import { Params, ParamsAmino, ParamsSDKType, CodeInfo, CodeInfoAmino, CodeInfoSDKType, ContractInfo, ContractInfoAmino, ContractInfoSDKType, Model, ModelAmino, ModelSDKType } from "./types";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/** GenesisState - genesis state of x/wasm */
-export interface GenesisState {
-  params: Params | undefined;
-  codes: Code[];
-  contracts: Contract[];
-  sequences: Sequence[];
-  genMsgs: GenesisState_GenMsgs[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState - genesis state of x/wasm */
-export interface GenesisStateAmino {
-  params?: ParamsAmino | undefined;
-  codes: CodeAmino[];
-  contracts: ContractAmino[];
-  sequences: SequenceAmino[];
-  gen_msgs: GenesisState_GenMsgsAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "wasm/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState - genesis state of x/wasm */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  codes: CodeSDKType[];
-  contracts: ContractSDKType[];
-  sequences: SequenceSDKType[];
-  gen_msgs: GenesisState_GenMsgsSDKType[];
-}
-/**
- * GenMsgs define the messages that can be executed during genesis phase in
- * order. The intention is to have more human readable data that is auditable.
- */
-export interface GenesisState_GenMsgs {
-  storeCode?: MsgStoreCode | undefined;
-  instantiateContract?: MsgInstantiateContract | undefined;
-  executeContract?: MsgExecuteContract | undefined;
-}
-export interface GenesisState_GenMsgsProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.GenMsgs";
-  value: Uint8Array;
-}
-/**
- * GenMsgs define the messages that can be executed during genesis phase in
- * order. The intention is to have more human readable data that is auditable.
- */
-export interface GenesisState_GenMsgsAmino {
-  store_code?: MsgStoreCodeAmino | undefined;
-  instantiate_contract?: MsgInstantiateContractAmino | undefined;
-  execute_contract?: MsgExecuteContractAmino | undefined;
-}
-export interface GenesisState_GenMsgsAminoMsg {
-  type: "wasm/GenMsgs";
-  value: GenesisState_GenMsgsAmino;
-}
-/**
- * GenMsgs define the messages that can be executed during genesis phase in
- * order. The intention is to have more human readable data that is auditable.
- */
-export interface GenesisState_GenMsgsSDKType {
-  store_code?: MsgStoreCodeSDKType | undefined;
-  instantiate_contract?: MsgInstantiateContractSDKType | undefined;
-  execute_contract?: MsgExecuteContractSDKType | undefined;
-}
-/** Code struct encompasses CodeInfo and CodeBytes */
-export interface Code {
-  codeId: bigint;
-  codeInfo: CodeInfo | undefined;
-  codeBytes: Uint8Array;
-  /** Pinned to wasmvm cache */
-  pinned: boolean;
-}
-export interface CodeProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.Code";
-  value: Uint8Array;
-}
-/** Code struct encompasses CodeInfo and CodeBytes */
-export interface CodeAmino {
-  code_id: string;
-  code_info?: CodeInfoAmino | undefined;
-  code_bytes: Uint8Array;
-  /** Pinned to wasmvm cache */
-  pinned: boolean;
-}
-export interface CodeAminoMsg {
-  type: "wasm/Code";
-  value: CodeAmino;
-}
-/** Code struct encompasses CodeInfo and CodeBytes */
-export interface CodeSDKType {
-  code_id: bigint;
-  code_info: CodeInfoSDKType | undefined;
-  code_bytes: Uint8Array;
-  pinned: boolean;
-}
-/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */
-export interface Contract {
-  contractAddress: string;
-  contractInfo: ContractInfo | undefined;
-  contractState: Model[];
-}
-export interface ContractProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.Contract";
-  value: Uint8Array;
-}
-/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */
-export interface ContractAmino {
-  contract_address: string;
-  contract_info?: ContractInfoAmino | undefined;
-  contract_state: ModelAmino[];
-}
-export interface ContractAminoMsg {
-  type: "wasm/Contract";
-  value: ContractAmino;
-}
-/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */
-export interface ContractSDKType {
-  contract_address: string;
-  contract_info: ContractInfoSDKType | undefined;
-  contract_state: ModelSDKType[];
-}
-/** Sequence key and value of an id generation counter */
-export interface Sequence {
-  idKey: Uint8Array;
-  value: bigint;
-}
-export interface SequenceProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.Sequence";
-  value: Uint8Array;
-}
-/** Sequence key and value of an id generation counter */
-export interface SequenceAmino {
-  id_key: Uint8Array;
-  value: string;
-}
-export interface SequenceAminoMsg {
-  type: "wasm/Sequence";
-  value: SequenceAmino;
-}
-/** Sequence key and value of an id generation counter */
-export interface SequenceSDKType {
-  id_key: Uint8Array;
-  value: bigint;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    codes: [],
-    contracts: [],
-    sequences: [],
-    genMsgs: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/cosmwasm.wasm.v1.GenesisState",
-  aminoType: "wasm/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.codes) {
-      Code.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.contracts) {
-      Contract.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.sequences) {
-      Sequence.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.genMsgs) {
-      GenesisState_GenMsgs.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.codes.push(Code.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.contracts.push(Contract.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.sequences.push(Sequence.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.genMsgs.push(GenesisState_GenMsgs.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      codes: Array.isArray(object?.codes) ? object.codes.map((e: any) => Code.fromJSON(e)) : [],
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => Contract.fromJSON(e)) : [],
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => Sequence.fromJSON(e)) : [],
-      genMsgs: Array.isArray(object?.genMsgs) ? object.genMsgs.map((e: any) => GenesisState_GenMsgs.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.codes) {
-      obj.codes = message.codes.map(e => e ? Code.toJSON(e) : undefined);
-    } else {
-      obj.codes = [];
-    }
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e ? Contract.toJSON(e) : undefined);
-    } else {
-      obj.contracts = [];
-    }
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e ? Sequence.toJSON(e) : undefined);
-    } else {
-      obj.sequences = [];
-    }
-    if (message.genMsgs) {
-      obj.genMsgs = message.genMsgs.map(e => e ? GenesisState_GenMsgs.toJSON(e) : undefined);
-    } else {
-      obj.genMsgs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.codes = object.codes?.map(e => Code.fromPartial(e)) || [];
-    message.contracts = object.contracts?.map(e => Contract.fromPartial(e)) || [];
-    message.sequences = object.sequences?.map(e => Sequence.fromPartial(e)) || [];
-    message.genMsgs = object.genMsgs?.map(e => GenesisState_GenMsgs.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      codes: Array.isArray(object?.codes) ? object.codes.map((e: any) => Code.fromSDK(e)) : [],
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => Contract.fromSDK(e)) : [],
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => Sequence.fromSDK(e)) : [],
-      genMsgs: Array.isArray(object?.gen_msgs) ? object.gen_msgs.map((e: any) => GenesisState_GenMsgs.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.codes) {
-      obj.codes = message.codes.map(e => e ? Code.toSDK(e) : undefined);
-    } else {
-      obj.codes = [];
-    }
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e ? Contract.toSDK(e) : undefined);
-    } else {
-      obj.contracts = [];
-    }
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e ? Sequence.toSDK(e) : undefined);
-    } else {
-      obj.sequences = [];
-    }
-    if (message.genMsgs) {
-      obj.gen_msgs = message.genMsgs.map(e => e ? GenesisState_GenMsgs.toSDK(e) : undefined);
-    } else {
-      obj.gen_msgs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      codes: Array.isArray(object?.codes) ? object.codes.map((e: any) => Code.fromAmino(e)) : [],
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => Contract.fromAmino(e)) : [],
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => Sequence.fromAmino(e)) : [],
-      genMsgs: Array.isArray(object?.gen_msgs) ? object.gen_msgs.map((e: any) => GenesisState_GenMsgs.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.codes) {
-      obj.codes = message.codes.map(e => e ? Code.toAmino(e) : undefined);
-    } else {
-      obj.codes = [];
-    }
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e ? Contract.toAmino(e) : undefined);
-    } else {
-      obj.contracts = [];
-    }
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e ? Sequence.toAmino(e) : undefined);
-    } else {
-      obj.sequences = [];
-    }
-    if (message.genMsgs) {
-      obj.gen_msgs = message.genMsgs.map(e => e ? GenesisState_GenMsgs.toAmino(e) : undefined);
-    } else {
-      obj.gen_msgs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "wasm/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState_GenMsgs(): GenesisState_GenMsgs {
-  return {
-    storeCode: undefined,
-    instantiateContract: undefined,
-    executeContract: undefined
-  };
-}
-export const GenesisState_GenMsgs = {
-  typeUrl: "/cosmwasm.wasm.v1.GenMsgs",
-  aminoType: "wasm/GenMsgs",
-  encode(message: GenesisState_GenMsgs, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.storeCode !== undefined) {
-      MsgStoreCode.encode(message.storeCode, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.instantiateContract !== undefined) {
-      MsgInstantiateContract.encode(message.instantiateContract, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.executeContract !== undefined) {
-      MsgExecuteContract.encode(message.executeContract, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState_GenMsgs {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState_GenMsgs();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.storeCode = MsgStoreCode.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.instantiateContract = MsgInstantiateContract.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.executeContract = MsgExecuteContract.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState_GenMsgs {
-    return {
-      storeCode: isSet(object.storeCode) ? MsgStoreCode.fromJSON(object.storeCode) : undefined,
-      instantiateContract: isSet(object.instantiateContract) ? MsgInstantiateContract.fromJSON(object.instantiateContract) : undefined,
-      executeContract: isSet(object.executeContract) ? MsgExecuteContract.fromJSON(object.executeContract) : undefined
-    };
-  },
-  toJSON(message: GenesisState_GenMsgs): unknown {
-    const obj: any = {};
-    message.storeCode !== undefined && (obj.storeCode = message.storeCode ? MsgStoreCode.toJSON(message.storeCode) : undefined);
-    message.instantiateContract !== undefined && (obj.instantiateContract = message.instantiateContract ? MsgInstantiateContract.toJSON(message.instantiateContract) : undefined);
-    message.executeContract !== undefined && (obj.executeContract = message.executeContract ? MsgExecuteContract.toJSON(message.executeContract) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState_GenMsgs>): GenesisState_GenMsgs {
-    const message = createBaseGenesisState_GenMsgs();
-    message.storeCode = object.storeCode !== undefined && object.storeCode !== null ? MsgStoreCode.fromPartial(object.storeCode) : undefined;
-    message.instantiateContract = object.instantiateContract !== undefined && object.instantiateContract !== null ? MsgInstantiateContract.fromPartial(object.instantiateContract) : undefined;
-    message.executeContract = object.executeContract !== undefined && object.executeContract !== null ? MsgExecuteContract.fromPartial(object.executeContract) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisState_GenMsgsSDKType): GenesisState_GenMsgs {
-    return {
-      storeCode: object.store_code ? MsgStoreCode.fromSDK(object.store_code) : undefined,
-      instantiateContract: object.instantiate_contract ? MsgInstantiateContract.fromSDK(object.instantiate_contract) : undefined,
-      executeContract: object.execute_contract ? MsgExecuteContract.fromSDK(object.execute_contract) : undefined
-    };
-  },
-  toSDK(message: GenesisState_GenMsgs): GenesisState_GenMsgsSDKType {
-    const obj: any = {};
-    message.storeCode !== undefined && (obj.store_code = message.storeCode ? MsgStoreCode.toSDK(message.storeCode) : undefined);
-    message.instantiateContract !== undefined && (obj.instantiate_contract = message.instantiateContract ? MsgInstantiateContract.toSDK(message.instantiateContract) : undefined);
-    message.executeContract !== undefined && (obj.execute_contract = message.executeContract ? MsgExecuteContract.toSDK(message.executeContract) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisState_GenMsgsAmino): GenesisState_GenMsgs {
-    return {
-      storeCode: object?.store_code ? MsgStoreCode.fromAmino(object.store_code) : undefined,
-      instantiateContract: object?.instantiate_contract ? MsgInstantiateContract.fromAmino(object.instantiate_contract) : undefined,
-      executeContract: object?.execute_contract ? MsgExecuteContract.fromAmino(object.execute_contract) : undefined
-    };
-  },
-  toAmino(message: GenesisState_GenMsgs): GenesisState_GenMsgsAmino {
-    const obj: any = {};
-    obj.store_code = message.storeCode ? MsgStoreCode.toAmino(message.storeCode) : undefined;
-    obj.instantiate_contract = message.instantiateContract ? MsgInstantiateContract.toAmino(message.instantiateContract) : undefined;
-    obj.execute_contract = message.executeContract ? MsgExecuteContract.toAmino(message.executeContract) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisState_GenMsgsAminoMsg): GenesisState_GenMsgs {
-    return GenesisState_GenMsgs.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState_GenMsgs): GenesisState_GenMsgsAminoMsg {
-    return {
-      type: "wasm/GenMsgs",
-      value: GenesisState_GenMsgs.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisState_GenMsgsProtoMsg): GenesisState_GenMsgs {
-    return GenesisState_GenMsgs.decode(message.value);
-  },
-  toProto(message: GenesisState_GenMsgs): Uint8Array {
-    return GenesisState_GenMsgs.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState_GenMsgs): GenesisState_GenMsgsProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.GenMsgs",
-      value: GenesisState_GenMsgs.encode(message).finish()
-    };
-  }
-};
-function createBaseCode(): Code {
-  return {
-    codeId: BigInt(0),
-    codeInfo: CodeInfo.fromPartial({}),
-    codeBytes: new Uint8Array(),
-    pinned: false
-  };
-}
-export const Code = {
-  typeUrl: "/cosmwasm.wasm.v1.Code",
-  aminoType: "wasm/Code",
-  encode(message: Code, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    if (message.codeInfo !== undefined) {
-      CodeInfo.encode(message.codeInfo, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.codeBytes.length !== 0) {
-      writer.uint32(26).bytes(message.codeBytes);
-    }
-    if (message.pinned === true) {
-      writer.uint32(32).bool(message.pinned);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Code {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCode();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        case 2:
-          message.codeInfo = CodeInfo.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.codeBytes = reader.bytes();
-          break;
-        case 4:
-          message.pinned = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Code {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      codeInfo: isSet(object.codeInfo) ? CodeInfo.fromJSON(object.codeInfo) : undefined,
-      codeBytes: isSet(object.codeBytes) ? bytesFromBase64(object.codeBytes) : new Uint8Array(),
-      pinned: isSet(object.pinned) ? Boolean(object.pinned) : false
-    };
-  },
-  toJSON(message: Code): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.codeInfo !== undefined && (obj.codeInfo = message.codeInfo ? CodeInfo.toJSON(message.codeInfo) : undefined);
-    message.codeBytes !== undefined && (obj.codeBytes = base64FromBytes(message.codeBytes !== undefined ? message.codeBytes : new Uint8Array()));
-    message.pinned !== undefined && (obj.pinned = message.pinned);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Code>): Code {
-    const message = createBaseCode();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.codeInfo = object.codeInfo !== undefined && object.codeInfo !== null ? CodeInfo.fromPartial(object.codeInfo) : undefined;
-    message.codeBytes = object.codeBytes ?? new Uint8Array();
-    message.pinned = object.pinned ?? false;
-    return message;
-  },
-  fromSDK(object: CodeSDKType): Code {
-    return {
-      codeId: object?.code_id,
-      codeInfo: object.code_info ? CodeInfo.fromSDK(object.code_info) : undefined,
-      codeBytes: object?.code_bytes,
-      pinned: object?.pinned
-    };
-  },
-  toSDK(message: Code): CodeSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    message.codeInfo !== undefined && (obj.code_info = message.codeInfo ? CodeInfo.toSDK(message.codeInfo) : undefined);
-    obj.code_bytes = message.codeBytes;
-    obj.pinned = message.pinned;
-    return obj;
-  },
-  fromAmino(object: CodeAmino): Code {
-    return {
-      codeId: BigInt(object.code_id),
-      codeInfo: object?.code_info ? CodeInfo.fromAmino(object.code_info) : undefined,
-      codeBytes: object.code_bytes,
-      pinned: object.pinned
-    };
-  },
-  toAmino(message: Code): CodeAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.code_info = message.codeInfo ? CodeInfo.toAmino(message.codeInfo) : undefined;
-    obj.code_bytes = message.codeBytes;
-    obj.pinned = message.pinned;
-    return obj;
-  },
-  fromAminoMsg(object: CodeAminoMsg): Code {
-    return Code.fromAmino(object.value);
-  },
-  toAminoMsg(message: Code): CodeAminoMsg {
-    return {
-      type: "wasm/Code",
-      value: Code.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CodeProtoMsg): Code {
-    return Code.decode(message.value);
-  },
-  toProto(message: Code): Uint8Array {
-    return Code.encode(message).finish();
-  },
-  toProtoMsg(message: Code): CodeProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.Code",
-      value: Code.encode(message).finish()
-    };
-  }
-};
-function createBaseContract(): Contract {
-  return {
-    contractAddress: "",
-    contractInfo: ContractInfo.fromPartial({}),
-    contractState: []
-  };
-}
-export const Contract = {
-  typeUrl: "/cosmwasm.wasm.v1.Contract",
-  aminoType: "wasm/Contract",
-  encode(message: Contract, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.contractAddress !== "") {
-      writer.uint32(10).string(message.contractAddress);
-    }
-    if (message.contractInfo !== undefined) {
-      ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.contractState) {
-      Model.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Contract {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseContract();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.contractAddress = reader.string();
-          break;
-        case 2:
-          message.contractInfo = ContractInfo.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.contractState.push(Model.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Contract {
-    return {
-      contractAddress: isSet(object.contractAddress) ? String(object.contractAddress) : "",
-      contractInfo: isSet(object.contractInfo) ? ContractInfo.fromJSON(object.contractInfo) : undefined,
-      contractState: Array.isArray(object?.contractState) ? object.contractState.map((e: any) => Model.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Contract): unknown {
-    const obj: any = {};
-    message.contractAddress !== undefined && (obj.contractAddress = message.contractAddress);
-    message.contractInfo !== undefined && (obj.contractInfo = message.contractInfo ? ContractInfo.toJSON(message.contractInfo) : undefined);
-    if (message.contractState) {
-      obj.contractState = message.contractState.map(e => e ? Model.toJSON(e) : undefined);
-    } else {
-      obj.contractState = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Contract>): Contract {
-    const message = createBaseContract();
-    message.contractAddress = object.contractAddress ?? "";
-    message.contractInfo = object.contractInfo !== undefined && object.contractInfo !== null ? ContractInfo.fromPartial(object.contractInfo) : undefined;
-    message.contractState = object.contractState?.map(e => Model.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ContractSDKType): Contract {
-    return {
-      contractAddress: object?.contract_address,
-      contractInfo: object.contract_info ? ContractInfo.fromSDK(object.contract_info) : undefined,
-      contractState: Array.isArray(object?.contract_state) ? object.contract_state.map((e: any) => Model.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Contract): ContractSDKType {
-    const obj: any = {};
-    obj.contract_address = message.contractAddress;
-    message.contractInfo !== undefined && (obj.contract_info = message.contractInfo ? ContractInfo.toSDK(message.contractInfo) : undefined);
-    if (message.contractState) {
-      obj.contract_state = message.contractState.map(e => e ? Model.toSDK(e) : undefined);
-    } else {
-      obj.contract_state = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ContractAmino): Contract {
-    return {
-      contractAddress: object.contract_address,
-      contractInfo: object?.contract_info ? ContractInfo.fromAmino(object.contract_info) : undefined,
-      contractState: Array.isArray(object?.contract_state) ? object.contract_state.map((e: any) => Model.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Contract): ContractAmino {
-    const obj: any = {};
-    obj.contract_address = message.contractAddress;
-    obj.contract_info = message.contractInfo ? ContractInfo.toAmino(message.contractInfo) : undefined;
-    if (message.contractState) {
-      obj.contract_state = message.contractState.map(e => e ? Model.toAmino(e) : undefined);
-    } else {
-      obj.contract_state = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ContractAminoMsg): Contract {
-    return Contract.fromAmino(object.value);
-  },
-  toAminoMsg(message: Contract): ContractAminoMsg {
-    return {
-      type: "wasm/Contract",
-      value: Contract.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ContractProtoMsg): Contract {
-    return Contract.decode(message.value);
-  },
-  toProto(message: Contract): Uint8Array {
-    return Contract.encode(message).finish();
-  },
-  toProtoMsg(message: Contract): ContractProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.Contract",
-      value: Contract.encode(message).finish()
-    };
-  }
-};
-function createBaseSequence(): Sequence {
-  return {
-    idKey: new Uint8Array(),
-    value: BigInt(0)
-  };
-}
-export const Sequence = {
-  typeUrl: "/cosmwasm.wasm.v1.Sequence",
-  aminoType: "wasm/Sequence",
-  encode(message: Sequence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.idKey.length !== 0) {
-      writer.uint32(10).bytes(message.idKey);
-    }
-    if (message.value !== BigInt(0)) {
-      writer.uint32(16).uint64(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Sequence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSequence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.idKey = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Sequence {
-    return {
-      idKey: isSet(object.idKey) ? bytesFromBase64(object.idKey) : new Uint8Array(),
-      value: isSet(object.value) ? BigInt(object.value.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Sequence): unknown {
-    const obj: any = {};
-    message.idKey !== undefined && (obj.idKey = base64FromBytes(message.idKey !== undefined ? message.idKey : new Uint8Array()));
-    message.value !== undefined && (obj.value = (message.value || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Sequence>): Sequence {
-    const message = createBaseSequence();
-    message.idKey = object.idKey ?? new Uint8Array();
-    message.value = object.value !== undefined && object.value !== null ? BigInt(object.value.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SequenceSDKType): Sequence {
-    return {
-      idKey: object?.id_key,
-      value: object?.value
-    };
-  },
-  toSDK(message: Sequence): SequenceSDKType {
-    const obj: any = {};
-    obj.id_key = message.idKey;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: SequenceAmino): Sequence {
-    return {
-      idKey: object.id_key,
-      value: BigInt(object.value)
-    };
-  },
-  toAmino(message: Sequence): SequenceAmino {
-    const obj: any = {};
-    obj.id_key = message.idKey;
-    obj.value = message.value ? message.value.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SequenceAminoMsg): Sequence {
-    return Sequence.fromAmino(object.value);
-  },
-  toAminoMsg(message: Sequence): SequenceAminoMsg {
-    return {
-      type: "wasm/Sequence",
-      value: Sequence.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SequenceProtoMsg): Sequence {
-    return Sequence.decode(message.value);
-  },
-  toProto(message: Sequence): Uint8Array {
-    return Sequence.encode(message).finish();
-  },
-  toProtoMsg(message: Sequence): SequenceProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.Sequence",
-      value: Sequence.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/ibc.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/ibc.ts
deleted file mode 100644
index 6c413f33..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/ibc.ts
+++ /dev/null
@@ -1,295 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-/** MsgIBCSend */
-export interface MsgIBCSend {
-  /** the channel by which the packet will be sent */
-  channel: string;
-  /**
-   * Timeout height relative to the current block height.
-   * The timeout is disabled when set to 0.
-   */
-  timeoutHeight: bigint;
-  /**
-   * Timeout timestamp (in nanoseconds) relative to the current block timestamp.
-   * The timeout is disabled when set to 0.
-   */
-  timeoutTimestamp: bigint;
-  /**
-   * Data is the payload to transfer. We must not make assumption what format or
-   * content is in here.
-   */
-  data: Uint8Array;
-}
-export interface MsgIBCSendProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgIBCSend";
-  value: Uint8Array;
-}
-/** MsgIBCSend */
-export interface MsgIBCSendAmino {
-  /** the channel by which the packet will be sent */
-  channel: string;
-  /**
-   * Timeout height relative to the current block height.
-   * The timeout is disabled when set to 0.
-   */
-  timeout_height: string;
-  /**
-   * Timeout timestamp (in nanoseconds) relative to the current block timestamp.
-   * The timeout is disabled when set to 0.
-   */
-  timeout_timestamp: string;
-  /**
-   * Data is the payload to transfer. We must not make assumption what format or
-   * content is in here.
-   */
-  data: Uint8Array;
-}
-export interface MsgIBCSendAminoMsg {
-  type: "wasm/MsgIBCSend";
-  value: MsgIBCSendAmino;
-}
-/** MsgIBCSend */
-export interface MsgIBCSendSDKType {
-  channel: string;
-  timeout_height: bigint;
-  timeout_timestamp: bigint;
-  data: Uint8Array;
-}
-/** MsgIBCCloseChannel port and channel need to be owned by the contract */
-export interface MsgIBCCloseChannel {
-  channel: string;
-}
-export interface MsgIBCCloseChannelProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgIBCCloseChannel";
-  value: Uint8Array;
-}
-/** MsgIBCCloseChannel port and channel need to be owned by the contract */
-export interface MsgIBCCloseChannelAmino {
-  channel: string;
-}
-export interface MsgIBCCloseChannelAminoMsg {
-  type: "wasm/MsgIBCCloseChannel";
-  value: MsgIBCCloseChannelAmino;
-}
-/** MsgIBCCloseChannel port and channel need to be owned by the contract */
-export interface MsgIBCCloseChannelSDKType {
-  channel: string;
-}
-function createBaseMsgIBCSend(): MsgIBCSend {
-  return {
-    channel: "",
-    timeoutHeight: BigInt(0),
-    timeoutTimestamp: BigInt(0),
-    data: new Uint8Array()
-  };
-}
-export const MsgIBCSend = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgIBCSend",
-  aminoType: "wasm/MsgIBCSend",
-  encode(message: MsgIBCSend, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.channel !== "") {
-      writer.uint32(18).string(message.channel);
-    }
-    if (message.timeoutHeight !== BigInt(0)) {
-      writer.uint32(32).uint64(message.timeoutHeight);
-    }
-    if (message.timeoutTimestamp !== BigInt(0)) {
-      writer.uint32(40).uint64(message.timeoutTimestamp);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(50).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgIBCSend {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgIBCSend();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.channel = reader.string();
-          break;
-        case 4:
-          message.timeoutHeight = reader.uint64();
-          break;
-        case 5:
-          message.timeoutTimestamp = reader.uint64();
-          break;
-        case 6:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgIBCSend {
-    return {
-      channel: isSet(object.channel) ? String(object.channel) : "",
-      timeoutHeight: isSet(object.timeoutHeight) ? BigInt(object.timeoutHeight.toString()) : BigInt(0),
-      timeoutTimestamp: isSet(object.timeoutTimestamp) ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0),
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgIBCSend): unknown {
-    const obj: any = {};
-    message.channel !== undefined && (obj.channel = message.channel);
-    message.timeoutHeight !== undefined && (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString());
-    message.timeoutTimestamp !== undefined && (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgIBCSend>): MsgIBCSend {
-    const message = createBaseMsgIBCSend();
-    message.channel = object.channel ?? "";
-    message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? BigInt(object.timeoutHeight.toString()) : BigInt(0);
-    message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0);
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgIBCSendSDKType): MsgIBCSend {
-    return {
-      channel: object?.channel,
-      timeoutHeight: object?.timeout_height,
-      timeoutTimestamp: object?.timeout_timestamp,
-      data: object?.data
-    };
-  },
-  toSDK(message: MsgIBCSend): MsgIBCSendSDKType {
-    const obj: any = {};
-    obj.channel = message.channel;
-    obj.timeout_height = message.timeoutHeight;
-    obj.timeout_timestamp = message.timeoutTimestamp;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: MsgIBCSendAmino): MsgIBCSend {
-    return {
-      channel: object.channel,
-      timeoutHeight: BigInt(object.timeout_height),
-      timeoutTimestamp: BigInt(object.timeout_timestamp),
-      data: object.data
-    };
-  },
-  toAmino(message: MsgIBCSend): MsgIBCSendAmino {
-    const obj: any = {};
-    obj.channel = message.channel;
-    obj.timeout_height = message.timeoutHeight ? message.timeoutHeight.toString() : undefined;
-    obj.timeout_timestamp = message.timeoutTimestamp ? message.timeoutTimestamp.toString() : undefined;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: MsgIBCSendAminoMsg): MsgIBCSend {
-    return MsgIBCSend.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgIBCSend): MsgIBCSendAminoMsg {
-    return {
-      type: "wasm/MsgIBCSend",
-      value: MsgIBCSend.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgIBCSendProtoMsg): MsgIBCSend {
-    return MsgIBCSend.decode(message.value);
-  },
-  toProto(message: MsgIBCSend): Uint8Array {
-    return MsgIBCSend.encode(message).finish();
-  },
-  toProtoMsg(message: MsgIBCSend): MsgIBCSendProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgIBCSend",
-      value: MsgIBCSend.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgIBCCloseChannel(): MsgIBCCloseChannel {
-  return {
-    channel: ""
-  };
-}
-export const MsgIBCCloseChannel = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgIBCCloseChannel",
-  aminoType: "wasm/MsgIBCCloseChannel",
-  encode(message: MsgIBCCloseChannel, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.channel !== "") {
-      writer.uint32(18).string(message.channel);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgIBCCloseChannel {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgIBCCloseChannel();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.channel = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgIBCCloseChannel {
-    return {
-      channel: isSet(object.channel) ? String(object.channel) : ""
-    };
-  },
-  toJSON(message: MsgIBCCloseChannel): unknown {
-    const obj: any = {};
-    message.channel !== undefined && (obj.channel = message.channel);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgIBCCloseChannel>): MsgIBCCloseChannel {
-    const message = createBaseMsgIBCCloseChannel();
-    message.channel = object.channel ?? "";
-    return message;
-  },
-  fromSDK(object: MsgIBCCloseChannelSDKType): MsgIBCCloseChannel {
-    return {
-      channel: object?.channel
-    };
-  },
-  toSDK(message: MsgIBCCloseChannel): MsgIBCCloseChannelSDKType {
-    const obj: any = {};
-    obj.channel = message.channel;
-    return obj;
-  },
-  fromAmino(object: MsgIBCCloseChannelAmino): MsgIBCCloseChannel {
-    return {
-      channel: object.channel
-    };
-  },
-  toAmino(message: MsgIBCCloseChannel): MsgIBCCloseChannelAmino {
-    const obj: any = {};
-    obj.channel = message.channel;
-    return obj;
-  },
-  fromAminoMsg(object: MsgIBCCloseChannelAminoMsg): MsgIBCCloseChannel {
-    return MsgIBCCloseChannel.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgIBCCloseChannel): MsgIBCCloseChannelAminoMsg {
-    return {
-      type: "wasm/MsgIBCCloseChannel",
-      value: MsgIBCCloseChannel.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgIBCCloseChannelProtoMsg): MsgIBCCloseChannel {
-    return MsgIBCCloseChannel.decode(message.value);
-  },
-  toProto(message: MsgIBCCloseChannel): Uint8Array {
-    return MsgIBCCloseChannel.encode(message).finish();
-  },
-  toProtoMsg(message: MsgIBCCloseChannel): MsgIBCCloseChannelProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgIBCCloseChannel",
-      value: MsgIBCCloseChannel.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/proposal.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/proposal.ts
deleted file mode 100644
index c988977f..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/proposal.ts
+++ /dev/null
@@ -1,1714 +0,0 @@
-import { AccessConfig, AccessConfigAmino, AccessConfigSDKType } from "./types";
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-import { fromBase64, toBase64, toUtf8, fromUtf8 } from "@cosmjs/encoding";
-/** StoreCodeProposal gov proposal content type to submit WASM code to the system */
-export interface StoreCodeProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  runAs: string;
-  /** WASMByteCode can be raw or gzip compressed */
-  wasmByteCode: Uint8Array;
-  /** InstantiatePermission to apply on contract creation, optional */
-  instantiatePermission: AccessConfig | undefined;
-}
-export interface StoreCodeProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.StoreCodeProposal";
-  value: Uint8Array;
-}
-/** StoreCodeProposal gov proposal content type to submit WASM code to the system */
-export interface StoreCodeProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  run_as: string;
-  /** WASMByteCode can be raw or gzip compressed */
-  wasm_byte_code: string;
-  /** InstantiatePermission to apply on contract creation, optional */
-  instantiate_permission?: AccessConfigAmino | undefined;
-}
-export interface StoreCodeProposalAminoMsg {
-  type: "wasm/StoreCodeProposal";
-  value: StoreCodeProposalAmino;
-}
-/** StoreCodeProposal gov proposal content type to submit WASM code to the system */
-export interface StoreCodeProposalSDKType {
-  title: string;
-  description: string;
-  run_as: string;
-  wasm_byte_code: Uint8Array;
-  instantiate_permission: AccessConfigSDKType | undefined;
-}
-/**
- * InstantiateContractProposal gov proposal content type to instantiate a
- * contract.
- */
-export interface InstantiateContractProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  runAs: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** CodeID is the reference to the stored WASM code */
-  codeId: bigint;
-  /** Label is optional metadata to be stored with a constract instance. */
-  label: string;
-  /** Msg json encoded message to be passed to the contract on instantiation */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: Coin[];
-}
-export interface InstantiateContractProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.InstantiateContractProposal";
-  value: Uint8Array;
-}
-/**
- * InstantiateContractProposal gov proposal content type to instantiate a
- * contract.
- */
-export interface InstantiateContractProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  run_as: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** CodeID is the reference to the stored WASM code */
-  code_id: string;
-  /** Label is optional metadata to be stored with a constract instance. */
-  label: string;
-  /** Msg json encoded message to be passed to the contract on instantiation */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: CoinAmino[];
-}
-export interface InstantiateContractProposalAminoMsg {
-  type: "wasm/InstantiateContractProposal";
-  value: InstantiateContractProposalAmino;
-}
-/**
- * InstantiateContractProposal gov proposal content type to instantiate a
- * contract.
- */
-export interface InstantiateContractProposalSDKType {
-  title: string;
-  description: string;
-  run_as: string;
-  admin: string;
-  code_id: bigint;
-  label: string;
-  msg: Uint8Array;
-  funds: CoinSDKType[];
-}
-/** MigrateContractProposal gov proposal content type to migrate a contract. */
-export interface MigrateContractProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** CodeID references the new WASM codesudo */
-  codeId: bigint;
-  /** Msg json encoded message to be passed to the contract on migration */
-  msg: Uint8Array;
-}
-export interface MigrateContractProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MigrateContractProposal";
-  value: Uint8Array;
-}
-/** MigrateContractProposal gov proposal content type to migrate a contract. */
-export interface MigrateContractProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** CodeID references the new WASM codesudo */
-  code_id: string;
-  /** Msg json encoded message to be passed to the contract on migration */
-  msg: Uint8Array;
-}
-export interface MigrateContractProposalAminoMsg {
-  type: "wasm/MigrateContractProposal";
-  value: MigrateContractProposalAmino;
-}
-/** MigrateContractProposal gov proposal content type to migrate a contract. */
-export interface MigrateContractProposalSDKType {
-  title: string;
-  description: string;
-  contract: string;
-  code_id: bigint;
-  msg: Uint8Array;
-}
-/** SudoContractProposal gov proposal content type to call sudo on a contract. */
-export interface SudoContractProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract as sudo */
-  msg: Uint8Array;
-}
-export interface SudoContractProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.SudoContractProposal";
-  value: Uint8Array;
-}
-/** SudoContractProposal gov proposal content type to call sudo on a contract. */
-export interface SudoContractProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract as sudo */
-  msg: Uint8Array;
-}
-export interface SudoContractProposalAminoMsg {
-  type: "wasm/SudoContractProposal";
-  value: SudoContractProposalAmino;
-}
-/** SudoContractProposal gov proposal content type to call sudo on a contract. */
-export interface SudoContractProposalSDKType {
-  title: string;
-  description: string;
-  contract: string;
-  msg: Uint8Array;
-}
-/**
- * ExecuteContractProposal gov proposal content type to call execute on a
- * contract.
- */
-export interface ExecuteContractProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  runAs: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract as execute */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: Coin[];
-}
-export interface ExecuteContractProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.ExecuteContractProposal";
-  value: Uint8Array;
-}
-/**
- * ExecuteContractProposal gov proposal content type to call execute on a
- * contract.
- */
-export interface ExecuteContractProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** RunAs is the address that is passed to the contract's environment as sender */
-  run_as: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract as execute */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: CoinAmino[];
-}
-export interface ExecuteContractProposalAminoMsg {
-  type: "wasm/ExecuteContractProposal";
-  value: ExecuteContractProposalAmino;
-}
-/**
- * ExecuteContractProposal gov proposal content type to call execute on a
- * contract.
- */
-export interface ExecuteContractProposalSDKType {
-  title: string;
-  description: string;
-  run_as: string;
-  contract: string;
-  msg: Uint8Array;
-  funds: CoinSDKType[];
-}
-/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */
-export interface UpdateAdminProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** NewAdmin address to be set */
-  newAdmin: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface UpdateAdminProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.UpdateAdminProposal";
-  value: Uint8Array;
-}
-/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */
-export interface UpdateAdminProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** NewAdmin address to be set */
-  new_admin: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface UpdateAdminProposalAminoMsg {
-  type: "wasm/UpdateAdminProposal";
-  value: UpdateAdminProposalAmino;
-}
-/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */
-export interface UpdateAdminProposalSDKType {
-  title: string;
-  description: string;
-  new_admin: string;
-  contract: string;
-}
-/**
- * ClearAdminProposal gov proposal content type to clear the admin of a
- * contract.
- */
-export interface ClearAdminProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface ClearAdminProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.ClearAdminProposal";
-  value: Uint8Array;
-}
-/**
- * ClearAdminProposal gov proposal content type to clear the admin of a
- * contract.
- */
-export interface ClearAdminProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface ClearAdminProposalAminoMsg {
-  type: "wasm/ClearAdminProposal";
-  value: ClearAdminProposalAmino;
-}
-/**
- * ClearAdminProposal gov proposal content type to clear the admin of a
- * contract.
- */
-export interface ClearAdminProposalSDKType {
-  title: string;
-  description: string;
-  contract: string;
-}
-/**
- * PinCodesProposal gov proposal content type to pin a set of code ids in the
- * wasmvm cache.
- */
-export interface PinCodesProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** CodeIDs references the new WASM codes */
-  codeIds: bigint[];
-}
-export interface PinCodesProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.PinCodesProposal";
-  value: Uint8Array;
-}
-/**
- * PinCodesProposal gov proposal content type to pin a set of code ids in the
- * wasmvm cache.
- */
-export interface PinCodesProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** CodeIDs references the new WASM codes */
-  code_ids: string[];
-}
-export interface PinCodesProposalAminoMsg {
-  type: "wasm/PinCodesProposal";
-  value: PinCodesProposalAmino;
-}
-/**
- * PinCodesProposal gov proposal content type to pin a set of code ids in the
- * wasmvm cache.
- */
-export interface PinCodesProposalSDKType {
-  title: string;
-  description: string;
-  code_ids: bigint[];
-}
-/**
- * UnpinCodesProposal gov proposal content type to unpin a set of code ids in
- * the wasmvm cache.
- */
-export interface UnpinCodesProposal {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** CodeIDs references the WASM codes */
-  codeIds: bigint[];
-}
-export interface UnpinCodesProposalProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.UnpinCodesProposal";
-  value: Uint8Array;
-}
-/**
- * UnpinCodesProposal gov proposal content type to unpin a set of code ids in
- * the wasmvm cache.
- */
-export interface UnpinCodesProposalAmino {
-  /** Title is a short summary */
-  title: string;
-  /** Description is a human readable text */
-  description: string;
-  /** CodeIDs references the WASM codes */
-  code_ids: string[];
-}
-export interface UnpinCodesProposalAminoMsg {
-  type: "wasm/UnpinCodesProposal";
-  value: UnpinCodesProposalAmino;
-}
-/**
- * UnpinCodesProposal gov proposal content type to unpin a set of code ids in
- * the wasmvm cache.
- */
-export interface UnpinCodesProposalSDKType {
-  title: string;
-  description: string;
-  code_ids: bigint[];
-}
-function createBaseStoreCodeProposal(): StoreCodeProposal {
-  return {
-    title: "",
-    description: "",
-    runAs: "",
-    wasmByteCode: new Uint8Array(),
-    instantiatePermission: AccessConfig.fromPartial({})
-  };
-}
-export const StoreCodeProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.StoreCodeProposal",
-  aminoType: "wasm/StoreCodeProposal",
-  encode(message: StoreCodeProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.runAs !== "") {
-      writer.uint32(26).string(message.runAs);
-    }
-    if (message.wasmByteCode.length !== 0) {
-      writer.uint32(34).bytes(message.wasmByteCode);
-    }
-    if (message.instantiatePermission !== undefined) {
-      AccessConfig.encode(message.instantiatePermission, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): StoreCodeProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseStoreCodeProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.runAs = reader.string();
-          break;
-        case 4:
-          message.wasmByteCode = reader.bytes();
-          break;
-        case 7:
-          message.instantiatePermission = AccessConfig.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): StoreCodeProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      runAs: isSet(object.runAs) ? String(object.runAs) : "",
-      wasmByteCode: isSet(object.wasmByteCode) ? bytesFromBase64(object.wasmByteCode) : new Uint8Array(),
-      instantiatePermission: isSet(object.instantiatePermission) ? AccessConfig.fromJSON(object.instantiatePermission) : undefined
-    };
-  },
-  toJSON(message: StoreCodeProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.runAs !== undefined && (obj.runAs = message.runAs);
-    message.wasmByteCode !== undefined && (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));
-    message.instantiatePermission !== undefined && (obj.instantiatePermission = message.instantiatePermission ? AccessConfig.toJSON(message.instantiatePermission) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<StoreCodeProposal>): StoreCodeProposal {
-    const message = createBaseStoreCodeProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.runAs = object.runAs ?? "";
-    message.wasmByteCode = object.wasmByteCode ?? new Uint8Array();
-    message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined;
-    return message;
-  },
-  fromSDK(object: StoreCodeProposalSDKType): StoreCodeProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      runAs: object?.run_as,
-      wasmByteCode: object?.wasm_byte_code,
-      instantiatePermission: object.instantiate_permission ? AccessConfig.fromSDK(object.instantiate_permission) : undefined
-    };
-  },
-  toSDK(message: StoreCodeProposal): StoreCodeProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.wasm_byte_code = message.wasmByteCode;
-    message.instantiatePermission !== undefined && (obj.instantiate_permission = message.instantiatePermission ? AccessConfig.toSDK(message.instantiatePermission) : undefined);
-    return obj;
-  },
-  fromAmino(object: StoreCodeProposalAmino): StoreCodeProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      runAs: object.run_as,
-      wasmByteCode: fromBase64(object.wasm_byte_code),
-      instantiatePermission: object?.instantiate_permission ? AccessConfig.fromAmino(object.instantiate_permission) : undefined
-    };
-  },
-  toAmino(message: StoreCodeProposal): StoreCodeProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.wasm_byte_code = message.wasmByteCode ? toBase64(message.wasmByteCode) : undefined;
-    obj.instantiate_permission = message.instantiatePermission ? AccessConfig.toAmino(message.instantiatePermission) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: StoreCodeProposalAminoMsg): StoreCodeProposal {
-    return StoreCodeProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: StoreCodeProposal): StoreCodeProposalAminoMsg {
-    return {
-      type: "wasm/StoreCodeProposal",
-      value: StoreCodeProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: StoreCodeProposalProtoMsg): StoreCodeProposal {
-    return StoreCodeProposal.decode(message.value);
-  },
-  toProto(message: StoreCodeProposal): Uint8Array {
-    return StoreCodeProposal.encode(message).finish();
-  },
-  toProtoMsg(message: StoreCodeProposal): StoreCodeProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.StoreCodeProposal",
-      value: StoreCodeProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseInstantiateContractProposal(): InstantiateContractProposal {
-  return {
-    title: "",
-    description: "",
-    runAs: "",
-    admin: "",
-    codeId: BigInt(0),
-    label: "",
-    msg: new Uint8Array(),
-    funds: []
-  };
-}
-export const InstantiateContractProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.InstantiateContractProposal",
-  aminoType: "wasm/InstantiateContractProposal",
-  encode(message: InstantiateContractProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.runAs !== "") {
-      writer.uint32(26).string(message.runAs);
-    }
-    if (message.admin !== "") {
-      writer.uint32(34).string(message.admin);
-    }
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(40).uint64(message.codeId);
-    }
-    if (message.label !== "") {
-      writer.uint32(50).string(message.label);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(58).bytes(message.msg);
-    }
-    for (const v of message.funds) {
-      Coin.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): InstantiateContractProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseInstantiateContractProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.runAs = reader.string();
-          break;
-        case 4:
-          message.admin = reader.string();
-          break;
-        case 5:
-          message.codeId = reader.uint64();
-          break;
-        case 6:
-          message.label = reader.string();
-          break;
-        case 7:
-          message.msg = reader.bytes();
-          break;
-        case 8:
-          message.funds.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): InstantiateContractProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      runAs: isSet(object.runAs) ? String(object.runAs) : "",
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      label: isSet(object.label) ? String(object.label) : "",
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: InstantiateContractProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.runAs !== undefined && (obj.runAs = message.runAs);
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.label !== undefined && (obj.label = message.label);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<InstantiateContractProposal>): InstantiateContractProposal {
-    const message = createBaseInstantiateContractProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.runAs = object.runAs ?? "";
-    message.admin = object.admin ?? "";
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.label = object.label ?? "";
-    message.msg = object.msg ?? new Uint8Array();
-    message.funds = object.funds?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: InstantiateContractProposalSDKType): InstantiateContractProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      runAs: object?.run_as,
-      admin: object?.admin,
-      codeId: object?.code_id,
-      label: object?.label,
-      msg: object?.msg,
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: InstantiateContractProposal): InstantiateContractProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.admin = message.admin;
-    obj.code_id = message.codeId;
-    obj.label = message.label;
-    obj.msg = message.msg;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAmino(object: InstantiateContractProposalAmino): InstantiateContractProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      runAs: object.run_as,
-      admin: object.admin,
-      codeId: BigInt(object.code_id),
-      label: object.label,
-      msg: toUtf8(JSON.stringify(object.msg)),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: InstantiateContractProposal): InstantiateContractProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.admin = message.admin;
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.label = message.label;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: InstantiateContractProposalAminoMsg): InstantiateContractProposal {
-    return InstantiateContractProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: InstantiateContractProposal): InstantiateContractProposalAminoMsg {
-    return {
-      type: "wasm/InstantiateContractProposal",
-      value: InstantiateContractProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: InstantiateContractProposalProtoMsg): InstantiateContractProposal {
-    return InstantiateContractProposal.decode(message.value);
-  },
-  toProto(message: InstantiateContractProposal): Uint8Array {
-    return InstantiateContractProposal.encode(message).finish();
-  },
-  toProtoMsg(message: InstantiateContractProposal): InstantiateContractProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.InstantiateContractProposal",
-      value: InstantiateContractProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseMigrateContractProposal(): MigrateContractProposal {
-  return {
-    title: "",
-    description: "",
-    contract: "",
-    codeId: BigInt(0),
-    msg: new Uint8Array()
-  };
-}
-export const MigrateContractProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.MigrateContractProposal",
-  aminoType: "wasm/MigrateContractProposal",
-  encode(message: MigrateContractProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.contract !== "") {
-      writer.uint32(34).string(message.contract);
-    }
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(40).uint64(message.codeId);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(50).bytes(message.msg);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MigrateContractProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMigrateContractProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 4:
-          message.contract = reader.string();
-          break;
-        case 5:
-          message.codeId = reader.uint64();
-          break;
-        case 6:
-          message.msg = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MigrateContractProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      contract: isSet(object.contract) ? String(object.contract) : "",
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array()
-    };
-  },
-  toJSON(message: MigrateContractProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.contract !== undefined && (obj.contract = message.contract);
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MigrateContractProposal>): MigrateContractProposal {
-    const message = createBaseMigrateContractProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.contract = object.contract ?? "";
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.msg = object.msg ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MigrateContractProposalSDKType): MigrateContractProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      contract: object?.contract,
-      codeId: object?.code_id,
-      msg: object?.msg
-    };
-  },
-  toSDK(message: MigrateContractProposal): MigrateContractProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    obj.code_id = message.codeId;
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAmino(object: MigrateContractProposalAmino): MigrateContractProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      contract: object.contract,
-      codeId: BigInt(object.code_id),
-      msg: toUtf8(JSON.stringify(object.msg))
-    };
-  },
-  toAmino(message: MigrateContractProposal): MigrateContractProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MigrateContractProposalAminoMsg): MigrateContractProposal {
-    return MigrateContractProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: MigrateContractProposal): MigrateContractProposalAminoMsg {
-    return {
-      type: "wasm/MigrateContractProposal",
-      value: MigrateContractProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MigrateContractProposalProtoMsg): MigrateContractProposal {
-    return MigrateContractProposal.decode(message.value);
-  },
-  toProto(message: MigrateContractProposal): Uint8Array {
-    return MigrateContractProposal.encode(message).finish();
-  },
-  toProtoMsg(message: MigrateContractProposal): MigrateContractProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MigrateContractProposal",
-      value: MigrateContractProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseSudoContractProposal(): SudoContractProposal {
-  return {
-    title: "",
-    description: "",
-    contract: "",
-    msg: new Uint8Array()
-  };
-}
-export const SudoContractProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.SudoContractProposal",
-  aminoType: "wasm/SudoContractProposal",
-  encode(message: SudoContractProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.contract !== "") {
-      writer.uint32(26).string(message.contract);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(34).bytes(message.msg);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SudoContractProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSudoContractProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.contract = reader.string();
-          break;
-        case 4:
-          message.msg = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SudoContractProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      contract: isSet(object.contract) ? String(object.contract) : "",
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array()
-    };
-  },
-  toJSON(message: SudoContractProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.contract !== undefined && (obj.contract = message.contract);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SudoContractProposal>): SudoContractProposal {
-    const message = createBaseSudoContractProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.contract = object.contract ?? "";
-    message.msg = object.msg ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SudoContractProposalSDKType): SudoContractProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      contract: object?.contract,
-      msg: object?.msg
-    };
-  },
-  toSDK(message: SudoContractProposal): SudoContractProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAmino(object: SudoContractProposalAmino): SudoContractProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      contract: object.contract,
-      msg: toUtf8(JSON.stringify(object.msg))
-    };
-  },
-  toAmino(message: SudoContractProposal): SudoContractProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SudoContractProposalAminoMsg): SudoContractProposal {
-    return SudoContractProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: SudoContractProposal): SudoContractProposalAminoMsg {
-    return {
-      type: "wasm/SudoContractProposal",
-      value: SudoContractProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SudoContractProposalProtoMsg): SudoContractProposal {
-    return SudoContractProposal.decode(message.value);
-  },
-  toProto(message: SudoContractProposal): Uint8Array {
-    return SudoContractProposal.encode(message).finish();
-  },
-  toProtoMsg(message: SudoContractProposal): SudoContractProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.SudoContractProposal",
-      value: SudoContractProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseExecuteContractProposal(): ExecuteContractProposal {
-  return {
-    title: "",
-    description: "",
-    runAs: "",
-    contract: "",
-    msg: new Uint8Array(),
-    funds: []
-  };
-}
-export const ExecuteContractProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.ExecuteContractProposal",
-  aminoType: "wasm/ExecuteContractProposal",
-  encode(message: ExecuteContractProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.runAs !== "") {
-      writer.uint32(26).string(message.runAs);
-    }
-    if (message.contract !== "") {
-      writer.uint32(34).string(message.contract);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(42).bytes(message.msg);
-    }
-    for (const v of message.funds) {
-      Coin.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ExecuteContractProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseExecuteContractProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.runAs = reader.string();
-          break;
-        case 4:
-          message.contract = reader.string();
-          break;
-        case 5:
-          message.msg = reader.bytes();
-          break;
-        case 6:
-          message.funds.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ExecuteContractProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      runAs: isSet(object.runAs) ? String(object.runAs) : "",
-      contract: isSet(object.contract) ? String(object.contract) : "",
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ExecuteContractProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.runAs !== undefined && (obj.runAs = message.runAs);
-    message.contract !== undefined && (obj.contract = message.contract);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ExecuteContractProposal>): ExecuteContractProposal {
-    const message = createBaseExecuteContractProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.runAs = object.runAs ?? "";
-    message.contract = object.contract ?? "";
-    message.msg = object.msg ?? new Uint8Array();
-    message.funds = object.funds?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ExecuteContractProposalSDKType): ExecuteContractProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      runAs: object?.run_as,
-      contract: object?.contract,
-      msg: object?.msg,
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ExecuteContractProposal): ExecuteContractProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.contract = message.contract;
-    obj.msg = message.msg;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ExecuteContractProposalAmino): ExecuteContractProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      runAs: object.run_as,
-      contract: object.contract,
-      msg: toUtf8(JSON.stringify(object.msg)),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ExecuteContractProposal): ExecuteContractProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.run_as = message.runAs;
-    obj.contract = message.contract;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ExecuteContractProposalAminoMsg): ExecuteContractProposal {
-    return ExecuteContractProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: ExecuteContractProposal): ExecuteContractProposalAminoMsg {
-    return {
-      type: "wasm/ExecuteContractProposal",
-      value: ExecuteContractProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ExecuteContractProposalProtoMsg): ExecuteContractProposal {
-    return ExecuteContractProposal.decode(message.value);
-  },
-  toProto(message: ExecuteContractProposal): Uint8Array {
-    return ExecuteContractProposal.encode(message).finish();
-  },
-  toProtoMsg(message: ExecuteContractProposal): ExecuteContractProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.ExecuteContractProposal",
-      value: ExecuteContractProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseUpdateAdminProposal(): UpdateAdminProposal {
-  return {
-    title: "",
-    description: "",
-    newAdmin: "",
-    contract: ""
-  };
-}
-export const UpdateAdminProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.UpdateAdminProposal",
-  aminoType: "wasm/UpdateAdminProposal",
-  encode(message: UpdateAdminProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.newAdmin !== "") {
-      writer.uint32(26).string(message.newAdmin);
-    }
-    if (message.contract !== "") {
-      writer.uint32(34).string(message.contract);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpdateAdminProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpdateAdminProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.newAdmin = reader.string();
-          break;
-        case 4:
-          message.contract = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpdateAdminProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      newAdmin: isSet(object.newAdmin) ? String(object.newAdmin) : "",
-      contract: isSet(object.contract) ? String(object.contract) : ""
-    };
-  },
-  toJSON(message: UpdateAdminProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);
-    message.contract !== undefined && (obj.contract = message.contract);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpdateAdminProposal>): UpdateAdminProposal {
-    const message = createBaseUpdateAdminProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.newAdmin = object.newAdmin ?? "";
-    message.contract = object.contract ?? "";
-    return message;
-  },
-  fromSDK(object: UpdateAdminProposalSDKType): UpdateAdminProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      newAdmin: object?.new_admin,
-      contract: object?.contract
-    };
-  },
-  toSDK(message: UpdateAdminProposal): UpdateAdminProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.new_admin = message.newAdmin;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAmino(object: UpdateAdminProposalAmino): UpdateAdminProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      newAdmin: object.new_admin,
-      contract: object.contract
-    };
-  },
-  toAmino(message: UpdateAdminProposal): UpdateAdminProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.new_admin = message.newAdmin;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAminoMsg(object: UpdateAdminProposalAminoMsg): UpdateAdminProposal {
-    return UpdateAdminProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpdateAdminProposal): UpdateAdminProposalAminoMsg {
-    return {
-      type: "wasm/UpdateAdminProposal",
-      value: UpdateAdminProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpdateAdminProposalProtoMsg): UpdateAdminProposal {
-    return UpdateAdminProposal.decode(message.value);
-  },
-  toProto(message: UpdateAdminProposal): Uint8Array {
-    return UpdateAdminProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UpdateAdminProposal): UpdateAdminProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.UpdateAdminProposal",
-      value: UpdateAdminProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseClearAdminProposal(): ClearAdminProposal {
-  return {
-    title: "",
-    description: "",
-    contract: ""
-  };
-}
-export const ClearAdminProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.ClearAdminProposal",
-  aminoType: "wasm/ClearAdminProposal",
-  encode(message: ClearAdminProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.contract !== "") {
-      writer.uint32(26).string(message.contract);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClearAdminProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClearAdminProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.contract = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClearAdminProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      contract: isSet(object.contract) ? String(object.contract) : ""
-    };
-  },
-  toJSON(message: ClearAdminProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.contract !== undefined && (obj.contract = message.contract);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClearAdminProposal>): ClearAdminProposal {
-    const message = createBaseClearAdminProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.contract = object.contract ?? "";
-    return message;
-  },
-  fromSDK(object: ClearAdminProposalSDKType): ClearAdminProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      contract: object?.contract
-    };
-  },
-  toSDK(message: ClearAdminProposal): ClearAdminProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAmino(object: ClearAdminProposalAmino): ClearAdminProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      contract: object.contract
-    };
-  },
-  toAmino(message: ClearAdminProposal): ClearAdminProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAminoMsg(object: ClearAdminProposalAminoMsg): ClearAdminProposal {
-    return ClearAdminProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClearAdminProposal): ClearAdminProposalAminoMsg {
-    return {
-      type: "wasm/ClearAdminProposal",
-      value: ClearAdminProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClearAdminProposalProtoMsg): ClearAdminProposal {
-    return ClearAdminProposal.decode(message.value);
-  },
-  toProto(message: ClearAdminProposal): Uint8Array {
-    return ClearAdminProposal.encode(message).finish();
-  },
-  toProtoMsg(message: ClearAdminProposal): ClearAdminProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.ClearAdminProposal",
-      value: ClearAdminProposal.encode(message).finish()
-    };
-  }
-};
-function createBasePinCodesProposal(): PinCodesProposal {
-  return {
-    title: "",
-    description: "",
-    codeIds: []
-  };
-}
-export const PinCodesProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.PinCodesProposal",
-  aminoType: "wasm/PinCodesProposal",
-  encode(message: PinCodesProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.codeIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PinCodesProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePinCodesProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.codeIds.push(reader.uint64());
-            }
-          } else {
-            message.codeIds.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PinCodesProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      codeIds: Array.isArray(object?.codeIds) ? object.codeIds.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: PinCodesProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.codeIds) {
-      obj.codeIds = message.codeIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.codeIds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PinCodesProposal>): PinCodesProposal {
-    const message = createBasePinCodesProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.codeIds = object.codeIds?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: PinCodesProposalSDKType): PinCodesProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: PinCodesProposal): PinCodesProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e);
-    } else {
-      obj.code_ids = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PinCodesProposalAmino): PinCodesProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: PinCodesProposal): PinCodesProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e.toString());
-    } else {
-      obj.code_ids = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PinCodesProposalAminoMsg): PinCodesProposal {
-    return PinCodesProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: PinCodesProposal): PinCodesProposalAminoMsg {
-    return {
-      type: "wasm/PinCodesProposal",
-      value: PinCodesProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PinCodesProposalProtoMsg): PinCodesProposal {
-    return PinCodesProposal.decode(message.value);
-  },
-  toProto(message: PinCodesProposal): Uint8Array {
-    return PinCodesProposal.encode(message).finish();
-  },
-  toProtoMsg(message: PinCodesProposal): PinCodesProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.PinCodesProposal",
-      value: PinCodesProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseUnpinCodesProposal(): UnpinCodesProposal {
-  return {
-    title: "",
-    description: "",
-    codeIds: []
-  };
-}
-export const UnpinCodesProposal = {
-  typeUrl: "/cosmwasm.wasm.v1.UnpinCodesProposal",
-  aminoType: "wasm/UnpinCodesProposal",
-  encode(message: UnpinCodesProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.codeIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UnpinCodesProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUnpinCodesProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.codeIds.push(reader.uint64());
-            }
-          } else {
-            message.codeIds.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UnpinCodesProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      codeIds: Array.isArray(object?.codeIds) ? object.codeIds.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: UnpinCodesProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.codeIds) {
-      obj.codeIds = message.codeIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.codeIds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UnpinCodesProposal>): UnpinCodesProposal {
-    const message = createBaseUnpinCodesProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.codeIds = object.codeIds?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: UnpinCodesProposalSDKType): UnpinCodesProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: UnpinCodesProposal): UnpinCodesProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e);
-    } else {
-      obj.code_ids = [];
-    }
-    return obj;
-  },
-  fromAmino(object: UnpinCodesProposalAmino): UnpinCodesProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: UnpinCodesProposal): UnpinCodesProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e.toString());
-    } else {
-      obj.code_ids = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: UnpinCodesProposalAminoMsg): UnpinCodesProposal {
-    return UnpinCodesProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UnpinCodesProposal): UnpinCodesProposalAminoMsg {
-    return {
-      type: "wasm/UnpinCodesProposal",
-      value: UnpinCodesProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UnpinCodesProposalProtoMsg): UnpinCodesProposal {
-    return UnpinCodesProposal.decode(message.value);
-  },
-  toProto(message: UnpinCodesProposal): Uint8Array {
-    return UnpinCodesProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UnpinCodesProposal): UnpinCodesProposalProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.UnpinCodesProposal",
-      value: UnpinCodesProposal.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/query.rpc.Query.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/query.rpc.Query.ts
deleted file mode 100644
index b8982d8d..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,325 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryContractInfoRequest, QueryContractInfoResponse, QueryContractHistoryRequest, QueryContractHistoryResponse, QueryContractsByCodeRequest, QueryContractsByCodeResponse, QueryAllContractStateRequest, QueryAllContractStateResponse, QueryRawContractStateRequest, QueryRawContractStateResponse, QuerySmartContractStateRequest, QuerySmartContractStateResponse, QueryCodeRequest, QueryCodeResponse, QueryCodesRequest, QueryCodesResponse, QueryPinnedCodesRequest, QueryPinnedCodesResponse } from "./query";
-/** Query provides defines the gRPC querier service */
-export interface Query {
-  /** ContractInfo gets the contract meta data */
-  contractInfo(request: QueryContractInfoRequest): Promise<QueryContractInfoResponse>;
-  /** ContractHistory gets the contract code history */
-  contractHistory(request: QueryContractHistoryRequest): Promise<QueryContractHistoryResponse>;
-  /** ContractsByCode lists all smart contracts for a code id */
-  contractsByCode(request: QueryContractsByCodeRequest): Promise<QueryContractsByCodeResponse>;
-  /** AllContractState gets all raw store data for a single contract */
-  allContractState(request: QueryAllContractStateRequest): Promise<QueryAllContractStateResponse>;
-  /** RawContractState gets single key from the raw store data of a contract */
-  rawContractState(request: QueryRawContractStateRequest): Promise<QueryRawContractStateResponse>;
-  /** SmartContractState get smart query result from the contract */
-  smartContractState(request: QuerySmartContractStateRequest): Promise<QuerySmartContractStateResponse>;
-  /** Code gets the binary code and metadata for a singe wasm code */
-  code(request: QueryCodeRequest): Promise<QueryCodeResponse>;
-  /** Codes gets the metadata for all stored wasm codes */
-  codes(request?: QueryCodesRequest): Promise<QueryCodesResponse>;
-  /** PinnedCodes gets the pinned code ids */
-  pinnedCodes(request?: QueryPinnedCodesRequest): Promise<QueryPinnedCodesResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.contractInfo = this.contractInfo.bind(this);
-    this.contractHistory = this.contractHistory.bind(this);
-    this.contractsByCode = this.contractsByCode.bind(this);
-    this.allContractState = this.allContractState.bind(this);
-    this.rawContractState = this.rawContractState.bind(this);
-    this.smartContractState = this.smartContractState.bind(this);
-    this.code = this.code.bind(this);
-    this.codes = this.codes.bind(this);
-    this.pinnedCodes = this.pinnedCodes.bind(this);
-  }
-  contractInfo(request: QueryContractInfoRequest): Promise<QueryContractInfoResponse> {
-    const data = QueryContractInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractInfo", data);
-    return promise.then(data => QueryContractInfoResponse.decode(new BinaryReader(data)));
-  }
-  contractHistory(request: QueryContractHistoryRequest): Promise<QueryContractHistoryResponse> {
-    const data = QueryContractHistoryRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractHistory", data);
-    return promise.then(data => QueryContractHistoryResponse.decode(new BinaryReader(data)));
-  }
-  contractsByCode(request: QueryContractsByCodeRequest): Promise<QueryContractsByCodeResponse> {
-    const data = QueryContractsByCodeRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractsByCode", data);
-    return promise.then(data => QueryContractsByCodeResponse.decode(new BinaryReader(data)));
-  }
-  allContractState(request: QueryAllContractStateRequest): Promise<QueryAllContractStateResponse> {
-    const data = QueryAllContractStateRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "AllContractState", data);
-    return promise.then(data => QueryAllContractStateResponse.decode(new BinaryReader(data)));
-  }
-  rawContractState(request: QueryRawContractStateRequest): Promise<QueryRawContractStateResponse> {
-    const data = QueryRawContractStateRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "RawContractState", data);
-    return promise.then(data => QueryRawContractStateResponse.decode(new BinaryReader(data)));
-  }
-  smartContractState(request: QuerySmartContractStateRequest): Promise<QuerySmartContractStateResponse> {
-    const data = QuerySmartContractStateRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "SmartContractState", data);
-    return promise.then(data => QuerySmartContractStateResponse.decode(new BinaryReader(data)));
-  }
-  code(request: QueryCodeRequest): Promise<QueryCodeResponse> {
-    const data = QueryCodeRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "Code", data);
-    return promise.then(data => QueryCodeResponse.decode(new BinaryReader(data)));
-  }
-  codes(request: QueryCodesRequest = {
-    pagination: undefined
-  }): Promise<QueryCodesResponse> {
-    const data = QueryCodesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "Codes", data);
-    return promise.then(data => QueryCodesResponse.decode(new BinaryReader(data)));
-  }
-  pinnedCodes(request: QueryPinnedCodesRequest = {
-    pagination: undefined
-  }): Promise<QueryPinnedCodesResponse> {
-    const data = QueryPinnedCodesRequest.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "PinnedCodes", data);
-    return promise.then(data => QueryPinnedCodesResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    contractInfo(request: QueryContractInfoRequest): Promise<QueryContractInfoResponse> {
-      return queryService.contractInfo(request);
-    },
-    contractHistory(request: QueryContractHistoryRequest): Promise<QueryContractHistoryResponse> {
-      return queryService.contractHistory(request);
-    },
-    contractsByCode(request: QueryContractsByCodeRequest): Promise<QueryContractsByCodeResponse> {
-      return queryService.contractsByCode(request);
-    },
-    allContractState(request: QueryAllContractStateRequest): Promise<QueryAllContractStateResponse> {
-      return queryService.allContractState(request);
-    },
-    rawContractState(request: QueryRawContractStateRequest): Promise<QueryRawContractStateResponse> {
-      return queryService.rawContractState(request);
-    },
-    smartContractState(request: QuerySmartContractStateRequest): Promise<QuerySmartContractStateResponse> {
-      return queryService.smartContractState(request);
-    },
-    code(request: QueryCodeRequest): Promise<QueryCodeResponse> {
-      return queryService.code(request);
-    },
-    codes(request?: QueryCodesRequest): Promise<QueryCodesResponse> {
-      return queryService.codes(request);
-    },
-    pinnedCodes(request?: QueryPinnedCodesRequest): Promise<QueryPinnedCodesResponse> {
-      return queryService.pinnedCodes(request);
-    }
-  };
-};
-export interface UseContractInfoQuery<TData> extends ReactQueryParams<QueryContractInfoResponse, TData> {
-  request: QueryContractInfoRequest;
-}
-export interface UseContractHistoryQuery<TData> extends ReactQueryParams<QueryContractHistoryResponse, TData> {
-  request: QueryContractHistoryRequest;
-}
-export interface UseContractsByCodeQuery<TData> extends ReactQueryParams<QueryContractsByCodeResponse, TData> {
-  request: QueryContractsByCodeRequest;
-}
-export interface UseAllContractStateQuery<TData> extends ReactQueryParams<QueryAllContractStateResponse, TData> {
-  request: QueryAllContractStateRequest;
-}
-export interface UseRawContractStateQuery<TData> extends ReactQueryParams<QueryRawContractStateResponse, TData> {
-  request: QueryRawContractStateRequest;
-}
-export interface UseSmartContractStateQuery<TData> extends ReactQueryParams<QuerySmartContractStateResponse, TData> {
-  request: QuerySmartContractStateRequest;
-}
-export interface UseCodeQuery<TData> extends ReactQueryParams<QueryCodeResponse, TData> {
-  request: QueryCodeRequest;
-}
-export interface UseCodesQuery<TData> extends ReactQueryParams<QueryCodesResponse, TData> {
-  request?: QueryCodesRequest;
-}
-export interface UsePinnedCodesQuery<TData> extends ReactQueryParams<QueryPinnedCodesResponse, TData> {
-  request?: QueryPinnedCodesRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useContractInfo = <TData = QueryContractInfoResponse,>({
-    request,
-    options
-  }: UseContractInfoQuery<TData>) => {
-    return useQuery<QueryContractInfoResponse, Error, TData>(["contractInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.contractInfo(request);
-    }, options);
-  };
-  const useContractHistory = <TData = QueryContractHistoryResponse,>({
-    request,
-    options
-  }: UseContractHistoryQuery<TData>) => {
-    return useQuery<QueryContractHistoryResponse, Error, TData>(["contractHistoryQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.contractHistory(request);
-    }, options);
-  };
-  const useContractsByCode = <TData = QueryContractsByCodeResponse,>({
-    request,
-    options
-  }: UseContractsByCodeQuery<TData>) => {
-    return useQuery<QueryContractsByCodeResponse, Error, TData>(["contractsByCodeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.contractsByCode(request);
-    }, options);
-  };
-  const useAllContractState = <TData = QueryAllContractStateResponse,>({
-    request,
-    options
-  }: UseAllContractStateQuery<TData>) => {
-    return useQuery<QueryAllContractStateResponse, Error, TData>(["allContractStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allContractState(request);
-    }, options);
-  };
-  const useRawContractState = <TData = QueryRawContractStateResponse,>({
-    request,
-    options
-  }: UseRawContractStateQuery<TData>) => {
-    return useQuery<QueryRawContractStateResponse, Error, TData>(["rawContractStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.rawContractState(request);
-    }, options);
-  };
-  const useSmartContractState = <TData = QuerySmartContractStateResponse,>({
-    request,
-    options
-  }: UseSmartContractStateQuery<TData>) => {
-    return useQuery<QuerySmartContractStateResponse, Error, TData>(["smartContractStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.smartContractState(request);
-    }, options);
-  };
-  const useCode = <TData = QueryCodeResponse,>({
-    request,
-    options
-  }: UseCodeQuery<TData>) => {
-    return useQuery<QueryCodeResponse, Error, TData>(["codeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.code(request);
-    }, options);
-  };
-  const useCodes = <TData = QueryCodesResponse,>({
-    request,
-    options
-  }: UseCodesQuery<TData>) => {
-    return useQuery<QueryCodesResponse, Error, TData>(["codesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.codes(request);
-    }, options);
-  };
-  const usePinnedCodes = <TData = QueryPinnedCodesResponse,>({
-    request,
-    options
-  }: UsePinnedCodesQuery<TData>) => {
-    return useQuery<QueryPinnedCodesResponse, Error, TData>(["pinnedCodesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.pinnedCodes(request);
-    }, options);
-  };
-  return {
-    /** ContractInfo gets the contract meta data */useContractInfo,
-    /** ContractHistory gets the contract code history */useContractHistory,
-    /** ContractsByCode lists all smart contracts for a code id */useContractsByCode,
-    /** AllContractState gets all raw store data for a single contract */useAllContractState,
-    /** RawContractState gets single key from the raw store data of a contract */useRawContractState,
-    /** SmartContractState get smart query result from the contract */useSmartContractState,
-    /** Code gets the binary code and metadata for a singe wasm code */useCode,
-    /** Codes gets the metadata for all stored wasm codes */useCodes,
-    /** PinnedCodes gets the pinned code ids */usePinnedCodes
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryContractInfoStore {
-    store = new QueryStore<QueryContractInfoRequest, QueryContractInfoResponse>(queryService?.contractInfo);
-    contractInfo(request: QueryContractInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryContractHistoryStore {
-    store = new QueryStore<QueryContractHistoryRequest, QueryContractHistoryResponse>(queryService?.contractHistory);
-    contractHistory(request: QueryContractHistoryRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryContractsByCodeStore {
-    store = new QueryStore<QueryContractsByCodeRequest, QueryContractsByCodeResponse>(queryService?.contractsByCode);
-    contractsByCode(request: QueryContractsByCodeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllContractStateStore {
-    store = new QueryStore<QueryAllContractStateRequest, QueryAllContractStateResponse>(queryService?.allContractState);
-    allContractState(request: QueryAllContractStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryRawContractStateStore {
-    store = new QueryStore<QueryRawContractStateRequest, QueryRawContractStateResponse>(queryService?.rawContractState);
-    rawContractState(request: QueryRawContractStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySmartContractStateStore {
-    store = new QueryStore<QuerySmartContractStateRequest, QuerySmartContractStateResponse>(queryService?.smartContractState);
-    smartContractState(request: QuerySmartContractStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCodeStore {
-    store = new QueryStore<QueryCodeRequest, QueryCodeResponse>(queryService?.code);
-    code(request: QueryCodeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCodesStore {
-    store = new QueryStore<QueryCodesRequest, QueryCodesResponse>(queryService?.codes);
-    codes(request: QueryCodesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPinnedCodesStore {
-    store = new QueryStore<QueryPinnedCodesRequest, QueryPinnedCodesResponse>(queryService?.pinnedCodes);
-    pinnedCodes(request: QueryPinnedCodesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** ContractInfo gets the contract meta data */QueryContractInfoStore,
-    /** ContractHistory gets the contract code history */QueryContractHistoryStore,
-    /** ContractsByCode lists all smart contracts for a code id */QueryContractsByCodeStore,
-    /** AllContractState gets all raw store data for a single contract */QueryAllContractStateStore,
-    /** RawContractState gets single key from the raw store data of a contract */QueryRawContractStateStore,
-    /** SmartContractState get smart query result from the contract */QuerySmartContractStateStore,
-    /** Code gets the binary code and metadata for a singe wasm code */QueryCodeStore,
-    /** Codes gets the metadata for all stored wasm codes */QueryCodesStore,
-    /** PinnedCodes gets the pinned code ids */QueryPinnedCodesStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/query.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/query.ts
deleted file mode 100644
index 6f9948a0..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/query.ts
+++ /dev/null
@@ -1,2538 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../cosmos/base/query/v1beta1/pagination";
-import { ContractInfo, ContractInfoAmino, ContractInfoSDKType, ContractCodeHistoryEntry, ContractCodeHistoryEntryAmino, ContractCodeHistoryEntrySDKType, Model, ModelAmino, ModelSDKType } from "./types";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-import { toUtf8, fromUtf8 } from "@cosmjs/encoding";
-/**
- * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoRequest {
-  /** address is the address of the contract to query */
-  address: string;
-}
-export interface QueryContractInfoRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoRequest";
-  value: Uint8Array;
-}
-/**
- * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoRequestAmino {
-  /** address is the address of the contract to query */
-  address: string;
-}
-export interface QueryContractInfoRequestAminoMsg {
-  type: "wasm/QueryContractInfoRequest";
-  value: QueryContractInfoRequestAmino;
-}
-/**
- * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoRequestSDKType {
-  address: string;
-}
-/**
- * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoResponse {
-  /** address is the address of the contract */
-  address: string;
-  contractInfo: ContractInfo | undefined;
-}
-export interface QueryContractInfoResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoResponse";
-  value: Uint8Array;
-}
-/**
- * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoResponseAmino {
-  /** address is the address of the contract */
-  address: string;
-  contract_info?: ContractInfoAmino | undefined;
-}
-export interface QueryContractInfoResponseAminoMsg {
-  type: "wasm/QueryContractInfoResponse";
-  value: QueryContractInfoResponseAmino;
-}
-/**
- * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC
- * method
- */
-export interface QueryContractInfoResponseSDKType {
-  address: string;
-  contract_info: ContractInfoSDKType | undefined;
-}
-/**
- * QueryContractHistoryRequest is the request type for the Query/ContractHistory
- * RPC method
- */
-export interface QueryContractHistoryRequest {
-  /** address is the address of the contract to query */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryContractHistoryRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryRequest";
-  value: Uint8Array;
-}
-/**
- * QueryContractHistoryRequest is the request type for the Query/ContractHistory
- * RPC method
- */
-export interface QueryContractHistoryRequestAmino {
-  /** address is the address of the contract to query */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryContractHistoryRequestAminoMsg {
-  type: "wasm/QueryContractHistoryRequest";
-  value: QueryContractHistoryRequestAmino;
-}
-/**
- * QueryContractHistoryRequest is the request type for the Query/ContractHistory
- * RPC method
- */
-export interface QueryContractHistoryRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryContractHistoryResponse is the response type for the
- * Query/ContractHistory RPC method
- */
-export interface QueryContractHistoryResponse {
-  entries: ContractCodeHistoryEntry[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryContractHistoryResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryResponse";
-  value: Uint8Array;
-}
-/**
- * QueryContractHistoryResponse is the response type for the
- * Query/ContractHistory RPC method
- */
-export interface QueryContractHistoryResponseAmino {
-  entries: ContractCodeHistoryEntryAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryContractHistoryResponseAminoMsg {
-  type: "wasm/QueryContractHistoryResponse";
-  value: QueryContractHistoryResponseAmino;
-}
-/**
- * QueryContractHistoryResponse is the response type for the
- * Query/ContractHistory RPC method
- */
-export interface QueryContractHistoryResponseSDKType {
-  entries: ContractCodeHistoryEntrySDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode
- * RPC method
- */
-export interface QueryContractsByCodeRequest {
-  /**
-   * grpc-gateway_out does not support Go style CodID
-   * pagination defines an optional pagination for the request.
-   */
-  codeId: bigint;
-  pagination: PageRequest | undefined;
-}
-export interface QueryContractsByCodeRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeRequest";
-  value: Uint8Array;
-}
-/**
- * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode
- * RPC method
- */
-export interface QueryContractsByCodeRequestAmino {
-  /**
-   * grpc-gateway_out does not support Go style CodID
-   * pagination defines an optional pagination for the request.
-   */
-  code_id: string;
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryContractsByCodeRequestAminoMsg {
-  type: "wasm/QueryContractsByCodeRequest";
-  value: QueryContractsByCodeRequestAmino;
-}
-/**
- * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode
- * RPC method
- */
-export interface QueryContractsByCodeRequestSDKType {
-  code_id: bigint;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryContractsByCodeResponse is the response type for the
- * Query/ContractsByCode RPC method
- */
-export interface QueryContractsByCodeResponse {
-  /** contracts are a set of contract addresses */
-  contracts: string[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryContractsByCodeResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeResponse";
-  value: Uint8Array;
-}
-/**
- * QueryContractsByCodeResponse is the response type for the
- * Query/ContractsByCode RPC method
- */
-export interface QueryContractsByCodeResponseAmino {
-  /** contracts are a set of contract addresses */
-  contracts: string[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryContractsByCodeResponseAminoMsg {
-  type: "wasm/QueryContractsByCodeResponse";
-  value: QueryContractsByCodeResponseAmino;
-}
-/**
- * QueryContractsByCodeResponse is the response type for the
- * Query/ContractsByCode RPC method
- */
-export interface QueryContractsByCodeResponseSDKType {
-  contracts: string[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryAllContractStateRequest is the request type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateRequest {
-  /** address is the address of the contract */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryAllContractStateRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryAllContractStateRequest is the request type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateRequestAmino {
-  /** address is the address of the contract */
-  address: string;
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryAllContractStateRequestAminoMsg {
-  type: "wasm/QueryAllContractStateRequest";
-  value: QueryAllContractStateRequestAmino;
-}
-/**
- * QueryAllContractStateRequest is the request type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateRequestSDKType {
-  address: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryAllContractStateResponse is the response type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateResponse {
-  models: Model[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryAllContractStateResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryAllContractStateResponse is the response type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateResponseAmino {
-  models: ModelAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryAllContractStateResponseAminoMsg {
-  type: "wasm/QueryAllContractStateResponse";
-  value: QueryAllContractStateResponseAmino;
-}
-/**
- * QueryAllContractStateResponse is the response type for the
- * Query/AllContractState RPC method
- */
-export interface QueryAllContractStateResponseSDKType {
-  models: ModelSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryRawContractStateRequest is the request type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateRequest {
-  /** address is the address of the contract */
-  address: string;
-  queryData: Uint8Array;
-}
-export interface QueryRawContractStateRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryRawContractStateRequest is the request type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateRequestAmino {
-  /** address is the address of the contract */
-  address: string;
-  query_data: Uint8Array;
-}
-export interface QueryRawContractStateRequestAminoMsg {
-  type: "wasm/QueryRawContractStateRequest";
-  value: QueryRawContractStateRequestAmino;
-}
-/**
- * QueryRawContractStateRequest is the request type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateRequestSDKType {
-  address: string;
-  query_data: Uint8Array;
-}
-/**
- * QueryRawContractStateResponse is the response type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateResponse {
-  /** Data contains the raw store data */
-  data: Uint8Array;
-}
-export interface QueryRawContractStateResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryRawContractStateResponse is the response type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateResponseAmino {
-  /** Data contains the raw store data */
-  data: Uint8Array;
-}
-export interface QueryRawContractStateResponseAminoMsg {
-  type: "wasm/QueryRawContractStateResponse";
-  value: QueryRawContractStateResponseAmino;
-}
-/**
- * QueryRawContractStateResponse is the response type for the
- * Query/RawContractState RPC method
- */
-export interface QueryRawContractStateResponseSDKType {
-  data: Uint8Array;
-}
-/**
- * QuerySmartContractStateRequest is the request type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateRequest {
-  /** address is the address of the contract */
-  address: string;
-  /** QueryData contains the query data passed to the contract */
-  queryData: Uint8Array;
-}
-export interface QuerySmartContractStateRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySmartContractStateRequest is the request type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateRequestAmino {
-  /** address is the address of the contract */
-  address: string;
-  /** QueryData contains the query data passed to the contract */
-  query_data: Uint8Array;
-}
-export interface QuerySmartContractStateRequestAminoMsg {
-  type: "wasm/QuerySmartContractStateRequest";
-  value: QuerySmartContractStateRequestAmino;
-}
-/**
- * QuerySmartContractStateRequest is the request type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateRequestSDKType {
-  address: string;
-  query_data: Uint8Array;
-}
-/**
- * QuerySmartContractStateResponse is the response type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateResponse {
-  /** Data contains the json data returned from the smart contract */
-  data: Uint8Array;
-}
-export interface QuerySmartContractStateResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySmartContractStateResponse is the response type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateResponseAmino {
-  /** Data contains the json data returned from the smart contract */
-  data: Uint8Array;
-}
-export interface QuerySmartContractStateResponseAminoMsg {
-  type: "wasm/QuerySmartContractStateResponse";
-  value: QuerySmartContractStateResponseAmino;
-}
-/**
- * QuerySmartContractStateResponse is the response type for the
- * Query/SmartContractState RPC method
- */
-export interface QuerySmartContractStateResponseSDKType {
-  data: Uint8Array;
-}
-/** QueryCodeRequest is the request type for the Query/Code RPC method */
-export interface QueryCodeRequest {
-  /** grpc-gateway_out does not support Go style CodID */
-  codeId: bigint;
-}
-export interface QueryCodeRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodeRequest";
-  value: Uint8Array;
-}
-/** QueryCodeRequest is the request type for the Query/Code RPC method */
-export interface QueryCodeRequestAmino {
-  /** grpc-gateway_out does not support Go style CodID */
-  code_id: string;
-}
-export interface QueryCodeRequestAminoMsg {
-  type: "wasm/QueryCodeRequest";
-  value: QueryCodeRequestAmino;
-}
-/** QueryCodeRequest is the request type for the Query/Code RPC method */
-export interface QueryCodeRequestSDKType {
-  code_id: bigint;
-}
-/** CodeInfoResponse contains code meta data from CodeInfo */
-export interface CodeInfoResponse {
-  codeId: bigint;
-  creator: string;
-  dataHash: Uint8Array;
-}
-export interface CodeInfoResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.CodeInfoResponse";
-  value: Uint8Array;
-}
-/** CodeInfoResponse contains code meta data from CodeInfo */
-export interface CodeInfoResponseAmino {
-  code_id: string;
-  creator: string;
-  data_hash: Uint8Array;
-}
-export interface CodeInfoResponseAminoMsg {
-  type: "wasm/CodeInfoResponse";
-  value: CodeInfoResponseAmino;
-}
-/** CodeInfoResponse contains code meta data from CodeInfo */
-export interface CodeInfoResponseSDKType {
-  code_id: bigint;
-  creator: string;
-  data_hash: Uint8Array;
-}
-/** QueryCodeResponse is the response type for the Query/Code RPC method */
-export interface QueryCodeResponse {
-  codeInfo: CodeInfoResponse | undefined;
-  data: Uint8Array;
-}
-export interface QueryCodeResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodeResponse";
-  value: Uint8Array;
-}
-/** QueryCodeResponse is the response type for the Query/Code RPC method */
-export interface QueryCodeResponseAmino {
-  code_info?: CodeInfoResponseAmino | undefined;
-  data: Uint8Array;
-}
-export interface QueryCodeResponseAminoMsg {
-  type: "wasm/QueryCodeResponse";
-  value: QueryCodeResponseAmino;
-}
-/** QueryCodeResponse is the response type for the Query/Code RPC method */
-export interface QueryCodeResponseSDKType {
-  code_info: CodeInfoResponseSDKType | undefined;
-  data: Uint8Array;
-}
-/** QueryCodesRequest is the request type for the Query/Codes RPC method */
-export interface QueryCodesRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryCodesRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodesRequest";
-  value: Uint8Array;
-}
-/** QueryCodesRequest is the request type for the Query/Codes RPC method */
-export interface QueryCodesRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryCodesRequestAminoMsg {
-  type: "wasm/QueryCodesRequest";
-  value: QueryCodesRequestAmino;
-}
-/** QueryCodesRequest is the request type for the Query/Codes RPC method */
-export interface QueryCodesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryCodesResponse is the response type for the Query/Codes RPC method */
-export interface QueryCodesResponse {
-  codeInfos: CodeInfoResponse[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryCodesResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodesResponse";
-  value: Uint8Array;
-}
-/** QueryCodesResponse is the response type for the Query/Codes RPC method */
-export interface QueryCodesResponseAmino {
-  code_infos: CodeInfoResponseAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryCodesResponseAminoMsg {
-  type: "wasm/QueryCodesResponse";
-  value: QueryCodesResponseAmino;
-}
-/** QueryCodesResponse is the response type for the Query/Codes RPC method */
-export interface QueryCodesResponseSDKType {
-  code_infos: CodeInfoResponseSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes
- * RPC method
- */
-export interface QueryPinnedCodesRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryPinnedCodesRequestProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes
- * RPC method
- */
-export interface QueryPinnedCodesRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryPinnedCodesRequestAminoMsg {
-  type: "wasm/QueryPinnedCodesRequest";
-  value: QueryPinnedCodesRequestAmino;
-}
-/**
- * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes
- * RPC method
- */
-export interface QueryPinnedCodesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryPinnedCodesResponse is the response type for the
- * Query/PinnedCodes RPC method
- */
-export interface QueryPinnedCodesResponse {
-  codeIds: bigint[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryPinnedCodesResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPinnedCodesResponse is the response type for the
- * Query/PinnedCodes RPC method
- */
-export interface QueryPinnedCodesResponseAmino {
-  code_ids: string[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryPinnedCodesResponseAminoMsg {
-  type: "wasm/QueryPinnedCodesResponse";
-  value: QueryPinnedCodesResponseAmino;
-}
-/**
- * QueryPinnedCodesResponse is the response type for the
- * Query/PinnedCodes RPC method
- */
-export interface QueryPinnedCodesResponseSDKType {
-  code_ids: bigint[];
-  pagination: PageResponseSDKType | undefined;
-}
-function createBaseQueryContractInfoRequest(): QueryContractInfoRequest {
-  return {
-    address: ""
-  };
-}
-export const QueryContractInfoRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoRequest",
-  aminoType: "wasm/QueryContractInfoRequest",
-  encode(message: QueryContractInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractInfoRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryContractInfoRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractInfoRequest>): QueryContractInfoRequest {
-    const message = createBaseQueryContractInfoRequest();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryContractInfoRequestSDKType): QueryContractInfoRequest {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryContractInfoRequest): QueryContractInfoRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryContractInfoRequestAmino): QueryContractInfoRequest {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryContractInfoRequest): QueryContractInfoRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractInfoRequestAminoMsg): QueryContractInfoRequest {
-    return QueryContractInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractInfoRequest): QueryContractInfoRequestAminoMsg {
-    return {
-      type: "wasm/QueryContractInfoRequest",
-      value: QueryContractInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractInfoRequestProtoMsg): QueryContractInfoRequest {
-    return QueryContractInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryContractInfoRequest): Uint8Array {
-    return QueryContractInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractInfoRequest): QueryContractInfoRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoRequest",
-      value: QueryContractInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryContractInfoResponse(): QueryContractInfoResponse {
-  return {
-    address: "",
-    contractInfo: ContractInfo.fromPartial({})
-  };
-}
-export const QueryContractInfoResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoResponse",
-  aminoType: "wasm/QueryContractInfoResponse",
-  encode(message: QueryContractInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.contractInfo !== undefined) {
-      ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.contractInfo = ContractInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractInfoResponse {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      contractInfo: isSet(object.contractInfo) ? ContractInfo.fromJSON(object.contractInfo) : undefined
-    };
-  },
-  toJSON(message: QueryContractInfoResponse): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.contractInfo !== undefined && (obj.contractInfo = message.contractInfo ? ContractInfo.toJSON(message.contractInfo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractInfoResponse>): QueryContractInfoResponse {
-    const message = createBaseQueryContractInfoResponse();
-    message.address = object.address ?? "";
-    message.contractInfo = object.contractInfo !== undefined && object.contractInfo !== null ? ContractInfo.fromPartial(object.contractInfo) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryContractInfoResponseSDKType): QueryContractInfoResponse {
-    return {
-      address: object?.address,
-      contractInfo: object.contract_info ? ContractInfo.fromSDK(object.contract_info) : undefined
-    };
-  },
-  toSDK(message: QueryContractInfoResponse): QueryContractInfoResponseSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.contractInfo !== undefined && (obj.contract_info = message.contractInfo ? ContractInfo.toSDK(message.contractInfo) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryContractInfoResponseAmino): QueryContractInfoResponse {
-    return {
-      address: object.address,
-      contractInfo: object?.contract_info ? ContractInfo.fromAmino(object.contract_info) : undefined
-    };
-  },
-  toAmino(message: QueryContractInfoResponse): QueryContractInfoResponseAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.contract_info = message.contractInfo ? ContractInfo.toAmino(message.contractInfo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractInfoResponseAminoMsg): QueryContractInfoResponse {
-    return QueryContractInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractInfoResponse): QueryContractInfoResponseAminoMsg {
-    return {
-      type: "wasm/QueryContractInfoResponse",
-      value: QueryContractInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractInfoResponseProtoMsg): QueryContractInfoResponse {
-    return QueryContractInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryContractInfoResponse): Uint8Array {
-    return QueryContractInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractInfoResponse): QueryContractInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractInfoResponse",
-      value: QueryContractInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryContractHistoryRequest(): QueryContractHistoryRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryContractHistoryRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryRequest",
-  aminoType: "wasm/QueryContractHistoryRequest",
-  encode(message: QueryContractHistoryRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractHistoryRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractHistoryRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractHistoryRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryContractHistoryRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractHistoryRequest>): QueryContractHistoryRequest {
-    const message = createBaseQueryContractHistoryRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryContractHistoryRequestSDKType): QueryContractHistoryRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryContractHistoryRequest): QueryContractHistoryRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryContractHistoryRequestAmino): QueryContractHistoryRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryContractHistoryRequest): QueryContractHistoryRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractHistoryRequestAminoMsg): QueryContractHistoryRequest {
-    return QueryContractHistoryRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractHistoryRequest): QueryContractHistoryRequestAminoMsg {
-    return {
-      type: "wasm/QueryContractHistoryRequest",
-      value: QueryContractHistoryRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractHistoryRequestProtoMsg): QueryContractHistoryRequest {
-    return QueryContractHistoryRequest.decode(message.value);
-  },
-  toProto(message: QueryContractHistoryRequest): Uint8Array {
-    return QueryContractHistoryRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractHistoryRequest): QueryContractHistoryRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryRequest",
-      value: QueryContractHistoryRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryContractHistoryResponse(): QueryContractHistoryResponse {
-  return {
-    entries: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryContractHistoryResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryResponse",
-  aminoType: "wasm/QueryContractHistoryResponse",
-  encode(message: QueryContractHistoryResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.entries) {
-      ContractCodeHistoryEntry.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractHistoryResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractHistoryResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.entries.push(ContractCodeHistoryEntry.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractHistoryResponse {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => ContractCodeHistoryEntry.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryContractHistoryResponse): unknown {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? ContractCodeHistoryEntry.toJSON(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractHistoryResponse>): QueryContractHistoryResponse {
-    const message = createBaseQueryContractHistoryResponse();
-    message.entries = object.entries?.map(e => ContractCodeHistoryEntry.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryContractHistoryResponseSDKType): QueryContractHistoryResponse {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => ContractCodeHistoryEntry.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryContractHistoryResponse): QueryContractHistoryResponseSDKType {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? ContractCodeHistoryEntry.toSDK(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryContractHistoryResponseAmino): QueryContractHistoryResponse {
-    return {
-      entries: Array.isArray(object?.entries) ? object.entries.map((e: any) => ContractCodeHistoryEntry.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryContractHistoryResponse): QueryContractHistoryResponseAmino {
-    const obj: any = {};
-    if (message.entries) {
-      obj.entries = message.entries.map(e => e ? ContractCodeHistoryEntry.toAmino(e) : undefined);
-    } else {
-      obj.entries = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractHistoryResponseAminoMsg): QueryContractHistoryResponse {
-    return QueryContractHistoryResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractHistoryResponse): QueryContractHistoryResponseAminoMsg {
-    return {
-      type: "wasm/QueryContractHistoryResponse",
-      value: QueryContractHistoryResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractHistoryResponseProtoMsg): QueryContractHistoryResponse {
-    return QueryContractHistoryResponse.decode(message.value);
-  },
-  toProto(message: QueryContractHistoryResponse): Uint8Array {
-    return QueryContractHistoryResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractHistoryResponse): QueryContractHistoryResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractHistoryResponse",
-      value: QueryContractHistoryResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryContractsByCodeRequest(): QueryContractsByCodeRequest {
-  return {
-    codeId: BigInt(0),
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryContractsByCodeRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeRequest",
-  aminoType: "wasm/QueryContractsByCodeRequest",
-  encode(message: QueryContractsByCodeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractsByCodeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractsByCodeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractsByCodeRequest {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryContractsByCodeRequest): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractsByCodeRequest>): QueryContractsByCodeRequest {
-    const message = createBaseQueryContractsByCodeRequest();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryContractsByCodeRequestSDKType): QueryContractsByCodeRequest {
-    return {
-      codeId: object?.code_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryContractsByCodeRequest): QueryContractsByCodeRequestSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryContractsByCodeRequestAmino): QueryContractsByCodeRequest {
-    return {
-      codeId: BigInt(object.code_id),
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryContractsByCodeRequest): QueryContractsByCodeRequestAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractsByCodeRequestAminoMsg): QueryContractsByCodeRequest {
-    return QueryContractsByCodeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractsByCodeRequest): QueryContractsByCodeRequestAminoMsg {
-    return {
-      type: "wasm/QueryContractsByCodeRequest",
-      value: QueryContractsByCodeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractsByCodeRequestProtoMsg): QueryContractsByCodeRequest {
-    return QueryContractsByCodeRequest.decode(message.value);
-  },
-  toProto(message: QueryContractsByCodeRequest): Uint8Array {
-    return QueryContractsByCodeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractsByCodeRequest): QueryContractsByCodeRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeRequest",
-      value: QueryContractsByCodeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryContractsByCodeResponse(): QueryContractsByCodeResponse {
-  return {
-    contracts: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryContractsByCodeResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeResponse",
-  aminoType: "wasm/QueryContractsByCodeResponse",
-  encode(message: QueryContractsByCodeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.contracts) {
-      writer.uint32(10).string(v!);
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryContractsByCodeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryContractsByCodeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.contracts.push(reader.string());
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryContractsByCodeResponse {
-    return {
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => String(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryContractsByCodeResponse): unknown {
-    const obj: any = {};
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e);
-    } else {
-      obj.contracts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryContractsByCodeResponse>): QueryContractsByCodeResponse {
-    const message = createBaseQueryContractsByCodeResponse();
-    message.contracts = object.contracts?.map(e => e) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryContractsByCodeResponseSDKType): QueryContractsByCodeResponse {
-    return {
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => e) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryContractsByCodeResponse): QueryContractsByCodeResponseSDKType {
-    const obj: any = {};
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e);
-    } else {
-      obj.contracts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryContractsByCodeResponseAmino): QueryContractsByCodeResponse {
-    return {
-      contracts: Array.isArray(object?.contracts) ? object.contracts.map((e: any) => e) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryContractsByCodeResponse): QueryContractsByCodeResponseAmino {
-    const obj: any = {};
-    if (message.contracts) {
-      obj.contracts = message.contracts.map(e => e);
-    } else {
-      obj.contracts = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryContractsByCodeResponseAminoMsg): QueryContractsByCodeResponse {
-    return QueryContractsByCodeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryContractsByCodeResponse): QueryContractsByCodeResponseAminoMsg {
-    return {
-      type: "wasm/QueryContractsByCodeResponse",
-      value: QueryContractsByCodeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryContractsByCodeResponseProtoMsg): QueryContractsByCodeResponse {
-    return QueryContractsByCodeResponse.decode(message.value);
-  },
-  toProto(message: QueryContractsByCodeResponse): Uint8Array {
-    return QueryContractsByCodeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryContractsByCodeResponse): QueryContractsByCodeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryContractsByCodeResponse",
-      value: QueryContractsByCodeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllContractStateRequest(): QueryAllContractStateRequest {
-  return {
-    address: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryAllContractStateRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateRequest",
-  aminoType: "wasm/QueryAllContractStateRequest",
-  encode(message: QueryAllContractStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllContractStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllContractStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllContractStateRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllContractStateRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllContractStateRequest>): QueryAllContractStateRequest {
-    const message = createBaseQueryAllContractStateRequest();
-    message.address = object.address ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllContractStateRequestSDKType): QueryAllContractStateRequest {
-    return {
-      address: object?.address,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllContractStateRequest): QueryAllContractStateRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllContractStateRequestAmino): QueryAllContractStateRequest {
-    return {
-      address: object.address,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllContractStateRequest): QueryAllContractStateRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllContractStateRequestAminoMsg): QueryAllContractStateRequest {
-    return QueryAllContractStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllContractStateRequest): QueryAllContractStateRequestAminoMsg {
-    return {
-      type: "wasm/QueryAllContractStateRequest",
-      value: QueryAllContractStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllContractStateRequestProtoMsg): QueryAllContractStateRequest {
-    return QueryAllContractStateRequest.decode(message.value);
-  },
-  toProto(message: QueryAllContractStateRequest): Uint8Array {
-    return QueryAllContractStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllContractStateRequest): QueryAllContractStateRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateRequest",
-      value: QueryAllContractStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAllContractStateResponse(): QueryAllContractStateResponse {
-  return {
-    models: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryAllContractStateResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateResponse",
-  aminoType: "wasm/QueryAllContractStateResponse",
-  encode(message: QueryAllContractStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.models) {
-      Model.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAllContractStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAllContractStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.models.push(Model.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAllContractStateResponse {
-    return {
-      models: Array.isArray(object?.models) ? object.models.map((e: any) => Model.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryAllContractStateResponse): unknown {
-    const obj: any = {};
-    if (message.models) {
-      obj.models = message.models.map(e => e ? Model.toJSON(e) : undefined);
-    } else {
-      obj.models = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAllContractStateResponse>): QueryAllContractStateResponse {
-    const message = createBaseQueryAllContractStateResponse();
-    message.models = object.models?.map(e => Model.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryAllContractStateResponseSDKType): QueryAllContractStateResponse {
-    return {
-      models: Array.isArray(object?.models) ? object.models.map((e: any) => Model.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryAllContractStateResponse): QueryAllContractStateResponseSDKType {
-    const obj: any = {};
-    if (message.models) {
-      obj.models = message.models.map(e => e ? Model.toSDK(e) : undefined);
-    } else {
-      obj.models = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryAllContractStateResponseAmino): QueryAllContractStateResponse {
-    return {
-      models: Array.isArray(object?.models) ? object.models.map((e: any) => Model.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryAllContractStateResponse): QueryAllContractStateResponseAmino {
-    const obj: any = {};
-    if (message.models) {
-      obj.models = message.models.map(e => e ? Model.toAmino(e) : undefined);
-    } else {
-      obj.models = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAllContractStateResponseAminoMsg): QueryAllContractStateResponse {
-    return QueryAllContractStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAllContractStateResponse): QueryAllContractStateResponseAminoMsg {
-    return {
-      type: "wasm/QueryAllContractStateResponse",
-      value: QueryAllContractStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAllContractStateResponseProtoMsg): QueryAllContractStateResponse {
-    return QueryAllContractStateResponse.decode(message.value);
-  },
-  toProto(message: QueryAllContractStateResponse): Uint8Array {
-    return QueryAllContractStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAllContractStateResponse): QueryAllContractStateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryAllContractStateResponse",
-      value: QueryAllContractStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryRawContractStateRequest(): QueryRawContractStateRequest {
-  return {
-    address: "",
-    queryData: new Uint8Array()
-  };
-}
-export const QueryRawContractStateRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateRequest",
-  aminoType: "wasm/QueryRawContractStateRequest",
-  encode(message: QueryRawContractStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.queryData.length !== 0) {
-      writer.uint32(18).bytes(message.queryData);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryRawContractStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryRawContractStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.queryData = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryRawContractStateRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      queryData: isSet(object.queryData) ? bytesFromBase64(object.queryData) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryRawContractStateRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.queryData !== undefined && (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryRawContractStateRequest>): QueryRawContractStateRequest {
-    const message = createBaseQueryRawContractStateRequest();
-    message.address = object.address ?? "";
-    message.queryData = object.queryData ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryRawContractStateRequestSDKType): QueryRawContractStateRequest {
-    return {
-      address: object?.address,
-      queryData: object?.query_data
-    };
-  },
-  toSDK(message: QueryRawContractStateRequest): QueryRawContractStateRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.query_data = message.queryData;
-    return obj;
-  },
-  fromAmino(object: QueryRawContractStateRequestAmino): QueryRawContractStateRequest {
-    return {
-      address: object.address,
-      queryData: object.query_data
-    };
-  },
-  toAmino(message: QueryRawContractStateRequest): QueryRawContractStateRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.query_data = message.queryData;
-    return obj;
-  },
-  fromAminoMsg(object: QueryRawContractStateRequestAminoMsg): QueryRawContractStateRequest {
-    return QueryRawContractStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryRawContractStateRequest): QueryRawContractStateRequestAminoMsg {
-    return {
-      type: "wasm/QueryRawContractStateRequest",
-      value: QueryRawContractStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryRawContractStateRequestProtoMsg): QueryRawContractStateRequest {
-    return QueryRawContractStateRequest.decode(message.value);
-  },
-  toProto(message: QueryRawContractStateRequest): Uint8Array {
-    return QueryRawContractStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryRawContractStateRequest): QueryRawContractStateRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateRequest",
-      value: QueryRawContractStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryRawContractStateResponse(): QueryRawContractStateResponse {
-  return {
-    data: new Uint8Array()
-  };
-}
-export const QueryRawContractStateResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateResponse",
-  aminoType: "wasm/QueryRawContractStateResponse",
-  encode(message: QueryRawContractStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryRawContractStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryRawContractStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryRawContractStateResponse {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryRawContractStateResponse): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryRawContractStateResponse>): QueryRawContractStateResponse {
-    const message = createBaseQueryRawContractStateResponse();
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryRawContractStateResponseSDKType): QueryRawContractStateResponse {
-    return {
-      data: object?.data
-    };
-  },
-  toSDK(message: QueryRawContractStateResponse): QueryRawContractStateResponseSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: QueryRawContractStateResponseAmino): QueryRawContractStateResponse {
-    return {
-      data: object.data
-    };
-  },
-  toAmino(message: QueryRawContractStateResponse): QueryRawContractStateResponseAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: QueryRawContractStateResponseAminoMsg): QueryRawContractStateResponse {
-    return QueryRawContractStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryRawContractStateResponse): QueryRawContractStateResponseAminoMsg {
-    return {
-      type: "wasm/QueryRawContractStateResponse",
-      value: QueryRawContractStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryRawContractStateResponseProtoMsg): QueryRawContractStateResponse {
-    return QueryRawContractStateResponse.decode(message.value);
-  },
-  toProto(message: QueryRawContractStateResponse): Uint8Array {
-    return QueryRawContractStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryRawContractStateResponse): QueryRawContractStateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryRawContractStateResponse",
-      value: QueryRawContractStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySmartContractStateRequest(): QuerySmartContractStateRequest {
-  return {
-    address: "",
-    queryData: new Uint8Array()
-  };
-}
-export const QuerySmartContractStateRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateRequest",
-  aminoType: "wasm/QuerySmartContractStateRequest",
-  encode(message: QuerySmartContractStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.queryData.length !== 0) {
-      writer.uint32(18).bytes(message.queryData);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySmartContractStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySmartContractStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.queryData = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySmartContractStateRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      queryData: isSet(object.queryData) ? bytesFromBase64(object.queryData) : new Uint8Array()
-    };
-  },
-  toJSON(message: QuerySmartContractStateRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.queryData !== undefined && (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySmartContractStateRequest>): QuerySmartContractStateRequest {
-    const message = createBaseQuerySmartContractStateRequest();
-    message.address = object.address ?? "";
-    message.queryData = object.queryData ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QuerySmartContractStateRequestSDKType): QuerySmartContractStateRequest {
-    return {
-      address: object?.address,
-      queryData: object?.query_data
-    };
-  },
-  toSDK(message: QuerySmartContractStateRequest): QuerySmartContractStateRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.query_data = message.queryData;
-    return obj;
-  },
-  fromAmino(object: QuerySmartContractStateRequestAmino): QuerySmartContractStateRequest {
-    return {
-      address: object.address,
-      queryData: toUtf8(JSON.stringify(object.query_data))
-    };
-  },
-  toAmino(message: QuerySmartContractStateRequest): QuerySmartContractStateRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.query_data = message.queryData ? JSON.parse(fromUtf8(message.queryData)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySmartContractStateRequestAminoMsg): QuerySmartContractStateRequest {
-    return QuerySmartContractStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySmartContractStateRequest): QuerySmartContractStateRequestAminoMsg {
-    return {
-      type: "wasm/QuerySmartContractStateRequest",
-      value: QuerySmartContractStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySmartContractStateRequestProtoMsg): QuerySmartContractStateRequest {
-    return QuerySmartContractStateRequest.decode(message.value);
-  },
-  toProto(message: QuerySmartContractStateRequest): Uint8Array {
-    return QuerySmartContractStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySmartContractStateRequest): QuerySmartContractStateRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateRequest",
-      value: QuerySmartContractStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySmartContractStateResponse(): QuerySmartContractStateResponse {
-  return {
-    data: new Uint8Array()
-  };
-}
-export const QuerySmartContractStateResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateResponse",
-  aminoType: "wasm/QuerySmartContractStateResponse",
-  encode(message: QuerySmartContractStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySmartContractStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySmartContractStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySmartContractStateResponse {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: QuerySmartContractStateResponse): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySmartContractStateResponse>): QuerySmartContractStateResponse {
-    const message = createBaseQuerySmartContractStateResponse();
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QuerySmartContractStateResponseSDKType): QuerySmartContractStateResponse {
-    return {
-      data: object?.data
-    };
-  },
-  toSDK(message: QuerySmartContractStateResponse): QuerySmartContractStateResponseSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: QuerySmartContractStateResponseAmino): QuerySmartContractStateResponse {
-    return {
-      data: toUtf8(JSON.stringify(object.data))
-    };
-  },
-  toAmino(message: QuerySmartContractStateResponse): QuerySmartContractStateResponseAmino {
-    const obj: any = {};
-    obj.data = message.data ? JSON.parse(fromUtf8(message.data)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySmartContractStateResponseAminoMsg): QuerySmartContractStateResponse {
-    return QuerySmartContractStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySmartContractStateResponse): QuerySmartContractStateResponseAminoMsg {
-    return {
-      type: "wasm/QuerySmartContractStateResponse",
-      value: QuerySmartContractStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySmartContractStateResponseProtoMsg): QuerySmartContractStateResponse {
-    return QuerySmartContractStateResponse.decode(message.value);
-  },
-  toProto(message: QuerySmartContractStateResponse): Uint8Array {
-    return QuerySmartContractStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySmartContractStateResponse): QuerySmartContractStateResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QuerySmartContractStateResponse",
-      value: QuerySmartContractStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCodeRequest(): QueryCodeRequest {
-  return {
-    codeId: BigInt(0)
-  };
-}
-export const QueryCodeRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodeRequest",
-  aminoType: "wasm/QueryCodeRequest",
-  encode(message: QueryCodeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCodeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCodeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCodeRequest {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryCodeRequest): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCodeRequest>): QueryCodeRequest {
-    const message = createBaseQueryCodeRequest();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryCodeRequestSDKType): QueryCodeRequest {
-    return {
-      codeId: object?.code_id
-    };
-  },
-  toSDK(message: QueryCodeRequest): QueryCodeRequestSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    return obj;
-  },
-  fromAmino(object: QueryCodeRequestAmino): QueryCodeRequest {
-    return {
-      codeId: BigInt(object.code_id)
-    };
-  },
-  toAmino(message: QueryCodeRequest): QueryCodeRequestAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCodeRequestAminoMsg): QueryCodeRequest {
-    return QueryCodeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCodeRequest): QueryCodeRequestAminoMsg {
-    return {
-      type: "wasm/QueryCodeRequest",
-      value: QueryCodeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCodeRequestProtoMsg): QueryCodeRequest {
-    return QueryCodeRequest.decode(message.value);
-  },
-  toProto(message: QueryCodeRequest): Uint8Array {
-    return QueryCodeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCodeRequest): QueryCodeRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryCodeRequest",
-      value: QueryCodeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseCodeInfoResponse(): CodeInfoResponse {
-  return {
-    codeId: BigInt(0),
-    creator: "",
-    dataHash: new Uint8Array()
-  };
-}
-export const CodeInfoResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.CodeInfoResponse",
-  aminoType: "wasm/CodeInfoResponse",
-  encode(message: CodeInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    if (message.creator !== "") {
-      writer.uint32(18).string(message.creator);
-    }
-    if (message.dataHash.length !== 0) {
-      writer.uint32(26).bytes(message.dataHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CodeInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCodeInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        case 2:
-          message.creator = reader.string();
-          break;
-        case 3:
-          message.dataHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CodeInfoResponse {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      creator: isSet(object.creator) ? String(object.creator) : "",
-      dataHash: isSet(object.dataHash) ? bytesFromBase64(object.dataHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: CodeInfoResponse): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.creator !== undefined && (obj.creator = message.creator);
-    message.dataHash !== undefined && (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CodeInfoResponse>): CodeInfoResponse {
-    const message = createBaseCodeInfoResponse();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.creator = object.creator ?? "";
-    message.dataHash = object.dataHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: CodeInfoResponseSDKType): CodeInfoResponse {
-    return {
-      codeId: object?.code_id,
-      creator: object?.creator,
-      dataHash: object?.data_hash
-    };
-  },
-  toSDK(message: CodeInfoResponse): CodeInfoResponseSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    obj.creator = message.creator;
-    obj.data_hash = message.dataHash;
-    return obj;
-  },
-  fromAmino(object: CodeInfoResponseAmino): CodeInfoResponse {
-    return {
-      codeId: BigInt(object.code_id),
-      creator: object.creator,
-      dataHash: object.data_hash
-    };
-  },
-  toAmino(message: CodeInfoResponse): CodeInfoResponseAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.creator = message.creator;
-    obj.data_hash = message.dataHash;
-    return obj;
-  },
-  fromAminoMsg(object: CodeInfoResponseAminoMsg): CodeInfoResponse {
-    return CodeInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: CodeInfoResponse): CodeInfoResponseAminoMsg {
-    return {
-      type: "wasm/CodeInfoResponse",
-      value: CodeInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CodeInfoResponseProtoMsg): CodeInfoResponse {
-    return CodeInfoResponse.decode(message.value);
-  },
-  toProto(message: CodeInfoResponse): Uint8Array {
-    return CodeInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: CodeInfoResponse): CodeInfoResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.CodeInfoResponse",
-      value: CodeInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCodeResponse(): QueryCodeResponse {
-  return {
-    codeInfo: CodeInfoResponse.fromPartial({}),
-    data: new Uint8Array()
-  };
-}
-export const QueryCodeResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodeResponse",
-  aminoType: "wasm/QueryCodeResponse",
-  encode(message: QueryCodeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeInfo !== undefined) {
-      CodeInfoResponse.encode(message.codeInfo, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCodeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCodeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeInfo = CodeInfoResponse.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCodeResponse {
-    return {
-      codeInfo: isSet(object.codeInfo) ? CodeInfoResponse.fromJSON(object.codeInfo) : undefined,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryCodeResponse): unknown {
-    const obj: any = {};
-    message.codeInfo !== undefined && (obj.codeInfo = message.codeInfo ? CodeInfoResponse.toJSON(message.codeInfo) : undefined);
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCodeResponse>): QueryCodeResponse {
-    const message = createBaseQueryCodeResponse();
-    message.codeInfo = object.codeInfo !== undefined && object.codeInfo !== null ? CodeInfoResponse.fromPartial(object.codeInfo) : undefined;
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryCodeResponseSDKType): QueryCodeResponse {
-    return {
-      codeInfo: object.code_info ? CodeInfoResponse.fromSDK(object.code_info) : undefined,
-      data: object?.data
-    };
-  },
-  toSDK(message: QueryCodeResponse): QueryCodeResponseSDKType {
-    const obj: any = {};
-    message.codeInfo !== undefined && (obj.code_info = message.codeInfo ? CodeInfoResponse.toSDK(message.codeInfo) : undefined);
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: QueryCodeResponseAmino): QueryCodeResponse {
-    return {
-      codeInfo: object?.code_info ? CodeInfoResponse.fromAmino(object.code_info) : undefined,
-      data: object.data
-    };
-  },
-  toAmino(message: QueryCodeResponse): QueryCodeResponseAmino {
-    const obj: any = {};
-    obj.code_info = message.codeInfo ? CodeInfoResponse.toAmino(message.codeInfo) : undefined;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCodeResponseAminoMsg): QueryCodeResponse {
-    return QueryCodeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCodeResponse): QueryCodeResponseAminoMsg {
-    return {
-      type: "wasm/QueryCodeResponse",
-      value: QueryCodeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCodeResponseProtoMsg): QueryCodeResponse {
-    return QueryCodeResponse.decode(message.value);
-  },
-  toProto(message: QueryCodeResponse): Uint8Array {
-    return QueryCodeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCodeResponse): QueryCodeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryCodeResponse",
-      value: QueryCodeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCodesRequest(): QueryCodesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryCodesRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodesRequest",
-  aminoType: "wasm/QueryCodesRequest",
-  encode(message: QueryCodesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCodesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCodesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCodesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryCodesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCodesRequest>): QueryCodesRequest {
-    const message = createBaseQueryCodesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryCodesRequestSDKType): QueryCodesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryCodesRequest): QueryCodesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryCodesRequestAmino): QueryCodesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryCodesRequest): QueryCodesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCodesRequestAminoMsg): QueryCodesRequest {
-    return QueryCodesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCodesRequest): QueryCodesRequestAminoMsg {
-    return {
-      type: "wasm/QueryCodesRequest",
-      value: QueryCodesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCodesRequestProtoMsg): QueryCodesRequest {
-    return QueryCodesRequest.decode(message.value);
-  },
-  toProto(message: QueryCodesRequest): Uint8Array {
-    return QueryCodesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCodesRequest): QueryCodesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryCodesRequest",
-      value: QueryCodesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCodesResponse(): QueryCodesResponse {
-  return {
-    codeInfos: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryCodesResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryCodesResponse",
-  aminoType: "wasm/QueryCodesResponse",
-  encode(message: QueryCodesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.codeInfos) {
-      CodeInfoResponse.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCodesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCodesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeInfos.push(CodeInfoResponse.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCodesResponse {
-    return {
-      codeInfos: Array.isArray(object?.codeInfos) ? object.codeInfos.map((e: any) => CodeInfoResponse.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryCodesResponse): unknown {
-    const obj: any = {};
-    if (message.codeInfos) {
-      obj.codeInfos = message.codeInfos.map(e => e ? CodeInfoResponse.toJSON(e) : undefined);
-    } else {
-      obj.codeInfos = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCodesResponse>): QueryCodesResponse {
-    const message = createBaseQueryCodesResponse();
-    message.codeInfos = object.codeInfos?.map(e => CodeInfoResponse.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryCodesResponseSDKType): QueryCodesResponse {
-    return {
-      codeInfos: Array.isArray(object?.code_infos) ? object.code_infos.map((e: any) => CodeInfoResponse.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryCodesResponse): QueryCodesResponseSDKType {
-    const obj: any = {};
-    if (message.codeInfos) {
-      obj.code_infos = message.codeInfos.map(e => e ? CodeInfoResponse.toSDK(e) : undefined);
-    } else {
-      obj.code_infos = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryCodesResponseAmino): QueryCodesResponse {
-    return {
-      codeInfos: Array.isArray(object?.code_infos) ? object.code_infos.map((e: any) => CodeInfoResponse.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryCodesResponse): QueryCodesResponseAmino {
-    const obj: any = {};
-    if (message.codeInfos) {
-      obj.code_infos = message.codeInfos.map(e => e ? CodeInfoResponse.toAmino(e) : undefined);
-    } else {
-      obj.code_infos = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCodesResponseAminoMsg): QueryCodesResponse {
-    return QueryCodesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCodesResponse): QueryCodesResponseAminoMsg {
-    return {
-      type: "wasm/QueryCodesResponse",
-      value: QueryCodesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCodesResponseProtoMsg): QueryCodesResponse {
-    return QueryCodesResponse.decode(message.value);
-  },
-  toProto(message: QueryCodesResponse): Uint8Array {
-    return QueryCodesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCodesResponse): QueryCodesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryCodesResponse",
-      value: QueryCodesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPinnedCodesRequest(): QueryPinnedCodesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryPinnedCodesRequest = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesRequest",
-  aminoType: "wasm/QueryPinnedCodesRequest",
-  encode(message: QueryPinnedCodesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPinnedCodesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPinnedCodesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPinnedCodesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPinnedCodesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPinnedCodesRequest>): QueryPinnedCodesRequest {
-    const message = createBaseQueryPinnedCodesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPinnedCodesRequestSDKType): QueryPinnedCodesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPinnedCodesRequest): QueryPinnedCodesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPinnedCodesRequestAmino): QueryPinnedCodesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPinnedCodesRequest): QueryPinnedCodesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPinnedCodesRequestAminoMsg): QueryPinnedCodesRequest {
-    return QueryPinnedCodesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPinnedCodesRequest): QueryPinnedCodesRequestAminoMsg {
-    return {
-      type: "wasm/QueryPinnedCodesRequest",
-      value: QueryPinnedCodesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPinnedCodesRequestProtoMsg): QueryPinnedCodesRequest {
-    return QueryPinnedCodesRequest.decode(message.value);
-  },
-  toProto(message: QueryPinnedCodesRequest): Uint8Array {
-    return QueryPinnedCodesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPinnedCodesRequest): QueryPinnedCodesRequestProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesRequest",
-      value: QueryPinnedCodesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPinnedCodesResponse(): QueryPinnedCodesResponse {
-  return {
-    codeIds: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryPinnedCodesResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesResponse",
-  aminoType: "wasm/QueryPinnedCodesResponse",
-  encode(message: QueryPinnedCodesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.codeIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPinnedCodesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPinnedCodesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.codeIds.push(reader.uint64());
-            }
-          } else {
-            message.codeIds.push(reader.uint64());
-          }
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPinnedCodesResponse {
-    return {
-      codeIds: Array.isArray(object?.codeIds) ? object.codeIds.map((e: any) => BigInt(e.toString())) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPinnedCodesResponse): unknown {
-    const obj: any = {};
-    if (message.codeIds) {
-      obj.codeIds = message.codeIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.codeIds = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPinnedCodesResponse>): QueryPinnedCodesResponse {
-    const message = createBaseQueryPinnedCodesResponse();
-    message.codeIds = object.codeIds?.map(e => BigInt(e.toString())) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPinnedCodesResponseSDKType): QueryPinnedCodesResponse {
-    return {
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => e) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPinnedCodesResponse): QueryPinnedCodesResponseSDKType {
-    const obj: any = {};
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e);
-    } else {
-      obj.code_ids = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPinnedCodesResponseAmino): QueryPinnedCodesResponse {
-    return {
-      codeIds: Array.isArray(object?.code_ids) ? object.code_ids.map((e: any) => BigInt(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPinnedCodesResponse): QueryPinnedCodesResponseAmino {
-    const obj: any = {};
-    if (message.codeIds) {
-      obj.code_ids = message.codeIds.map(e => e.toString());
-    } else {
-      obj.code_ids = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPinnedCodesResponseAminoMsg): QueryPinnedCodesResponse {
-    return QueryPinnedCodesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPinnedCodesResponse): QueryPinnedCodesResponseAminoMsg {
-    return {
-      type: "wasm/QueryPinnedCodesResponse",
-      value: QueryPinnedCodesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPinnedCodesResponseProtoMsg): QueryPinnedCodesResponse {
-    return QueryPinnedCodesResponse.decode(message.value);
-  },
-  toProto(message: QueryPinnedCodesResponse): Uint8Array {
-    return QueryPinnedCodesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPinnedCodesResponse): QueryPinnedCodesResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.QueryPinnedCodesResponse",
-      value: QueryPinnedCodesResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.amino.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.amino.ts
deleted file mode 100644
index 6ee2dfe8..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.amino.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { MsgStoreCode, MsgInstantiateContract, MsgExecuteContract, MsgMigrateContract, MsgUpdateAdmin, MsgClearAdmin } from "./tx";
-export const AminoConverter = {
-  "/cosmwasm.wasm.v1.MsgStoreCode": {
-    aminoType: "wasm/MsgStoreCode",
-    toAmino: MsgStoreCode.toAmino,
-    fromAmino: MsgStoreCode.fromAmino
-  },
-  "/cosmwasm.wasm.v1.MsgInstantiateContract": {
-    aminoType: "wasm/MsgInstantiateContract",
-    toAmino: MsgInstantiateContract.toAmino,
-    fromAmino: MsgInstantiateContract.fromAmino
-  },
-  "/cosmwasm.wasm.v1.MsgExecuteContract": {
-    aminoType: "wasm/MsgExecuteContract",
-    toAmino: MsgExecuteContract.toAmino,
-    fromAmino: MsgExecuteContract.fromAmino
-  },
-  "/cosmwasm.wasm.v1.MsgMigrateContract": {
-    aminoType: "wasm/MsgMigrateContract",
-    toAmino: MsgMigrateContract.toAmino,
-    fromAmino: MsgMigrateContract.fromAmino
-  },
-  "/cosmwasm.wasm.v1.MsgUpdateAdmin": {
-    aminoType: "wasm/MsgUpdateAdmin",
-    toAmino: MsgUpdateAdmin.toAmino,
-    fromAmino: MsgUpdateAdmin.fromAmino
-  },
-  "/cosmwasm.wasm.v1.MsgClearAdmin": {
-    aminoType: "wasm/MsgClearAdmin",
-    toAmino: MsgClearAdmin.toAmino,
-    fromAmino: MsgClearAdmin.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.registry.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.registry.ts
deleted file mode 100644
index fb07817a..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.registry.ts
+++ /dev/null
@@ -1,201 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgStoreCode, MsgInstantiateContract, MsgExecuteContract, MsgMigrateContract, MsgUpdateAdmin, MsgClearAdmin } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/cosmwasm.wasm.v1.MsgStoreCode", MsgStoreCode], ["/cosmwasm.wasm.v1.MsgInstantiateContract", MsgInstantiateContract], ["/cosmwasm.wasm.v1.MsgExecuteContract", MsgExecuteContract], ["/cosmwasm.wasm.v1.MsgMigrateContract", MsgMigrateContract], ["/cosmwasm.wasm.v1.MsgUpdateAdmin", MsgUpdateAdmin], ["/cosmwasm.wasm.v1.MsgClearAdmin", MsgClearAdmin]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    storeCode(value: MsgStoreCode) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-        value: MsgStoreCode.encode(value).finish()
-      };
-    },
-    instantiateContract(value: MsgInstantiateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-        value: MsgInstantiateContract.encode(value).finish()
-      };
-    },
-    executeContract(value: MsgExecuteContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-        value: MsgExecuteContract.encode(value).finish()
-      };
-    },
-    migrateContract(value: MsgMigrateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-        value: MsgMigrateContract.encode(value).finish()
-      };
-    },
-    updateAdmin(value: MsgUpdateAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-        value: MsgUpdateAdmin.encode(value).finish()
-      };
-    },
-    clearAdmin(value: MsgClearAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-        value: MsgClearAdmin.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    storeCode(value: MsgStoreCode) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-        value
-      };
-    },
-    instantiateContract(value: MsgInstantiateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-        value
-      };
-    },
-    executeContract(value: MsgExecuteContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-        value
-      };
-    },
-    migrateContract(value: MsgMigrateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-        value
-      };
-    },
-    updateAdmin(value: MsgUpdateAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-        value
-      };
-    },
-    clearAdmin(value: MsgClearAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-        value
-      };
-    }
-  },
-  toJSON: {
-    storeCode(value: MsgStoreCode) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-        value: MsgStoreCode.toJSON(value)
-      };
-    },
-    instantiateContract(value: MsgInstantiateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-        value: MsgInstantiateContract.toJSON(value)
-      };
-    },
-    executeContract(value: MsgExecuteContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-        value: MsgExecuteContract.toJSON(value)
-      };
-    },
-    migrateContract(value: MsgMigrateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-        value: MsgMigrateContract.toJSON(value)
-      };
-    },
-    updateAdmin(value: MsgUpdateAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-        value: MsgUpdateAdmin.toJSON(value)
-      };
-    },
-    clearAdmin(value: MsgClearAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-        value: MsgClearAdmin.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    storeCode(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-        value: MsgStoreCode.fromJSON(value)
-      };
-    },
-    instantiateContract(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-        value: MsgInstantiateContract.fromJSON(value)
-      };
-    },
-    executeContract(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-        value: MsgExecuteContract.fromJSON(value)
-      };
-    },
-    migrateContract(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-        value: MsgMigrateContract.fromJSON(value)
-      };
-    },
-    updateAdmin(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-        value: MsgUpdateAdmin.fromJSON(value)
-      };
-    },
-    clearAdmin(value: any) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-        value: MsgClearAdmin.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    storeCode(value: MsgStoreCode) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-        value: MsgStoreCode.fromPartial(value)
-      };
-    },
-    instantiateContract(value: MsgInstantiateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-        value: MsgInstantiateContract.fromPartial(value)
-      };
-    },
-    executeContract(value: MsgExecuteContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-        value: MsgExecuteContract.fromPartial(value)
-      };
-    },
-    migrateContract(value: MsgMigrateContract) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-        value: MsgMigrateContract.fromPartial(value)
-      };
-    },
-    updateAdmin(value: MsgUpdateAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-        value: MsgUpdateAdmin.fromPartial(value)
-      };
-    },
-    clearAdmin(value: MsgClearAdmin) {
-      return {
-        typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-        value: MsgClearAdmin.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.rpc.msg.ts
deleted file mode 100644
index 0996eb0e..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgStoreCode, MsgStoreCodeResponse, MsgInstantiateContract, MsgInstantiateContractResponse, MsgExecuteContract, MsgExecuteContractResponse, MsgMigrateContract, MsgMigrateContractResponse, MsgUpdateAdmin, MsgUpdateAdminResponse, MsgClearAdmin, MsgClearAdminResponse } from "./tx";
-/** Msg defines the wasm Msg service. */
-export interface Msg {
-  /** StoreCode to submit Wasm code to the system */
-  storeCode(request: MsgStoreCode): Promise<MsgStoreCodeResponse>;
-  /** Instantiate creates a new smart contract instance for the given code id. */
-  instantiateContract(request: MsgInstantiateContract): Promise<MsgInstantiateContractResponse>;
-  /** Execute submits the given message data to a smart contract */
-  executeContract(request: MsgExecuteContract): Promise<MsgExecuteContractResponse>;
-  /** Migrate runs a code upgrade/ downgrade for a smart contract */
-  migrateContract(request: MsgMigrateContract): Promise<MsgMigrateContractResponse>;
-  /** UpdateAdmin sets a new   admin for a smart contract */
-  updateAdmin(request: MsgUpdateAdmin): Promise<MsgUpdateAdminResponse>;
-  /** ClearAdmin removes any admin stored for a smart contract */
-  clearAdmin(request: MsgClearAdmin): Promise<MsgClearAdminResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.storeCode = this.storeCode.bind(this);
-    this.instantiateContract = this.instantiateContract.bind(this);
-    this.executeContract = this.executeContract.bind(this);
-    this.migrateContract = this.migrateContract.bind(this);
-    this.updateAdmin = this.updateAdmin.bind(this);
-    this.clearAdmin = this.clearAdmin.bind(this);
-  }
-  storeCode(request: MsgStoreCode): Promise<MsgStoreCodeResponse> {
-    const data = MsgStoreCode.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "StoreCode", data);
-    return promise.then(data => MsgStoreCodeResponse.decode(new BinaryReader(data)));
-  }
-  instantiateContract(request: MsgInstantiateContract): Promise<MsgInstantiateContractResponse> {
-    const data = MsgInstantiateContract.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "InstantiateContract", data);
-    return promise.then(data => MsgInstantiateContractResponse.decode(new BinaryReader(data)));
-  }
-  executeContract(request: MsgExecuteContract): Promise<MsgExecuteContractResponse> {
-    const data = MsgExecuteContract.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "ExecuteContract", data);
-    return promise.then(data => MsgExecuteContractResponse.decode(new BinaryReader(data)));
-  }
-  migrateContract(request: MsgMigrateContract): Promise<MsgMigrateContractResponse> {
-    const data = MsgMigrateContract.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "MigrateContract", data);
-    return promise.then(data => MsgMigrateContractResponse.decode(new BinaryReader(data)));
-  }
-  updateAdmin(request: MsgUpdateAdmin): Promise<MsgUpdateAdminResponse> {
-    const data = MsgUpdateAdmin.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "UpdateAdmin", data);
-    return promise.then(data => MsgUpdateAdminResponse.decode(new BinaryReader(data)));
-  }
-  clearAdmin(request: MsgClearAdmin): Promise<MsgClearAdminResponse> {
-    const data = MsgClearAdmin.encode(request).finish();
-    const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "ClearAdmin", data);
-    return promise.then(data => MsgClearAdminResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.ts
deleted file mode 100644
index 694691a7..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/tx.ts
+++ /dev/null
@@ -1,1641 +0,0 @@
-import { AccessConfig, AccessConfigAmino, AccessConfigSDKType } from "./types";
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../helpers";
-import { fromBase64, toBase64, toUtf8, fromUtf8 } from "@cosmjs/encoding";
-/** MsgStoreCode submit Wasm code to the system */
-export interface MsgStoreCode {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** WASMByteCode can be raw or gzip compressed */
-  wasmByteCode: Uint8Array;
-  /**
-   * InstantiatePermission access control to apply on contract creation,
-   * optional
-   */
-  instantiatePermission: AccessConfig | undefined;
-}
-export interface MsgStoreCodeProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode";
-  value: Uint8Array;
-}
-/** MsgStoreCode submit Wasm code to the system */
-export interface MsgStoreCodeAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** WASMByteCode can be raw or gzip compressed */
-  wasm_byte_code: string;
-  /**
-   * InstantiatePermission access control to apply on contract creation,
-   * optional
-   */
-  instantiate_permission?: AccessConfigAmino | undefined;
-}
-export interface MsgStoreCodeAminoMsg {
-  type: "wasm/MsgStoreCode";
-  value: MsgStoreCodeAmino;
-}
-/** MsgStoreCode submit Wasm code to the system */
-export interface MsgStoreCodeSDKType {
-  sender: string;
-  wasm_byte_code: Uint8Array;
-  instantiate_permission: AccessConfigSDKType | undefined;
-}
-/** MsgStoreCodeResponse returns store result data. */
-export interface MsgStoreCodeResponse {
-  /** CodeID is the reference to the stored WASM code */
-  codeId: bigint;
-}
-export interface MsgStoreCodeResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgStoreCodeResponse";
-  value: Uint8Array;
-}
-/** MsgStoreCodeResponse returns store result data. */
-export interface MsgStoreCodeResponseAmino {
-  /** CodeID is the reference to the stored WASM code */
-  code_id: string;
-}
-export interface MsgStoreCodeResponseAminoMsg {
-  type: "wasm/MsgStoreCodeResponse";
-  value: MsgStoreCodeResponseAmino;
-}
-/** MsgStoreCodeResponse returns store result data. */
-export interface MsgStoreCodeResponseSDKType {
-  code_id: bigint;
-}
-/**
- * MsgInstantiateContract create a new smart contract instance for the given
- * code id.
- */
-export interface MsgInstantiateContract {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** CodeID is the reference to the stored WASM code */
-  codeId: bigint;
-  /** Label is optional metadata to be stored with a contract instance. */
-  label: string;
-  /** Msg json encoded message to be passed to the contract on instantiation */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: Coin[];
-}
-export interface MsgInstantiateContractProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract";
-  value: Uint8Array;
-}
-/**
- * MsgInstantiateContract create a new smart contract instance for the given
- * code id.
- */
-export interface MsgInstantiateContractAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** CodeID is the reference to the stored WASM code */
-  code_id: string;
-  /** Label is optional metadata to be stored with a contract instance. */
-  label: string;
-  /** Msg json encoded message to be passed to the contract on instantiation */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on instantiation */
-  funds: CoinAmino[];
-}
-export interface MsgInstantiateContractAminoMsg {
-  type: "wasm/MsgInstantiateContract";
-  value: MsgInstantiateContractAmino;
-}
-/**
- * MsgInstantiateContract create a new smart contract instance for the given
- * code id.
- */
-export interface MsgInstantiateContractSDKType {
-  sender: string;
-  admin: string;
-  code_id: bigint;
-  label: string;
-  msg: Uint8Array;
-  funds: CoinSDKType[];
-}
-/** MsgInstantiateContractResponse return instantiation result data */
-export interface MsgInstantiateContractResponse {
-  /** Address is the bech32 address of the new contract instance. */
-  address: string;
-  /** Data contains base64-encoded bytes to returned from the contract */
-  data: Uint8Array;
-}
-export interface MsgInstantiateContractResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContractResponse";
-  value: Uint8Array;
-}
-/** MsgInstantiateContractResponse return instantiation result data */
-export interface MsgInstantiateContractResponseAmino {
-  /** Address is the bech32 address of the new contract instance. */
-  address: string;
-  /** Data contains base64-encoded bytes to returned from the contract */
-  data: Uint8Array;
-}
-export interface MsgInstantiateContractResponseAminoMsg {
-  type: "wasm/MsgInstantiateContractResponse";
-  value: MsgInstantiateContractResponseAmino;
-}
-/** MsgInstantiateContractResponse return instantiation result data */
-export interface MsgInstantiateContractResponseSDKType {
-  address: string;
-  data: Uint8Array;
-}
-/** MsgExecuteContract submits the given message data to a smart contract */
-export interface MsgExecuteContract {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on execution */
-  funds: Coin[];
-}
-export interface MsgExecuteContractProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract";
-  value: Uint8Array;
-}
-/** MsgExecuteContract submits the given message data to a smart contract */
-export interface MsgExecuteContractAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** Msg json encoded message to be passed to the contract */
-  msg: Uint8Array;
-  /** Funds coins that are transferred to the contract on execution */
-  funds: CoinAmino[];
-}
-export interface MsgExecuteContractAminoMsg {
-  type: "wasm/MsgExecuteContract";
-  value: MsgExecuteContractAmino;
-}
-/** MsgExecuteContract submits the given message data to a smart contract */
-export interface MsgExecuteContractSDKType {
-  sender: string;
-  contract: string;
-  msg: Uint8Array;
-  funds: CoinSDKType[];
-}
-/** MsgExecuteContractResponse returns execution result data. */
-export interface MsgExecuteContractResponse {
-  /** Data contains base64-encoded bytes to returned from the contract */
-  data: Uint8Array;
-}
-export interface MsgExecuteContractResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContractResponse";
-  value: Uint8Array;
-}
-/** MsgExecuteContractResponse returns execution result data. */
-export interface MsgExecuteContractResponseAmino {
-  /** Data contains base64-encoded bytes to returned from the contract */
-  data: Uint8Array;
-}
-export interface MsgExecuteContractResponseAminoMsg {
-  type: "wasm/MsgExecuteContractResponse";
-  value: MsgExecuteContractResponseAmino;
-}
-/** MsgExecuteContractResponse returns execution result data. */
-export interface MsgExecuteContractResponseSDKType {
-  data: Uint8Array;
-}
-/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */
-export interface MsgMigrateContract {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** CodeID references the new WASM code */
-  codeId: bigint;
-  /** Msg json encoded message to be passed to the contract on migration */
-  msg: Uint8Array;
-}
-export interface MsgMigrateContractProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract";
-  value: Uint8Array;
-}
-/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */
-export interface MsgMigrateContractAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-  /** CodeID references the new WASM code */
-  code_id: string;
-  /** Msg json encoded message to be passed to the contract on migration */
-  msg: Uint8Array;
-}
-export interface MsgMigrateContractAminoMsg {
-  type: "wasm/MsgMigrateContract";
-  value: MsgMigrateContractAmino;
-}
-/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */
-export interface MsgMigrateContractSDKType {
-  sender: string;
-  contract: string;
-  code_id: bigint;
-  msg: Uint8Array;
-}
-/** MsgMigrateContractResponse returns contract migration result data. */
-export interface MsgMigrateContractResponse {
-  /**
-   * Data contains same raw bytes returned as data from the wasm contract.
-   * (May be empty)
-   */
-  data: Uint8Array;
-}
-export interface MsgMigrateContractResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContractResponse";
-  value: Uint8Array;
-}
-/** MsgMigrateContractResponse returns contract migration result data. */
-export interface MsgMigrateContractResponseAmino {
-  /**
-   * Data contains same raw bytes returned as data from the wasm contract.
-   * (May be empty)
-   */
-  data: Uint8Array;
-}
-export interface MsgMigrateContractResponseAminoMsg {
-  type: "wasm/MsgMigrateContractResponse";
-  value: MsgMigrateContractResponseAmino;
-}
-/** MsgMigrateContractResponse returns contract migration result data. */
-export interface MsgMigrateContractResponseSDKType {
-  data: Uint8Array;
-}
-/** MsgUpdateAdmin sets a new admin for a smart contract */
-export interface MsgUpdateAdmin {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** NewAdmin address to be set */
-  newAdmin: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface MsgUpdateAdminProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin";
-  value: Uint8Array;
-}
-/** MsgUpdateAdmin sets a new admin for a smart contract */
-export interface MsgUpdateAdminAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** NewAdmin address to be set */
-  new_admin: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface MsgUpdateAdminAminoMsg {
-  type: "wasm/MsgUpdateAdmin";
-  value: MsgUpdateAdminAmino;
-}
-/** MsgUpdateAdmin sets a new admin for a smart contract */
-export interface MsgUpdateAdminSDKType {
-  sender: string;
-  new_admin: string;
-  contract: string;
-}
-/** MsgUpdateAdminResponse returns empty data */
-export interface MsgUpdateAdminResponse {}
-export interface MsgUpdateAdminResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdminResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateAdminResponse returns empty data */
-export interface MsgUpdateAdminResponseAmino {}
-export interface MsgUpdateAdminResponseAminoMsg {
-  type: "wasm/MsgUpdateAdminResponse";
-  value: MsgUpdateAdminResponseAmino;
-}
-/** MsgUpdateAdminResponse returns empty data */
-export interface MsgUpdateAdminResponseSDKType {}
-/** MsgClearAdmin removes any admin stored for a smart contract */
-export interface MsgClearAdmin {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface MsgClearAdminProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin";
-  value: Uint8Array;
-}
-/** MsgClearAdmin removes any admin stored for a smart contract */
-export interface MsgClearAdminAmino {
-  /** Sender is the that actor that signed the messages */
-  sender: string;
-  /** Contract is the address of the smart contract */
-  contract: string;
-}
-export interface MsgClearAdminAminoMsg {
-  type: "wasm/MsgClearAdmin";
-  value: MsgClearAdminAmino;
-}
-/** MsgClearAdmin removes any admin stored for a smart contract */
-export interface MsgClearAdminSDKType {
-  sender: string;
-  contract: string;
-}
-/** MsgClearAdminResponse returns empty data */
-export interface MsgClearAdminResponse {}
-export interface MsgClearAdminResponseProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.MsgClearAdminResponse";
-  value: Uint8Array;
-}
-/** MsgClearAdminResponse returns empty data */
-export interface MsgClearAdminResponseAmino {}
-export interface MsgClearAdminResponseAminoMsg {
-  type: "wasm/MsgClearAdminResponse";
-  value: MsgClearAdminResponseAmino;
-}
-/** MsgClearAdminResponse returns empty data */
-export interface MsgClearAdminResponseSDKType {}
-function createBaseMsgStoreCode(): MsgStoreCode {
-  return {
-    sender: "",
-    wasmByteCode: new Uint8Array(),
-    instantiatePermission: AccessConfig.fromPartial({})
-  };
-}
-export const MsgStoreCode = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-  aminoType: "wasm/MsgStoreCode",
-  encode(message: MsgStoreCode, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.wasmByteCode.length !== 0) {
-      writer.uint32(18).bytes(message.wasmByteCode);
-    }
-    if (message.instantiatePermission !== undefined) {
-      AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgStoreCode {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgStoreCode();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.wasmByteCode = reader.bytes();
-          break;
-        case 5:
-          message.instantiatePermission = AccessConfig.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgStoreCode {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      wasmByteCode: isSet(object.wasmByteCode) ? bytesFromBase64(object.wasmByteCode) : new Uint8Array(),
-      instantiatePermission: isSet(object.instantiatePermission) ? AccessConfig.fromJSON(object.instantiatePermission) : undefined
-    };
-  },
-  toJSON(message: MsgStoreCode): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.wasmByteCode !== undefined && (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));
-    message.instantiatePermission !== undefined && (obj.instantiatePermission = message.instantiatePermission ? AccessConfig.toJSON(message.instantiatePermission) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgStoreCode>): MsgStoreCode {
-    const message = createBaseMsgStoreCode();
-    message.sender = object.sender ?? "";
-    message.wasmByteCode = object.wasmByteCode ?? new Uint8Array();
-    message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgStoreCodeSDKType): MsgStoreCode {
-    return {
-      sender: object?.sender,
-      wasmByteCode: object?.wasm_byte_code,
-      instantiatePermission: object.instantiate_permission ? AccessConfig.fromSDK(object.instantiate_permission) : undefined
-    };
-  },
-  toSDK(message: MsgStoreCode): MsgStoreCodeSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.wasm_byte_code = message.wasmByteCode;
-    message.instantiatePermission !== undefined && (obj.instantiate_permission = message.instantiatePermission ? AccessConfig.toSDK(message.instantiatePermission) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgStoreCodeAmino): MsgStoreCode {
-    return {
-      sender: object.sender,
-      wasmByteCode: fromBase64(object.wasm_byte_code),
-      instantiatePermission: object?.instantiate_permission ? AccessConfig.fromAmino(object.instantiate_permission) : undefined
-    };
-  },
-  toAmino(message: MsgStoreCode): MsgStoreCodeAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.wasm_byte_code = message.wasmByteCode ? toBase64(message.wasmByteCode) : undefined;
-    obj.instantiate_permission = message.instantiatePermission ? AccessConfig.toAmino(message.instantiatePermission) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgStoreCodeAminoMsg): MsgStoreCode {
-    return MsgStoreCode.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgStoreCode): MsgStoreCodeAminoMsg {
-    return {
-      type: "wasm/MsgStoreCode",
-      value: MsgStoreCode.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgStoreCodeProtoMsg): MsgStoreCode {
-    return MsgStoreCode.decode(message.value);
-  },
-  toProto(message: MsgStoreCode): Uint8Array {
-    return MsgStoreCode.encode(message).finish();
-  },
-  toProtoMsg(message: MsgStoreCode): MsgStoreCodeProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgStoreCode",
-      value: MsgStoreCode.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgStoreCodeResponse(): MsgStoreCodeResponse {
-  return {
-    codeId: BigInt(0)
-  };
-}
-export const MsgStoreCodeResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgStoreCodeResponse",
-  aminoType: "wasm/MsgStoreCodeResponse",
-  encode(message: MsgStoreCodeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgStoreCodeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgStoreCodeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgStoreCodeResponse {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgStoreCodeResponse): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgStoreCodeResponse>): MsgStoreCodeResponse {
-    const message = createBaseMsgStoreCodeResponse();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgStoreCodeResponseSDKType): MsgStoreCodeResponse {
-    return {
-      codeId: object?.code_id
-    };
-  },
-  toSDK(message: MsgStoreCodeResponse): MsgStoreCodeResponseSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    return obj;
-  },
-  fromAmino(object: MsgStoreCodeResponseAmino): MsgStoreCodeResponse {
-    return {
-      codeId: BigInt(object.code_id)
-    };
-  },
-  toAmino(message: MsgStoreCodeResponse): MsgStoreCodeResponseAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgStoreCodeResponseAminoMsg): MsgStoreCodeResponse {
-    return MsgStoreCodeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgStoreCodeResponse): MsgStoreCodeResponseAminoMsg {
-    return {
-      type: "wasm/MsgStoreCodeResponse",
-      value: MsgStoreCodeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgStoreCodeResponseProtoMsg): MsgStoreCodeResponse {
-    return MsgStoreCodeResponse.decode(message.value);
-  },
-  toProto(message: MsgStoreCodeResponse): Uint8Array {
-    return MsgStoreCodeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgStoreCodeResponse): MsgStoreCodeResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgStoreCodeResponse",
-      value: MsgStoreCodeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgInstantiateContract(): MsgInstantiateContract {
-  return {
-    sender: "",
-    admin: "",
-    codeId: BigInt(0),
-    label: "",
-    msg: new Uint8Array(),
-    funds: []
-  };
-}
-export const MsgInstantiateContract = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-  aminoType: "wasm/MsgInstantiateContract",
-  encode(message: MsgInstantiateContract, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.admin !== "") {
-      writer.uint32(18).string(message.admin);
-    }
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(24).uint64(message.codeId);
-    }
-    if (message.label !== "") {
-      writer.uint32(34).string(message.label);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(42).bytes(message.msg);
-    }
-    for (const v of message.funds) {
-      Coin.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgInstantiateContract {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgInstantiateContract();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.admin = reader.string();
-          break;
-        case 3:
-          message.codeId = reader.uint64();
-          break;
-        case 4:
-          message.label = reader.string();
-          break;
-        case 5:
-          message.msg = reader.bytes();
-          break;
-        case 6:
-          message.funds.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgInstantiateContract {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      label: isSet(object.label) ? String(object.label) : "",
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgInstantiateContract): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.label !== undefined && (obj.label = message.label);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgInstantiateContract>): MsgInstantiateContract {
-    const message = createBaseMsgInstantiateContract();
-    message.sender = object.sender ?? "";
-    message.admin = object.admin ?? "";
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.label = object.label ?? "";
-    message.msg = object.msg ?? new Uint8Array();
-    message.funds = object.funds?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgInstantiateContractSDKType): MsgInstantiateContract {
-    return {
-      sender: object?.sender,
-      admin: object?.admin,
-      codeId: object?.code_id,
-      label: object?.label,
-      msg: object?.msg,
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgInstantiateContract): MsgInstantiateContractSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.admin = message.admin;
-    obj.code_id = message.codeId;
-    obj.label = message.label;
-    obj.msg = message.msg;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgInstantiateContractAmino): MsgInstantiateContract {
-    return {
-      sender: object.sender,
-      admin: object.admin,
-      codeId: BigInt(object.code_id),
-      label: object.label,
-      msg: toUtf8(JSON.stringify(object.msg)),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgInstantiateContract): MsgInstantiateContractAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.admin = message.admin;
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.label = message.label;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgInstantiateContractAminoMsg): MsgInstantiateContract {
-    return MsgInstantiateContract.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgInstantiateContract): MsgInstantiateContractAminoMsg {
-    return {
-      type: "wasm/MsgInstantiateContract",
-      value: MsgInstantiateContract.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgInstantiateContractProtoMsg): MsgInstantiateContract {
-    return MsgInstantiateContract.decode(message.value);
-  },
-  toProto(message: MsgInstantiateContract): Uint8Array {
-    return MsgInstantiateContract.encode(message).finish();
-  },
-  toProtoMsg(message: MsgInstantiateContract): MsgInstantiateContractProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
-      value: MsgInstantiateContract.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgInstantiateContractResponse(): MsgInstantiateContractResponse {
-  return {
-    address: "",
-    data: new Uint8Array()
-  };
-}
-export const MsgInstantiateContractResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContractResponse",
-  aminoType: "wasm/MsgInstantiateContractResponse",
-  encode(message: MsgInstantiateContractResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgInstantiateContractResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgInstantiateContractResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgInstantiateContractResponse {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgInstantiateContractResponse): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgInstantiateContractResponse>): MsgInstantiateContractResponse {
-    const message = createBaseMsgInstantiateContractResponse();
-    message.address = object.address ?? "";
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgInstantiateContractResponseSDKType): MsgInstantiateContractResponse {
-    return {
-      address: object?.address,
-      data: object?.data
-    };
-  },
-  toSDK(message: MsgInstantiateContractResponse): MsgInstantiateContractResponseSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: MsgInstantiateContractResponseAmino): MsgInstantiateContractResponse {
-    return {
-      address: object.address,
-      data: object.data
-    };
-  },
-  toAmino(message: MsgInstantiateContractResponse): MsgInstantiateContractResponseAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: MsgInstantiateContractResponseAminoMsg): MsgInstantiateContractResponse {
-    return MsgInstantiateContractResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgInstantiateContractResponse): MsgInstantiateContractResponseAminoMsg {
-    return {
-      type: "wasm/MsgInstantiateContractResponse",
-      value: MsgInstantiateContractResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgInstantiateContractResponseProtoMsg): MsgInstantiateContractResponse {
-    return MsgInstantiateContractResponse.decode(message.value);
-  },
-  toProto(message: MsgInstantiateContractResponse): Uint8Array {
-    return MsgInstantiateContractResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgInstantiateContractResponse): MsgInstantiateContractResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContractResponse",
-      value: MsgInstantiateContractResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecuteContract(): MsgExecuteContract {
-  return {
-    sender: "",
-    contract: "",
-    msg: new Uint8Array(),
-    funds: []
-  };
-}
-export const MsgExecuteContract = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-  aminoType: "wasm/MsgExecuteContract",
-  encode(message: MsgExecuteContract, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.contract !== "") {
-      writer.uint32(18).string(message.contract);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(26).bytes(message.msg);
-    }
-    for (const v of message.funds) {
-      Coin.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecuteContract {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecuteContract();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.contract = reader.string();
-          break;
-        case 3:
-          message.msg = reader.bytes();
-          break;
-        case 5:
-          message.funds.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExecuteContract {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      contract: isSet(object.contract) ? String(object.contract) : "",
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgExecuteContract): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.contract !== undefined && (obj.contract = message.contract);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExecuteContract>): MsgExecuteContract {
-    const message = createBaseMsgExecuteContract();
-    message.sender = object.sender ?? "";
-    message.contract = object.contract ?? "";
-    message.msg = object.msg ?? new Uint8Array();
-    message.funds = object.funds?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgExecuteContractSDKType): MsgExecuteContract {
-    return {
-      sender: object?.sender,
-      contract: object?.contract,
-      msg: object?.msg,
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgExecuteContract): MsgExecuteContractSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    obj.msg = message.msg;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgExecuteContractAmino): MsgExecuteContract {
-    return {
-      sender: object.sender,
-      contract: object.contract,
-      msg: toUtf8(JSON.stringify(object.msg)),
-      funds: Array.isArray(object?.funds) ? object.funds.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgExecuteContract): MsgExecuteContractAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    if (message.funds) {
-      obj.funds = message.funds.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.funds = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecuteContractAminoMsg): MsgExecuteContract {
-    return MsgExecuteContract.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecuteContract): MsgExecuteContractAminoMsg {
-    return {
-      type: "wasm/MsgExecuteContract",
-      value: MsgExecuteContract.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecuteContractProtoMsg): MsgExecuteContract {
-    return MsgExecuteContract.decode(message.value);
-  },
-  toProto(message: MsgExecuteContract): Uint8Array {
-    return MsgExecuteContract.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecuteContract): MsgExecuteContractProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
-      value: MsgExecuteContract.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExecuteContractResponse(): MsgExecuteContractResponse {
-  return {
-    data: new Uint8Array()
-  };
-}
-export const MsgExecuteContractResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContractResponse",
-  aminoType: "wasm/MsgExecuteContractResponse",
-  encode(message: MsgExecuteContractResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExecuteContractResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExecuteContractResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExecuteContractResponse {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgExecuteContractResponse): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExecuteContractResponse>): MsgExecuteContractResponse {
-    const message = createBaseMsgExecuteContractResponse();
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgExecuteContractResponseSDKType): MsgExecuteContractResponse {
-    return {
-      data: object?.data
-    };
-  },
-  toSDK(message: MsgExecuteContractResponse): MsgExecuteContractResponseSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: MsgExecuteContractResponseAmino): MsgExecuteContractResponse {
-    return {
-      data: object.data
-    };
-  },
-  toAmino(message: MsgExecuteContractResponse): MsgExecuteContractResponseAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExecuteContractResponseAminoMsg): MsgExecuteContractResponse {
-    return MsgExecuteContractResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExecuteContractResponse): MsgExecuteContractResponseAminoMsg {
-    return {
-      type: "wasm/MsgExecuteContractResponse",
-      value: MsgExecuteContractResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExecuteContractResponseProtoMsg): MsgExecuteContractResponse {
-    return MsgExecuteContractResponse.decode(message.value);
-  },
-  toProto(message: MsgExecuteContractResponse): Uint8Array {
-    return MsgExecuteContractResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExecuteContractResponse): MsgExecuteContractResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContractResponse",
-      value: MsgExecuteContractResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMigrateContract(): MsgMigrateContract {
-  return {
-    sender: "",
-    contract: "",
-    codeId: BigInt(0),
-    msg: new Uint8Array()
-  };
-}
-export const MsgMigrateContract = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-  aminoType: "wasm/MsgMigrateContract",
-  encode(message: MsgMigrateContract, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.contract !== "") {
-      writer.uint32(18).string(message.contract);
-    }
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(24).uint64(message.codeId);
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(34).bytes(message.msg);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMigrateContract {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMigrateContract();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.contract = reader.string();
-          break;
-        case 3:
-          message.codeId = reader.uint64();
-          break;
-        case 4:
-          message.msg = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgMigrateContract {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      contract: isSet(object.contract) ? String(object.contract) : "",
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgMigrateContract): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.contract !== undefined && (obj.contract = message.contract);
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgMigrateContract>): MsgMigrateContract {
-    const message = createBaseMsgMigrateContract();
-    message.sender = object.sender ?? "";
-    message.contract = object.contract ?? "";
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.msg = object.msg ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgMigrateContractSDKType): MsgMigrateContract {
-    return {
-      sender: object?.sender,
-      contract: object?.contract,
-      codeId: object?.code_id,
-      msg: object?.msg
-    };
-  },
-  toSDK(message: MsgMigrateContract): MsgMigrateContractSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    obj.code_id = message.codeId;
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAmino(object: MsgMigrateContractAmino): MsgMigrateContract {
-    return {
-      sender: object.sender,
-      contract: object.contract,
-      codeId: BigInt(object.code_id),
-      msg: toUtf8(JSON.stringify(object.msg))
-    };
-  },
-  toAmino(message: MsgMigrateContract): MsgMigrateContractAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgMigrateContractAminoMsg): MsgMigrateContract {
-    return MsgMigrateContract.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMigrateContract): MsgMigrateContractAminoMsg {
-    return {
-      type: "wasm/MsgMigrateContract",
-      value: MsgMigrateContract.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMigrateContractProtoMsg): MsgMigrateContract {
-    return MsgMigrateContract.decode(message.value);
-  },
-  toProto(message: MsgMigrateContract): Uint8Array {
-    return MsgMigrateContract.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMigrateContract): MsgMigrateContractProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContract",
-      value: MsgMigrateContract.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMigrateContractResponse(): MsgMigrateContractResponse {
-  return {
-    data: new Uint8Array()
-  };
-}
-export const MsgMigrateContractResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContractResponse",
-  aminoType: "wasm/MsgMigrateContractResponse",
-  encode(message: MsgMigrateContractResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMigrateContractResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMigrateContractResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgMigrateContractResponse {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: MsgMigrateContractResponse): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgMigrateContractResponse>): MsgMigrateContractResponse {
-    const message = createBaseMsgMigrateContractResponse();
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MsgMigrateContractResponseSDKType): MsgMigrateContractResponse {
-    return {
-      data: object?.data
-    };
-  },
-  toSDK(message: MsgMigrateContractResponse): MsgMigrateContractResponseSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: MsgMigrateContractResponseAmino): MsgMigrateContractResponse {
-    return {
-      data: object.data
-    };
-  },
-  toAmino(message: MsgMigrateContractResponse): MsgMigrateContractResponseAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: MsgMigrateContractResponseAminoMsg): MsgMigrateContractResponse {
-    return MsgMigrateContractResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMigrateContractResponse): MsgMigrateContractResponseAminoMsg {
-    return {
-      type: "wasm/MsgMigrateContractResponse",
-      value: MsgMigrateContractResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMigrateContractResponseProtoMsg): MsgMigrateContractResponse {
-    return MsgMigrateContractResponse.decode(message.value);
-  },
-  toProto(message: MsgMigrateContractResponse): Uint8Array {
-    return MsgMigrateContractResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMigrateContractResponse): MsgMigrateContractResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgMigrateContractResponse",
-      value: MsgMigrateContractResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateAdmin(): MsgUpdateAdmin {
-  return {
-    sender: "",
-    newAdmin: "",
-    contract: ""
-  };
-}
-export const MsgUpdateAdmin = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-  aminoType: "wasm/MsgUpdateAdmin",
-  encode(message: MsgUpdateAdmin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.newAdmin !== "") {
-      writer.uint32(18).string(message.newAdmin);
-    }
-    if (message.contract !== "") {
-      writer.uint32(26).string(message.contract);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateAdmin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateAdmin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.newAdmin = reader.string();
-          break;
-        case 3:
-          message.contract = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateAdmin {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      newAdmin: isSet(object.newAdmin) ? String(object.newAdmin) : "",
-      contract: isSet(object.contract) ? String(object.contract) : ""
-    };
-  },
-  toJSON(message: MsgUpdateAdmin): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);
-    message.contract !== undefined && (obj.contract = message.contract);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateAdmin>): MsgUpdateAdmin {
-    const message = createBaseMsgUpdateAdmin();
-    message.sender = object.sender ?? "";
-    message.newAdmin = object.newAdmin ?? "";
-    message.contract = object.contract ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateAdminSDKType): MsgUpdateAdmin {
-    return {
-      sender: object?.sender,
-      newAdmin: object?.new_admin,
-      contract: object?.contract
-    };
-  },
-  toSDK(message: MsgUpdateAdmin): MsgUpdateAdminSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.new_admin = message.newAdmin;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateAdminAmino): MsgUpdateAdmin {
-    return {
-      sender: object.sender,
-      newAdmin: object.new_admin,
-      contract: object.contract
-    };
-  },
-  toAmino(message: MsgUpdateAdmin): MsgUpdateAdminAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.new_admin = message.newAdmin;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateAdminAminoMsg): MsgUpdateAdmin {
-    return MsgUpdateAdmin.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateAdmin): MsgUpdateAdminAminoMsg {
-    return {
-      type: "wasm/MsgUpdateAdmin",
-      value: MsgUpdateAdmin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateAdminProtoMsg): MsgUpdateAdmin {
-    return MsgUpdateAdmin.decode(message.value);
-  },
-  toProto(message: MsgUpdateAdmin): Uint8Array {
-    return MsgUpdateAdmin.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateAdmin): MsgUpdateAdminProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdmin",
-      value: MsgUpdateAdmin.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateAdminResponse(): MsgUpdateAdminResponse {
-  return {};
-}
-export const MsgUpdateAdminResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdminResponse",
-  aminoType: "wasm/MsgUpdateAdminResponse",
-  encode(_: MsgUpdateAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateAdminResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateAdminResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateAdminResponse>): MsgUpdateAdminResponse {
-    const message = createBaseMsgUpdateAdminResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateAdminResponseSDKType): MsgUpdateAdminResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateAdminResponse): MsgUpdateAdminResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateAdminResponseAmino): MsgUpdateAdminResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateAdminResponse): MsgUpdateAdminResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateAdminResponseAminoMsg): MsgUpdateAdminResponse {
-    return MsgUpdateAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateAdminResponse): MsgUpdateAdminResponseAminoMsg {
-    return {
-      type: "wasm/MsgUpdateAdminResponse",
-      value: MsgUpdateAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateAdminResponseProtoMsg): MsgUpdateAdminResponse {
-    return MsgUpdateAdminResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateAdminResponse): Uint8Array {
-    return MsgUpdateAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateAdminResponse): MsgUpdateAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgUpdateAdminResponse",
-      value: MsgUpdateAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgClearAdmin(): MsgClearAdmin {
-  return {
-    sender: "",
-    contract: ""
-  };
-}
-export const MsgClearAdmin = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-  aminoType: "wasm/MsgClearAdmin",
-  encode(message: MsgClearAdmin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.contract !== "") {
-      writer.uint32(26).string(message.contract);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgClearAdmin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgClearAdmin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 3:
-          message.contract = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgClearAdmin {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      contract: isSet(object.contract) ? String(object.contract) : ""
-    };
-  },
-  toJSON(message: MsgClearAdmin): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.contract !== undefined && (obj.contract = message.contract);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgClearAdmin>): MsgClearAdmin {
-    const message = createBaseMsgClearAdmin();
-    message.sender = object.sender ?? "";
-    message.contract = object.contract ?? "";
-    return message;
-  },
-  fromSDK(object: MsgClearAdminSDKType): MsgClearAdmin {
-    return {
-      sender: object?.sender,
-      contract: object?.contract
-    };
-  },
-  toSDK(message: MsgClearAdmin): MsgClearAdminSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAmino(object: MsgClearAdminAmino): MsgClearAdmin {
-    return {
-      sender: object.sender,
-      contract: object.contract
-    };
-  },
-  toAmino(message: MsgClearAdmin): MsgClearAdminAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.contract = message.contract;
-    return obj;
-  },
-  fromAminoMsg(object: MsgClearAdminAminoMsg): MsgClearAdmin {
-    return MsgClearAdmin.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgClearAdmin): MsgClearAdminAminoMsg {
-    return {
-      type: "wasm/MsgClearAdmin",
-      value: MsgClearAdmin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgClearAdminProtoMsg): MsgClearAdmin {
-    return MsgClearAdmin.decode(message.value);
-  },
-  toProto(message: MsgClearAdmin): Uint8Array {
-    return MsgClearAdmin.encode(message).finish();
-  },
-  toProtoMsg(message: MsgClearAdmin): MsgClearAdminProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgClearAdmin",
-      value: MsgClearAdmin.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgClearAdminResponse(): MsgClearAdminResponse {
-  return {};
-}
-export const MsgClearAdminResponse = {
-  typeUrl: "/cosmwasm.wasm.v1.MsgClearAdminResponse",
-  aminoType: "wasm/MsgClearAdminResponse",
-  encode(_: MsgClearAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgClearAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgClearAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgClearAdminResponse {
-    return {};
-  },
-  toJSON(_: MsgClearAdminResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgClearAdminResponse>): MsgClearAdminResponse {
-    const message = createBaseMsgClearAdminResponse();
-    return message;
-  },
-  fromSDK(_: MsgClearAdminResponseSDKType): MsgClearAdminResponse {
-    return {};
-  },
-  toSDK(_: MsgClearAdminResponse): MsgClearAdminResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgClearAdminResponseAmino): MsgClearAdminResponse {
-    return {};
-  },
-  toAmino(_: MsgClearAdminResponse): MsgClearAdminResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgClearAdminResponseAminoMsg): MsgClearAdminResponse {
-    return MsgClearAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgClearAdminResponse): MsgClearAdminResponseAminoMsg {
-    return {
-      type: "wasm/MsgClearAdminResponse",
-      value: MsgClearAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgClearAdminResponseProtoMsg): MsgClearAdminResponse {
-    return MsgClearAdminResponse.decode(message.value);
-  },
-  toProto(message: MsgClearAdminResponse): Uint8Array {
-    return MsgClearAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgClearAdminResponse): MsgClearAdminResponseProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.MsgClearAdminResponse",
-      value: MsgClearAdminResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/cosmwasm/wasm/v1/types.ts b/examples/injective/src/codegen/cosmwasm/wasm/v1/types.ts
deleted file mode 100644
index 83b73f65..00000000
--- a/examples/injective/src/codegen/cosmwasm/wasm/v1/types.ts
+++ /dev/null
@@ -1,1297 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../helpers";
-import { toUtf8, fromUtf8 } from "@cosmjs/encoding";
-/** AccessType permission types */
-export enum AccessType {
-  /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */
-  ACCESS_TYPE_UNSPECIFIED = 0,
-  /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */
-  ACCESS_TYPE_NOBODY = 1,
-  /** ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to an address */
-  ACCESS_TYPE_ONLY_ADDRESS = 2,
-  /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */
-  ACCESS_TYPE_EVERYBODY = 3,
-  UNRECOGNIZED = -1,
-}
-export const AccessTypeSDKType = AccessType;
-export const AccessTypeAmino = AccessType;
-export function accessTypeFromJSON(object: any): AccessType {
-  switch (object) {
-    case 0:
-    case "ACCESS_TYPE_UNSPECIFIED":
-      return AccessType.ACCESS_TYPE_UNSPECIFIED;
-    case 1:
-    case "ACCESS_TYPE_NOBODY":
-      return AccessType.ACCESS_TYPE_NOBODY;
-    case 2:
-    case "ACCESS_TYPE_ONLY_ADDRESS":
-      return AccessType.ACCESS_TYPE_ONLY_ADDRESS;
-    case 3:
-    case "ACCESS_TYPE_EVERYBODY":
-      return AccessType.ACCESS_TYPE_EVERYBODY;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return AccessType.UNRECOGNIZED;
-  }
-}
-export function accessTypeToJSON(object: AccessType): string {
-  switch (object) {
-    case AccessType.ACCESS_TYPE_UNSPECIFIED:
-      return "ACCESS_TYPE_UNSPECIFIED";
-    case AccessType.ACCESS_TYPE_NOBODY:
-      return "ACCESS_TYPE_NOBODY";
-    case AccessType.ACCESS_TYPE_ONLY_ADDRESS:
-      return "ACCESS_TYPE_ONLY_ADDRESS";
-    case AccessType.ACCESS_TYPE_EVERYBODY:
-      return "ACCESS_TYPE_EVERYBODY";
-    case AccessType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** ContractCodeHistoryOperationType actions that caused a code change */
-export enum ContractCodeHistoryOperationType {
-  /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */
-  CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0,
-  /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */
-  CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1,
-  /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */
-  CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2,
-  /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */
-  CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3,
-  UNRECOGNIZED = -1,
-}
-export const ContractCodeHistoryOperationTypeSDKType = ContractCodeHistoryOperationType;
-export const ContractCodeHistoryOperationTypeAmino = ContractCodeHistoryOperationType;
-export function contractCodeHistoryOperationTypeFromJSON(object: any): ContractCodeHistoryOperationType {
-  switch (object) {
-    case 0:
-    case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":
-      return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;
-    case 1:
-    case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":
-      return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;
-    case 2:
-    case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":
-      return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;
-    case 3:
-    case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":
-      return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ContractCodeHistoryOperationType.UNRECOGNIZED;
-  }
-}
-export function contractCodeHistoryOperationTypeToJSON(object: ContractCodeHistoryOperationType): string {
-  switch (object) {
-    case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:
-      return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";
-    case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:
-      return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";
-    case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:
-      return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";
-    case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:
-      return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";
-    case ContractCodeHistoryOperationType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** AccessTypeParam */
-export interface AccessTypeParam {
-  value: AccessType;
-}
-export interface AccessTypeParamProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.AccessTypeParam";
-  value: Uint8Array;
-}
-/** AccessTypeParam */
-export interface AccessTypeParamAmino {
-  value: AccessType;
-}
-export interface AccessTypeParamAminoMsg {
-  type: "wasm/AccessTypeParam";
-  value: AccessTypeParamAmino;
-}
-/** AccessTypeParam */
-export interface AccessTypeParamSDKType {
-  value: AccessType;
-}
-/** AccessConfig access control type. */
-export interface AccessConfig {
-  permission: AccessType;
-  address: string;
-}
-export interface AccessConfigProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.AccessConfig";
-  value: Uint8Array;
-}
-/** AccessConfig access control type. */
-export interface AccessConfigAmino {
-  permission: AccessType;
-  address: string;
-}
-export interface AccessConfigAminoMsg {
-  type: "wasm/AccessConfig";
-  value: AccessConfigAmino;
-}
-/** AccessConfig access control type. */
-export interface AccessConfigSDKType {
-  permission: AccessType;
-  address: string;
-}
-/** Params defines the set of wasm parameters. */
-export interface Params {
-  codeUploadAccess: AccessConfig | undefined;
-  instantiateDefaultPermission: AccessType;
-  maxWasmCodeSize: bigint;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.Params";
-  value: Uint8Array;
-}
-/** Params defines the set of wasm parameters. */
-export interface ParamsAmino {
-  code_upload_access?: AccessConfigAmino | undefined;
-  instantiate_default_permission: AccessType;
-  max_wasm_code_size: string;
-}
-export interface ParamsAminoMsg {
-  type: "wasm/Params";
-  value: ParamsAmino;
-}
-/** Params defines the set of wasm parameters. */
-export interface ParamsSDKType {
-  code_upload_access: AccessConfigSDKType | undefined;
-  instantiate_default_permission: AccessType;
-  max_wasm_code_size: bigint;
-}
-/** CodeInfo is data for the uploaded contract WASM code */
-export interface CodeInfo {
-  /** CodeHash is the unique identifier created by wasmvm */
-  codeHash: Uint8Array;
-  /** Creator address who initially stored the code */
-  creator: string;
-  /** InstantiateConfig access control to apply on contract creation, optional */
-  instantiateConfig: AccessConfig | undefined;
-}
-export interface CodeInfoProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.CodeInfo";
-  value: Uint8Array;
-}
-/** CodeInfo is data for the uploaded contract WASM code */
-export interface CodeInfoAmino {
-  /** CodeHash is the unique identifier created by wasmvm */
-  code_hash: Uint8Array;
-  /** Creator address who initially stored the code */
-  creator: string;
-  /** InstantiateConfig access control to apply on contract creation, optional */
-  instantiate_config?: AccessConfigAmino | undefined;
-}
-export interface CodeInfoAminoMsg {
-  type: "wasm/CodeInfo";
-  value: CodeInfoAmino;
-}
-/** CodeInfo is data for the uploaded contract WASM code */
-export interface CodeInfoSDKType {
-  code_hash: Uint8Array;
-  creator: string;
-  instantiate_config: AccessConfigSDKType | undefined;
-}
-/** ContractInfo stores a WASM contract instance */
-export interface ContractInfo {
-  /** CodeID is the reference to the stored Wasm code */
-  codeId: bigint;
-  /** Creator address who initially instantiated the contract */
-  creator: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** Label is optional metadata to be stored with a contract instance. */
-  label: string;
-  /**
-   * Created Tx position when the contract was instantiated.
-   * This data should kept internal and not be exposed via query results. Just
-   * use for sorting
-   */
-  created: AbsoluteTxPosition | undefined;
-  ibcPortId: string;
-  /**
-   * Extension is an extension point to store custom metadata within the
-   * persistence model.
-   */
-  extension: Any | undefined;
-}
-export interface ContractInfoProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.ContractInfo";
-  value: Uint8Array;
-}
-/** ContractInfo stores a WASM contract instance */
-export interface ContractInfoAmino {
-  /** CodeID is the reference to the stored Wasm code */
-  code_id: string;
-  /** Creator address who initially instantiated the contract */
-  creator: string;
-  /** Admin is an optional address that can execute migrations */
-  admin: string;
-  /** Label is optional metadata to be stored with a contract instance. */
-  label: string;
-  /**
-   * Created Tx position when the contract was instantiated.
-   * This data should kept internal and not be exposed via query results. Just
-   * use for sorting
-   */
-  created?: AbsoluteTxPositionAmino | undefined;
-  ibc_port_id: string;
-  /**
-   * Extension is an extension point to store custom metadata within the
-   * persistence model.
-   */
-  extension?: AnyAmino | undefined;
-}
-export interface ContractInfoAminoMsg {
-  type: "wasm/ContractInfo";
-  value: ContractInfoAmino;
-}
-/** ContractInfo stores a WASM contract instance */
-export interface ContractInfoSDKType {
-  code_id: bigint;
-  creator: string;
-  admin: string;
-  label: string;
-  created: AbsoluteTxPositionSDKType | undefined;
-  ibc_port_id: string;
-  extension: AnySDKType | undefined;
-}
-/** ContractCodeHistoryEntry metadata to a contract. */
-export interface ContractCodeHistoryEntry {
-  operation: ContractCodeHistoryOperationType;
-  /** CodeID is the reference to the stored WASM code */
-  codeId: bigint;
-  /** Updated Tx position when the operation was executed. */
-  updated: AbsoluteTxPosition | undefined;
-  msg: Uint8Array;
-}
-export interface ContractCodeHistoryEntryProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.ContractCodeHistoryEntry";
-  value: Uint8Array;
-}
-/** ContractCodeHistoryEntry metadata to a contract. */
-export interface ContractCodeHistoryEntryAmino {
-  operation: ContractCodeHistoryOperationType;
-  /** CodeID is the reference to the stored WASM code */
-  code_id: string;
-  /** Updated Tx position when the operation was executed. */
-  updated?: AbsoluteTxPositionAmino | undefined;
-  msg: Uint8Array;
-}
-export interface ContractCodeHistoryEntryAminoMsg {
-  type: "wasm/ContractCodeHistoryEntry";
-  value: ContractCodeHistoryEntryAmino;
-}
-/** ContractCodeHistoryEntry metadata to a contract. */
-export interface ContractCodeHistoryEntrySDKType {
-  operation: ContractCodeHistoryOperationType;
-  code_id: bigint;
-  updated: AbsoluteTxPositionSDKType | undefined;
-  msg: Uint8Array;
-}
-/**
- * AbsoluteTxPosition is a unique transaction position that allows for global
- * ordering of transactions.
- */
-export interface AbsoluteTxPosition {
-  /** BlockHeight is the block the contract was created at */
-  blockHeight: bigint;
-  /**
-   * TxIndex is a monotonic counter within the block (actual transaction index,
-   * or gas consumed)
-   */
-  txIndex: bigint;
-}
-export interface AbsoluteTxPositionProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.AbsoluteTxPosition";
-  value: Uint8Array;
-}
-/**
- * AbsoluteTxPosition is a unique transaction position that allows for global
- * ordering of transactions.
- */
-export interface AbsoluteTxPositionAmino {
-  /** BlockHeight is the block the contract was created at */
-  block_height: string;
-  /**
-   * TxIndex is a monotonic counter within the block (actual transaction index,
-   * or gas consumed)
-   */
-  tx_index: string;
-}
-export interface AbsoluteTxPositionAminoMsg {
-  type: "wasm/AbsoluteTxPosition";
-  value: AbsoluteTxPositionAmino;
-}
-/**
- * AbsoluteTxPosition is a unique transaction position that allows for global
- * ordering of transactions.
- */
-export interface AbsoluteTxPositionSDKType {
-  block_height: bigint;
-  tx_index: bigint;
-}
-/** Model is a struct that holds a KV pair */
-export interface Model {
-  /** hex-encode key to read it better (this is often ascii) */
-  key: Uint8Array;
-  /** base64-encode raw value */
-  value: Uint8Array;
-}
-export interface ModelProtoMsg {
-  typeUrl: "/cosmwasm.wasm.v1.Model";
-  value: Uint8Array;
-}
-/** Model is a struct that holds a KV pair */
-export interface ModelAmino {
-  /** hex-encode key to read it better (this is often ascii) */
-  key: Uint8Array;
-  /** base64-encode raw value */
-  value: Uint8Array;
-}
-export interface ModelAminoMsg {
-  type: "wasm/Model";
-  value: ModelAmino;
-}
-/** Model is a struct that holds a KV pair */
-export interface ModelSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-function createBaseAccessTypeParam(): AccessTypeParam {
-  return {
-    value: 0
-  };
-}
-export const AccessTypeParam = {
-  typeUrl: "/cosmwasm.wasm.v1.AccessTypeParam",
-  aminoType: "wasm/AccessTypeParam",
-  encode(message: AccessTypeParam, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.value !== 0) {
-      writer.uint32(8).int32(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccessTypeParam {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccessTypeParam();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.value = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccessTypeParam {
-    return {
-      value: isSet(object.value) ? accessTypeFromJSON(object.value) : -1
-    };
-  },
-  toJSON(message: AccessTypeParam): unknown {
-    const obj: any = {};
-    message.value !== undefined && (obj.value = accessTypeToJSON(message.value));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccessTypeParam>): AccessTypeParam {
-    const message = createBaseAccessTypeParam();
-    message.value = object.value ?? 0;
-    return message;
-  },
-  fromSDK(object: AccessTypeParamSDKType): AccessTypeParam {
-    return {
-      value: isSet(object.value) ? accessTypeFromJSON(object.value) : -1
-    };
-  },
-  toSDK(message: AccessTypeParam): AccessTypeParamSDKType {
-    const obj: any = {};
-    message.value !== undefined && (obj.value = accessTypeToJSON(message.value));
-    return obj;
-  },
-  fromAmino(object: AccessTypeParamAmino): AccessTypeParam {
-    return {
-      value: isSet(object.value) ? accessTypeFromJSON(object.value) : -1
-    };
-  },
-  toAmino(message: AccessTypeParam): AccessTypeParamAmino {
-    const obj: any = {};
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: AccessTypeParamAminoMsg): AccessTypeParam {
-    return AccessTypeParam.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccessTypeParam): AccessTypeParamAminoMsg {
-    return {
-      type: "wasm/AccessTypeParam",
-      value: AccessTypeParam.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccessTypeParamProtoMsg): AccessTypeParam {
-    return AccessTypeParam.decode(message.value);
-  },
-  toProto(message: AccessTypeParam): Uint8Array {
-    return AccessTypeParam.encode(message).finish();
-  },
-  toProtoMsg(message: AccessTypeParam): AccessTypeParamProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.AccessTypeParam",
-      value: AccessTypeParam.encode(message).finish()
-    };
-  }
-};
-function createBaseAccessConfig(): AccessConfig {
-  return {
-    permission: 0,
-    address: ""
-  };
-}
-export const AccessConfig = {
-  typeUrl: "/cosmwasm.wasm.v1.AccessConfig",
-  aminoType: "wasm/AccessConfig",
-  encode(message: AccessConfig, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.permission !== 0) {
-      writer.uint32(8).int32(message.permission);
-    }
-    if (message.address !== "") {
-      writer.uint32(18).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccessConfig {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccessConfig();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.permission = (reader.int32() as any);
-          break;
-        case 2:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccessConfig {
-    return {
-      permission: isSet(object.permission) ? accessTypeFromJSON(object.permission) : -1,
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: AccessConfig): unknown {
-    const obj: any = {};
-    message.permission !== undefined && (obj.permission = accessTypeToJSON(message.permission));
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccessConfig>): AccessConfig {
-    const message = createBaseAccessConfig();
-    message.permission = object.permission ?? 0;
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: AccessConfigSDKType): AccessConfig {
-    return {
-      permission: isSet(object.permission) ? accessTypeFromJSON(object.permission) : -1,
-      address: object?.address
-    };
-  },
-  toSDK(message: AccessConfig): AccessConfigSDKType {
-    const obj: any = {};
-    message.permission !== undefined && (obj.permission = accessTypeToJSON(message.permission));
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: AccessConfigAmino): AccessConfig {
-    return {
-      permission: isSet(object.permission) ? accessTypeFromJSON(object.permission) : -1,
-      address: object.address
-    };
-  },
-  toAmino(message: AccessConfig): AccessConfigAmino {
-    const obj: any = {};
-    obj.permission = message.permission;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: AccessConfigAminoMsg): AccessConfig {
-    return AccessConfig.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccessConfig): AccessConfigAminoMsg {
-    return {
-      type: "wasm/AccessConfig",
-      value: AccessConfig.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccessConfigProtoMsg): AccessConfig {
-    return AccessConfig.decode(message.value);
-  },
-  toProto(message: AccessConfig): Uint8Array {
-    return AccessConfig.encode(message).finish();
-  },
-  toProtoMsg(message: AccessConfig): AccessConfigProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.AccessConfig",
-      value: AccessConfig.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    codeUploadAccess: AccessConfig.fromPartial({}),
-    instantiateDefaultPermission: 0,
-    maxWasmCodeSize: BigInt(0)
-  };
-}
-export const Params = {
-  typeUrl: "/cosmwasm.wasm.v1.Params",
-  aminoType: "wasm/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeUploadAccess !== undefined) {
-      AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.instantiateDefaultPermission !== 0) {
-      writer.uint32(16).int32(message.instantiateDefaultPermission);
-    }
-    if (message.maxWasmCodeSize !== BigInt(0)) {
-      writer.uint32(24).uint64(message.maxWasmCodeSize);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeUploadAccess = AccessConfig.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.instantiateDefaultPermission = (reader.int32() as any);
-          break;
-        case 3:
-          message.maxWasmCodeSize = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      codeUploadAccess: isSet(object.codeUploadAccess) ? AccessConfig.fromJSON(object.codeUploadAccess) : undefined,
-      instantiateDefaultPermission: isSet(object.instantiateDefaultPermission) ? accessTypeFromJSON(object.instantiateDefaultPermission) : -1,
-      maxWasmCodeSize: isSet(object.maxWasmCodeSize) ? BigInt(object.maxWasmCodeSize.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.codeUploadAccess !== undefined && (obj.codeUploadAccess = message.codeUploadAccess ? AccessConfig.toJSON(message.codeUploadAccess) : undefined);
-    message.instantiateDefaultPermission !== undefined && (obj.instantiateDefaultPermission = accessTypeToJSON(message.instantiateDefaultPermission));
-    message.maxWasmCodeSize !== undefined && (obj.maxWasmCodeSize = (message.maxWasmCodeSize || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.codeUploadAccess = object.codeUploadAccess !== undefined && object.codeUploadAccess !== null ? AccessConfig.fromPartial(object.codeUploadAccess) : undefined;
-    message.instantiateDefaultPermission = object.instantiateDefaultPermission ?? 0;
-    message.maxWasmCodeSize = object.maxWasmCodeSize !== undefined && object.maxWasmCodeSize !== null ? BigInt(object.maxWasmCodeSize.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      codeUploadAccess: object.code_upload_access ? AccessConfig.fromSDK(object.code_upload_access) : undefined,
-      instantiateDefaultPermission: isSet(object.instantiate_default_permission) ? accessTypeFromJSON(object.instantiate_default_permission) : -1,
-      maxWasmCodeSize: object?.max_wasm_code_size
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    message.codeUploadAccess !== undefined && (obj.code_upload_access = message.codeUploadAccess ? AccessConfig.toSDK(message.codeUploadAccess) : undefined);
-    message.instantiateDefaultPermission !== undefined && (obj.instantiate_default_permission = accessTypeToJSON(message.instantiateDefaultPermission));
-    obj.max_wasm_code_size = message.maxWasmCodeSize;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      codeUploadAccess: object?.code_upload_access ? AccessConfig.fromAmino(object.code_upload_access) : undefined,
-      instantiateDefaultPermission: isSet(object.instantiate_default_permission) ? accessTypeFromJSON(object.instantiate_default_permission) : -1,
-      maxWasmCodeSize: BigInt(object.max_wasm_code_size)
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.code_upload_access = message.codeUploadAccess ? AccessConfig.toAmino(message.codeUploadAccess) : undefined;
-    obj.instantiate_default_permission = message.instantiateDefaultPermission;
-    obj.max_wasm_code_size = message.maxWasmCodeSize ? message.maxWasmCodeSize.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "wasm/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseCodeInfo(): CodeInfo {
-  return {
-    codeHash: new Uint8Array(),
-    creator: "",
-    instantiateConfig: AccessConfig.fromPartial({})
-  };
-}
-export const CodeInfo = {
-  typeUrl: "/cosmwasm.wasm.v1.CodeInfo",
-  aminoType: "wasm/CodeInfo",
-  encode(message: CodeInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeHash.length !== 0) {
-      writer.uint32(10).bytes(message.codeHash);
-    }
-    if (message.creator !== "") {
-      writer.uint32(18).string(message.creator);
-    }
-    if (message.instantiateConfig !== undefined) {
-      AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CodeInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCodeInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeHash = reader.bytes();
-          break;
-        case 2:
-          message.creator = reader.string();
-          break;
-        case 5:
-          message.instantiateConfig = AccessConfig.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CodeInfo {
-    return {
-      codeHash: isSet(object.codeHash) ? bytesFromBase64(object.codeHash) : new Uint8Array(),
-      creator: isSet(object.creator) ? String(object.creator) : "",
-      instantiateConfig: isSet(object.instantiateConfig) ? AccessConfig.fromJSON(object.instantiateConfig) : undefined
-    };
-  },
-  toJSON(message: CodeInfo): unknown {
-    const obj: any = {};
-    message.codeHash !== undefined && (obj.codeHash = base64FromBytes(message.codeHash !== undefined ? message.codeHash : new Uint8Array()));
-    message.creator !== undefined && (obj.creator = message.creator);
-    message.instantiateConfig !== undefined && (obj.instantiateConfig = message.instantiateConfig ? AccessConfig.toJSON(message.instantiateConfig) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CodeInfo>): CodeInfo {
-    const message = createBaseCodeInfo();
-    message.codeHash = object.codeHash ?? new Uint8Array();
-    message.creator = object.creator ?? "";
-    message.instantiateConfig = object.instantiateConfig !== undefined && object.instantiateConfig !== null ? AccessConfig.fromPartial(object.instantiateConfig) : undefined;
-    return message;
-  },
-  fromSDK(object: CodeInfoSDKType): CodeInfo {
-    return {
-      codeHash: object?.code_hash,
-      creator: object?.creator,
-      instantiateConfig: object.instantiate_config ? AccessConfig.fromSDK(object.instantiate_config) : undefined
-    };
-  },
-  toSDK(message: CodeInfo): CodeInfoSDKType {
-    const obj: any = {};
-    obj.code_hash = message.codeHash;
-    obj.creator = message.creator;
-    message.instantiateConfig !== undefined && (obj.instantiate_config = message.instantiateConfig ? AccessConfig.toSDK(message.instantiateConfig) : undefined);
-    return obj;
-  },
-  fromAmino(object: CodeInfoAmino): CodeInfo {
-    return {
-      codeHash: object.code_hash,
-      creator: object.creator,
-      instantiateConfig: object?.instantiate_config ? AccessConfig.fromAmino(object.instantiate_config) : undefined
-    };
-  },
-  toAmino(message: CodeInfo): CodeInfoAmino {
-    const obj: any = {};
-    obj.code_hash = message.codeHash;
-    obj.creator = message.creator;
-    obj.instantiate_config = message.instantiateConfig ? AccessConfig.toAmino(message.instantiateConfig) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CodeInfoAminoMsg): CodeInfo {
-    return CodeInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: CodeInfo): CodeInfoAminoMsg {
-    return {
-      type: "wasm/CodeInfo",
-      value: CodeInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CodeInfoProtoMsg): CodeInfo {
-    return CodeInfo.decode(message.value);
-  },
-  toProto(message: CodeInfo): Uint8Array {
-    return CodeInfo.encode(message).finish();
-  },
-  toProtoMsg(message: CodeInfo): CodeInfoProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.CodeInfo",
-      value: CodeInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseContractInfo(): ContractInfo {
-  return {
-    codeId: BigInt(0),
-    creator: "",
-    admin: "",
-    label: "",
-    created: AbsoluteTxPosition.fromPartial({}),
-    ibcPortId: "",
-    extension: Any.fromPartial({})
-  };
-}
-export const ContractInfo = {
-  typeUrl: "/cosmwasm.wasm.v1.ContractInfo",
-  aminoType: "wasm/ContractInfo",
-  encode(message: ContractInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.codeId);
-    }
-    if (message.creator !== "") {
-      writer.uint32(18).string(message.creator);
-    }
-    if (message.admin !== "") {
-      writer.uint32(26).string(message.admin);
-    }
-    if (message.label !== "") {
-      writer.uint32(34).string(message.label);
-    }
-    if (message.created !== undefined) {
-      AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.ibcPortId !== "") {
-      writer.uint32(50).string(message.ibcPortId);
-    }
-    if (message.extension !== undefined) {
-      Any.encode(message.extension, writer.uint32(58).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ContractInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseContractInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.codeId = reader.uint64();
-          break;
-        case 2:
-          message.creator = reader.string();
-          break;
-        case 3:
-          message.admin = reader.string();
-          break;
-        case 4:
-          message.label = reader.string();
-          break;
-        case 5:
-          message.created = AbsoluteTxPosition.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.ibcPortId = reader.string();
-          break;
-        case 7:
-          message.extension = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ContractInfo {
-    return {
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      creator: isSet(object.creator) ? String(object.creator) : "",
-      admin: isSet(object.admin) ? String(object.admin) : "",
-      label: isSet(object.label) ? String(object.label) : "",
-      created: isSet(object.created) ? AbsoluteTxPosition.fromJSON(object.created) : undefined,
-      ibcPortId: isSet(object.ibcPortId) ? String(object.ibcPortId) : "",
-      extension: isSet(object.extension) ? Any.fromJSON(object.extension) : undefined
-    };
-  },
-  toJSON(message: ContractInfo): unknown {
-    const obj: any = {};
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.creator !== undefined && (obj.creator = message.creator);
-    message.admin !== undefined && (obj.admin = message.admin);
-    message.label !== undefined && (obj.label = message.label);
-    message.created !== undefined && (obj.created = message.created ? AbsoluteTxPosition.toJSON(message.created) : undefined);
-    message.ibcPortId !== undefined && (obj.ibcPortId = message.ibcPortId);
-    message.extension !== undefined && (obj.extension = message.extension ? Any.toJSON(message.extension) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ContractInfo>): ContractInfo {
-    const message = createBaseContractInfo();
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.creator = object.creator ?? "";
-    message.admin = object.admin ?? "";
-    message.label = object.label ?? "";
-    message.created = object.created !== undefined && object.created !== null ? AbsoluteTxPosition.fromPartial(object.created) : undefined;
-    message.ibcPortId = object.ibcPortId ?? "";
-    message.extension = object.extension !== undefined && object.extension !== null ? Any.fromPartial(object.extension) : undefined;
-    return message;
-  },
-  fromSDK(object: ContractInfoSDKType): ContractInfo {
-    return {
-      codeId: object?.code_id,
-      creator: object?.creator,
-      admin: object?.admin,
-      label: object?.label,
-      created: object.created ? AbsoluteTxPosition.fromSDK(object.created) : undefined,
-      ibcPortId: object?.ibc_port_id,
-      extension: object.extension ? Any.fromSDK(object.extension) : undefined
-    };
-  },
-  toSDK(message: ContractInfo): ContractInfoSDKType {
-    const obj: any = {};
-    obj.code_id = message.codeId;
-    obj.creator = message.creator;
-    obj.admin = message.admin;
-    obj.label = message.label;
-    message.created !== undefined && (obj.created = message.created ? AbsoluteTxPosition.toSDK(message.created) : undefined);
-    obj.ibc_port_id = message.ibcPortId;
-    message.extension !== undefined && (obj.extension = message.extension ? Any.toSDK(message.extension) : undefined);
-    return obj;
-  },
-  fromAmino(object: ContractInfoAmino): ContractInfo {
-    return {
-      codeId: BigInt(object.code_id),
-      creator: object.creator,
-      admin: object.admin,
-      label: object.label,
-      created: object?.created ? AbsoluteTxPosition.fromAmino(object.created) : undefined,
-      ibcPortId: object.ibc_port_id,
-      extension: object?.extension ? Any.fromAmino(object.extension) : undefined
-    };
-  },
-  toAmino(message: ContractInfo): ContractInfoAmino {
-    const obj: any = {};
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.creator = message.creator;
-    obj.admin = message.admin;
-    obj.label = message.label;
-    obj.created = message.created ? AbsoluteTxPosition.toAmino(message.created) : undefined;
-    obj.ibc_port_id = message.ibcPortId;
-    obj.extension = message.extension ? Any.toAmino(message.extension) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ContractInfoAminoMsg): ContractInfo {
-    return ContractInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: ContractInfo): ContractInfoAminoMsg {
-    return {
-      type: "wasm/ContractInfo",
-      value: ContractInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ContractInfoProtoMsg): ContractInfo {
-    return ContractInfo.decode(message.value);
-  },
-  toProto(message: ContractInfo): Uint8Array {
-    return ContractInfo.encode(message).finish();
-  },
-  toProtoMsg(message: ContractInfo): ContractInfoProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.ContractInfo",
-      value: ContractInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseContractCodeHistoryEntry(): ContractCodeHistoryEntry {
-  return {
-    operation: 0,
-    codeId: BigInt(0),
-    updated: AbsoluteTxPosition.fromPartial({}),
-    msg: new Uint8Array()
-  };
-}
-export const ContractCodeHistoryEntry = {
-  typeUrl: "/cosmwasm.wasm.v1.ContractCodeHistoryEntry",
-  aminoType: "wasm/ContractCodeHistoryEntry",
-  encode(message: ContractCodeHistoryEntry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.operation !== 0) {
-      writer.uint32(8).int32(message.operation);
-    }
-    if (message.codeId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.codeId);
-    }
-    if (message.updated !== undefined) {
-      AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.msg.length !== 0) {
-      writer.uint32(34).bytes(message.msg);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ContractCodeHistoryEntry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseContractCodeHistoryEntry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.operation = (reader.int32() as any);
-          break;
-        case 2:
-          message.codeId = reader.uint64();
-          break;
-        case 3:
-          message.updated = AbsoluteTxPosition.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.msg = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ContractCodeHistoryEntry {
-    return {
-      operation: isSet(object.operation) ? contractCodeHistoryOperationTypeFromJSON(object.operation) : -1,
-      codeId: isSet(object.codeId) ? BigInt(object.codeId.toString()) : BigInt(0),
-      updated: isSet(object.updated) ? AbsoluteTxPosition.fromJSON(object.updated) : undefined,
-      msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array()
-    };
-  },
-  toJSON(message: ContractCodeHistoryEntry): unknown {
-    const obj: any = {};
-    message.operation !== undefined && (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));
-    message.codeId !== undefined && (obj.codeId = (message.codeId || BigInt(0)).toString());
-    message.updated !== undefined && (obj.updated = message.updated ? AbsoluteTxPosition.toJSON(message.updated) : undefined);
-    message.msg !== undefined && (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ContractCodeHistoryEntry>): ContractCodeHistoryEntry {
-    const message = createBaseContractCodeHistoryEntry();
-    message.operation = object.operation ?? 0;
-    message.codeId = object.codeId !== undefined && object.codeId !== null ? BigInt(object.codeId.toString()) : BigInt(0);
-    message.updated = object.updated !== undefined && object.updated !== null ? AbsoluteTxPosition.fromPartial(object.updated) : undefined;
-    message.msg = object.msg ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ContractCodeHistoryEntrySDKType): ContractCodeHistoryEntry {
-    return {
-      operation: isSet(object.operation) ? contractCodeHistoryOperationTypeFromJSON(object.operation) : -1,
-      codeId: object?.code_id,
-      updated: object.updated ? AbsoluteTxPosition.fromSDK(object.updated) : undefined,
-      msg: object?.msg
-    };
-  },
-  toSDK(message: ContractCodeHistoryEntry): ContractCodeHistoryEntrySDKType {
-    const obj: any = {};
-    message.operation !== undefined && (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));
-    obj.code_id = message.codeId;
-    message.updated !== undefined && (obj.updated = message.updated ? AbsoluteTxPosition.toSDK(message.updated) : undefined);
-    obj.msg = message.msg;
-    return obj;
-  },
-  fromAmino(object: ContractCodeHistoryEntryAmino): ContractCodeHistoryEntry {
-    return {
-      operation: isSet(object.operation) ? contractCodeHistoryOperationTypeFromJSON(object.operation) : -1,
-      codeId: BigInt(object.code_id),
-      updated: object?.updated ? AbsoluteTxPosition.fromAmino(object.updated) : undefined,
-      msg: toUtf8(JSON.stringify(object.msg))
-    };
-  },
-  toAmino(message: ContractCodeHistoryEntry): ContractCodeHistoryEntryAmino {
-    const obj: any = {};
-    obj.operation = message.operation;
-    obj.code_id = message.codeId ? message.codeId.toString() : undefined;
-    obj.updated = message.updated ? AbsoluteTxPosition.toAmino(message.updated) : undefined;
-    obj.msg = message.msg ? JSON.parse(fromUtf8(message.msg)) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ContractCodeHistoryEntryAminoMsg): ContractCodeHistoryEntry {
-    return ContractCodeHistoryEntry.fromAmino(object.value);
-  },
-  toAminoMsg(message: ContractCodeHistoryEntry): ContractCodeHistoryEntryAminoMsg {
-    return {
-      type: "wasm/ContractCodeHistoryEntry",
-      value: ContractCodeHistoryEntry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ContractCodeHistoryEntryProtoMsg): ContractCodeHistoryEntry {
-    return ContractCodeHistoryEntry.decode(message.value);
-  },
-  toProto(message: ContractCodeHistoryEntry): Uint8Array {
-    return ContractCodeHistoryEntry.encode(message).finish();
-  },
-  toProtoMsg(message: ContractCodeHistoryEntry): ContractCodeHistoryEntryProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.ContractCodeHistoryEntry",
-      value: ContractCodeHistoryEntry.encode(message).finish()
-    };
-  }
-};
-function createBaseAbsoluteTxPosition(): AbsoluteTxPosition {
-  return {
-    blockHeight: BigInt(0),
-    txIndex: BigInt(0)
-  };
-}
-export const AbsoluteTxPosition = {
-  typeUrl: "/cosmwasm.wasm.v1.AbsoluteTxPosition",
-  aminoType: "wasm/AbsoluteTxPosition",
-  encode(message: AbsoluteTxPosition, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockHeight !== BigInt(0)) {
-      writer.uint32(8).uint64(message.blockHeight);
-    }
-    if (message.txIndex !== BigInt(0)) {
-      writer.uint32(16).uint64(message.txIndex);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AbsoluteTxPosition {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAbsoluteTxPosition();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockHeight = reader.uint64();
-          break;
-        case 2:
-          message.txIndex = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AbsoluteTxPosition {
-    return {
-      blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight.toString()) : BigInt(0),
-      txIndex: isSet(object.txIndex) ? BigInt(object.txIndex.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: AbsoluteTxPosition): unknown {
-    const obj: any = {};
-    message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || BigInt(0)).toString());
-    message.txIndex !== undefined && (obj.txIndex = (message.txIndex || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AbsoluteTxPosition>): AbsoluteTxPosition {
-    const message = createBaseAbsoluteTxPosition();
-    message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? BigInt(object.blockHeight.toString()) : BigInt(0);
-    message.txIndex = object.txIndex !== undefined && object.txIndex !== null ? BigInt(object.txIndex.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: AbsoluteTxPositionSDKType): AbsoluteTxPosition {
-    return {
-      blockHeight: object?.block_height,
-      txIndex: object?.tx_index
-    };
-  },
-  toSDK(message: AbsoluteTxPosition): AbsoluteTxPositionSDKType {
-    const obj: any = {};
-    obj.block_height = message.blockHeight;
-    obj.tx_index = message.txIndex;
-    return obj;
-  },
-  fromAmino(object: AbsoluteTxPositionAmino): AbsoluteTxPosition {
-    return {
-      blockHeight: BigInt(object.block_height),
-      txIndex: BigInt(object.tx_index)
-    };
-  },
-  toAmino(message: AbsoluteTxPosition): AbsoluteTxPositionAmino {
-    const obj: any = {};
-    obj.block_height = message.blockHeight ? message.blockHeight.toString() : undefined;
-    obj.tx_index = message.txIndex ? message.txIndex.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AbsoluteTxPositionAminoMsg): AbsoluteTxPosition {
-    return AbsoluteTxPosition.fromAmino(object.value);
-  },
-  toAminoMsg(message: AbsoluteTxPosition): AbsoluteTxPositionAminoMsg {
-    return {
-      type: "wasm/AbsoluteTxPosition",
-      value: AbsoluteTxPosition.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AbsoluteTxPositionProtoMsg): AbsoluteTxPosition {
-    return AbsoluteTxPosition.decode(message.value);
-  },
-  toProto(message: AbsoluteTxPosition): Uint8Array {
-    return AbsoluteTxPosition.encode(message).finish();
-  },
-  toProtoMsg(message: AbsoluteTxPosition): AbsoluteTxPositionProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.AbsoluteTxPosition",
-      value: AbsoluteTxPosition.encode(message).finish()
-    };
-  }
-};
-function createBaseModel(): Model {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array()
-  };
-}
-export const Model = {
-  typeUrl: "/cosmwasm.wasm.v1.Model",
-  aminoType: "wasm/Model",
-  encode(message: Model, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Model {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModel();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Model {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: Model): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Model>): Model {
-    const message = createBaseModel();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ModelSDKType): Model {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: Model): ModelSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: ModelAmino): Model {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: Model): ModelAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: ModelAminoMsg): Model {
-    return Model.fromAmino(object.value);
-  },
-  toAminoMsg(message: Model): ModelAminoMsg {
-    return {
-      type: "wasm/Model",
-      value: Model.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModelProtoMsg): Model {
-    return Model.decode(message.value);
-  },
-  toProto(message: Model): Uint8Array {
-    return Model.encode(message).finish();
-  },
-  toProtoMsg(message: Model): ModelProtoMsg {
-    return {
-      typeUrl: "/cosmwasm.wasm.v1.Model",
-      value: Model.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/extern.ts b/examples/injective/src/codegen/extern.ts
deleted file mode 100644
index 3dffe5ec..00000000
--- a/examples/injective/src/codegen/extern.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from '@cosmjs/stargate'
-import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc";
-
-const _rpcClients: Record<string, ProtobufRpcClient> = {};
-
-export const getRpcEndpointKey = (rpcEndpoint: string | HttpEndpoint) => {
-    if (typeof rpcEndpoint === 'string') {
-        return rpcEndpoint;
-    } else if (!!rpcEndpoint) {
-        //@ts-ignore 
-        return rpcEndpoint.url;
-    }
-}
-
-export const getRpcClient = async (rpcEndpoint: string | HttpEndpoint) => {
-    const key = getRpcEndpointKey(rpcEndpoint);
-    if (!key) return;
-    if (_rpcClients.hasOwnProperty(key)) {
-        return _rpcClients[key];
-    }
-    const tmClient = await Tendermint34Client.connect(rpcEndpoint);
-    //@ts-ignore
-    const client = new QueryClient(tmClient);
-    const rpc = createProtobufRpcClient(client);
-    _rpcClients[key] = rpc;
-    return rpc;
-}
diff --git a/examples/injective/src/codegen/gogoproto/bundle.ts b/examples/injective/src/codegen/gogoproto/bundle.ts
deleted file mode 100644
index 33a6fc1b..00000000
--- a/examples/injective/src/codegen/gogoproto/bundle.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as _100 from "./gogo";
-export const gogoproto = {
-  ..._100
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/gogoproto/gogo.ts b/examples/injective/src/codegen/gogoproto/gogo.ts
deleted file mode 100644
index 693da49f..00000000
--- a/examples/injective/src/codegen/gogoproto/gogo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/api/annotations.ts b/examples/injective/src/codegen/google/api/annotations.ts
deleted file mode 100644
index 693da49f..00000000
--- a/examples/injective/src/codegen/google/api/annotations.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/api/http.ts b/examples/injective/src/codegen/google/api/http.ts
deleted file mode 100644
index 8b979a64..00000000
--- a/examples/injective/src/codegen/google/api/http.ts
+++ /dev/null
@@ -1,1448 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/**
- * Defines the HTTP configuration for an API service. It contains a list of
- * [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
- * to one or more HTTP REST API methods.
- */
-export interface Http {
-  /**
-   * A list of HTTP configuration rules that apply to individual API methods.
-   * 
-   * **NOTE:** All service configuration rules follow "last one wins" order.
-   */
-  rules: HttpRule[];
-  /**
-   * When set to true, URL path parameters will be fully URI-decoded except in
-   * cases of single segment matches in reserved expansion, where "%2F" will be
-   * left encoded.
-   * 
-   * The default behavior is to not decode RFC 6570 reserved characters in multi
-   * segment matches.
-   */
-  fullyDecodeReservedExpansion: boolean;
-}
-export interface HttpProtoMsg {
-  typeUrl: "/google.api.Http";
-  value: Uint8Array;
-}
-/**
- * Defines the HTTP configuration for an API service. It contains a list of
- * [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
- * to one or more HTTP REST API methods.
- */
-export interface HttpAmino {
-  /**
-   * A list of HTTP configuration rules that apply to individual API methods.
-   * 
-   * **NOTE:** All service configuration rules follow "last one wins" order.
-   */
-  rules: HttpRuleAmino[];
-  /**
-   * When set to true, URL path parameters will be fully URI-decoded except in
-   * cases of single segment matches in reserved expansion, where "%2F" will be
-   * left encoded.
-   * 
-   * The default behavior is to not decode RFC 6570 reserved characters in multi
-   * segment matches.
-   */
-  fully_decode_reserved_expansion: boolean;
-}
-export interface HttpAminoMsg {
-  type: "/google.api.Http";
-  value: HttpAmino;
-}
-/**
- * Defines the HTTP configuration for an API service. It contains a list of
- * [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
- * to one or more HTTP REST API methods.
- */
-export interface HttpSDKType {
-  rules: HttpRuleSDKType[];
-  fully_decode_reserved_expansion: boolean;
-}
-/**
- * # gRPC Transcoding
- * 
- * gRPC Transcoding is a feature for mapping between a gRPC method and one or
- * more HTTP REST endpoints. It allows developers to build a single API service
- * that supports both gRPC APIs and REST APIs. Many systems, including [Google
- * APIs](https://github.com/googleapis/googleapis),
- * [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
- * Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
- * and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
- * and use it for large scale production services.
- * 
- * `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
- * how different portions of the gRPC request message are mapped to the URL
- * path, URL query parameters, and HTTP request body. It also controls how the
- * gRPC response message is mapped to the HTTP response body. `HttpRule` is
- * typically specified as an `google.api.http` annotation on the gRPC method.
- * 
- * Each mapping specifies a URL path template and an HTTP method. The path
- * template may refer to one or more fields in the gRPC request message, as long
- * as each field is a non-repeated field with a primitive (non-message) type.
- * The path template controls how fields of the request message are mapped to
- * the URL path.
- * 
- * Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get: "/v1/{name=messages/*}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string name = 1; // Mapped to URL path.
- *     }
- *     message Message {
- *       string text = 1; // The resource content.
- *     }
- * 
- * This enables an HTTP REST to gRPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456`  | `GetMessage(name: "messages/123456")`
- * 
- * Any fields in the request message which are not bound by the path template
- * automatically become HTTP query parameters if there is no HTTP request body.
- * For example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get:"/v1/messages/{message_id}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       message SubMessage {
- *         string subfield = 1;
- *       }
- *       string message_id = 1; // Mapped to URL path.
- *       int64 revision = 2;    // Mapped to URL query parameter `revision`.
- *       SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.
- *     }
- * 
- * This enables a HTTP JSON to RPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
- * `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
- * "foo"))`
- * 
- * Note that fields which are mapped to URL query parameters must have a
- * primitive type or a repeated primitive type or a non-repeated message type.
- * In the case of a repeated type, the parameter can be repeated in the URL
- * as `...?param=A&param=B`. In the case of a message type, each field of the
- * message is mapped to a separate parameter, such as
- * `...?foo.a=A&foo.b=B&foo.c=C`.
- * 
- * For HTTP methods that allow a request body, the `body` field
- * specifies the mapping. Consider a REST update method on the
- * message resource collection:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "message"
- *         };
- *       }
- *     }
- *     message UpdateMessageRequest {
- *       string message_id = 1; // mapped to the URL
- *       Message message = 2;   // mapped to the body
- *     }
- * 
- * The following HTTP JSON to RPC mapping is enabled, where the
- * representation of the JSON in the request body is determined by
- * protos JSON encoding:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" message { text: "Hi!" })`
- * 
- * The special name `*` can be used in the body mapping to define that
- * every field not bound by the path template should be mapped to the
- * request body.  This enables the following alternative definition of
- * the update method:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(Message) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "*"
- *         };
- *       }
- *     }
- *     message Message {
- *       string message_id = 1;
- *       string text = 2;
- *     }
- * 
- * 
- * The following HTTP JSON to RPC mapping is enabled:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" text: "Hi!")`
- * 
- * Note that when using `*` in the body mapping, it is not possible to
- * have HTTP parameters, as all fields not bound by the path end in
- * the body. This makes this option more rarely used in practice when
- * defining REST APIs. The common usage of `*` is in custom methods
- * which don't use the URL at all for transferring data.
- * 
- * It is possible to define multiple HTTP methods for one RPC by using
- * the `additional_bindings` option. Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           get: "/v1/messages/{message_id}"
- *           additional_bindings {
- *             get: "/v1/users/{user_id}/messages/{message_id}"
- *           }
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string message_id = 1;
- *       string user_id = 2;
- *     }
- * 
- * This enables the following two alternative HTTP JSON to RPC mappings:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
- * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
- * "123456")`
- * 
- * ## Rules for HTTP mapping
- * 
- * 1. Leaf request fields (recursive expansion nested messages in the request
- *    message) are classified into three categories:
- *    - Fields referred by the path template. They are passed via the URL path.
- *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
- *      request body.
- *    - All other fields are passed via the URL query parameters, and the
- *      parameter name is the field path in the request message. A repeated
- *      field can be represented as multiple query parameters under the same
- *      name.
- *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
- *     are passed via URL path and HTTP request body.
- *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
- *     fields are passed via URL path and URL query parameters.
- * 
- * ### Path template syntax
- * 
- *     Template = "/" Segments [ Verb ] ;
- *     Segments = Segment { "/" Segment } ;
- *     Segment  = "*" | "**" | LITERAL | Variable ;
- *     Variable = "{" FieldPath [ "=" Segments ] "}" ;
- *     FieldPath = IDENT { "." IDENT } ;
- *     Verb     = ":" LITERAL ;
- * 
- * The syntax `*` matches a single URL path segment. The syntax `**` matches
- * zero or more URL path segments, which must be the last part of the URL path
- * except the `Verb`.
- * 
- * The syntax `Variable` matches part of the URL path as specified by its
- * template. A variable template must not contain other variables. If a variable
- * matches a single path segment, its template may be omitted, e.g. `{var}`
- * is equivalent to `{var=*}`.
- * 
- * The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
- * contains any reserved character, such characters should be percent-encoded
- * before the matching.
- * 
- * If a variable contains exactly one path segment, such as `"{var}"` or
- * `"{var=*}"`, when such a variable is expanded into a URL path on the client
- * side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
- * server side does the reverse decoding. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{var}`.
- * 
- * If a variable contains multiple path segments, such as `"{var=foo/*}"`
- * or `"{var=**}"`, when such a variable is expanded into a URL path on the
- * client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
- * The server side does the reverse decoding, except "%2F" and "%2f" are left
- * unchanged. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{+var}`.
- * 
- * ## Using gRPC API Service Configuration
- * 
- * gRPC API Service Configuration (service config) is a configuration language
- * for configuring a gRPC service to become a user-facing product. The
- * service config is simply the YAML representation of the `google.api.Service`
- * proto message.
- * 
- * As an alternative to annotating your proto file, you can configure gRPC
- * transcoding in your service config YAML files. You do this by specifying a
- * `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
- * effect as the proto annotation. This can be particularly useful if you
- * have a proto that is reused in multiple services. Note that any transcoding
- * specified in the service config will override any matching transcoding
- * configuration in the proto.
- * 
- * Example:
- * 
- *     http:
- *       rules:
- *         # Selects a gRPC method and applies HttpRule to it.
- *         - selector: example.v1.Messaging.GetMessage
- *           get: /v1/messages/{message_id}/{sub.subfield}
- * 
- * ## Special notes
- * 
- * When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
- * proto to JSON conversion must follow the [proto3
- * specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
- * 
- * While the single segment variable follows the semantics of
- * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
- * Expansion, the multi segment variable **does not** follow RFC 6570 Section
- * 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
- * does not expand special characters like `?` and `#`, which would lead
- * to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
- * for multi segment variables.
- * 
- * The path variables **must not** refer to any repeated or mapped field,
- * because client libraries are not capable of handling such variable expansion.
- * 
- * The path variables **must not** capture the leading "/" character. The reason
- * is that the most common use case "{var}" does not capture the leading "/"
- * character. For consistency, all path variables must share the same behavior.
- * 
- * Repeated message fields must not be mapped to URL query parameters, because
- * no client library can support such complicated mapping.
- * 
- * If an API needs to use a JSON array for request or response body, it can map
- * the request or response body to a repeated field. However, some gRPC
- * Transcoding implementations may not support this feature.
- */
-export interface HttpRule {
-  /**
-   * Selects a method to which this rule applies.
-   * 
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-   */
-  selector: string;
-  /**
-   * Maps to HTTP GET. Used for listing and getting information about
-   * resources.
-   */
-  get?: string;
-  /** Maps to HTTP PUT. Used for replacing a resource. */
-  put?: string;
-  /** Maps to HTTP POST. Used for creating a resource or performing an action. */
-  post?: string;
-  /** Maps to HTTP DELETE. Used for deleting a resource. */
-  delete?: string;
-  /** Maps to HTTP PATCH. Used for updating a resource. */
-  patch?: string;
-  /**
-   * The custom pattern is used for specifying an HTTP method that is not
-   * included in the `pattern` field, such as HEAD, or "*" to leave the
-   * HTTP method unspecified for this rule. The wild-card rule is useful
-   * for services that provide content to Web (HTML) clients.
-   */
-  custom?: CustomHttpPattern | undefined;
-  /**
-   * The name of the request field whose value is mapped to the HTTP request
-   * body, or `*` for mapping all request fields not captured by the path
-   * pattern to the HTTP body, or omitted for not having any HTTP request body.
-   * 
-   * NOTE: the referred field must be present at the top-level of the request
-   * message type.
-   */
-  body: string;
-  /**
-   * Optional. The name of the response field whose value is mapped to the HTTP
-   * response body. When omitted, the entire response message will be used
-   * as the HTTP response body.
-   * 
-   * NOTE: The referred field must be present at the top-level of the response
-   * message type.
-   */
-  responseBody: string;
-  /**
-   * Additional HTTP bindings for the selector. Nested bindings must
-   * not contain an `additional_bindings` field themselves (that is,
-   * the nesting may only be one level deep).
-   */
-  additionalBindings: HttpRule[];
-}
-export interface HttpRuleProtoMsg {
-  typeUrl: "/google.api.HttpRule";
-  value: Uint8Array;
-}
-/**
- * # gRPC Transcoding
- * 
- * gRPC Transcoding is a feature for mapping between a gRPC method and one or
- * more HTTP REST endpoints. It allows developers to build a single API service
- * that supports both gRPC APIs and REST APIs. Many systems, including [Google
- * APIs](https://github.com/googleapis/googleapis),
- * [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
- * Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
- * and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
- * and use it for large scale production services.
- * 
- * `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
- * how different portions of the gRPC request message are mapped to the URL
- * path, URL query parameters, and HTTP request body. It also controls how the
- * gRPC response message is mapped to the HTTP response body. `HttpRule` is
- * typically specified as an `google.api.http` annotation on the gRPC method.
- * 
- * Each mapping specifies a URL path template and an HTTP method. The path
- * template may refer to one or more fields in the gRPC request message, as long
- * as each field is a non-repeated field with a primitive (non-message) type.
- * The path template controls how fields of the request message are mapped to
- * the URL path.
- * 
- * Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get: "/v1/{name=messages/*}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string name = 1; // Mapped to URL path.
- *     }
- *     message Message {
- *       string text = 1; // The resource content.
- *     }
- * 
- * This enables an HTTP REST to gRPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456`  | `GetMessage(name: "messages/123456")`
- * 
- * Any fields in the request message which are not bound by the path template
- * automatically become HTTP query parameters if there is no HTTP request body.
- * For example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get:"/v1/messages/{message_id}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       message SubMessage {
- *         string subfield = 1;
- *       }
- *       string message_id = 1; // Mapped to URL path.
- *       int64 revision = 2;    // Mapped to URL query parameter `revision`.
- *       SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.
- *     }
- * 
- * This enables a HTTP JSON to RPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
- * `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
- * "foo"))`
- * 
- * Note that fields which are mapped to URL query parameters must have a
- * primitive type or a repeated primitive type or a non-repeated message type.
- * In the case of a repeated type, the parameter can be repeated in the URL
- * as `...?param=A&param=B`. In the case of a message type, each field of the
- * message is mapped to a separate parameter, such as
- * `...?foo.a=A&foo.b=B&foo.c=C`.
- * 
- * For HTTP methods that allow a request body, the `body` field
- * specifies the mapping. Consider a REST update method on the
- * message resource collection:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "message"
- *         };
- *       }
- *     }
- *     message UpdateMessageRequest {
- *       string message_id = 1; // mapped to the URL
- *       Message message = 2;   // mapped to the body
- *     }
- * 
- * The following HTTP JSON to RPC mapping is enabled, where the
- * representation of the JSON in the request body is determined by
- * protos JSON encoding:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" message { text: "Hi!" })`
- * 
- * The special name `*` can be used in the body mapping to define that
- * every field not bound by the path template should be mapped to the
- * request body.  This enables the following alternative definition of
- * the update method:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(Message) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "*"
- *         };
- *       }
- *     }
- *     message Message {
- *       string message_id = 1;
- *       string text = 2;
- *     }
- * 
- * 
- * The following HTTP JSON to RPC mapping is enabled:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" text: "Hi!")`
- * 
- * Note that when using `*` in the body mapping, it is not possible to
- * have HTTP parameters, as all fields not bound by the path end in
- * the body. This makes this option more rarely used in practice when
- * defining REST APIs. The common usage of `*` is in custom methods
- * which don't use the URL at all for transferring data.
- * 
- * It is possible to define multiple HTTP methods for one RPC by using
- * the `additional_bindings` option. Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           get: "/v1/messages/{message_id}"
- *           additional_bindings {
- *             get: "/v1/users/{user_id}/messages/{message_id}"
- *           }
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string message_id = 1;
- *       string user_id = 2;
- *     }
- * 
- * This enables the following two alternative HTTP JSON to RPC mappings:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
- * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
- * "123456")`
- * 
- * ## Rules for HTTP mapping
- * 
- * 1. Leaf request fields (recursive expansion nested messages in the request
- *    message) are classified into three categories:
- *    - Fields referred by the path template. They are passed via the URL path.
- *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
- *      request body.
- *    - All other fields are passed via the URL query parameters, and the
- *      parameter name is the field path in the request message. A repeated
- *      field can be represented as multiple query parameters under the same
- *      name.
- *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
- *     are passed via URL path and HTTP request body.
- *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
- *     fields are passed via URL path and URL query parameters.
- * 
- * ### Path template syntax
- * 
- *     Template = "/" Segments [ Verb ] ;
- *     Segments = Segment { "/" Segment } ;
- *     Segment  = "*" | "**" | LITERAL | Variable ;
- *     Variable = "{" FieldPath [ "=" Segments ] "}" ;
- *     FieldPath = IDENT { "." IDENT } ;
- *     Verb     = ":" LITERAL ;
- * 
- * The syntax `*` matches a single URL path segment. The syntax `**` matches
- * zero or more URL path segments, which must be the last part of the URL path
- * except the `Verb`.
- * 
- * The syntax `Variable` matches part of the URL path as specified by its
- * template. A variable template must not contain other variables. If a variable
- * matches a single path segment, its template may be omitted, e.g. `{var}`
- * is equivalent to `{var=*}`.
- * 
- * The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
- * contains any reserved character, such characters should be percent-encoded
- * before the matching.
- * 
- * If a variable contains exactly one path segment, such as `"{var}"` or
- * `"{var=*}"`, when such a variable is expanded into a URL path on the client
- * side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
- * server side does the reverse decoding. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{var}`.
- * 
- * If a variable contains multiple path segments, such as `"{var=foo/*}"`
- * or `"{var=**}"`, when such a variable is expanded into a URL path on the
- * client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
- * The server side does the reverse decoding, except "%2F" and "%2f" are left
- * unchanged. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{+var}`.
- * 
- * ## Using gRPC API Service Configuration
- * 
- * gRPC API Service Configuration (service config) is a configuration language
- * for configuring a gRPC service to become a user-facing product. The
- * service config is simply the YAML representation of the `google.api.Service`
- * proto message.
- * 
- * As an alternative to annotating your proto file, you can configure gRPC
- * transcoding in your service config YAML files. You do this by specifying a
- * `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
- * effect as the proto annotation. This can be particularly useful if you
- * have a proto that is reused in multiple services. Note that any transcoding
- * specified in the service config will override any matching transcoding
- * configuration in the proto.
- * 
- * Example:
- * 
- *     http:
- *       rules:
- *         # Selects a gRPC method and applies HttpRule to it.
- *         - selector: example.v1.Messaging.GetMessage
- *           get: /v1/messages/{message_id}/{sub.subfield}
- * 
- * ## Special notes
- * 
- * When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
- * proto to JSON conversion must follow the [proto3
- * specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
- * 
- * While the single segment variable follows the semantics of
- * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
- * Expansion, the multi segment variable **does not** follow RFC 6570 Section
- * 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
- * does not expand special characters like `?` and `#`, which would lead
- * to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
- * for multi segment variables.
- * 
- * The path variables **must not** refer to any repeated or mapped field,
- * because client libraries are not capable of handling such variable expansion.
- * 
- * The path variables **must not** capture the leading "/" character. The reason
- * is that the most common use case "{var}" does not capture the leading "/"
- * character. For consistency, all path variables must share the same behavior.
- * 
- * Repeated message fields must not be mapped to URL query parameters, because
- * no client library can support such complicated mapping.
- * 
- * If an API needs to use a JSON array for request or response body, it can map
- * the request or response body to a repeated field. However, some gRPC
- * Transcoding implementations may not support this feature.
- */
-export interface HttpRuleAmino {
-  /**
-   * Selects a method to which this rule applies.
-   * 
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-   */
-  selector: string;
-  /**
-   * Maps to HTTP GET. Used for listing and getting information about
-   * resources.
-   */
-  get?: string;
-  /** Maps to HTTP PUT. Used for replacing a resource. */
-  put?: string;
-  /** Maps to HTTP POST. Used for creating a resource or performing an action. */
-  post?: string;
-  /** Maps to HTTP DELETE. Used for deleting a resource. */
-  delete?: string;
-  /** Maps to HTTP PATCH. Used for updating a resource. */
-  patch?: string;
-  /**
-   * The custom pattern is used for specifying an HTTP method that is not
-   * included in the `pattern` field, such as HEAD, or "*" to leave the
-   * HTTP method unspecified for this rule. The wild-card rule is useful
-   * for services that provide content to Web (HTML) clients.
-   */
-  custom?: CustomHttpPatternAmino | undefined;
-  /**
-   * The name of the request field whose value is mapped to the HTTP request
-   * body, or `*` for mapping all request fields not captured by the path
-   * pattern to the HTTP body, or omitted for not having any HTTP request body.
-   * 
-   * NOTE: the referred field must be present at the top-level of the request
-   * message type.
-   */
-  body: string;
-  /**
-   * Optional. The name of the response field whose value is mapped to the HTTP
-   * response body. When omitted, the entire response message will be used
-   * as the HTTP response body.
-   * 
-   * NOTE: The referred field must be present at the top-level of the response
-   * message type.
-   */
-  response_body: string;
-  /**
-   * Additional HTTP bindings for the selector. Nested bindings must
-   * not contain an `additional_bindings` field themselves (that is,
-   * the nesting may only be one level deep).
-   */
-  additional_bindings: HttpRuleAmino[];
-}
-export interface HttpRuleAminoMsg {
-  type: "/google.api.HttpRule";
-  value: HttpRuleAmino;
-}
-/**
- * # gRPC Transcoding
- * 
- * gRPC Transcoding is a feature for mapping between a gRPC method and one or
- * more HTTP REST endpoints. It allows developers to build a single API service
- * that supports both gRPC APIs and REST APIs. Many systems, including [Google
- * APIs](https://github.com/googleapis/googleapis),
- * [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
- * Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
- * and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
- * and use it for large scale production services.
- * 
- * `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
- * how different portions of the gRPC request message are mapped to the URL
- * path, URL query parameters, and HTTP request body. It also controls how the
- * gRPC response message is mapped to the HTTP response body. `HttpRule` is
- * typically specified as an `google.api.http` annotation on the gRPC method.
- * 
- * Each mapping specifies a URL path template and an HTTP method. The path
- * template may refer to one or more fields in the gRPC request message, as long
- * as each field is a non-repeated field with a primitive (non-message) type.
- * The path template controls how fields of the request message are mapped to
- * the URL path.
- * 
- * Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get: "/v1/{name=messages/*}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string name = 1; // Mapped to URL path.
- *     }
- *     message Message {
- *       string text = 1; // The resource content.
- *     }
- * 
- * This enables an HTTP REST to gRPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456`  | `GetMessage(name: "messages/123456")`
- * 
- * Any fields in the request message which are not bound by the path template
- * automatically become HTTP query parameters if there is no HTTP request body.
- * For example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *             get:"/v1/messages/{message_id}"
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       message SubMessage {
- *         string subfield = 1;
- *       }
- *       string message_id = 1; // Mapped to URL path.
- *       int64 revision = 2;    // Mapped to URL query parameter `revision`.
- *       SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.
- *     }
- * 
- * This enables a HTTP JSON to RPC mapping as below:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
- * `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
- * "foo"))`
- * 
- * Note that fields which are mapped to URL query parameters must have a
- * primitive type or a repeated primitive type or a non-repeated message type.
- * In the case of a repeated type, the parameter can be repeated in the URL
- * as `...?param=A&param=B`. In the case of a message type, each field of the
- * message is mapped to a separate parameter, such as
- * `...?foo.a=A&foo.b=B&foo.c=C`.
- * 
- * For HTTP methods that allow a request body, the `body` field
- * specifies the mapping. Consider a REST update method on the
- * message resource collection:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "message"
- *         };
- *       }
- *     }
- *     message UpdateMessageRequest {
- *       string message_id = 1; // mapped to the URL
- *       Message message = 2;   // mapped to the body
- *     }
- * 
- * The following HTTP JSON to RPC mapping is enabled, where the
- * representation of the JSON in the request body is determined by
- * protos JSON encoding:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" message { text: "Hi!" })`
- * 
- * The special name `*` can be used in the body mapping to define that
- * every field not bound by the path template should be mapped to the
- * request body.  This enables the following alternative definition of
- * the update method:
- * 
- *     service Messaging {
- *       rpc UpdateMessage(Message) returns (Message) {
- *         option (google.api.http) = {
- *           patch: "/v1/messages/{message_id}"
- *           body: "*"
- *         };
- *       }
- *     }
- *     message Message {
- *       string message_id = 1;
- *       string text = 2;
- *     }
- * 
- * 
- * The following HTTP JSON to RPC mapping is enabled:
- * 
- * HTTP | gRPC
- * -----|-----
- * `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
- * "123456" text: "Hi!")`
- * 
- * Note that when using `*` in the body mapping, it is not possible to
- * have HTTP parameters, as all fields not bound by the path end in
- * the body. This makes this option more rarely used in practice when
- * defining REST APIs. The common usage of `*` is in custom methods
- * which don't use the URL at all for transferring data.
- * 
- * It is possible to define multiple HTTP methods for one RPC by using
- * the `additional_bindings` option. Example:
- * 
- *     service Messaging {
- *       rpc GetMessage(GetMessageRequest) returns (Message) {
- *         option (google.api.http) = {
- *           get: "/v1/messages/{message_id}"
- *           additional_bindings {
- *             get: "/v1/users/{user_id}/messages/{message_id}"
- *           }
- *         };
- *       }
- *     }
- *     message GetMessageRequest {
- *       string message_id = 1;
- *       string user_id = 2;
- *     }
- * 
- * This enables the following two alternative HTTP JSON to RPC mappings:
- * 
- * HTTP | gRPC
- * -----|-----
- * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
- * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
- * "123456")`
- * 
- * ## Rules for HTTP mapping
- * 
- * 1. Leaf request fields (recursive expansion nested messages in the request
- *    message) are classified into three categories:
- *    - Fields referred by the path template. They are passed via the URL path.
- *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
- *      request body.
- *    - All other fields are passed via the URL query parameters, and the
- *      parameter name is the field path in the request message. A repeated
- *      field can be represented as multiple query parameters under the same
- *      name.
- *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
- *     are passed via URL path and HTTP request body.
- *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
- *     fields are passed via URL path and URL query parameters.
- * 
- * ### Path template syntax
- * 
- *     Template = "/" Segments [ Verb ] ;
- *     Segments = Segment { "/" Segment } ;
- *     Segment  = "*" | "**" | LITERAL | Variable ;
- *     Variable = "{" FieldPath [ "=" Segments ] "}" ;
- *     FieldPath = IDENT { "." IDENT } ;
- *     Verb     = ":" LITERAL ;
- * 
- * The syntax `*` matches a single URL path segment. The syntax `**` matches
- * zero or more URL path segments, which must be the last part of the URL path
- * except the `Verb`.
- * 
- * The syntax `Variable` matches part of the URL path as specified by its
- * template. A variable template must not contain other variables. If a variable
- * matches a single path segment, its template may be omitted, e.g. `{var}`
- * is equivalent to `{var=*}`.
- * 
- * The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
- * contains any reserved character, such characters should be percent-encoded
- * before the matching.
- * 
- * If a variable contains exactly one path segment, such as `"{var}"` or
- * `"{var=*}"`, when such a variable is expanded into a URL path on the client
- * side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
- * server side does the reverse decoding. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{var}`.
- * 
- * If a variable contains multiple path segments, such as `"{var=foo/*}"`
- * or `"{var=**}"`, when such a variable is expanded into a URL path on the
- * client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
- * The server side does the reverse decoding, except "%2F" and "%2f" are left
- * unchanged. Such variables show up in the
- * [Discovery
- * Document](https://developers.google.com/discovery/v1/reference/apis) as
- * `{+var}`.
- * 
- * ## Using gRPC API Service Configuration
- * 
- * gRPC API Service Configuration (service config) is a configuration language
- * for configuring a gRPC service to become a user-facing product. The
- * service config is simply the YAML representation of the `google.api.Service`
- * proto message.
- * 
- * As an alternative to annotating your proto file, you can configure gRPC
- * transcoding in your service config YAML files. You do this by specifying a
- * `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
- * effect as the proto annotation. This can be particularly useful if you
- * have a proto that is reused in multiple services. Note that any transcoding
- * specified in the service config will override any matching transcoding
- * configuration in the proto.
- * 
- * Example:
- * 
- *     http:
- *       rules:
- *         # Selects a gRPC method and applies HttpRule to it.
- *         - selector: example.v1.Messaging.GetMessage
- *           get: /v1/messages/{message_id}/{sub.subfield}
- * 
- * ## Special notes
- * 
- * When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
- * proto to JSON conversion must follow the [proto3
- * specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
- * 
- * While the single segment variable follows the semantics of
- * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
- * Expansion, the multi segment variable **does not** follow RFC 6570 Section
- * 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
- * does not expand special characters like `?` and `#`, which would lead
- * to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
- * for multi segment variables.
- * 
- * The path variables **must not** refer to any repeated or mapped field,
- * because client libraries are not capable of handling such variable expansion.
- * 
- * The path variables **must not** capture the leading "/" character. The reason
- * is that the most common use case "{var}" does not capture the leading "/"
- * character. For consistency, all path variables must share the same behavior.
- * 
- * Repeated message fields must not be mapped to URL query parameters, because
- * no client library can support such complicated mapping.
- * 
- * If an API needs to use a JSON array for request or response body, it can map
- * the request or response body to a repeated field. However, some gRPC
- * Transcoding implementations may not support this feature.
- */
-export interface HttpRuleSDKType {
-  selector: string;
-  get?: string;
-  put?: string;
-  post?: string;
-  delete?: string;
-  patch?: string;
-  custom?: CustomHttpPatternSDKType | undefined;
-  body: string;
-  response_body: string;
-  additional_bindings: HttpRuleSDKType[];
-}
-/** A custom pattern is used for defining custom HTTP verb. */
-export interface CustomHttpPattern {
-  /** The name of this custom HTTP verb. */
-  kind: string;
-  /** The path matched by this custom verb. */
-  path: string;
-}
-export interface CustomHttpPatternProtoMsg {
-  typeUrl: "/google.api.CustomHttpPattern";
-  value: Uint8Array;
-}
-/** A custom pattern is used for defining custom HTTP verb. */
-export interface CustomHttpPatternAmino {
-  /** The name of this custom HTTP verb. */
-  kind: string;
-  /** The path matched by this custom verb. */
-  path: string;
-}
-export interface CustomHttpPatternAminoMsg {
-  type: "/google.api.CustomHttpPattern";
-  value: CustomHttpPatternAmino;
-}
-/** A custom pattern is used for defining custom HTTP verb. */
-export interface CustomHttpPatternSDKType {
-  kind: string;
-  path: string;
-}
-function createBaseHttp(): Http {
-  return {
-    rules: [],
-    fullyDecodeReservedExpansion: false
-  };
-}
-export const Http = {
-  typeUrl: "/google.api.Http",
-  encode(message: Http, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.rules) {
-      HttpRule.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.fullyDecodeReservedExpansion === true) {
-      writer.uint32(16).bool(message.fullyDecodeReservedExpansion);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Http {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHttp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rules.push(HttpRule.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.fullyDecodeReservedExpansion = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Http {
-    return {
-      rules: Array.isArray(object?.rules) ? object.rules.map((e: any) => HttpRule.fromJSON(e)) : [],
-      fullyDecodeReservedExpansion: isSet(object.fullyDecodeReservedExpansion) ? Boolean(object.fullyDecodeReservedExpansion) : false
-    };
-  },
-  toJSON(message: Http): unknown {
-    const obj: any = {};
-    if (message.rules) {
-      obj.rules = message.rules.map(e => e ? HttpRule.toJSON(e) : undefined);
-    } else {
-      obj.rules = [];
-    }
-    message.fullyDecodeReservedExpansion !== undefined && (obj.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Http>): Http {
-    const message = createBaseHttp();
-    message.rules = object.rules?.map(e => HttpRule.fromPartial(e)) || [];
-    message.fullyDecodeReservedExpansion = object.fullyDecodeReservedExpansion ?? false;
-    return message;
-  },
-  fromSDK(object: HttpSDKType): Http {
-    return {
-      rules: Array.isArray(object?.rules) ? object.rules.map((e: any) => HttpRule.fromSDK(e)) : [],
-      fullyDecodeReservedExpansion: object?.fully_decode_reserved_expansion
-    };
-  },
-  toSDK(message: Http): HttpSDKType {
-    const obj: any = {};
-    if (message.rules) {
-      obj.rules = message.rules.map(e => e ? HttpRule.toSDK(e) : undefined);
-    } else {
-      obj.rules = [];
-    }
-    obj.fully_decode_reserved_expansion = message.fullyDecodeReservedExpansion;
-    return obj;
-  },
-  fromAmino(object: HttpAmino): Http {
-    return {
-      rules: Array.isArray(object?.rules) ? object.rules.map((e: any) => HttpRule.fromAmino(e)) : [],
-      fullyDecodeReservedExpansion: object.fully_decode_reserved_expansion
-    };
-  },
-  toAmino(message: Http): HttpAmino {
-    const obj: any = {};
-    if (message.rules) {
-      obj.rules = message.rules.map(e => e ? HttpRule.toAmino(e) : undefined);
-    } else {
-      obj.rules = [];
-    }
-    obj.fully_decode_reserved_expansion = message.fullyDecodeReservedExpansion;
-    return obj;
-  },
-  fromAminoMsg(object: HttpAminoMsg): Http {
-    return Http.fromAmino(object.value);
-  },
-  fromProtoMsg(message: HttpProtoMsg): Http {
-    return Http.decode(message.value);
-  },
-  toProto(message: Http): Uint8Array {
-    return Http.encode(message).finish();
-  },
-  toProtoMsg(message: Http): HttpProtoMsg {
-    return {
-      typeUrl: "/google.api.Http",
-      value: Http.encode(message).finish()
-    };
-  }
-};
-function createBaseHttpRule(): HttpRule {
-  return {
-    selector: "",
-    get: undefined,
-    put: undefined,
-    post: undefined,
-    delete: undefined,
-    patch: undefined,
-    custom: undefined,
-    body: "",
-    responseBody: "",
-    additionalBindings: []
-  };
-}
-export const HttpRule = {
-  typeUrl: "/google.api.HttpRule",
-  encode(message: HttpRule, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.selector !== "") {
-      writer.uint32(10).string(message.selector);
-    }
-    if (message.get !== undefined) {
-      writer.uint32(18).string(message.get);
-    }
-    if (message.put !== undefined) {
-      writer.uint32(26).string(message.put);
-    }
-    if (message.post !== undefined) {
-      writer.uint32(34).string(message.post);
-    }
-    if (message.delete !== undefined) {
-      writer.uint32(42).string(message.delete);
-    }
-    if (message.patch !== undefined) {
-      writer.uint32(50).string(message.patch);
-    }
-    if (message.custom !== undefined) {
-      CustomHttpPattern.encode(message.custom, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.body !== "") {
-      writer.uint32(58).string(message.body);
-    }
-    if (message.responseBody !== "") {
-      writer.uint32(98).string(message.responseBody);
-    }
-    for (const v of message.additionalBindings) {
-      HttpRule.encode(v!, writer.uint32(90).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): HttpRule {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHttpRule();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.selector = reader.string();
-          break;
-        case 2:
-          message.get = reader.string();
-          break;
-        case 3:
-          message.put = reader.string();
-          break;
-        case 4:
-          message.post = reader.string();
-          break;
-        case 5:
-          message.delete = reader.string();
-          break;
-        case 6:
-          message.patch = reader.string();
-          break;
-        case 8:
-          message.custom = CustomHttpPattern.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.body = reader.string();
-          break;
-        case 12:
-          message.responseBody = reader.string();
-          break;
-        case 11:
-          message.additionalBindings.push(HttpRule.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): HttpRule {
-    return {
-      selector: isSet(object.selector) ? String(object.selector) : "",
-      get: isSet(object.get) ? String(object.get) : undefined,
-      put: isSet(object.put) ? String(object.put) : undefined,
-      post: isSet(object.post) ? String(object.post) : undefined,
-      delete: isSet(object.delete) ? String(object.delete) : undefined,
-      patch: isSet(object.patch) ? String(object.patch) : undefined,
-      custom: isSet(object.custom) ? CustomHttpPattern.fromJSON(object.custom) : undefined,
-      body: isSet(object.body) ? String(object.body) : "",
-      responseBody: isSet(object.responseBody) ? String(object.responseBody) : "",
-      additionalBindings: Array.isArray(object?.additionalBindings) ? object.additionalBindings.map((e: any) => HttpRule.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: HttpRule): unknown {
-    const obj: any = {};
-    message.selector !== undefined && (obj.selector = message.selector);
-    message.get !== undefined && (obj.get = message.get);
-    message.put !== undefined && (obj.put = message.put);
-    message.post !== undefined && (obj.post = message.post);
-    message.delete !== undefined && (obj.delete = message.delete);
-    message.patch !== undefined && (obj.patch = message.patch);
-    message.custom !== undefined && (obj.custom = message.custom ? CustomHttpPattern.toJSON(message.custom) : undefined);
-    message.body !== undefined && (obj.body = message.body);
-    message.responseBody !== undefined && (obj.responseBody = message.responseBody);
-    if (message.additionalBindings) {
-      obj.additionalBindings = message.additionalBindings.map(e => e ? HttpRule.toJSON(e) : undefined);
-    } else {
-      obj.additionalBindings = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<HttpRule>): HttpRule {
-    const message = createBaseHttpRule();
-    message.selector = object.selector ?? "";
-    message.get = object.get ?? undefined;
-    message.put = object.put ?? undefined;
-    message.post = object.post ?? undefined;
-    message.delete = object.delete ?? undefined;
-    message.patch = object.patch ?? undefined;
-    message.custom = object.custom !== undefined && object.custom !== null ? CustomHttpPattern.fromPartial(object.custom) : undefined;
-    message.body = object.body ?? "";
-    message.responseBody = object.responseBody ?? "";
-    message.additionalBindings = object.additionalBindings?.map(e => HttpRule.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: HttpRuleSDKType): HttpRule {
-    return {
-      selector: object?.selector,
-      get: object?.get,
-      put: object?.put,
-      post: object?.post,
-      delete: object?.delete,
-      patch: object?.patch,
-      custom: object.custom ? CustomHttpPattern.fromSDK(object.custom) : undefined,
-      body: object?.body,
-      responseBody: object?.response_body,
-      additionalBindings: Array.isArray(object?.additional_bindings) ? object.additional_bindings.map((e: any) => HttpRule.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: HttpRule): HttpRuleSDKType {
-    const obj: any = {};
-    obj.selector = message.selector;
-    obj.get = message.get;
-    obj.put = message.put;
-    obj.post = message.post;
-    obj.delete = message.delete;
-    obj.patch = message.patch;
-    message.custom !== undefined && (obj.custom = message.custom ? CustomHttpPattern.toSDK(message.custom) : undefined);
-    obj.body = message.body;
-    obj.response_body = message.responseBody;
-    if (message.additionalBindings) {
-      obj.additional_bindings = message.additionalBindings.map(e => e ? HttpRule.toSDK(e) : undefined);
-    } else {
-      obj.additional_bindings = [];
-    }
-    return obj;
-  },
-  fromAmino(object: HttpRuleAmino): HttpRule {
-    return {
-      selector: object.selector,
-      get: object?.get,
-      put: object?.put,
-      post: object?.post,
-      delete: object?.delete,
-      patch: object?.patch,
-      custom: object?.custom ? CustomHttpPattern.fromAmino(object.custom) : undefined,
-      body: object.body,
-      responseBody: object.response_body,
-      additionalBindings: Array.isArray(object?.additional_bindings) ? object.additional_bindings.map((e: any) => HttpRule.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: HttpRule): HttpRuleAmino {
-    const obj: any = {};
-    obj.selector = message.selector;
-    obj.get = message.get;
-    obj.put = message.put;
-    obj.post = message.post;
-    obj.delete = message.delete;
-    obj.patch = message.patch;
-    obj.custom = message.custom ? CustomHttpPattern.toAmino(message.custom) : undefined;
-    obj.body = message.body;
-    obj.response_body = message.responseBody;
-    if (message.additionalBindings) {
-      obj.additional_bindings = message.additionalBindings.map(e => e ? HttpRule.toAmino(e) : undefined);
-    } else {
-      obj.additional_bindings = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: HttpRuleAminoMsg): HttpRule {
-    return HttpRule.fromAmino(object.value);
-  },
-  fromProtoMsg(message: HttpRuleProtoMsg): HttpRule {
-    return HttpRule.decode(message.value);
-  },
-  toProto(message: HttpRule): Uint8Array {
-    return HttpRule.encode(message).finish();
-  },
-  toProtoMsg(message: HttpRule): HttpRuleProtoMsg {
-    return {
-      typeUrl: "/google.api.HttpRule",
-      value: HttpRule.encode(message).finish()
-    };
-  }
-};
-function createBaseCustomHttpPattern(): CustomHttpPattern {
-  return {
-    kind: "",
-    path: ""
-  };
-}
-export const CustomHttpPattern = {
-  typeUrl: "/google.api.CustomHttpPattern",
-  encode(message: CustomHttpPattern, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.kind !== "") {
-      writer.uint32(10).string(message.kind);
-    }
-    if (message.path !== "") {
-      writer.uint32(18).string(message.path);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CustomHttpPattern {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCustomHttpPattern();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.kind = reader.string();
-          break;
-        case 2:
-          message.path = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CustomHttpPattern {
-    return {
-      kind: isSet(object.kind) ? String(object.kind) : "",
-      path: isSet(object.path) ? String(object.path) : ""
-    };
-  },
-  toJSON(message: CustomHttpPattern): unknown {
-    const obj: any = {};
-    message.kind !== undefined && (obj.kind = message.kind);
-    message.path !== undefined && (obj.path = message.path);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CustomHttpPattern>): CustomHttpPattern {
-    const message = createBaseCustomHttpPattern();
-    message.kind = object.kind ?? "";
-    message.path = object.path ?? "";
-    return message;
-  },
-  fromSDK(object: CustomHttpPatternSDKType): CustomHttpPattern {
-    return {
-      kind: object?.kind,
-      path: object?.path
-    };
-  },
-  toSDK(message: CustomHttpPattern): CustomHttpPatternSDKType {
-    const obj: any = {};
-    obj.kind = message.kind;
-    obj.path = message.path;
-    return obj;
-  },
-  fromAmino(object: CustomHttpPatternAmino): CustomHttpPattern {
-    return {
-      kind: object.kind,
-      path: object.path
-    };
-  },
-  toAmino(message: CustomHttpPattern): CustomHttpPatternAmino {
-    const obj: any = {};
-    obj.kind = message.kind;
-    obj.path = message.path;
-    return obj;
-  },
-  fromAminoMsg(object: CustomHttpPatternAminoMsg): CustomHttpPattern {
-    return CustomHttpPattern.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CustomHttpPatternProtoMsg): CustomHttpPattern {
-    return CustomHttpPattern.decode(message.value);
-  },
-  toProto(message: CustomHttpPattern): Uint8Array {
-    return CustomHttpPattern.encode(message).finish();
-  },
-  toProtoMsg(message: CustomHttpPattern): CustomHttpPatternProtoMsg {
-    return {
-      typeUrl: "/google.api.CustomHttpPattern",
-      value: CustomHttpPattern.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/bundle.ts b/examples/injective/src/codegen/google/bundle.ts
deleted file mode 100644
index a1b510de..00000000
--- a/examples/injective/src/codegen/google/bundle.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as _101 from "./api/annotations";
-import * as _102 from "./api/http";
-import * as _103 from "./protobuf/any";
-import * as _104 from "./protobuf/descriptor";
-import * as _105 from "./protobuf/duration";
-import * as _106 from "./protobuf/empty";
-import * as _107 from "./protobuf/timestamp";
-export namespace google {
-  export const api = {
-    ..._101,
-    ..._102
-  };
-  export const protobuf = {
-    ..._103,
-    ..._104,
-    ..._105,
-    ..._106,
-    ..._107
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/protobuf/any.ts b/examples/injective/src/codegen/google/protobuf/any.ts
deleted file mode 100644
index 7565d80c..00000000
--- a/examples/injective/src/codegen/google/protobuf/any.ts
+++ /dev/null
@@ -1,420 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../helpers";
-/**
- * `Any` contains an arbitrary serialized protocol buffer message along with a
- * URL that describes the type of the serialized message.
- * 
- * Protobuf library provides support to pack/unpack Any values in the form
- * of utility functions or additional generated methods of the Any type.
- * 
- * Example 1: Pack and unpack a message in C++.
- * 
- *     Foo foo = ...;
- *     Any any;
- *     any.PackFrom(foo);
- *     ...
- *     if (any.UnpackTo(&foo)) {
- *       ...
- *     }
- * 
- * Example 2: Pack and unpack a message in Java.
- * 
- *     Foo foo = ...;
- *     Any any = Any.pack(foo);
- *     ...
- *     if (any.is(Foo.class)) {
- *       foo = any.unpack(Foo.class);
- *     }
- * 
- *  Example 3: Pack and unpack a message in Python.
- * 
- *     foo = Foo(...)
- *     any = Any()
- *     any.Pack(foo)
- *     ...
- *     if any.Is(Foo.DESCRIPTOR):
- *       any.Unpack(foo)
- *       ...
- * 
- *  Example 4: Pack and unpack a message in Go
- * 
- *      foo := &pb.Foo{...}
- *      any, err := ptypes.MarshalAny(foo)
- *      ...
- *      foo := &pb.Foo{}
- *      if err := ptypes.UnmarshalAny(any, foo); err != nil {
- *        ...
- *      }
- * 
- * The pack methods provided by protobuf library will by default use
- * 'type.googleapis.com/full.type.name' as the type URL and the unpack
- * methods only use the fully qualified type name after the last '/'
- * in the type URL, for example "foo.bar.com/x/y.z" will yield type
- * name "y.z".
- * 
- * 
- * JSON
- * ====
- * The JSON representation of an `Any` value uses the regular
- * representation of the deserialized, embedded message, with an
- * additional field `@type` which contains the type URL. Example:
- * 
- *     package google.profile;
- *     message Person {
- *       string first_name = 1;
- *       string last_name = 2;
- *     }
- * 
- *     {
- *       "@type": "type.googleapis.com/google.profile.Person",
- *       "firstName": <string>,
- *       "lastName": <string>
- *     }
- * 
- * If the embedded message type is well-known and has a custom JSON
- * representation, that representation will be embedded adding a field
- * `value` which holds the custom JSON in addition to the `@type`
- * field. Example (for message [google.protobuf.Duration][]):
- * 
- *     {
- *       "@type": "type.googleapis.com/google.protobuf.Duration",
- *       "value": "1.212s"
- *     }
- */
-export interface Any {
-  /**
-   * A URL/resource name that uniquely identifies the type of the serialized
-   * protocol buffer message. This string must contain at least
-   * one "/" character. The last segment of the URL's path must represent
-   * the fully qualified name of the type (as in
-   * `path/google.protobuf.Duration`). The name should be in a canonical form
-   * (e.g., leading "." is not accepted).
-   * 
-   * In practice, teams usually precompile into the binary all types that they
-   * expect it to use in the context of Any. However, for URLs which use the
-   * scheme `http`, `https`, or no scheme, one can optionally set up a type
-   * server that maps type URLs to message definitions as follows:
-   * 
-   * * If no scheme is provided, `https` is assumed.
-   * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
-   *   value in binary format, or produce an error.
-   * * Applications are allowed to cache lookup results based on the
-   *   URL, or have them precompiled into a binary to avoid any
-   *   lookup. Therefore, binary compatibility needs to be preserved
-   *   on changes to types. (Use versioned type names to manage
-   *   breaking changes.)
-   * 
-   * Note: this functionality is not currently available in the official
-   * protobuf release, and it is not used for type URLs beginning with
-   * type.googleapis.com.
-   * 
-   * Schemes other than `http`, `https` (or the empty scheme) might be
-   * used with implementation specific semantics.
-   */
-  typeUrl: string;
-  /** Must be a valid serialized protocol buffer of the above specified type. */
-  value: Uint8Array;
-}
-export interface AnyProtoMsg {
-  typeUrl: "/google.protobuf.Any";
-  value: Uint8Array;
-}
-/**
- * `Any` contains an arbitrary serialized protocol buffer message along with a
- * URL that describes the type of the serialized message.
- * 
- * Protobuf library provides support to pack/unpack Any values in the form
- * of utility functions or additional generated methods of the Any type.
- * 
- * Example 1: Pack and unpack a message in C++.
- * 
- *     Foo foo = ...;
- *     Any any;
- *     any.PackFrom(foo);
- *     ...
- *     if (any.UnpackTo(&foo)) {
- *       ...
- *     }
- * 
- * Example 2: Pack and unpack a message in Java.
- * 
- *     Foo foo = ...;
- *     Any any = Any.pack(foo);
- *     ...
- *     if (any.is(Foo.class)) {
- *       foo = any.unpack(Foo.class);
- *     }
- * 
- *  Example 3: Pack and unpack a message in Python.
- * 
- *     foo = Foo(...)
- *     any = Any()
- *     any.Pack(foo)
- *     ...
- *     if any.Is(Foo.DESCRIPTOR):
- *       any.Unpack(foo)
- *       ...
- * 
- *  Example 4: Pack and unpack a message in Go
- * 
- *      foo := &pb.Foo{...}
- *      any, err := ptypes.MarshalAny(foo)
- *      ...
- *      foo := &pb.Foo{}
- *      if err := ptypes.UnmarshalAny(any, foo); err != nil {
- *        ...
- *      }
- * 
- * The pack methods provided by protobuf library will by default use
- * 'type.googleapis.com/full.type.name' as the type URL and the unpack
- * methods only use the fully qualified type name after the last '/'
- * in the type URL, for example "foo.bar.com/x/y.z" will yield type
- * name "y.z".
- * 
- * 
- * JSON
- * ====
- * The JSON representation of an `Any` value uses the regular
- * representation of the deserialized, embedded message, with an
- * additional field `@type` which contains the type URL. Example:
- * 
- *     package google.profile;
- *     message Person {
- *       string first_name = 1;
- *       string last_name = 2;
- *     }
- * 
- *     {
- *       "@type": "type.googleapis.com/google.profile.Person",
- *       "firstName": <string>,
- *       "lastName": <string>
- *     }
- * 
- * If the embedded message type is well-known and has a custom JSON
- * representation, that representation will be embedded adding a field
- * `value` which holds the custom JSON in addition to the `@type`
- * field. Example (for message [google.protobuf.Duration][]):
- * 
- *     {
- *       "@type": "type.googleapis.com/google.protobuf.Duration",
- *       "value": "1.212s"
- *     }
- */
-export interface AnyAmino {
-  /**
-   * A URL/resource name that uniquely identifies the type of the serialized
-   * protocol buffer message. This string must contain at least
-   * one "/" character. The last segment of the URL's path must represent
-   * the fully qualified name of the type (as in
-   * `path/google.protobuf.Duration`). The name should be in a canonical form
-   * (e.g., leading "." is not accepted).
-   * 
-   * In practice, teams usually precompile into the binary all types that they
-   * expect it to use in the context of Any. However, for URLs which use the
-   * scheme `http`, `https`, or no scheme, one can optionally set up a type
-   * server that maps type URLs to message definitions as follows:
-   * 
-   * * If no scheme is provided, `https` is assumed.
-   * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
-   *   value in binary format, or produce an error.
-   * * Applications are allowed to cache lookup results based on the
-   *   URL, or have them precompiled into a binary to avoid any
-   *   lookup. Therefore, binary compatibility needs to be preserved
-   *   on changes to types. (Use versioned type names to manage
-   *   breaking changes.)
-   * 
-   * Note: this functionality is not currently available in the official
-   * protobuf release, and it is not used for type URLs beginning with
-   * type.googleapis.com.
-   * 
-   * Schemes other than `http`, `https` (or the empty scheme) might be
-   * used with implementation specific semantics.
-   */
-  type: string;
-  /** Must be a valid serialized protocol buffer of the above specified type. */
-  value: any;
-}
-export interface AnyAminoMsg {
-  type: string;
-  value: AnyAmino;
-}
-/**
- * `Any` contains an arbitrary serialized protocol buffer message along with a
- * URL that describes the type of the serialized message.
- * 
- * Protobuf library provides support to pack/unpack Any values in the form
- * of utility functions or additional generated methods of the Any type.
- * 
- * Example 1: Pack and unpack a message in C++.
- * 
- *     Foo foo = ...;
- *     Any any;
- *     any.PackFrom(foo);
- *     ...
- *     if (any.UnpackTo(&foo)) {
- *       ...
- *     }
- * 
- * Example 2: Pack and unpack a message in Java.
- * 
- *     Foo foo = ...;
- *     Any any = Any.pack(foo);
- *     ...
- *     if (any.is(Foo.class)) {
- *       foo = any.unpack(Foo.class);
- *     }
- * 
- *  Example 3: Pack and unpack a message in Python.
- * 
- *     foo = Foo(...)
- *     any = Any()
- *     any.Pack(foo)
- *     ...
- *     if any.Is(Foo.DESCRIPTOR):
- *       any.Unpack(foo)
- *       ...
- * 
- *  Example 4: Pack and unpack a message in Go
- * 
- *      foo := &pb.Foo{...}
- *      any, err := ptypes.MarshalAny(foo)
- *      ...
- *      foo := &pb.Foo{}
- *      if err := ptypes.UnmarshalAny(any, foo); err != nil {
- *        ...
- *      }
- * 
- * The pack methods provided by protobuf library will by default use
- * 'type.googleapis.com/full.type.name' as the type URL and the unpack
- * methods only use the fully qualified type name after the last '/'
- * in the type URL, for example "foo.bar.com/x/y.z" will yield type
- * name "y.z".
- * 
- * 
- * JSON
- * ====
- * The JSON representation of an `Any` value uses the regular
- * representation of the deserialized, embedded message, with an
- * additional field `@type` which contains the type URL. Example:
- * 
- *     package google.profile;
- *     message Person {
- *       string first_name = 1;
- *       string last_name = 2;
- *     }
- * 
- *     {
- *       "@type": "type.googleapis.com/google.profile.Person",
- *       "firstName": <string>,
- *       "lastName": <string>
- *     }
- * 
- * If the embedded message type is well-known and has a custom JSON
- * representation, that representation will be embedded adding a field
- * `value` which holds the custom JSON in addition to the `@type`
- * field. Example (for message [google.protobuf.Duration][]):
- * 
- *     {
- *       "@type": "type.googleapis.com/google.protobuf.Duration",
- *       "value": "1.212s"
- *     }
- */
-export interface AnySDKType {
-  type_url: string;
-  value: Uint8Array;
-}
-function createBaseAny(): Any {
-  return {
-    typeUrl: "",
-    value: new Uint8Array()
-  };
-}
-export const Any = {
-  typeUrl: "/google.protobuf.Any",
-  encode(message: Any, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.typeUrl !== "") {
-      writer.uint32(10).string(message.typeUrl);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Any {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAny();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.typeUrl = reader.string();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Any {
-    return {
-      typeUrl: isSet(object.typeUrl) ? String(object.typeUrl) : "",
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: Any): unknown {
-    const obj: any = {};
-    message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Any>): Any {
-    const message = createBaseAny();
-    message.typeUrl = object.typeUrl ?? "";
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: AnySDKType): Any {
-    return {
-      typeUrl: object?.type_url,
-      value: object?.value
-    };
-  },
-  toSDK(message: Any): AnySDKType {
-    const obj: any = {};
-    obj.type_url = message.typeUrl;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: AnyAmino): Any {
-    return {
-      typeUrl: object.type,
-      value: object.value
-    };
-  },
-  toAmino(message: Any): AnyAmino {
-    const obj: any = {};
-    obj.type = message.typeUrl;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: AnyAminoMsg): Any {
-    return Any.fromAmino(object.value);
-  },
-  fromProtoMsg(message: AnyProtoMsg): Any {
-    return Any.decode(message.value);
-  },
-  toProto(message: Any): Uint8Array {
-    return Any.encode(message).finish();
-  },
-  toProtoMsg(message: Any): AnyProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Any",
-      value: Any.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/protobuf/descriptor.ts b/examples/injective/src/codegen/google/protobuf/descriptor.ts
deleted file mode 100644
index 23324f59..00000000
--- a/examples/injective/src/codegen/google/protobuf/descriptor.ts
+++ /dev/null
@@ -1,6220 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../helpers";
-export enum FieldDescriptorProto_Type {
-  /**
-   * TYPE_DOUBLE - 0 is reserved for errors.
-   * Order is weird for historical reasons.
-   */
-  TYPE_DOUBLE = 1,
-  TYPE_FLOAT = 2,
-  /**
-   * TYPE_INT64 - Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
-   * negative values are likely.
-   */
-  TYPE_INT64 = 3,
-  TYPE_UINT64 = 4,
-  /**
-   * TYPE_INT32 - Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
-   * negative values are likely.
-   */
-  TYPE_INT32 = 5,
-  TYPE_FIXED64 = 6,
-  TYPE_FIXED32 = 7,
-  TYPE_BOOL = 8,
-  TYPE_STRING = 9,
-  /**
-   * TYPE_GROUP - Tag-delimited aggregate.
-   * Group type is deprecated and not supported in proto3. However, Proto3
-   * implementations should still be able to parse the group wire format and
-   * treat group fields as unknown fields.
-   */
-  TYPE_GROUP = 10,
-  TYPE_MESSAGE = 11,
-  /** TYPE_BYTES - New in version 2. */
-  TYPE_BYTES = 12,
-  TYPE_UINT32 = 13,
-  TYPE_ENUM = 14,
-  TYPE_SFIXED32 = 15,
-  TYPE_SFIXED64 = 16,
-  /** TYPE_SINT32 - Uses ZigZag encoding. */
-  TYPE_SINT32 = 17,
-  /** TYPE_SINT64 - Uses ZigZag encoding. */
-  TYPE_SINT64 = 18,
-  UNRECOGNIZED = -1,
-}
-export const FieldDescriptorProto_TypeSDKType = FieldDescriptorProto_Type;
-export const FieldDescriptorProto_TypeAmino = FieldDescriptorProto_Type;
-export function fieldDescriptorProto_TypeFromJSON(object: any): FieldDescriptorProto_Type {
-  switch (object) {
-    case 1:
-    case "TYPE_DOUBLE":
-      return FieldDescriptorProto_Type.TYPE_DOUBLE;
-    case 2:
-    case "TYPE_FLOAT":
-      return FieldDescriptorProto_Type.TYPE_FLOAT;
-    case 3:
-    case "TYPE_INT64":
-      return FieldDescriptorProto_Type.TYPE_INT64;
-    case 4:
-    case "TYPE_UINT64":
-      return FieldDescriptorProto_Type.TYPE_UINT64;
-    case 5:
-    case "TYPE_INT32":
-      return FieldDescriptorProto_Type.TYPE_INT32;
-    case 6:
-    case "TYPE_FIXED64":
-      return FieldDescriptorProto_Type.TYPE_FIXED64;
-    case 7:
-    case "TYPE_FIXED32":
-      return FieldDescriptorProto_Type.TYPE_FIXED32;
-    case 8:
-    case "TYPE_BOOL":
-      return FieldDescriptorProto_Type.TYPE_BOOL;
-    case 9:
-    case "TYPE_STRING":
-      return FieldDescriptorProto_Type.TYPE_STRING;
-    case 10:
-    case "TYPE_GROUP":
-      return FieldDescriptorProto_Type.TYPE_GROUP;
-    case 11:
-    case "TYPE_MESSAGE":
-      return FieldDescriptorProto_Type.TYPE_MESSAGE;
-    case 12:
-    case "TYPE_BYTES":
-      return FieldDescriptorProto_Type.TYPE_BYTES;
-    case 13:
-    case "TYPE_UINT32":
-      return FieldDescriptorProto_Type.TYPE_UINT32;
-    case 14:
-    case "TYPE_ENUM":
-      return FieldDescriptorProto_Type.TYPE_ENUM;
-    case 15:
-    case "TYPE_SFIXED32":
-      return FieldDescriptorProto_Type.TYPE_SFIXED32;
-    case 16:
-    case "TYPE_SFIXED64":
-      return FieldDescriptorProto_Type.TYPE_SFIXED64;
-    case 17:
-    case "TYPE_SINT32":
-      return FieldDescriptorProto_Type.TYPE_SINT32;
-    case 18:
-    case "TYPE_SINT64":
-      return FieldDescriptorProto_Type.TYPE_SINT64;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return FieldDescriptorProto_Type.UNRECOGNIZED;
-  }
-}
-export function fieldDescriptorProto_TypeToJSON(object: FieldDescriptorProto_Type): string {
-  switch (object) {
-    case FieldDescriptorProto_Type.TYPE_DOUBLE:
-      return "TYPE_DOUBLE";
-    case FieldDescriptorProto_Type.TYPE_FLOAT:
-      return "TYPE_FLOAT";
-    case FieldDescriptorProto_Type.TYPE_INT64:
-      return "TYPE_INT64";
-    case FieldDescriptorProto_Type.TYPE_UINT64:
-      return "TYPE_UINT64";
-    case FieldDescriptorProto_Type.TYPE_INT32:
-      return "TYPE_INT32";
-    case FieldDescriptorProto_Type.TYPE_FIXED64:
-      return "TYPE_FIXED64";
-    case FieldDescriptorProto_Type.TYPE_FIXED32:
-      return "TYPE_FIXED32";
-    case FieldDescriptorProto_Type.TYPE_BOOL:
-      return "TYPE_BOOL";
-    case FieldDescriptorProto_Type.TYPE_STRING:
-      return "TYPE_STRING";
-    case FieldDescriptorProto_Type.TYPE_GROUP:
-      return "TYPE_GROUP";
-    case FieldDescriptorProto_Type.TYPE_MESSAGE:
-      return "TYPE_MESSAGE";
-    case FieldDescriptorProto_Type.TYPE_BYTES:
-      return "TYPE_BYTES";
-    case FieldDescriptorProto_Type.TYPE_UINT32:
-      return "TYPE_UINT32";
-    case FieldDescriptorProto_Type.TYPE_ENUM:
-      return "TYPE_ENUM";
-    case FieldDescriptorProto_Type.TYPE_SFIXED32:
-      return "TYPE_SFIXED32";
-    case FieldDescriptorProto_Type.TYPE_SFIXED64:
-      return "TYPE_SFIXED64";
-    case FieldDescriptorProto_Type.TYPE_SINT32:
-      return "TYPE_SINT32";
-    case FieldDescriptorProto_Type.TYPE_SINT64:
-      return "TYPE_SINT64";
-    case FieldDescriptorProto_Type.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum FieldDescriptorProto_Label {
-  /** LABEL_OPTIONAL - 0 is reserved for errors */
-  LABEL_OPTIONAL = 1,
-  LABEL_REQUIRED = 2,
-  LABEL_REPEATED = 3,
-  UNRECOGNIZED = -1,
-}
-export const FieldDescriptorProto_LabelSDKType = FieldDescriptorProto_Label;
-export const FieldDescriptorProto_LabelAmino = FieldDescriptorProto_Label;
-export function fieldDescriptorProto_LabelFromJSON(object: any): FieldDescriptorProto_Label {
-  switch (object) {
-    case 1:
-    case "LABEL_OPTIONAL":
-      return FieldDescriptorProto_Label.LABEL_OPTIONAL;
-    case 2:
-    case "LABEL_REQUIRED":
-      return FieldDescriptorProto_Label.LABEL_REQUIRED;
-    case 3:
-    case "LABEL_REPEATED":
-      return FieldDescriptorProto_Label.LABEL_REPEATED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return FieldDescriptorProto_Label.UNRECOGNIZED;
-  }
-}
-export function fieldDescriptorProto_LabelToJSON(object: FieldDescriptorProto_Label): string {
-  switch (object) {
-    case FieldDescriptorProto_Label.LABEL_OPTIONAL:
-      return "LABEL_OPTIONAL";
-    case FieldDescriptorProto_Label.LABEL_REQUIRED:
-      return "LABEL_REQUIRED";
-    case FieldDescriptorProto_Label.LABEL_REPEATED:
-      return "LABEL_REPEATED";
-    case FieldDescriptorProto_Label.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** Generated classes can be optimized for speed or code size. */
-export enum FileOptions_OptimizeMode {
-  /**
-   * SPEED - Generate complete code for parsing, serialization,
-   * etc.
-   */
-  SPEED = 1,
-  /** CODE_SIZE - Use ReflectionOps to implement these methods. */
-  CODE_SIZE = 2,
-  /** LITE_RUNTIME - Generate code using MessageLite and the lite runtime. */
-  LITE_RUNTIME = 3,
-  UNRECOGNIZED = -1,
-}
-export const FileOptions_OptimizeModeSDKType = FileOptions_OptimizeMode;
-export const FileOptions_OptimizeModeAmino = FileOptions_OptimizeMode;
-export function fileOptions_OptimizeModeFromJSON(object: any): FileOptions_OptimizeMode {
-  switch (object) {
-    case 1:
-    case "SPEED":
-      return FileOptions_OptimizeMode.SPEED;
-    case 2:
-    case "CODE_SIZE":
-      return FileOptions_OptimizeMode.CODE_SIZE;
-    case 3:
-    case "LITE_RUNTIME":
-      return FileOptions_OptimizeMode.LITE_RUNTIME;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return FileOptions_OptimizeMode.UNRECOGNIZED;
-  }
-}
-export function fileOptions_OptimizeModeToJSON(object: FileOptions_OptimizeMode): string {
-  switch (object) {
-    case FileOptions_OptimizeMode.SPEED:
-      return "SPEED";
-    case FileOptions_OptimizeMode.CODE_SIZE:
-      return "CODE_SIZE";
-    case FileOptions_OptimizeMode.LITE_RUNTIME:
-      return "LITE_RUNTIME";
-    case FileOptions_OptimizeMode.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum FieldOptions_CType {
-  /** STRING - Default mode. */
-  STRING = 0,
-  CORD = 1,
-  STRING_PIECE = 2,
-  UNRECOGNIZED = -1,
-}
-export const FieldOptions_CTypeSDKType = FieldOptions_CType;
-export const FieldOptions_CTypeAmino = FieldOptions_CType;
-export function fieldOptions_CTypeFromJSON(object: any): FieldOptions_CType {
-  switch (object) {
-    case 0:
-    case "STRING":
-      return FieldOptions_CType.STRING;
-    case 1:
-    case "CORD":
-      return FieldOptions_CType.CORD;
-    case 2:
-    case "STRING_PIECE":
-      return FieldOptions_CType.STRING_PIECE;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return FieldOptions_CType.UNRECOGNIZED;
-  }
-}
-export function fieldOptions_CTypeToJSON(object: FieldOptions_CType): string {
-  switch (object) {
-    case FieldOptions_CType.STRING:
-      return "STRING";
-    case FieldOptions_CType.CORD:
-      return "CORD";
-    case FieldOptions_CType.STRING_PIECE:
-      return "STRING_PIECE";
-    case FieldOptions_CType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum FieldOptions_JSType {
-  /** JS_NORMAL - Use the default type. */
-  JS_NORMAL = 0,
-  /** JS_STRING - Use JavaScript strings. */
-  JS_STRING = 1,
-  /** JS_NUMBER - Use JavaScript numbers. */
-  JS_NUMBER = 2,
-  UNRECOGNIZED = -1,
-}
-export const FieldOptions_JSTypeSDKType = FieldOptions_JSType;
-export const FieldOptions_JSTypeAmino = FieldOptions_JSType;
-export function fieldOptions_JSTypeFromJSON(object: any): FieldOptions_JSType {
-  switch (object) {
-    case 0:
-    case "JS_NORMAL":
-      return FieldOptions_JSType.JS_NORMAL;
-    case 1:
-    case "JS_STRING":
-      return FieldOptions_JSType.JS_STRING;
-    case 2:
-    case "JS_NUMBER":
-      return FieldOptions_JSType.JS_NUMBER;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return FieldOptions_JSType.UNRECOGNIZED;
-  }
-}
-export function fieldOptions_JSTypeToJSON(object: FieldOptions_JSType): string {
-  switch (object) {
-    case FieldOptions_JSType.JS_NORMAL:
-      return "JS_NORMAL";
-    case FieldOptions_JSType.JS_STRING:
-      return "JS_STRING";
-    case FieldOptions_JSType.JS_NUMBER:
-      return "JS_NUMBER";
-    case FieldOptions_JSType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
- * or neither? HTTP based RPC implementation may choose GET verb for safe
- * methods, and PUT verb for idempotent methods instead of the default POST.
- */
-export enum MethodOptions_IdempotencyLevel {
-  IDEMPOTENCY_UNKNOWN = 0,
-  /** NO_SIDE_EFFECTS - implies idempotent */
-  NO_SIDE_EFFECTS = 1,
-  /** IDEMPOTENT - idempotent, but may have side effects */
-  IDEMPOTENT = 2,
-  UNRECOGNIZED = -1,
-}
-export const MethodOptions_IdempotencyLevelSDKType = MethodOptions_IdempotencyLevel;
-export const MethodOptions_IdempotencyLevelAmino = MethodOptions_IdempotencyLevel;
-export function methodOptions_IdempotencyLevelFromJSON(object: any): MethodOptions_IdempotencyLevel {
-  switch (object) {
-    case 0:
-    case "IDEMPOTENCY_UNKNOWN":
-      return MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN;
-    case 1:
-    case "NO_SIDE_EFFECTS":
-      return MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS;
-    case 2:
-    case "IDEMPOTENT":
-      return MethodOptions_IdempotencyLevel.IDEMPOTENT;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return MethodOptions_IdempotencyLevel.UNRECOGNIZED;
-  }
-}
-export function methodOptions_IdempotencyLevelToJSON(object: MethodOptions_IdempotencyLevel): string {
-  switch (object) {
-    case MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN:
-      return "IDEMPOTENCY_UNKNOWN";
-    case MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS:
-      return "NO_SIDE_EFFECTS";
-    case MethodOptions_IdempotencyLevel.IDEMPOTENT:
-      return "IDEMPOTENT";
-    case MethodOptions_IdempotencyLevel.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * The protocol compiler can output a FileDescriptorSet containing the .proto
- * files it parses.
- */
-export interface FileDescriptorSet {
-  file: FileDescriptorProto[];
-}
-export interface FileDescriptorSetProtoMsg {
-  typeUrl: "/google.protobuf.FileDescriptorSet";
-  value: Uint8Array;
-}
-/**
- * The protocol compiler can output a FileDescriptorSet containing the .proto
- * files it parses.
- */
-export interface FileDescriptorSetAmino {
-  file: FileDescriptorProtoAmino[];
-}
-export interface FileDescriptorSetAminoMsg {
-  type: "/google.protobuf.FileDescriptorSet";
-  value: FileDescriptorSetAmino;
-}
-/**
- * The protocol compiler can output a FileDescriptorSet containing the .proto
- * files it parses.
- */
-export interface FileDescriptorSetSDKType {
-  file: FileDescriptorProtoSDKType[];
-}
-/** Describes a complete .proto file. */
-export interface FileDescriptorProto {
-  /** file name, relative to root of source tree */
-  name: string;
-  package: string;
-  /** Names of files imported by this file. */
-  dependency: string[];
-  /** Indexes of the public imported files in the dependency list above. */
-  publicDependency: number[];
-  /**
-   * Indexes of the weak imported files in the dependency list.
-   * For Google-internal migration only. Do not use.
-   */
-  weakDependency: number[];
-  /** All top-level definitions in this file. */
-  messageType: DescriptorProto[];
-  enumType: EnumDescriptorProto[];
-  service: ServiceDescriptorProto[];
-  extension: FieldDescriptorProto[];
-  options: FileOptions | undefined;
-  /**
-   * This field contains optional information about the original source code.
-   * You may safely remove this entire field without harming runtime
-   * functionality of the descriptors -- the information is needed only by
-   * development tools.
-   */
-  sourceCodeInfo: SourceCodeInfo | undefined;
-  /**
-   * The syntax of the proto file.
-   * The supported values are "proto2" and "proto3".
-   */
-  syntax: string;
-}
-export interface FileDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.FileDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a complete .proto file. */
-export interface FileDescriptorProtoAmino {
-  /** file name, relative to root of source tree */
-  name: string;
-  package: string;
-  /** Names of files imported by this file. */
-  dependency: string[];
-  /** Indexes of the public imported files in the dependency list above. */
-  public_dependency: number[];
-  /**
-   * Indexes of the weak imported files in the dependency list.
-   * For Google-internal migration only. Do not use.
-   */
-  weak_dependency: number[];
-  /** All top-level definitions in this file. */
-  message_type: DescriptorProtoAmino[];
-  enum_type: EnumDescriptorProtoAmino[];
-  service: ServiceDescriptorProtoAmino[];
-  extension: FieldDescriptorProtoAmino[];
-  options?: FileOptionsAmino | undefined;
-  /**
-   * This field contains optional information about the original source code.
-   * You may safely remove this entire field without harming runtime
-   * functionality of the descriptors -- the information is needed only by
-   * development tools.
-   */
-  source_code_info?: SourceCodeInfoAmino | undefined;
-  /**
-   * The syntax of the proto file.
-   * The supported values are "proto2" and "proto3".
-   */
-  syntax: string;
-}
-export interface FileDescriptorProtoAminoMsg {
-  type: "/google.protobuf.FileDescriptorProto";
-  value: FileDescriptorProtoAmino;
-}
-/** Describes a complete .proto file. */
-export interface FileDescriptorProtoSDKType {
-  name: string;
-  package: string;
-  dependency: string[];
-  public_dependency: number[];
-  weak_dependency: number[];
-  message_type: DescriptorProtoSDKType[];
-  enum_type: EnumDescriptorProtoSDKType[];
-  service: ServiceDescriptorProtoSDKType[];
-  extension: FieldDescriptorProtoSDKType[];
-  options: FileOptionsSDKType | undefined;
-  source_code_info: SourceCodeInfoSDKType | undefined;
-  syntax: string;
-}
-/** Describes a message type. */
-export interface DescriptorProto {
-  name: string;
-  field: FieldDescriptorProto[];
-  extension: FieldDescriptorProto[];
-  nestedType: DescriptorProto[];
-  enumType: EnumDescriptorProto[];
-  extensionRange: DescriptorProto_ExtensionRange[];
-  oneofDecl: OneofDescriptorProto[];
-  options: MessageOptions | undefined;
-  reservedRange: DescriptorProto_ReservedRange[];
-  /**
-   * Reserved field names, which may not be used by fields in the same message.
-   * A given name may only be reserved once.
-   */
-  reservedName: string[];
-}
-export interface DescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.DescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a message type. */
-export interface DescriptorProtoAmino {
-  name: string;
-  field: FieldDescriptorProtoAmino[];
-  extension: FieldDescriptorProtoAmino[];
-  nested_type: DescriptorProtoAmino[];
-  enum_type: EnumDescriptorProtoAmino[];
-  extension_range: DescriptorProto_ExtensionRangeAmino[];
-  oneof_decl: OneofDescriptorProtoAmino[];
-  options?: MessageOptionsAmino | undefined;
-  reserved_range: DescriptorProto_ReservedRangeAmino[];
-  /**
-   * Reserved field names, which may not be used by fields in the same message.
-   * A given name may only be reserved once.
-   */
-  reserved_name: string[];
-}
-export interface DescriptorProtoAminoMsg {
-  type: "/google.protobuf.DescriptorProto";
-  value: DescriptorProtoAmino;
-}
-/** Describes a message type. */
-export interface DescriptorProtoSDKType {
-  name: string;
-  field: FieldDescriptorProtoSDKType[];
-  extension: FieldDescriptorProtoSDKType[];
-  nested_type: DescriptorProtoSDKType[];
-  enum_type: EnumDescriptorProtoSDKType[];
-  extension_range: DescriptorProto_ExtensionRangeSDKType[];
-  oneof_decl: OneofDescriptorProtoSDKType[];
-  options: MessageOptionsSDKType | undefined;
-  reserved_range: DescriptorProto_ReservedRangeSDKType[];
-  reserved_name: string[];
-}
-export interface DescriptorProto_ExtensionRange {
-  /** Inclusive. */
-  start: number;
-  /** Exclusive. */
-  end: number;
-  options: ExtensionRangeOptions | undefined;
-}
-export interface DescriptorProto_ExtensionRangeProtoMsg {
-  typeUrl: "/google.protobuf.ExtensionRange";
-  value: Uint8Array;
-}
-export interface DescriptorProto_ExtensionRangeAmino {
-  /** Inclusive. */
-  start: number;
-  /** Exclusive. */
-  end: number;
-  options?: ExtensionRangeOptionsAmino | undefined;
-}
-export interface DescriptorProto_ExtensionRangeAminoMsg {
-  type: "/google.protobuf.ExtensionRange";
-  value: DescriptorProto_ExtensionRangeAmino;
-}
-export interface DescriptorProto_ExtensionRangeSDKType {
-  start: number;
-  end: number;
-  options: ExtensionRangeOptionsSDKType | undefined;
-}
-/**
- * Range of reserved tag numbers. Reserved tag numbers may not be used by
- * fields or extension ranges in the same message. Reserved ranges may
- * not overlap.
- */
-export interface DescriptorProto_ReservedRange {
-  /** Inclusive. */
-  start: number;
-  /** Exclusive. */
-  end: number;
-}
-export interface DescriptorProto_ReservedRangeProtoMsg {
-  typeUrl: "/google.protobuf.ReservedRange";
-  value: Uint8Array;
-}
-/**
- * Range of reserved tag numbers. Reserved tag numbers may not be used by
- * fields or extension ranges in the same message. Reserved ranges may
- * not overlap.
- */
-export interface DescriptorProto_ReservedRangeAmino {
-  /** Inclusive. */
-  start: number;
-  /** Exclusive. */
-  end: number;
-}
-export interface DescriptorProto_ReservedRangeAminoMsg {
-  type: "/google.protobuf.ReservedRange";
-  value: DescriptorProto_ReservedRangeAmino;
-}
-/**
- * Range of reserved tag numbers. Reserved tag numbers may not be used by
- * fields or extension ranges in the same message. Reserved ranges may
- * not overlap.
- */
-export interface DescriptorProto_ReservedRangeSDKType {
-  start: number;
-  end: number;
-}
-export interface ExtensionRangeOptions {
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface ExtensionRangeOptionsProtoMsg {
-  typeUrl: "/google.protobuf.ExtensionRangeOptions";
-  value: Uint8Array;
-}
-export interface ExtensionRangeOptionsAmino {
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface ExtensionRangeOptionsAminoMsg {
-  type: "/google.protobuf.ExtensionRangeOptions";
-  value: ExtensionRangeOptionsAmino;
-}
-export interface ExtensionRangeOptionsSDKType {
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-/** Describes a field within a message. */
-export interface FieldDescriptorProto {
-  name: string;
-  number: number;
-  label: FieldDescriptorProto_Label;
-  /**
-   * If type_name is set, this need not be set.  If both this and type_name
-   * are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
-   */
-  type: FieldDescriptorProto_Type;
-  /**
-   * For message and enum types, this is the name of the type.  If the name
-   * starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
-   * rules are used to find the type (i.e. first the nested types within this
-   * message are searched, then within the parent, on up to the root
-   * namespace).
-   */
-  typeName: string;
-  /**
-   * For extensions, this is the name of the type being extended.  It is
-   * resolved in the same manner as type_name.
-   */
-  extendee: string;
-  /**
-   * For numeric types, contains the original text representation of the value.
-   * For booleans, "true" or "false".
-   * For strings, contains the default text contents (not escaped in any way).
-   * For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
-   * TODO(kenton):  Base-64 encode?
-   */
-  defaultValue: string;
-  /**
-   * If set, gives the index of a oneof in the containing type's oneof_decl
-   * list.  This field is a member of that oneof.
-   */
-  oneofIndex: number;
-  /**
-   * JSON name of this field. The value is set by protocol compiler. If the
-   * user has set a "json_name" option on this field, that option's value
-   * will be used. Otherwise, it's deduced from the field's name by converting
-   * it to camelCase.
-   */
-  jsonName: string;
-  options: FieldOptions | undefined;
-}
-export interface FieldDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.FieldDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a field within a message. */
-export interface FieldDescriptorProtoAmino {
-  name: string;
-  number: number;
-  label: FieldDescriptorProto_Label;
-  /**
-   * If type_name is set, this need not be set.  If both this and type_name
-   * are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
-   */
-  type: FieldDescriptorProto_Type;
-  /**
-   * For message and enum types, this is the name of the type.  If the name
-   * starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
-   * rules are used to find the type (i.e. first the nested types within this
-   * message are searched, then within the parent, on up to the root
-   * namespace).
-   */
-  type_name: string;
-  /**
-   * For extensions, this is the name of the type being extended.  It is
-   * resolved in the same manner as type_name.
-   */
-  extendee: string;
-  /**
-   * For numeric types, contains the original text representation of the value.
-   * For booleans, "true" or "false".
-   * For strings, contains the default text contents (not escaped in any way).
-   * For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
-   * TODO(kenton):  Base-64 encode?
-   */
-  default_value: string;
-  /**
-   * If set, gives the index of a oneof in the containing type's oneof_decl
-   * list.  This field is a member of that oneof.
-   */
-  oneof_index: number;
-  /**
-   * JSON name of this field. The value is set by protocol compiler. If the
-   * user has set a "json_name" option on this field, that option's value
-   * will be used. Otherwise, it's deduced from the field's name by converting
-   * it to camelCase.
-   */
-  json_name: string;
-  options?: FieldOptionsAmino | undefined;
-}
-export interface FieldDescriptorProtoAminoMsg {
-  type: "/google.protobuf.FieldDescriptorProto";
-  value: FieldDescriptorProtoAmino;
-}
-/** Describes a field within a message. */
-export interface FieldDescriptorProtoSDKType {
-  name: string;
-  number: number;
-  label: FieldDescriptorProto_Label;
-  type: FieldDescriptorProto_Type;
-  type_name: string;
-  extendee: string;
-  default_value: string;
-  oneof_index: number;
-  json_name: string;
-  options: FieldOptionsSDKType | undefined;
-}
-/** Describes a oneof. */
-export interface OneofDescriptorProto {
-  name: string;
-  options: OneofOptions | undefined;
-}
-export interface OneofDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.OneofDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a oneof. */
-export interface OneofDescriptorProtoAmino {
-  name: string;
-  options?: OneofOptionsAmino | undefined;
-}
-export interface OneofDescriptorProtoAminoMsg {
-  type: "/google.protobuf.OneofDescriptorProto";
-  value: OneofDescriptorProtoAmino;
-}
-/** Describes a oneof. */
-export interface OneofDescriptorProtoSDKType {
-  name: string;
-  options: OneofOptionsSDKType | undefined;
-}
-/** Describes an enum type. */
-export interface EnumDescriptorProto {
-  name: string;
-  value: EnumValueDescriptorProto[];
-  options: EnumOptions | undefined;
-  /**
-   * Range of reserved numeric values. Reserved numeric values may not be used
-   * by enum values in the same enum declaration. Reserved ranges may not
-   * overlap.
-   */
-  reservedRange: EnumDescriptorProto_EnumReservedRange[];
-  /**
-   * Reserved enum value names, which may not be reused. A given name may only
-   * be reserved once.
-   */
-  reservedName: string[];
-}
-export interface EnumDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.EnumDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes an enum type. */
-export interface EnumDescriptorProtoAmino {
-  name: string;
-  value: EnumValueDescriptorProtoAmino[];
-  options?: EnumOptionsAmino | undefined;
-  /**
-   * Range of reserved numeric values. Reserved numeric values may not be used
-   * by enum values in the same enum declaration. Reserved ranges may not
-   * overlap.
-   */
-  reserved_range: EnumDescriptorProto_EnumReservedRangeAmino[];
-  /**
-   * Reserved enum value names, which may not be reused. A given name may only
-   * be reserved once.
-   */
-  reserved_name: string[];
-}
-export interface EnumDescriptorProtoAminoMsg {
-  type: "/google.protobuf.EnumDescriptorProto";
-  value: EnumDescriptorProtoAmino;
-}
-/** Describes an enum type. */
-export interface EnumDescriptorProtoSDKType {
-  name: string;
-  value: EnumValueDescriptorProtoSDKType[];
-  options: EnumOptionsSDKType | undefined;
-  reserved_range: EnumDescriptorProto_EnumReservedRangeSDKType[];
-  reserved_name: string[];
-}
-/**
- * Range of reserved numeric values. Reserved values may not be used by
- * entries in the same enum. Reserved ranges may not overlap.
- * 
- * Note that this is distinct from DescriptorProto.ReservedRange in that it
- * is inclusive such that it can appropriately represent the entire int32
- * domain.
- */
-export interface EnumDescriptorProto_EnumReservedRange {
-  /** Inclusive. */
-  start: number;
-  /** Inclusive. */
-  end: number;
-}
-export interface EnumDescriptorProto_EnumReservedRangeProtoMsg {
-  typeUrl: "/google.protobuf.EnumReservedRange";
-  value: Uint8Array;
-}
-/**
- * Range of reserved numeric values. Reserved values may not be used by
- * entries in the same enum. Reserved ranges may not overlap.
- * 
- * Note that this is distinct from DescriptorProto.ReservedRange in that it
- * is inclusive such that it can appropriately represent the entire int32
- * domain.
- */
-export interface EnumDescriptorProto_EnumReservedRangeAmino {
-  /** Inclusive. */
-  start: number;
-  /** Inclusive. */
-  end: number;
-}
-export interface EnumDescriptorProto_EnumReservedRangeAminoMsg {
-  type: "/google.protobuf.EnumReservedRange";
-  value: EnumDescriptorProto_EnumReservedRangeAmino;
-}
-/**
- * Range of reserved numeric values. Reserved values may not be used by
- * entries in the same enum. Reserved ranges may not overlap.
- * 
- * Note that this is distinct from DescriptorProto.ReservedRange in that it
- * is inclusive such that it can appropriately represent the entire int32
- * domain.
- */
-export interface EnumDescriptorProto_EnumReservedRangeSDKType {
-  start: number;
-  end: number;
-}
-/** Describes a value within an enum. */
-export interface EnumValueDescriptorProto {
-  name: string;
-  number: number;
-  options: EnumValueOptions | undefined;
-}
-export interface EnumValueDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.EnumValueDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a value within an enum. */
-export interface EnumValueDescriptorProtoAmino {
-  name: string;
-  number: number;
-  options?: EnumValueOptionsAmino | undefined;
-}
-export interface EnumValueDescriptorProtoAminoMsg {
-  type: "/google.protobuf.EnumValueDescriptorProto";
-  value: EnumValueDescriptorProtoAmino;
-}
-/** Describes a value within an enum. */
-export interface EnumValueDescriptorProtoSDKType {
-  name: string;
-  number: number;
-  options: EnumValueOptionsSDKType | undefined;
-}
-/** Describes a service. */
-export interface ServiceDescriptorProto {
-  name: string;
-  method: MethodDescriptorProto[];
-  options: ServiceOptions | undefined;
-}
-export interface ServiceDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.ServiceDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a service. */
-export interface ServiceDescriptorProtoAmino {
-  name: string;
-  method: MethodDescriptorProtoAmino[];
-  options?: ServiceOptionsAmino | undefined;
-}
-export interface ServiceDescriptorProtoAminoMsg {
-  type: "/google.protobuf.ServiceDescriptorProto";
-  value: ServiceDescriptorProtoAmino;
-}
-/** Describes a service. */
-export interface ServiceDescriptorProtoSDKType {
-  name: string;
-  method: MethodDescriptorProtoSDKType[];
-  options: ServiceOptionsSDKType | undefined;
-}
-/** Describes a method of a service. */
-export interface MethodDescriptorProto {
-  name: string;
-  /**
-   * Input and output type names.  These are resolved in the same way as
-   * FieldDescriptorProto.type_name, but must refer to a message type.
-   */
-  inputType: string;
-  outputType: string;
-  options: MethodOptions | undefined;
-  /** Identifies if client streams multiple client messages */
-  clientStreaming: boolean;
-  /** Identifies if server streams multiple server messages */
-  serverStreaming: boolean;
-}
-export interface MethodDescriptorProtoProtoMsg {
-  typeUrl: "/google.protobuf.MethodDescriptorProto";
-  value: Uint8Array;
-}
-/** Describes a method of a service. */
-export interface MethodDescriptorProtoAmino {
-  name: string;
-  /**
-   * Input and output type names.  These are resolved in the same way as
-   * FieldDescriptorProto.type_name, but must refer to a message type.
-   */
-  input_type: string;
-  output_type: string;
-  options?: MethodOptionsAmino | undefined;
-  /** Identifies if client streams multiple client messages */
-  client_streaming: boolean;
-  /** Identifies if server streams multiple server messages */
-  server_streaming: boolean;
-}
-export interface MethodDescriptorProtoAminoMsg {
-  type: "/google.protobuf.MethodDescriptorProto";
-  value: MethodDescriptorProtoAmino;
-}
-/** Describes a method of a service. */
-export interface MethodDescriptorProtoSDKType {
-  name: string;
-  input_type: string;
-  output_type: string;
-  options: MethodOptionsSDKType | undefined;
-  client_streaming: boolean;
-  server_streaming: boolean;
-}
-export interface FileOptions {
-  /**
-   * Sets the Java package where classes generated from this .proto will be
-   * placed.  By default, the proto package is used, but this is often
-   * inappropriate because proto packages do not normally start with backwards
-   * domain names.
-   */
-  javaPackage: string;
-  /**
-   * If set, all the classes from the .proto file are wrapped in a single
-   * outer class with the given name.  This applies to both Proto1
-   * (equivalent to the old "--one_java_file" option) and Proto2 (where
-   * a .proto always translates to a single class, but you may want to
-   * explicitly choose the class name).
-   */
-  javaOuterClassname: string;
-  /**
-   * If set true, then the Java code generator will generate a separate .java
-   * file for each top-level message, enum, and service defined in the .proto
-   * file.  Thus, these types will *not* be nested inside the outer class
-   * named by java_outer_classname.  However, the outer class will still be
-   * generated to contain the file's getDescriptor() method as well as any
-   * top-level extensions defined in the file.
-   */
-  javaMultipleFiles: boolean;
-  /** This option does nothing. */
-  /** @deprecated */
-  javaGenerateEqualsAndHash: boolean;
-  /**
-   * If set true, then the Java2 code generator will generate code that
-   * throws an exception whenever an attempt is made to assign a non-UTF-8
-   * byte sequence to a string field.
-   * Message reflection will do the same.
-   * However, an extension field still accepts non-UTF-8 byte sequences.
-   * This option has no effect on when used with the lite runtime.
-   */
-  javaStringCheckUtf8: boolean;
-  optimizeFor: FileOptions_OptimizeMode;
-  /**
-   * Sets the Go package where structs generated from this .proto will be
-   * placed. If omitted, the Go package will be derived from the following:
-   *   - The basename of the package import path, if provided.
-   *   - Otherwise, the package statement in the .proto file, if present.
-   *   - Otherwise, the basename of the .proto file, without extension.
-   */
-  goPackage: string;
-  /**
-   * Should generic services be generated in each language?  "Generic" services
-   * are not specific to any particular RPC system.  They are generated by the
-   * main code generators in each language (without additional plugins).
-   * Generic services were the only kind of service generation supported by
-   * early versions of google.protobuf.
-   * 
-   * Generic services are now considered deprecated in favor of using plugins
-   * that generate code specific to your particular RPC system.  Therefore,
-   * these default to false.  Old code which depends on generic services should
-   * explicitly set them to true.
-   */
-  ccGenericServices: boolean;
-  javaGenericServices: boolean;
-  pyGenericServices: boolean;
-  phpGenericServices: boolean;
-  /**
-   * Is this file deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for everything in the file, or it will be completely ignored; in the very
-   * least, this is a formalization for deprecating files.
-   */
-  deprecated: boolean;
-  /**
-   * Enables the use of arenas for the proto messages in this file. This applies
-   * only to generated classes for C++.
-   */
-  ccEnableArenas: boolean;
-  /**
-   * Sets the objective c class prefix which is prepended to all objective c
-   * generated classes from this .proto. There is no default.
-   */
-  objcClassPrefix: string;
-  /** Namespace for generated classes; defaults to the package. */
-  csharpNamespace: string;
-  /**
-   * By default Swift generators will take the proto package and CamelCase it
-   * replacing '.' with underscore and use that to prefix the types/symbols
-   * defined. When this options is provided, they will use this value instead
-   * to prefix the types/symbols defined.
-   */
-  swiftPrefix: string;
-  /**
-   * Sets the php class prefix which is prepended to all php generated classes
-   * from this .proto. Default is empty.
-   */
-  phpClassPrefix: string;
-  /**
-   * Use this option to change the namespace of php generated classes. Default
-   * is empty. When this option is empty, the package name will be used for
-   * determining the namespace.
-   */
-  phpNamespace: string;
-  /**
-   * Use this option to change the namespace of php generated metadata classes.
-   * Default is empty. When this option is empty, the proto file name will be
-   * used for determining the namespace.
-   */
-  phpMetadataNamespace: string;
-  /**
-   * Use this option to change the package of ruby generated classes. Default
-   * is empty. When this option is not set, the package name will be used for
-   * determining the ruby package.
-   */
-  rubyPackage: string;
-  /**
-   * The parser stores options it doesn't recognize here.
-   * See the documentation for the "Options" section above.
-   */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface FileOptionsProtoMsg {
-  typeUrl: "/google.protobuf.FileOptions";
-  value: Uint8Array;
-}
-export interface FileOptionsAmino {
-  /**
-   * Sets the Java package where classes generated from this .proto will be
-   * placed.  By default, the proto package is used, but this is often
-   * inappropriate because proto packages do not normally start with backwards
-   * domain names.
-   */
-  java_package: string;
-  /**
-   * If set, all the classes from the .proto file are wrapped in a single
-   * outer class with the given name.  This applies to both Proto1
-   * (equivalent to the old "--one_java_file" option) and Proto2 (where
-   * a .proto always translates to a single class, but you may want to
-   * explicitly choose the class name).
-   */
-  java_outer_classname: string;
-  /**
-   * If set true, then the Java code generator will generate a separate .java
-   * file for each top-level message, enum, and service defined in the .proto
-   * file.  Thus, these types will *not* be nested inside the outer class
-   * named by java_outer_classname.  However, the outer class will still be
-   * generated to contain the file's getDescriptor() method as well as any
-   * top-level extensions defined in the file.
-   */
-  java_multiple_files: boolean;
-  /** This option does nothing. */
-  /** @deprecated */
-  java_generate_equals_and_hash: boolean;
-  /**
-   * If set true, then the Java2 code generator will generate code that
-   * throws an exception whenever an attempt is made to assign a non-UTF-8
-   * byte sequence to a string field.
-   * Message reflection will do the same.
-   * However, an extension field still accepts non-UTF-8 byte sequences.
-   * This option has no effect on when used with the lite runtime.
-   */
-  java_string_check_utf8: boolean;
-  optimize_for: FileOptions_OptimizeMode;
-  /**
-   * Sets the Go package where structs generated from this .proto will be
-   * placed. If omitted, the Go package will be derived from the following:
-   *   - The basename of the package import path, if provided.
-   *   - Otherwise, the package statement in the .proto file, if present.
-   *   - Otherwise, the basename of the .proto file, without extension.
-   */
-  go_package: string;
-  /**
-   * Should generic services be generated in each language?  "Generic" services
-   * are not specific to any particular RPC system.  They are generated by the
-   * main code generators in each language (without additional plugins).
-   * Generic services were the only kind of service generation supported by
-   * early versions of google.protobuf.
-   * 
-   * Generic services are now considered deprecated in favor of using plugins
-   * that generate code specific to your particular RPC system.  Therefore,
-   * these default to false.  Old code which depends on generic services should
-   * explicitly set them to true.
-   */
-  cc_generic_services: boolean;
-  java_generic_services: boolean;
-  py_generic_services: boolean;
-  php_generic_services: boolean;
-  /**
-   * Is this file deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for everything in the file, or it will be completely ignored; in the very
-   * least, this is a formalization for deprecating files.
-   */
-  deprecated: boolean;
-  /**
-   * Enables the use of arenas for the proto messages in this file. This applies
-   * only to generated classes for C++.
-   */
-  cc_enable_arenas: boolean;
-  /**
-   * Sets the objective c class prefix which is prepended to all objective c
-   * generated classes from this .proto. There is no default.
-   */
-  objc_class_prefix: string;
-  /** Namespace for generated classes; defaults to the package. */
-  csharp_namespace: string;
-  /**
-   * By default Swift generators will take the proto package and CamelCase it
-   * replacing '.' with underscore and use that to prefix the types/symbols
-   * defined. When this options is provided, they will use this value instead
-   * to prefix the types/symbols defined.
-   */
-  swift_prefix: string;
-  /**
-   * Sets the php class prefix which is prepended to all php generated classes
-   * from this .proto. Default is empty.
-   */
-  php_class_prefix: string;
-  /**
-   * Use this option to change the namespace of php generated classes. Default
-   * is empty. When this option is empty, the package name will be used for
-   * determining the namespace.
-   */
-  php_namespace: string;
-  /**
-   * Use this option to change the namespace of php generated metadata classes.
-   * Default is empty. When this option is empty, the proto file name will be
-   * used for determining the namespace.
-   */
-  php_metadata_namespace: string;
-  /**
-   * Use this option to change the package of ruby generated classes. Default
-   * is empty. When this option is not set, the package name will be used for
-   * determining the ruby package.
-   */
-  ruby_package: string;
-  /**
-   * The parser stores options it doesn't recognize here.
-   * See the documentation for the "Options" section above.
-   */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface FileOptionsAminoMsg {
-  type: "/google.protobuf.FileOptions";
-  value: FileOptionsAmino;
-}
-export interface FileOptionsSDKType {
-  java_package: string;
-  java_outer_classname: string;
-  java_multiple_files: boolean;
-  /** @deprecated */
-  java_generate_equals_and_hash: boolean;
-  java_string_check_utf8: boolean;
-  optimize_for: FileOptions_OptimizeMode;
-  go_package: string;
-  cc_generic_services: boolean;
-  java_generic_services: boolean;
-  py_generic_services: boolean;
-  php_generic_services: boolean;
-  deprecated: boolean;
-  cc_enable_arenas: boolean;
-  objc_class_prefix: string;
-  csharp_namespace: string;
-  swift_prefix: string;
-  php_class_prefix: string;
-  php_namespace: string;
-  php_metadata_namespace: string;
-  ruby_package: string;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface MessageOptions {
-  /**
-   * Set true to use the old proto1 MessageSet wire format for extensions.
-   * This is provided for backwards-compatibility with the MessageSet wire
-   * format.  You should not use this for any other reason:  It's less
-   * efficient, has fewer features, and is more complicated.
-   * 
-   * The message must be defined exactly as follows:
-   *   message Foo {
-   *     option message_set_wire_format = true;
-   *     extensions 4 to max;
-   *   }
-   * Note that the message cannot have any defined fields; MessageSets only
-   * have extensions.
-   * 
-   * All extensions of your type must be singular messages; e.g. they cannot
-   * be int32s, enums, or repeated messages.
-   * 
-   * Because this is an option, the above two restrictions are not enforced by
-   * the protocol compiler.
-   */
-  messageSetWireFormat: boolean;
-  /**
-   * Disables the generation of the standard "descriptor()" accessor, which can
-   * conflict with a field of the same name.  This is meant to make migration
-   * from proto1 easier; new code should avoid fields named "descriptor".
-   */
-  noStandardDescriptorAccessor: boolean;
-  /**
-   * Is this message deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the message, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating messages.
-   */
-  deprecated: boolean;
-  /**
-   * Whether the message is an automatically generated map entry type for the
-   * maps field.
-   * 
-   * For maps fields:
-   *     map<KeyType, ValueType> map_field = 1;
-   * The parsed descriptor looks like:
-   *     message MapFieldEntry {
-   *         option map_entry = true;
-   *         optional KeyType key = 1;
-   *         optional ValueType value = 2;
-   *     }
-   *     repeated MapFieldEntry map_field = 1;
-   * 
-   * Implementations may choose not to generate the map_entry=true message, but
-   * use a native map in the target language to hold the keys and values.
-   * The reflection APIs in such implementations still need to work as
-   * if the field is a repeated message field.
-   * 
-   * NOTE: Do not set the option in .proto files. Always use the maps syntax
-   * instead. The option should only be implicitly set by the proto compiler
-   * parser.
-   */
-  mapEntry: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface MessageOptionsProtoMsg {
-  typeUrl: "/google.protobuf.MessageOptions";
-  value: Uint8Array;
-}
-export interface MessageOptionsAmino {
-  /**
-   * Set true to use the old proto1 MessageSet wire format for extensions.
-   * This is provided for backwards-compatibility with the MessageSet wire
-   * format.  You should not use this for any other reason:  It's less
-   * efficient, has fewer features, and is more complicated.
-   * 
-   * The message must be defined exactly as follows:
-   *   message Foo {
-   *     option message_set_wire_format = true;
-   *     extensions 4 to max;
-   *   }
-   * Note that the message cannot have any defined fields; MessageSets only
-   * have extensions.
-   * 
-   * All extensions of your type must be singular messages; e.g. they cannot
-   * be int32s, enums, or repeated messages.
-   * 
-   * Because this is an option, the above two restrictions are not enforced by
-   * the protocol compiler.
-   */
-  message_set_wire_format: boolean;
-  /**
-   * Disables the generation of the standard "descriptor()" accessor, which can
-   * conflict with a field of the same name.  This is meant to make migration
-   * from proto1 easier; new code should avoid fields named "descriptor".
-   */
-  no_standard_descriptor_accessor: boolean;
-  /**
-   * Is this message deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the message, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating messages.
-   */
-  deprecated: boolean;
-  /**
-   * Whether the message is an automatically generated map entry type for the
-   * maps field.
-   * 
-   * For maps fields:
-   *     map<KeyType, ValueType> map_field = 1;
-   * The parsed descriptor looks like:
-   *     message MapFieldEntry {
-   *         option map_entry = true;
-   *         optional KeyType key = 1;
-   *         optional ValueType value = 2;
-   *     }
-   *     repeated MapFieldEntry map_field = 1;
-   * 
-   * Implementations may choose not to generate the map_entry=true message, but
-   * use a native map in the target language to hold the keys and values.
-   * The reflection APIs in such implementations still need to work as
-   * if the field is a repeated message field.
-   * 
-   * NOTE: Do not set the option in .proto files. Always use the maps syntax
-   * instead. The option should only be implicitly set by the proto compiler
-   * parser.
-   */
-  map_entry: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface MessageOptionsAminoMsg {
-  type: "/google.protobuf.MessageOptions";
-  value: MessageOptionsAmino;
-}
-export interface MessageOptionsSDKType {
-  message_set_wire_format: boolean;
-  no_standard_descriptor_accessor: boolean;
-  deprecated: boolean;
-  map_entry: boolean;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface FieldOptions {
-  /**
-   * The ctype option instructs the C++ code generator to use a different
-   * representation of the field than it normally would.  See the specific
-   * options below.  This option is not yet implemented in the open source
-   * release -- sorry, we'll try to include it in a future version!
-   */
-  ctype: FieldOptions_CType;
-  /**
-   * The packed option can be enabled for repeated primitive fields to enable
-   * a more efficient representation on the wire. Rather than repeatedly
-   * writing the tag and type for each element, the entire array is encoded as
-   * a single length-delimited blob. In proto3, only explicit setting it to
-   * false will avoid using packed encoding.
-   */
-  packed: boolean;
-  /**
-   * The jstype option determines the JavaScript type used for values of the
-   * field.  The option is permitted only for 64 bit integral and fixed types
-   * (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
-   * is represented as JavaScript string, which avoids loss of precision that
-   * can happen when a large value is converted to a floating point JavaScript.
-   * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
-   * use the JavaScript "number" type.  The behavior of the default option
-   * JS_NORMAL is implementation dependent.
-   * 
-   * This option is an enum to permit additional types to be added, e.g.
-   * goog.math.Integer.
-   */
-  jstype: FieldOptions_JSType;
-  /**
-   * Should this field be parsed lazily?  Lazy applies only to message-type
-   * fields.  It means that when the outer message is initially parsed, the
-   * inner message's contents will not be parsed but instead stored in encoded
-   * form.  The inner message will actually be parsed when it is first accessed.
-   * 
-   * This is only a hint.  Implementations are free to choose whether to use
-   * eager or lazy parsing regardless of the value of this option.  However,
-   * setting this option true suggests that the protocol author believes that
-   * using lazy parsing on this field is worth the additional bookkeeping
-   * overhead typically needed to implement it.
-   * 
-   * This option does not affect the public interface of any generated code;
-   * all method signatures remain the same.  Furthermore, thread-safety of the
-   * interface is not affected by this option; const methods remain safe to
-   * call from multiple threads concurrently, while non-const methods continue
-   * to require exclusive access.
-   * 
-   * 
-   * Note that implementations may choose not to check required fields within
-   * a lazy sub-message.  That is, calling IsInitialized() on the outer message
-   * may return true even if the inner message has missing required fields.
-   * This is necessary because otherwise the inner message would have to be
-   * parsed in order to perform the check, defeating the purpose of lazy
-   * parsing.  An implementation which chooses not to check required fields
-   * must be consistent about it.  That is, for any particular sub-message, the
-   * implementation must either *always* check its required fields, or *never*
-   * check its required fields, regardless of whether or not the message has
-   * been parsed.
-   */
-  lazy: boolean;
-  /**
-   * Is this field deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for accessors, or it will be completely ignored; in the very least, this
-   * is a formalization for deprecating fields.
-   */
-  deprecated: boolean;
-  /** For Google-internal migration only. Do not use. */
-  weak: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface FieldOptionsProtoMsg {
-  typeUrl: "/google.protobuf.FieldOptions";
-  value: Uint8Array;
-}
-export interface FieldOptionsAmino {
-  /**
-   * The ctype option instructs the C++ code generator to use a different
-   * representation of the field than it normally would.  See the specific
-   * options below.  This option is not yet implemented in the open source
-   * release -- sorry, we'll try to include it in a future version!
-   */
-  ctype: FieldOptions_CType;
-  /**
-   * The packed option can be enabled for repeated primitive fields to enable
-   * a more efficient representation on the wire. Rather than repeatedly
-   * writing the tag and type for each element, the entire array is encoded as
-   * a single length-delimited blob. In proto3, only explicit setting it to
-   * false will avoid using packed encoding.
-   */
-  packed: boolean;
-  /**
-   * The jstype option determines the JavaScript type used for values of the
-   * field.  The option is permitted only for 64 bit integral and fixed types
-   * (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
-   * is represented as JavaScript string, which avoids loss of precision that
-   * can happen when a large value is converted to a floating point JavaScript.
-   * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
-   * use the JavaScript "number" type.  The behavior of the default option
-   * JS_NORMAL is implementation dependent.
-   * 
-   * This option is an enum to permit additional types to be added, e.g.
-   * goog.math.Integer.
-   */
-  jstype: FieldOptions_JSType;
-  /**
-   * Should this field be parsed lazily?  Lazy applies only to message-type
-   * fields.  It means that when the outer message is initially parsed, the
-   * inner message's contents will not be parsed but instead stored in encoded
-   * form.  The inner message will actually be parsed when it is first accessed.
-   * 
-   * This is only a hint.  Implementations are free to choose whether to use
-   * eager or lazy parsing regardless of the value of this option.  However,
-   * setting this option true suggests that the protocol author believes that
-   * using lazy parsing on this field is worth the additional bookkeeping
-   * overhead typically needed to implement it.
-   * 
-   * This option does not affect the public interface of any generated code;
-   * all method signatures remain the same.  Furthermore, thread-safety of the
-   * interface is not affected by this option; const methods remain safe to
-   * call from multiple threads concurrently, while non-const methods continue
-   * to require exclusive access.
-   * 
-   * 
-   * Note that implementations may choose not to check required fields within
-   * a lazy sub-message.  That is, calling IsInitialized() on the outer message
-   * may return true even if the inner message has missing required fields.
-   * This is necessary because otherwise the inner message would have to be
-   * parsed in order to perform the check, defeating the purpose of lazy
-   * parsing.  An implementation which chooses not to check required fields
-   * must be consistent about it.  That is, for any particular sub-message, the
-   * implementation must either *always* check its required fields, or *never*
-   * check its required fields, regardless of whether or not the message has
-   * been parsed.
-   */
-  lazy: boolean;
-  /**
-   * Is this field deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for accessors, or it will be completely ignored; in the very least, this
-   * is a formalization for deprecating fields.
-   */
-  deprecated: boolean;
-  /** For Google-internal migration only. Do not use. */
-  weak: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface FieldOptionsAminoMsg {
-  type: "/google.protobuf.FieldOptions";
-  value: FieldOptionsAmino;
-}
-export interface FieldOptionsSDKType {
-  ctype: FieldOptions_CType;
-  packed: boolean;
-  jstype: FieldOptions_JSType;
-  lazy: boolean;
-  deprecated: boolean;
-  weak: boolean;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface OneofOptions {
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface OneofOptionsProtoMsg {
-  typeUrl: "/google.protobuf.OneofOptions";
-  value: Uint8Array;
-}
-export interface OneofOptionsAmino {
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface OneofOptionsAminoMsg {
-  type: "/google.protobuf.OneofOptions";
-  value: OneofOptionsAmino;
-}
-export interface OneofOptionsSDKType {
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface EnumOptions {
-  /**
-   * Set this option to true to allow mapping different tag names to the same
-   * value.
-   */
-  allowAlias: boolean;
-  /**
-   * Is this enum deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the enum, or it will be completely ignored; in the very least, this
-   * is a formalization for deprecating enums.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface EnumOptionsProtoMsg {
-  typeUrl: "/google.protobuf.EnumOptions";
-  value: Uint8Array;
-}
-export interface EnumOptionsAmino {
-  /**
-   * Set this option to true to allow mapping different tag names to the same
-   * value.
-   */
-  allow_alias: boolean;
-  /**
-   * Is this enum deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the enum, or it will be completely ignored; in the very least, this
-   * is a formalization for deprecating enums.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface EnumOptionsAminoMsg {
-  type: "/google.protobuf.EnumOptions";
-  value: EnumOptionsAmino;
-}
-export interface EnumOptionsSDKType {
-  allow_alias: boolean;
-  deprecated: boolean;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface EnumValueOptions {
-  /**
-   * Is this enum value deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the enum value, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating enum values.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface EnumValueOptionsProtoMsg {
-  typeUrl: "/google.protobuf.EnumValueOptions";
-  value: Uint8Array;
-}
-export interface EnumValueOptionsAmino {
-  /**
-   * Is this enum value deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the enum value, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating enum values.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface EnumValueOptionsAminoMsg {
-  type: "/google.protobuf.EnumValueOptions";
-  value: EnumValueOptionsAmino;
-}
-export interface EnumValueOptionsSDKType {
-  deprecated: boolean;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface ServiceOptions {
-  /**
-   * Is this service deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the service, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating services.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface ServiceOptionsProtoMsg {
-  typeUrl: "/google.protobuf.ServiceOptions";
-  value: Uint8Array;
-}
-export interface ServiceOptionsAmino {
-  /**
-   * Is this service deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the service, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating services.
-   */
-  deprecated: boolean;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface ServiceOptionsAminoMsg {
-  type: "/google.protobuf.ServiceOptions";
-  value: ServiceOptionsAmino;
-}
-export interface ServiceOptionsSDKType {
-  deprecated: boolean;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-export interface MethodOptions {
-  /**
-   * Is this method deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the method, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating methods.
-   */
-  deprecated: boolean;
-  idempotencyLevel: MethodOptions_IdempotencyLevel;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpretedOption: UninterpretedOption[];
-}
-export interface MethodOptionsProtoMsg {
-  typeUrl: "/google.protobuf.MethodOptions";
-  value: Uint8Array;
-}
-export interface MethodOptionsAmino {
-  /**
-   * Is this method deprecated?
-   * Depending on the target platform, this can emit Deprecated annotations
-   * for the method, or it will be completely ignored; in the very least,
-   * this is a formalization for deprecating methods.
-   */
-  deprecated: boolean;
-  idempotency_level: MethodOptions_IdempotencyLevel;
-  /** The parser stores options it doesn't recognize here. See above. */
-  uninterpreted_option: UninterpretedOptionAmino[];
-}
-export interface MethodOptionsAminoMsg {
-  type: "/google.protobuf.MethodOptions";
-  value: MethodOptionsAmino;
-}
-export interface MethodOptionsSDKType {
-  deprecated: boolean;
-  idempotency_level: MethodOptions_IdempotencyLevel;
-  uninterpreted_option: UninterpretedOptionSDKType[];
-}
-/**
- * A message representing a option the parser does not recognize. This only
- * appears in options protos created by the compiler::Parser class.
- * DescriptorPool resolves these when building Descriptor objects. Therefore,
- * options protos in descriptor objects (e.g. returned by Descriptor::options(),
- * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
- * in them.
- */
-export interface UninterpretedOption {
-  name: UninterpretedOption_NamePart[];
-  /**
-   * The value of the uninterpreted option, in whatever type the tokenizer
-   * identified it as during parsing. Exactly one of these should be set.
-   */
-  identifierValue: string;
-  positiveIntValue: bigint;
-  negativeIntValue: bigint;
-  doubleValue: number;
-  stringValue: Uint8Array;
-  aggregateValue: string;
-}
-export interface UninterpretedOptionProtoMsg {
-  typeUrl: "/google.protobuf.UninterpretedOption";
-  value: Uint8Array;
-}
-/**
- * A message representing a option the parser does not recognize. This only
- * appears in options protos created by the compiler::Parser class.
- * DescriptorPool resolves these when building Descriptor objects. Therefore,
- * options protos in descriptor objects (e.g. returned by Descriptor::options(),
- * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
- * in them.
- */
-export interface UninterpretedOptionAmino {
-  name: UninterpretedOption_NamePartAmino[];
-  /**
-   * The value of the uninterpreted option, in whatever type the tokenizer
-   * identified it as during parsing. Exactly one of these should be set.
-   */
-  identifier_value: string;
-  positive_int_value: string;
-  negative_int_value: string;
-  double_value: number;
-  string_value: Uint8Array;
-  aggregate_value: string;
-}
-export interface UninterpretedOptionAminoMsg {
-  type: "/google.protobuf.UninterpretedOption";
-  value: UninterpretedOptionAmino;
-}
-/**
- * A message representing a option the parser does not recognize. This only
- * appears in options protos created by the compiler::Parser class.
- * DescriptorPool resolves these when building Descriptor objects. Therefore,
- * options protos in descriptor objects (e.g. returned by Descriptor::options(),
- * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
- * in them.
- */
-export interface UninterpretedOptionSDKType {
-  name: UninterpretedOption_NamePartSDKType[];
-  identifier_value: string;
-  positive_int_value: bigint;
-  negative_int_value: bigint;
-  double_value: number;
-  string_value: Uint8Array;
-  aggregate_value: string;
-}
-/**
- * The name of the uninterpreted option.  Each string represents a segment in
- * a dot-separated name.  is_extension is true iff a segment represents an
- * extension (denoted with parentheses in options specs in .proto files).
- * E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
- * "foo.(bar.baz).qux".
- */
-export interface UninterpretedOption_NamePart {
-  namePart: string;
-  isExtension: boolean;
-}
-export interface UninterpretedOption_NamePartProtoMsg {
-  typeUrl: "/google.protobuf.NamePart";
-  value: Uint8Array;
-}
-/**
- * The name of the uninterpreted option.  Each string represents a segment in
- * a dot-separated name.  is_extension is true iff a segment represents an
- * extension (denoted with parentheses in options specs in .proto files).
- * E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
- * "foo.(bar.baz).qux".
- */
-export interface UninterpretedOption_NamePartAmino {
-  name_part: string;
-  is_extension: boolean;
-}
-export interface UninterpretedOption_NamePartAminoMsg {
-  type: "/google.protobuf.NamePart";
-  value: UninterpretedOption_NamePartAmino;
-}
-/**
- * The name of the uninterpreted option.  Each string represents a segment in
- * a dot-separated name.  is_extension is true iff a segment represents an
- * extension (denoted with parentheses in options specs in .proto files).
- * E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
- * "foo.(bar.baz).qux".
- */
-export interface UninterpretedOption_NamePartSDKType {
-  name_part: string;
-  is_extension: boolean;
-}
-/**
- * Encapsulates information about the original source file from which a
- * FileDescriptorProto was generated.
- */
-export interface SourceCodeInfo {
-  /**
-   * A Location identifies a piece of source code in a .proto file which
-   * corresponds to a particular definition.  This information is intended
-   * to be useful to IDEs, code indexers, documentation generators, and similar
-   * tools.
-   * 
-   * For example, say we have a file like:
-   *   message Foo {
-   *     optional string foo = 1;
-   *   }
-   * Let's look at just the field definition:
-   *   optional string foo = 1;
-   *   ^       ^^     ^^  ^  ^^^
-   *   a       bc     de  f  ghi
-   * We have the following locations:
-   *   span   path               represents
-   *   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
-   *   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
-   *   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
-   *   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
-   *   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).
-   * 
-   * Notes:
-   * - A location may refer to a repeated field itself (i.e. not to any
-   *   particular index within it).  This is used whenever a set of elements are
-   *   logically enclosed in a single code segment.  For example, an entire
-   *   extend block (possibly containing multiple extension definitions) will
-   *   have an outer location whose path refers to the "extensions" repeated
-   *   field without an index.
-   * - Multiple locations may have the same path.  This happens when a single
-   *   logical declaration is spread out across multiple places.  The most
-   *   obvious example is the "extend" block again -- there may be multiple
-   *   extend blocks in the same scope, each of which will have the same path.
-   * - A location's span is not always a subset of its parent's span.  For
-   *   example, the "extendee" of an extension declaration appears at the
-   *   beginning of the "extend" block and is shared by all extensions within
-   *   the block.
-   * - Just because a location's span is a subset of some other location's span
-   *   does not mean that it is a descendant.  For example, a "group" defines
-   *   both a type and a field in a single declaration.  Thus, the locations
-   *   corresponding to the type and field and their components will overlap.
-   * - Code which tries to interpret locations should probably be designed to
-   *   ignore those that it doesn't understand, as more types of locations could
-   *   be recorded in the future.
-   */
-  location: SourceCodeInfo_Location[];
-}
-export interface SourceCodeInfoProtoMsg {
-  typeUrl: "/google.protobuf.SourceCodeInfo";
-  value: Uint8Array;
-}
-/**
- * Encapsulates information about the original source file from which a
- * FileDescriptorProto was generated.
- */
-export interface SourceCodeInfoAmino {
-  /**
-   * A Location identifies a piece of source code in a .proto file which
-   * corresponds to a particular definition.  This information is intended
-   * to be useful to IDEs, code indexers, documentation generators, and similar
-   * tools.
-   * 
-   * For example, say we have a file like:
-   *   message Foo {
-   *     optional string foo = 1;
-   *   }
-   * Let's look at just the field definition:
-   *   optional string foo = 1;
-   *   ^       ^^     ^^  ^  ^^^
-   *   a       bc     de  f  ghi
-   * We have the following locations:
-   *   span   path               represents
-   *   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
-   *   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
-   *   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
-   *   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
-   *   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).
-   * 
-   * Notes:
-   * - A location may refer to a repeated field itself (i.e. not to any
-   *   particular index within it).  This is used whenever a set of elements are
-   *   logically enclosed in a single code segment.  For example, an entire
-   *   extend block (possibly containing multiple extension definitions) will
-   *   have an outer location whose path refers to the "extensions" repeated
-   *   field without an index.
-   * - Multiple locations may have the same path.  This happens when a single
-   *   logical declaration is spread out across multiple places.  The most
-   *   obvious example is the "extend" block again -- there may be multiple
-   *   extend blocks in the same scope, each of which will have the same path.
-   * - A location's span is not always a subset of its parent's span.  For
-   *   example, the "extendee" of an extension declaration appears at the
-   *   beginning of the "extend" block and is shared by all extensions within
-   *   the block.
-   * - Just because a location's span is a subset of some other location's span
-   *   does not mean that it is a descendant.  For example, a "group" defines
-   *   both a type and a field in a single declaration.  Thus, the locations
-   *   corresponding to the type and field and their components will overlap.
-   * - Code which tries to interpret locations should probably be designed to
-   *   ignore those that it doesn't understand, as more types of locations could
-   *   be recorded in the future.
-   */
-  location: SourceCodeInfo_LocationAmino[];
-}
-export interface SourceCodeInfoAminoMsg {
-  type: "/google.protobuf.SourceCodeInfo";
-  value: SourceCodeInfoAmino;
-}
-/**
- * Encapsulates information about the original source file from which a
- * FileDescriptorProto was generated.
- */
-export interface SourceCodeInfoSDKType {
-  location: SourceCodeInfo_LocationSDKType[];
-}
-export interface SourceCodeInfo_Location {
-  /**
-   * Identifies which part of the FileDescriptorProto was defined at this
-   * location.
-   * 
-   * Each element is a field number or an index.  They form a path from
-   * the root FileDescriptorProto to the place where the definition.  For
-   * example, this path:
-   *   [ 4, 3, 2, 7, 1 ]
-   * refers to:
-   *   file.message_type(3)  // 4, 3
-   *       .field(7)         // 2, 7
-   *       .name()           // 1
-   * This is because FileDescriptorProto.message_type has field number 4:
-   *   repeated DescriptorProto message_type = 4;
-   * and DescriptorProto.field has field number 2:
-   *   repeated FieldDescriptorProto field = 2;
-   * and FieldDescriptorProto.name has field number 1:
-   *   optional string name = 1;
-   * 
-   * Thus, the above path gives the location of a field name.  If we removed
-   * the last element:
-   *   [ 4, 3, 2, 7 ]
-   * this path refers to the whole field declaration (from the beginning
-   * of the label to the terminating semicolon).
-   */
-  path: number[];
-  /**
-   * Always has exactly three or four elements: start line, start column,
-   * end line (optional, otherwise assumed same as start line), end column.
-   * These are packed into a single field for efficiency.  Note that line
-   * and column numbers are zero-based -- typically you will want to add
-   * 1 to each before displaying to a user.
-   */
-  span: number[];
-  /**
-   * If this SourceCodeInfo represents a complete declaration, these are any
-   * comments appearing before and after the declaration which appear to be
-   * attached to the declaration.
-   * 
-   * A series of line comments appearing on consecutive lines, with no other
-   * tokens appearing on those lines, will be treated as a single comment.
-   * 
-   * leading_detached_comments will keep paragraphs of comments that appear
-   * before (but not connected to) the current element. Each paragraph,
-   * separated by empty lines, will be one comment element in the repeated
-   * field.
-   * 
-   * Only the comment content is provided; comment markers (e.g. //) are
-   * stripped out.  For block comments, leading whitespace and an asterisk
-   * will be stripped from the beginning of each line other than the first.
-   * Newlines are included in the output.
-   * 
-   * Examples:
-   * 
-   *   optional int32 foo = 1;  // Comment attached to foo.
-   *   // Comment attached to bar.
-   *   optional int32 bar = 2;
-   * 
-   *   optional string baz = 3;
-   *   // Comment attached to baz.
-   *   // Another line attached to baz.
-   * 
-   *   // Comment attached to qux.
-   *   //
-   *   // Another line attached to qux.
-   *   optional double qux = 4;
-   * 
-   *   // Detached comment for corge. This is not leading or trailing comments
-   *   // to qux or corge because there are blank lines separating it from
-   *   // both.
-   * 
-   *   // Detached comment for corge paragraph 2.
-   * 
-   *   optional string corge = 5;
-   *   /* Block comment attached
-   *    * to corge.  Leading asterisks
-   *    * will be removed. *\/
-   *   /* Block comment attached to
-   *    * grault. *\/
-   *   optional int32 grault = 6;
-   * 
-   *   // ignored detached comments.
-   */
-  leadingComments: string;
-  trailingComments: string;
-  leadingDetachedComments: string[];
-}
-export interface SourceCodeInfo_LocationProtoMsg {
-  typeUrl: "/google.protobuf.Location";
-  value: Uint8Array;
-}
-export interface SourceCodeInfo_LocationAmino {
-  /**
-   * Identifies which part of the FileDescriptorProto was defined at this
-   * location.
-   * 
-   * Each element is a field number or an index.  They form a path from
-   * the root FileDescriptorProto to the place where the definition.  For
-   * example, this path:
-   *   [ 4, 3, 2, 7, 1 ]
-   * refers to:
-   *   file.message_type(3)  // 4, 3
-   *       .field(7)         // 2, 7
-   *       .name()           // 1
-   * This is because FileDescriptorProto.message_type has field number 4:
-   *   repeated DescriptorProto message_type = 4;
-   * and DescriptorProto.field has field number 2:
-   *   repeated FieldDescriptorProto field = 2;
-   * and FieldDescriptorProto.name has field number 1:
-   *   optional string name = 1;
-   * 
-   * Thus, the above path gives the location of a field name.  If we removed
-   * the last element:
-   *   [ 4, 3, 2, 7 ]
-   * this path refers to the whole field declaration (from the beginning
-   * of the label to the terminating semicolon).
-   */
-  path: number[];
-  /**
-   * Always has exactly three or four elements: start line, start column,
-   * end line (optional, otherwise assumed same as start line), end column.
-   * These are packed into a single field for efficiency.  Note that line
-   * and column numbers are zero-based -- typically you will want to add
-   * 1 to each before displaying to a user.
-   */
-  span: number[];
-  /**
-   * If this SourceCodeInfo represents a complete declaration, these are any
-   * comments appearing before and after the declaration which appear to be
-   * attached to the declaration.
-   * 
-   * A series of line comments appearing on consecutive lines, with no other
-   * tokens appearing on those lines, will be treated as a single comment.
-   * 
-   * leading_detached_comments will keep paragraphs of comments that appear
-   * before (but not connected to) the current element. Each paragraph,
-   * separated by empty lines, will be one comment element in the repeated
-   * field.
-   * 
-   * Only the comment content is provided; comment markers (e.g. //) are
-   * stripped out.  For block comments, leading whitespace and an asterisk
-   * will be stripped from the beginning of each line other than the first.
-   * Newlines are included in the output.
-   * 
-   * Examples:
-   * 
-   *   optional int32 foo = 1;  // Comment attached to foo.
-   *   // Comment attached to bar.
-   *   optional int32 bar = 2;
-   * 
-   *   optional string baz = 3;
-   *   // Comment attached to baz.
-   *   // Another line attached to baz.
-   * 
-   *   // Comment attached to qux.
-   *   //
-   *   // Another line attached to qux.
-   *   optional double qux = 4;
-   * 
-   *   // Detached comment for corge. This is not leading or trailing comments
-   *   // to qux or corge because there are blank lines separating it from
-   *   // both.
-   * 
-   *   // Detached comment for corge paragraph 2.
-   * 
-   *   optional string corge = 5;
-   *   /* Block comment attached
-   *    * to corge.  Leading asterisks
-   *    * will be removed. *\/
-   *   /* Block comment attached to
-   *    * grault. *\/
-   *   optional int32 grault = 6;
-   * 
-   *   // ignored detached comments.
-   */
-  leading_comments: string;
-  trailing_comments: string;
-  leading_detached_comments: string[];
-}
-export interface SourceCodeInfo_LocationAminoMsg {
-  type: "/google.protobuf.Location";
-  value: SourceCodeInfo_LocationAmino;
-}
-export interface SourceCodeInfo_LocationSDKType {
-  path: number[];
-  span: number[];
-  leading_comments: string;
-  trailing_comments: string;
-  leading_detached_comments: string[];
-}
-/**
- * Describes the relationship between generated code and its original source
- * file. A GeneratedCodeInfo message is associated with only one generated
- * source file, but may contain references to different source .proto files.
- */
-export interface GeneratedCodeInfo {
-  /**
-   * An Annotation connects some span of text in generated code to an element
-   * of its generating .proto file.
-   */
-  annotation: GeneratedCodeInfo_Annotation[];
-}
-export interface GeneratedCodeInfoProtoMsg {
-  typeUrl: "/google.protobuf.GeneratedCodeInfo";
-  value: Uint8Array;
-}
-/**
- * Describes the relationship between generated code and its original source
- * file. A GeneratedCodeInfo message is associated with only one generated
- * source file, but may contain references to different source .proto files.
- */
-export interface GeneratedCodeInfoAmino {
-  /**
-   * An Annotation connects some span of text in generated code to an element
-   * of its generating .proto file.
-   */
-  annotation: GeneratedCodeInfo_AnnotationAmino[];
-}
-export interface GeneratedCodeInfoAminoMsg {
-  type: "/google.protobuf.GeneratedCodeInfo";
-  value: GeneratedCodeInfoAmino;
-}
-/**
- * Describes the relationship between generated code and its original source
- * file. A GeneratedCodeInfo message is associated with only one generated
- * source file, but may contain references to different source .proto files.
- */
-export interface GeneratedCodeInfoSDKType {
-  annotation: GeneratedCodeInfo_AnnotationSDKType[];
-}
-export interface GeneratedCodeInfo_Annotation {
-  /**
-   * Identifies the element in the original source .proto file. This field
-   * is formatted the same as SourceCodeInfo.Location.path.
-   */
-  path: number[];
-  /** Identifies the filesystem path to the original source .proto. */
-  sourceFile: string;
-  /**
-   * Identifies the starting offset in bytes in the generated code
-   * that relates to the identified object.
-   */
-  begin: number;
-  /**
-   * Identifies the ending offset in bytes in the generated code that
-   * relates to the identified offset. The end offset should be one past
-   * the last relevant byte (so the length of the text = end - begin).
-   */
-  end: number;
-}
-export interface GeneratedCodeInfo_AnnotationProtoMsg {
-  typeUrl: "/google.protobuf.Annotation";
-  value: Uint8Array;
-}
-export interface GeneratedCodeInfo_AnnotationAmino {
-  /**
-   * Identifies the element in the original source .proto file. This field
-   * is formatted the same as SourceCodeInfo.Location.path.
-   */
-  path: number[];
-  /** Identifies the filesystem path to the original source .proto. */
-  source_file: string;
-  /**
-   * Identifies the starting offset in bytes in the generated code
-   * that relates to the identified object.
-   */
-  begin: number;
-  /**
-   * Identifies the ending offset in bytes in the generated code that
-   * relates to the identified offset. The end offset should be one past
-   * the last relevant byte (so the length of the text = end - begin).
-   */
-  end: number;
-}
-export interface GeneratedCodeInfo_AnnotationAminoMsg {
-  type: "/google.protobuf.Annotation";
-  value: GeneratedCodeInfo_AnnotationAmino;
-}
-export interface GeneratedCodeInfo_AnnotationSDKType {
-  path: number[];
-  source_file: string;
-  begin: number;
-  end: number;
-}
-function createBaseFileDescriptorSet(): FileDescriptorSet {
-  return {
-    file: []
-  };
-}
-export const FileDescriptorSet = {
-  typeUrl: "/google.protobuf.FileDescriptorSet",
-  encode(message: FileDescriptorSet, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.file) {
-      FileDescriptorProto.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FileDescriptorSet {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFileDescriptorSet();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.file.push(FileDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FileDescriptorSet {
-    return {
-      file: Array.isArray(object?.file) ? object.file.map((e: any) => FileDescriptorProto.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: FileDescriptorSet): unknown {
-    const obj: any = {};
-    if (message.file) {
-      obj.file = message.file.map(e => e ? FileDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.file = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FileDescriptorSet>): FileDescriptorSet {
-    const message = createBaseFileDescriptorSet();
-    message.file = object.file?.map(e => FileDescriptorProto.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: FileDescriptorSetSDKType): FileDescriptorSet {
-    return {
-      file: Array.isArray(object?.file) ? object.file.map((e: any) => FileDescriptorProto.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: FileDescriptorSet): FileDescriptorSetSDKType {
-    const obj: any = {};
-    if (message.file) {
-      obj.file = message.file.map(e => e ? FileDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.file = [];
-    }
-    return obj;
-  },
-  fromAmino(object: FileDescriptorSetAmino): FileDescriptorSet {
-    return {
-      file: Array.isArray(object?.file) ? object.file.map((e: any) => FileDescriptorProto.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: FileDescriptorSet): FileDescriptorSetAmino {
-    const obj: any = {};
-    if (message.file) {
-      obj.file = message.file.map(e => e ? FileDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.file = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: FileDescriptorSetAminoMsg): FileDescriptorSet {
-    return FileDescriptorSet.fromAmino(object.value);
-  },
-  fromProtoMsg(message: FileDescriptorSetProtoMsg): FileDescriptorSet {
-    return FileDescriptorSet.decode(message.value);
-  },
-  toProto(message: FileDescriptorSet): Uint8Array {
-    return FileDescriptorSet.encode(message).finish();
-  },
-  toProtoMsg(message: FileDescriptorSet): FileDescriptorSetProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.FileDescriptorSet",
-      value: FileDescriptorSet.encode(message).finish()
-    };
-  }
-};
-function createBaseFileDescriptorProto(): FileDescriptorProto {
-  return {
-    name: "",
-    package: "",
-    dependency: [],
-    publicDependency: [],
-    weakDependency: [],
-    messageType: [],
-    enumType: [],
-    service: [],
-    extension: [],
-    options: FileOptions.fromPartial({}),
-    sourceCodeInfo: SourceCodeInfo.fromPartial({}),
-    syntax: ""
-  };
-}
-export const FileDescriptorProto = {
-  typeUrl: "/google.protobuf.FileDescriptorProto",
-  encode(message: FileDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.package !== "") {
-      writer.uint32(18).string(message.package);
-    }
-    for (const v of message.dependency) {
-      writer.uint32(26).string(v!);
-    }
-    writer.uint32(82).fork();
-    for (const v of message.publicDependency) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    writer.uint32(90).fork();
-    for (const v of message.weakDependency) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    for (const v of message.messageType) {
-      DescriptorProto.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.enumType) {
-      EnumDescriptorProto.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.service) {
-      ServiceDescriptorProto.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.extension) {
-      FieldDescriptorProto.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.options !== undefined) {
-      FileOptions.encode(message.options, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.sourceCodeInfo !== undefined) {
-      SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(74).fork()).ldelim();
-    }
-    if (message.syntax !== "") {
-      writer.uint32(98).string(message.syntax);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FileDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFileDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.package = reader.string();
-          break;
-        case 3:
-          message.dependency.push(reader.string());
-          break;
-        case 10:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.publicDependency.push(reader.int32());
-            }
-          } else {
-            message.publicDependency.push(reader.int32());
-          }
-          break;
-        case 11:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.weakDependency.push(reader.int32());
-            }
-          } else {
-            message.weakDependency.push(reader.int32());
-          }
-          break;
-        case 4:
-          message.messageType.push(DescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.enumType.push(EnumDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.service.push(ServiceDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.extension.push(FieldDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.options = FileOptions.decode(reader, reader.uint32());
-          break;
-        case 9:
-          message.sourceCodeInfo = SourceCodeInfo.decode(reader, reader.uint32());
-          break;
-        case 12:
-          message.syntax = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FileDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      package: isSet(object.package) ? String(object.package) : "",
-      dependency: Array.isArray(object?.dependency) ? object.dependency.map((e: any) => String(e)) : [],
-      publicDependency: Array.isArray(object?.publicDependency) ? object.publicDependency.map((e: any) => Number(e)) : [],
-      weakDependency: Array.isArray(object?.weakDependency) ? object.weakDependency.map((e: any) => Number(e)) : [],
-      messageType: Array.isArray(object?.messageType) ? object.messageType.map((e: any) => DescriptorProto.fromJSON(e)) : [],
-      enumType: Array.isArray(object?.enumType) ? object.enumType.map((e: any) => EnumDescriptorProto.fromJSON(e)) : [],
-      service: Array.isArray(object?.service) ? object.service.map((e: any) => ServiceDescriptorProto.fromJSON(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromJSON(e)) : [],
-      options: isSet(object.options) ? FileOptions.fromJSON(object.options) : undefined,
-      sourceCodeInfo: isSet(object.sourceCodeInfo) ? SourceCodeInfo.fromJSON(object.sourceCodeInfo) : undefined,
-      syntax: isSet(object.syntax) ? String(object.syntax) : ""
-    };
-  },
-  toJSON(message: FileDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.package !== undefined && (obj.package = message.package);
-    if (message.dependency) {
-      obj.dependency = message.dependency.map(e => e);
-    } else {
-      obj.dependency = [];
-    }
-    if (message.publicDependency) {
-      obj.publicDependency = message.publicDependency.map(e => Math.round(e));
-    } else {
-      obj.publicDependency = [];
-    }
-    if (message.weakDependency) {
-      obj.weakDependency = message.weakDependency.map(e => Math.round(e));
-    } else {
-      obj.weakDependency = [];
-    }
-    if (message.messageType) {
-      obj.messageType = message.messageType.map(e => e ? DescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.messageType = [];
-    }
-    if (message.enumType) {
-      obj.enumType = message.enumType.map(e => e ? EnumDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.enumType = [];
-    }
-    if (message.service) {
-      obj.service = message.service.map(e => e ? ServiceDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.service = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? FileOptions.toJSON(message.options) : undefined);
-    message.sourceCodeInfo !== undefined && (obj.sourceCodeInfo = message.sourceCodeInfo ? SourceCodeInfo.toJSON(message.sourceCodeInfo) : undefined);
-    message.syntax !== undefined && (obj.syntax = message.syntax);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FileDescriptorProto>): FileDescriptorProto {
-    const message = createBaseFileDescriptorProto();
-    message.name = object.name ?? "";
-    message.package = object.package ?? "";
-    message.dependency = object.dependency?.map(e => e) || [];
-    message.publicDependency = object.publicDependency?.map(e => e) || [];
-    message.weakDependency = object.weakDependency?.map(e => e) || [];
-    message.messageType = object.messageType?.map(e => DescriptorProto.fromPartial(e)) || [];
-    message.enumType = object.enumType?.map(e => EnumDescriptorProto.fromPartial(e)) || [];
-    message.service = object.service?.map(e => ServiceDescriptorProto.fromPartial(e)) || [];
-    message.extension = object.extension?.map(e => FieldDescriptorProto.fromPartial(e)) || [];
-    message.options = object.options !== undefined && object.options !== null ? FileOptions.fromPartial(object.options) : undefined;
-    message.sourceCodeInfo = object.sourceCodeInfo !== undefined && object.sourceCodeInfo !== null ? SourceCodeInfo.fromPartial(object.sourceCodeInfo) : undefined;
-    message.syntax = object.syntax ?? "";
-    return message;
-  },
-  fromSDK(object: FileDescriptorProtoSDKType): FileDescriptorProto {
-    return {
-      name: object?.name,
-      package: object?.package,
-      dependency: Array.isArray(object?.dependency) ? object.dependency.map((e: any) => e) : [],
-      publicDependency: Array.isArray(object?.public_dependency) ? object.public_dependency.map((e: any) => e) : [],
-      weakDependency: Array.isArray(object?.weak_dependency) ? object.weak_dependency.map((e: any) => e) : [],
-      messageType: Array.isArray(object?.message_type) ? object.message_type.map((e: any) => DescriptorProto.fromSDK(e)) : [],
-      enumType: Array.isArray(object?.enum_type) ? object.enum_type.map((e: any) => EnumDescriptorProto.fromSDK(e)) : [],
-      service: Array.isArray(object?.service) ? object.service.map((e: any) => ServiceDescriptorProto.fromSDK(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromSDK(e)) : [],
-      options: object.options ? FileOptions.fromSDK(object.options) : undefined,
-      sourceCodeInfo: object.source_code_info ? SourceCodeInfo.fromSDK(object.source_code_info) : undefined,
-      syntax: object?.syntax
-    };
-  },
-  toSDK(message: FileDescriptorProto): FileDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.package = message.package;
-    if (message.dependency) {
-      obj.dependency = message.dependency.map(e => e);
-    } else {
-      obj.dependency = [];
-    }
-    if (message.publicDependency) {
-      obj.public_dependency = message.publicDependency.map(e => e);
-    } else {
-      obj.public_dependency = [];
-    }
-    if (message.weakDependency) {
-      obj.weak_dependency = message.weakDependency.map(e => e);
-    } else {
-      obj.weak_dependency = [];
-    }
-    if (message.messageType) {
-      obj.message_type = message.messageType.map(e => e ? DescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.message_type = [];
-    }
-    if (message.enumType) {
-      obj.enum_type = message.enumType.map(e => e ? EnumDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.enum_type = [];
-    }
-    if (message.service) {
-      obj.service = message.service.map(e => e ? ServiceDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.service = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? FileOptions.toSDK(message.options) : undefined);
-    message.sourceCodeInfo !== undefined && (obj.source_code_info = message.sourceCodeInfo ? SourceCodeInfo.toSDK(message.sourceCodeInfo) : undefined);
-    obj.syntax = message.syntax;
-    return obj;
-  },
-  fromAmino(object: FileDescriptorProtoAmino): FileDescriptorProto {
-    return {
-      name: object.name,
-      package: object.package,
-      dependency: Array.isArray(object?.dependency) ? object.dependency.map((e: any) => e) : [],
-      publicDependency: Array.isArray(object?.public_dependency) ? object.public_dependency.map((e: any) => e) : [],
-      weakDependency: Array.isArray(object?.weak_dependency) ? object.weak_dependency.map((e: any) => e) : [],
-      messageType: Array.isArray(object?.message_type) ? object.message_type.map((e: any) => DescriptorProto.fromAmino(e)) : [],
-      enumType: Array.isArray(object?.enum_type) ? object.enum_type.map((e: any) => EnumDescriptorProto.fromAmino(e)) : [],
-      service: Array.isArray(object?.service) ? object.service.map((e: any) => ServiceDescriptorProto.fromAmino(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromAmino(e)) : [],
-      options: object?.options ? FileOptions.fromAmino(object.options) : undefined,
-      sourceCodeInfo: object?.source_code_info ? SourceCodeInfo.fromAmino(object.source_code_info) : undefined,
-      syntax: object.syntax
-    };
-  },
-  toAmino(message: FileDescriptorProto): FileDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.package = message.package;
-    if (message.dependency) {
-      obj.dependency = message.dependency.map(e => e);
-    } else {
-      obj.dependency = [];
-    }
-    if (message.publicDependency) {
-      obj.public_dependency = message.publicDependency.map(e => e);
-    } else {
-      obj.public_dependency = [];
-    }
-    if (message.weakDependency) {
-      obj.weak_dependency = message.weakDependency.map(e => e);
-    } else {
-      obj.weak_dependency = [];
-    }
-    if (message.messageType) {
-      obj.message_type = message.messageType.map(e => e ? DescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.message_type = [];
-    }
-    if (message.enumType) {
-      obj.enum_type = message.enumType.map(e => e ? EnumDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.enum_type = [];
-    }
-    if (message.service) {
-      obj.service = message.service.map(e => e ? ServiceDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.service = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    obj.options = message.options ? FileOptions.toAmino(message.options) : undefined;
-    obj.source_code_info = message.sourceCodeInfo ? SourceCodeInfo.toAmino(message.sourceCodeInfo) : undefined;
-    obj.syntax = message.syntax;
-    return obj;
-  },
-  fromAminoMsg(object: FileDescriptorProtoAminoMsg): FileDescriptorProto {
-    return FileDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: FileDescriptorProtoProtoMsg): FileDescriptorProto {
-    return FileDescriptorProto.decode(message.value);
-  },
-  toProto(message: FileDescriptorProto): Uint8Array {
-    return FileDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: FileDescriptorProto): FileDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.FileDescriptorProto",
-      value: FileDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseDescriptorProto(): DescriptorProto {
-  return {
-    name: "",
-    field: [],
-    extension: [],
-    nestedType: [],
-    enumType: [],
-    extensionRange: [],
-    oneofDecl: [],
-    options: MessageOptions.fromPartial({}),
-    reservedRange: [],
-    reservedName: []
-  };
-}
-export const DescriptorProto = {
-  typeUrl: "/google.protobuf.DescriptorProto",
-  encode(message: DescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    for (const v of message.field) {
-      FieldDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.extension) {
-      FieldDescriptorProto.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.nestedType) {
-      DescriptorProto.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.enumType) {
-      EnumDescriptorProto.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.extensionRange) {
-      DescriptorProto_ExtensionRange.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.oneofDecl) {
-      OneofDescriptorProto.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.options !== undefined) {
-      MessageOptions.encode(message.options, writer.uint32(58).fork()).ldelim();
-    }
-    for (const v of message.reservedRange) {
-      DescriptorProto_ReservedRange.encode(v!, writer.uint32(74).fork()).ldelim();
-    }
-    for (const v of message.reservedName) {
-      writer.uint32(82).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.field.push(FieldDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.extension.push(FieldDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.nestedType.push(DescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.enumType.push(EnumDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.extensionRange.push(DescriptorProto_ExtensionRange.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.oneofDecl.push(OneofDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.options = MessageOptions.decode(reader, reader.uint32());
-          break;
-        case 9:
-          message.reservedRange.push(DescriptorProto_ReservedRange.decode(reader, reader.uint32()));
-          break;
-        case 10:
-          message.reservedName.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      field: Array.isArray(object?.field) ? object.field.map((e: any) => FieldDescriptorProto.fromJSON(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromJSON(e)) : [],
-      nestedType: Array.isArray(object?.nestedType) ? object.nestedType.map((e: any) => DescriptorProto.fromJSON(e)) : [],
-      enumType: Array.isArray(object?.enumType) ? object.enumType.map((e: any) => EnumDescriptorProto.fromJSON(e)) : [],
-      extensionRange: Array.isArray(object?.extensionRange) ? object.extensionRange.map((e: any) => DescriptorProto_ExtensionRange.fromJSON(e)) : [],
-      oneofDecl: Array.isArray(object?.oneofDecl) ? object.oneofDecl.map((e: any) => OneofDescriptorProto.fromJSON(e)) : [],
-      options: isSet(object.options) ? MessageOptions.fromJSON(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reservedRange) ? object.reservedRange.map((e: any) => DescriptorProto_ReservedRange.fromJSON(e)) : [],
-      reservedName: Array.isArray(object?.reservedName) ? object.reservedName.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: DescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    if (message.field) {
-      obj.field = message.field.map(e => e ? FieldDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.field = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    if (message.nestedType) {
-      obj.nestedType = message.nestedType.map(e => e ? DescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.nestedType = [];
-    }
-    if (message.enumType) {
-      obj.enumType = message.enumType.map(e => e ? EnumDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.enumType = [];
-    }
-    if (message.extensionRange) {
-      obj.extensionRange = message.extensionRange.map(e => e ? DescriptorProto_ExtensionRange.toJSON(e) : undefined);
-    } else {
-      obj.extensionRange = [];
-    }
-    if (message.oneofDecl) {
-      obj.oneofDecl = message.oneofDecl.map(e => e ? OneofDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.oneofDecl = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? MessageOptions.toJSON(message.options) : undefined);
-    if (message.reservedRange) {
-      obj.reservedRange = message.reservedRange.map(e => e ? DescriptorProto_ReservedRange.toJSON(e) : undefined);
-    } else {
-      obj.reservedRange = [];
-    }
-    if (message.reservedName) {
-      obj.reservedName = message.reservedName.map(e => e);
-    } else {
-      obj.reservedName = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DescriptorProto>): DescriptorProto {
-    const message = createBaseDescriptorProto();
-    message.name = object.name ?? "";
-    message.field = object.field?.map(e => FieldDescriptorProto.fromPartial(e)) || [];
-    message.extension = object.extension?.map(e => FieldDescriptorProto.fromPartial(e)) || [];
-    message.nestedType = object.nestedType?.map(e => DescriptorProto.fromPartial(e)) || [];
-    message.enumType = object.enumType?.map(e => EnumDescriptorProto.fromPartial(e)) || [];
-    message.extensionRange = object.extensionRange?.map(e => DescriptorProto_ExtensionRange.fromPartial(e)) || [];
-    message.oneofDecl = object.oneofDecl?.map(e => OneofDescriptorProto.fromPartial(e)) || [];
-    message.options = object.options !== undefined && object.options !== null ? MessageOptions.fromPartial(object.options) : undefined;
-    message.reservedRange = object.reservedRange?.map(e => DescriptorProto_ReservedRange.fromPartial(e)) || [];
-    message.reservedName = object.reservedName?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: DescriptorProtoSDKType): DescriptorProto {
-    return {
-      name: object?.name,
-      field: Array.isArray(object?.field) ? object.field.map((e: any) => FieldDescriptorProto.fromSDK(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromSDK(e)) : [],
-      nestedType: Array.isArray(object?.nested_type) ? object.nested_type.map((e: any) => DescriptorProto.fromSDK(e)) : [],
-      enumType: Array.isArray(object?.enum_type) ? object.enum_type.map((e: any) => EnumDescriptorProto.fromSDK(e)) : [],
-      extensionRange: Array.isArray(object?.extension_range) ? object.extension_range.map((e: any) => DescriptorProto_ExtensionRange.fromSDK(e)) : [],
-      oneofDecl: Array.isArray(object?.oneof_decl) ? object.oneof_decl.map((e: any) => OneofDescriptorProto.fromSDK(e)) : [],
-      options: object.options ? MessageOptions.fromSDK(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reserved_range) ? object.reserved_range.map((e: any) => DescriptorProto_ReservedRange.fromSDK(e)) : [],
-      reservedName: Array.isArray(object?.reserved_name) ? object.reserved_name.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: DescriptorProto): DescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.field) {
-      obj.field = message.field.map(e => e ? FieldDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.field = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    if (message.nestedType) {
-      obj.nested_type = message.nestedType.map(e => e ? DescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.nested_type = [];
-    }
-    if (message.enumType) {
-      obj.enum_type = message.enumType.map(e => e ? EnumDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.enum_type = [];
-    }
-    if (message.extensionRange) {
-      obj.extension_range = message.extensionRange.map(e => e ? DescriptorProto_ExtensionRange.toSDK(e) : undefined);
-    } else {
-      obj.extension_range = [];
-    }
-    if (message.oneofDecl) {
-      obj.oneof_decl = message.oneofDecl.map(e => e ? OneofDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.oneof_decl = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? MessageOptions.toSDK(message.options) : undefined);
-    if (message.reservedRange) {
-      obj.reserved_range = message.reservedRange.map(e => e ? DescriptorProto_ReservedRange.toSDK(e) : undefined);
-    } else {
-      obj.reserved_range = [];
-    }
-    if (message.reservedName) {
-      obj.reserved_name = message.reservedName.map(e => e);
-    } else {
-      obj.reserved_name = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DescriptorProtoAmino): DescriptorProto {
-    return {
-      name: object.name,
-      field: Array.isArray(object?.field) ? object.field.map((e: any) => FieldDescriptorProto.fromAmino(e)) : [],
-      extension: Array.isArray(object?.extension) ? object.extension.map((e: any) => FieldDescriptorProto.fromAmino(e)) : [],
-      nestedType: Array.isArray(object?.nested_type) ? object.nested_type.map((e: any) => DescriptorProto.fromAmino(e)) : [],
-      enumType: Array.isArray(object?.enum_type) ? object.enum_type.map((e: any) => EnumDescriptorProto.fromAmino(e)) : [],
-      extensionRange: Array.isArray(object?.extension_range) ? object.extension_range.map((e: any) => DescriptorProto_ExtensionRange.fromAmino(e)) : [],
-      oneofDecl: Array.isArray(object?.oneof_decl) ? object.oneof_decl.map((e: any) => OneofDescriptorProto.fromAmino(e)) : [],
-      options: object?.options ? MessageOptions.fromAmino(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reserved_range) ? object.reserved_range.map((e: any) => DescriptorProto_ReservedRange.fromAmino(e)) : [],
-      reservedName: Array.isArray(object?.reserved_name) ? object.reserved_name.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: DescriptorProto): DescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.field) {
-      obj.field = message.field.map(e => e ? FieldDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.field = [];
-    }
-    if (message.extension) {
-      obj.extension = message.extension.map(e => e ? FieldDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.extension = [];
-    }
-    if (message.nestedType) {
-      obj.nested_type = message.nestedType.map(e => e ? DescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.nested_type = [];
-    }
-    if (message.enumType) {
-      obj.enum_type = message.enumType.map(e => e ? EnumDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.enum_type = [];
-    }
-    if (message.extensionRange) {
-      obj.extension_range = message.extensionRange.map(e => e ? DescriptorProto_ExtensionRange.toAmino(e) : undefined);
-    } else {
-      obj.extension_range = [];
-    }
-    if (message.oneofDecl) {
-      obj.oneof_decl = message.oneofDecl.map(e => e ? OneofDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.oneof_decl = [];
-    }
-    obj.options = message.options ? MessageOptions.toAmino(message.options) : undefined;
-    if (message.reservedRange) {
-      obj.reserved_range = message.reservedRange.map(e => e ? DescriptorProto_ReservedRange.toAmino(e) : undefined);
-    } else {
-      obj.reserved_range = [];
-    }
-    if (message.reservedName) {
-      obj.reserved_name = message.reservedName.map(e => e);
-    } else {
-      obj.reserved_name = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DescriptorProtoAminoMsg): DescriptorProto {
-    return DescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DescriptorProtoProtoMsg): DescriptorProto {
-    return DescriptorProto.decode(message.value);
-  },
-  toProto(message: DescriptorProto): Uint8Array {
-    return DescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: DescriptorProto): DescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.DescriptorProto",
-      value: DescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseDescriptorProto_ExtensionRange(): DescriptorProto_ExtensionRange {
-  return {
-    start: 0,
-    end: 0,
-    options: ExtensionRangeOptions.fromPartial({})
-  };
-}
-export const DescriptorProto_ExtensionRange = {
-  typeUrl: "/google.protobuf.ExtensionRange",
-  encode(message: DescriptorProto_ExtensionRange, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.start !== 0) {
-      writer.uint32(8).int32(message.start);
-    }
-    if (message.end !== 0) {
-      writer.uint32(16).int32(message.end);
-    }
-    if (message.options !== undefined) {
-      ExtensionRangeOptions.encode(message.options, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DescriptorProto_ExtensionRange {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDescriptorProto_ExtensionRange();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.start = reader.int32();
-          break;
-        case 2:
-          message.end = reader.int32();
-          break;
-        case 3:
-          message.options = ExtensionRangeOptions.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DescriptorProto_ExtensionRange {
-    return {
-      start: isSet(object.start) ? Number(object.start) : 0,
-      end: isSet(object.end) ? Number(object.end) : 0,
-      options: isSet(object.options) ? ExtensionRangeOptions.fromJSON(object.options) : undefined
-    };
-  },
-  toJSON(message: DescriptorProto_ExtensionRange): unknown {
-    const obj: any = {};
-    message.start !== undefined && (obj.start = Math.round(message.start));
-    message.end !== undefined && (obj.end = Math.round(message.end));
-    message.options !== undefined && (obj.options = message.options ? ExtensionRangeOptions.toJSON(message.options) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DescriptorProto_ExtensionRange>): DescriptorProto_ExtensionRange {
-    const message = createBaseDescriptorProto_ExtensionRange();
-    message.start = object.start ?? 0;
-    message.end = object.end ?? 0;
-    message.options = object.options !== undefined && object.options !== null ? ExtensionRangeOptions.fromPartial(object.options) : undefined;
-    return message;
-  },
-  fromSDK(object: DescriptorProto_ExtensionRangeSDKType): DescriptorProto_ExtensionRange {
-    return {
-      start: object?.start,
-      end: object?.end,
-      options: object.options ? ExtensionRangeOptions.fromSDK(object.options) : undefined
-    };
-  },
-  toSDK(message: DescriptorProto_ExtensionRange): DescriptorProto_ExtensionRangeSDKType {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    message.options !== undefined && (obj.options = message.options ? ExtensionRangeOptions.toSDK(message.options) : undefined);
-    return obj;
-  },
-  fromAmino(object: DescriptorProto_ExtensionRangeAmino): DescriptorProto_ExtensionRange {
-    return {
-      start: object.start,
-      end: object.end,
-      options: object?.options ? ExtensionRangeOptions.fromAmino(object.options) : undefined
-    };
-  },
-  toAmino(message: DescriptorProto_ExtensionRange): DescriptorProto_ExtensionRangeAmino {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    obj.options = message.options ? ExtensionRangeOptions.toAmino(message.options) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: DescriptorProto_ExtensionRangeAminoMsg): DescriptorProto_ExtensionRange {
-    return DescriptorProto_ExtensionRange.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DescriptorProto_ExtensionRangeProtoMsg): DescriptorProto_ExtensionRange {
-    return DescriptorProto_ExtensionRange.decode(message.value);
-  },
-  toProto(message: DescriptorProto_ExtensionRange): Uint8Array {
-    return DescriptorProto_ExtensionRange.encode(message).finish();
-  },
-  toProtoMsg(message: DescriptorProto_ExtensionRange): DescriptorProto_ExtensionRangeProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.ExtensionRange",
-      value: DescriptorProto_ExtensionRange.encode(message).finish()
-    };
-  }
-};
-function createBaseDescriptorProto_ReservedRange(): DescriptorProto_ReservedRange {
-  return {
-    start: 0,
-    end: 0
-  };
-}
-export const DescriptorProto_ReservedRange = {
-  typeUrl: "/google.protobuf.ReservedRange",
-  encode(message: DescriptorProto_ReservedRange, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.start !== 0) {
-      writer.uint32(8).int32(message.start);
-    }
-    if (message.end !== 0) {
-      writer.uint32(16).int32(message.end);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DescriptorProto_ReservedRange {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDescriptorProto_ReservedRange();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.start = reader.int32();
-          break;
-        case 2:
-          message.end = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DescriptorProto_ReservedRange {
-    return {
-      start: isSet(object.start) ? Number(object.start) : 0,
-      end: isSet(object.end) ? Number(object.end) : 0
-    };
-  },
-  toJSON(message: DescriptorProto_ReservedRange): unknown {
-    const obj: any = {};
-    message.start !== undefined && (obj.start = Math.round(message.start));
-    message.end !== undefined && (obj.end = Math.round(message.end));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DescriptorProto_ReservedRange>): DescriptorProto_ReservedRange {
-    const message = createBaseDescriptorProto_ReservedRange();
-    message.start = object.start ?? 0;
-    message.end = object.end ?? 0;
-    return message;
-  },
-  fromSDK(object: DescriptorProto_ReservedRangeSDKType): DescriptorProto_ReservedRange {
-    return {
-      start: object?.start,
-      end: object?.end
-    };
-  },
-  toSDK(message: DescriptorProto_ReservedRange): DescriptorProto_ReservedRangeSDKType {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAmino(object: DescriptorProto_ReservedRangeAmino): DescriptorProto_ReservedRange {
-    return {
-      start: object.start,
-      end: object.end
-    };
-  },
-  toAmino(message: DescriptorProto_ReservedRange): DescriptorProto_ReservedRangeAmino {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAminoMsg(object: DescriptorProto_ReservedRangeAminoMsg): DescriptorProto_ReservedRange {
-    return DescriptorProto_ReservedRange.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DescriptorProto_ReservedRangeProtoMsg): DescriptorProto_ReservedRange {
-    return DescriptorProto_ReservedRange.decode(message.value);
-  },
-  toProto(message: DescriptorProto_ReservedRange): Uint8Array {
-    return DescriptorProto_ReservedRange.encode(message).finish();
-  },
-  toProtoMsg(message: DescriptorProto_ReservedRange): DescriptorProto_ReservedRangeProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.ReservedRange",
-      value: DescriptorProto_ReservedRange.encode(message).finish()
-    };
-  }
-};
-function createBaseExtensionRangeOptions(): ExtensionRangeOptions {
-  return {
-    uninterpretedOption: []
-  };
-}
-export const ExtensionRangeOptions = {
-  typeUrl: "/google.protobuf.ExtensionRangeOptions",
-  encode(message: ExtensionRangeOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ExtensionRangeOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseExtensionRangeOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ExtensionRangeOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ExtensionRangeOptions): unknown {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ExtensionRangeOptions>): ExtensionRangeOptions {
-    const message = createBaseExtensionRangeOptions();
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ExtensionRangeOptionsSDKType): ExtensionRangeOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ExtensionRangeOptions): ExtensionRangeOptionsSDKType {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ExtensionRangeOptionsAmino): ExtensionRangeOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ExtensionRangeOptions): ExtensionRangeOptionsAmino {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ExtensionRangeOptionsAminoMsg): ExtensionRangeOptions {
-    return ExtensionRangeOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ExtensionRangeOptionsProtoMsg): ExtensionRangeOptions {
-    return ExtensionRangeOptions.decode(message.value);
-  },
-  toProto(message: ExtensionRangeOptions): Uint8Array {
-    return ExtensionRangeOptions.encode(message).finish();
-  },
-  toProtoMsg(message: ExtensionRangeOptions): ExtensionRangeOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.ExtensionRangeOptions",
-      value: ExtensionRangeOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseFieldDescriptorProto(): FieldDescriptorProto {
-  return {
-    name: "",
-    number: 0,
-    label: 1,
-    type: 1,
-    typeName: "",
-    extendee: "",
-    defaultValue: "",
-    oneofIndex: 0,
-    jsonName: "",
-    options: FieldOptions.fromPartial({})
-  };
-}
-export const FieldDescriptorProto = {
-  typeUrl: "/google.protobuf.FieldDescriptorProto",
-  encode(message: FieldDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.number !== 0) {
-      writer.uint32(24).int32(message.number);
-    }
-    if (message.label !== 1) {
-      writer.uint32(32).int32(message.label);
-    }
-    if (message.type !== 1) {
-      writer.uint32(40).int32(message.type);
-    }
-    if (message.typeName !== "") {
-      writer.uint32(50).string(message.typeName);
-    }
-    if (message.extendee !== "") {
-      writer.uint32(18).string(message.extendee);
-    }
-    if (message.defaultValue !== "") {
-      writer.uint32(58).string(message.defaultValue);
-    }
-    if (message.oneofIndex !== 0) {
-      writer.uint32(72).int32(message.oneofIndex);
-    }
-    if (message.jsonName !== "") {
-      writer.uint32(82).string(message.jsonName);
-    }
-    if (message.options !== undefined) {
-      FieldOptions.encode(message.options, writer.uint32(66).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FieldDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFieldDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 3:
-          message.number = reader.int32();
-          break;
-        case 4:
-          message.label = (reader.int32() as any);
-          break;
-        case 5:
-          message.type = (reader.int32() as any);
-          break;
-        case 6:
-          message.typeName = reader.string();
-          break;
-        case 2:
-          message.extendee = reader.string();
-          break;
-        case 7:
-          message.defaultValue = reader.string();
-          break;
-        case 9:
-          message.oneofIndex = reader.int32();
-          break;
-        case 10:
-          message.jsonName = reader.string();
-          break;
-        case 8:
-          message.options = FieldOptions.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FieldDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      number: isSet(object.number) ? Number(object.number) : 0,
-      label: isSet(object.label) ? fieldDescriptorProto_LabelFromJSON(object.label) : -1,
-      type: isSet(object.type) ? fieldDescriptorProto_TypeFromJSON(object.type) : -1,
-      typeName: isSet(object.typeName) ? String(object.typeName) : "",
-      extendee: isSet(object.extendee) ? String(object.extendee) : "",
-      defaultValue: isSet(object.defaultValue) ? String(object.defaultValue) : "",
-      oneofIndex: isSet(object.oneofIndex) ? Number(object.oneofIndex) : 0,
-      jsonName: isSet(object.jsonName) ? String(object.jsonName) : "",
-      options: isSet(object.options) ? FieldOptions.fromJSON(object.options) : undefined
-    };
-  },
-  toJSON(message: FieldDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.number !== undefined && (obj.number = Math.round(message.number));
-    message.label !== undefined && (obj.label = fieldDescriptorProto_LabelToJSON(message.label));
-    message.type !== undefined && (obj.type = fieldDescriptorProto_TypeToJSON(message.type));
-    message.typeName !== undefined && (obj.typeName = message.typeName);
-    message.extendee !== undefined && (obj.extendee = message.extendee);
-    message.defaultValue !== undefined && (obj.defaultValue = message.defaultValue);
-    message.oneofIndex !== undefined && (obj.oneofIndex = Math.round(message.oneofIndex));
-    message.jsonName !== undefined && (obj.jsonName = message.jsonName);
-    message.options !== undefined && (obj.options = message.options ? FieldOptions.toJSON(message.options) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FieldDescriptorProto>): FieldDescriptorProto {
-    const message = createBaseFieldDescriptorProto();
-    message.name = object.name ?? "";
-    message.number = object.number ?? 0;
-    message.label = object.label ?? 1;
-    message.type = object.type ?? 1;
-    message.typeName = object.typeName ?? "";
-    message.extendee = object.extendee ?? "";
-    message.defaultValue = object.defaultValue ?? "";
-    message.oneofIndex = object.oneofIndex ?? 0;
-    message.jsonName = object.jsonName ?? "";
-    message.options = object.options !== undefined && object.options !== null ? FieldOptions.fromPartial(object.options) : undefined;
-    return message;
-  },
-  fromSDK(object: FieldDescriptorProtoSDKType): FieldDescriptorProto {
-    return {
-      name: object?.name,
-      number: object?.number,
-      label: isSet(object.label) ? fieldDescriptorProto_LabelFromJSON(object.label) : -1,
-      type: isSet(object.type) ? fieldDescriptorProto_TypeFromJSON(object.type) : -1,
-      typeName: object?.type_name,
-      extendee: object?.extendee,
-      defaultValue: object?.default_value,
-      oneofIndex: object?.oneof_index,
-      jsonName: object?.json_name,
-      options: object.options ? FieldOptions.fromSDK(object.options) : undefined
-    };
-  },
-  toSDK(message: FieldDescriptorProto): FieldDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    message.label !== undefined && (obj.label = fieldDescriptorProto_LabelToJSON(message.label));
-    message.type !== undefined && (obj.type = fieldDescriptorProto_TypeToJSON(message.type));
-    obj.type_name = message.typeName;
-    obj.extendee = message.extendee;
-    obj.default_value = message.defaultValue;
-    obj.oneof_index = message.oneofIndex;
-    obj.json_name = message.jsonName;
-    message.options !== undefined && (obj.options = message.options ? FieldOptions.toSDK(message.options) : undefined);
-    return obj;
-  },
-  fromAmino(object: FieldDescriptorProtoAmino): FieldDescriptorProto {
-    return {
-      name: object.name,
-      number: object.number,
-      label: isSet(object.label) ? fieldDescriptorProto_LabelFromJSON(object.label) : -1,
-      type: isSet(object.type) ? fieldDescriptorProto_TypeFromJSON(object.type) : -1,
-      typeName: object.type_name,
-      extendee: object.extendee,
-      defaultValue: object.default_value,
-      oneofIndex: object.oneof_index,
-      jsonName: object.json_name,
-      options: object?.options ? FieldOptions.fromAmino(object.options) : undefined
-    };
-  },
-  toAmino(message: FieldDescriptorProto): FieldDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    obj.label = message.label;
-    obj.type = message.type;
-    obj.type_name = message.typeName;
-    obj.extendee = message.extendee;
-    obj.default_value = message.defaultValue;
-    obj.oneof_index = message.oneofIndex;
-    obj.json_name = message.jsonName;
-    obj.options = message.options ? FieldOptions.toAmino(message.options) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: FieldDescriptorProtoAminoMsg): FieldDescriptorProto {
-    return FieldDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: FieldDescriptorProtoProtoMsg): FieldDescriptorProto {
-    return FieldDescriptorProto.decode(message.value);
-  },
-  toProto(message: FieldDescriptorProto): Uint8Array {
-    return FieldDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: FieldDescriptorProto): FieldDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.FieldDescriptorProto",
-      value: FieldDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseOneofDescriptorProto(): OneofDescriptorProto {
-  return {
-    name: "",
-    options: OneofOptions.fromPartial({})
-  };
-}
-export const OneofDescriptorProto = {
-  typeUrl: "/google.protobuf.OneofDescriptorProto",
-  encode(message: OneofDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.options !== undefined) {
-      OneofOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): OneofDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseOneofDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.options = OneofOptions.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): OneofDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      options: isSet(object.options) ? OneofOptions.fromJSON(object.options) : undefined
-    };
-  },
-  toJSON(message: OneofDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.options !== undefined && (obj.options = message.options ? OneofOptions.toJSON(message.options) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<OneofDescriptorProto>): OneofDescriptorProto {
-    const message = createBaseOneofDescriptorProto();
-    message.name = object.name ?? "";
-    message.options = object.options !== undefined && object.options !== null ? OneofOptions.fromPartial(object.options) : undefined;
-    return message;
-  },
-  fromSDK(object: OneofDescriptorProtoSDKType): OneofDescriptorProto {
-    return {
-      name: object?.name,
-      options: object.options ? OneofOptions.fromSDK(object.options) : undefined
-    };
-  },
-  toSDK(message: OneofDescriptorProto): OneofDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    message.options !== undefined && (obj.options = message.options ? OneofOptions.toSDK(message.options) : undefined);
-    return obj;
-  },
-  fromAmino(object: OneofDescriptorProtoAmino): OneofDescriptorProto {
-    return {
-      name: object.name,
-      options: object?.options ? OneofOptions.fromAmino(object.options) : undefined
-    };
-  },
-  toAmino(message: OneofDescriptorProto): OneofDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.options = message.options ? OneofOptions.toAmino(message.options) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: OneofDescriptorProtoAminoMsg): OneofDescriptorProto {
-    return OneofDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: OneofDescriptorProtoProtoMsg): OneofDescriptorProto {
-    return OneofDescriptorProto.decode(message.value);
-  },
-  toProto(message: OneofDescriptorProto): Uint8Array {
-    return OneofDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: OneofDescriptorProto): OneofDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.OneofDescriptorProto",
-      value: OneofDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseEnumDescriptorProto(): EnumDescriptorProto {
-  return {
-    name: "",
-    value: [],
-    options: EnumOptions.fromPartial({}),
-    reservedRange: [],
-    reservedName: []
-  };
-}
-export const EnumDescriptorProto = {
-  typeUrl: "/google.protobuf.EnumDescriptorProto",
-  encode(message: EnumDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    for (const v of message.value) {
-      EnumValueDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.options !== undefined) {
-      EnumOptions.encode(message.options, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.reservedRange) {
-      EnumDescriptorProto_EnumReservedRange.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.reservedName) {
-      writer.uint32(42).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EnumDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEnumDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.value.push(EnumValueDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.options = EnumOptions.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.reservedRange.push(EnumDescriptorProto_EnumReservedRange.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.reservedName.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EnumDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      value: Array.isArray(object?.value) ? object.value.map((e: any) => EnumValueDescriptorProto.fromJSON(e)) : [],
-      options: isSet(object.options) ? EnumOptions.fromJSON(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reservedRange) ? object.reservedRange.map((e: any) => EnumDescriptorProto_EnumReservedRange.fromJSON(e)) : [],
-      reservedName: Array.isArray(object?.reservedName) ? object.reservedName.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: EnumDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    if (message.value) {
-      obj.value = message.value.map(e => e ? EnumValueDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.value = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? EnumOptions.toJSON(message.options) : undefined);
-    if (message.reservedRange) {
-      obj.reservedRange = message.reservedRange.map(e => e ? EnumDescriptorProto_EnumReservedRange.toJSON(e) : undefined);
-    } else {
-      obj.reservedRange = [];
-    }
-    if (message.reservedName) {
-      obj.reservedName = message.reservedName.map(e => e);
-    } else {
-      obj.reservedName = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EnumDescriptorProto>): EnumDescriptorProto {
-    const message = createBaseEnumDescriptorProto();
-    message.name = object.name ?? "";
-    message.value = object.value?.map(e => EnumValueDescriptorProto.fromPartial(e)) || [];
-    message.options = object.options !== undefined && object.options !== null ? EnumOptions.fromPartial(object.options) : undefined;
-    message.reservedRange = object.reservedRange?.map(e => EnumDescriptorProto_EnumReservedRange.fromPartial(e)) || [];
-    message.reservedName = object.reservedName?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: EnumDescriptorProtoSDKType): EnumDescriptorProto {
-    return {
-      name: object?.name,
-      value: Array.isArray(object?.value) ? object.value.map((e: any) => EnumValueDescriptorProto.fromSDK(e)) : [],
-      options: object.options ? EnumOptions.fromSDK(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reserved_range) ? object.reserved_range.map((e: any) => EnumDescriptorProto_EnumReservedRange.fromSDK(e)) : [],
-      reservedName: Array.isArray(object?.reserved_name) ? object.reserved_name.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: EnumDescriptorProto): EnumDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.value) {
-      obj.value = message.value.map(e => e ? EnumValueDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.value = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? EnumOptions.toSDK(message.options) : undefined);
-    if (message.reservedRange) {
-      obj.reserved_range = message.reservedRange.map(e => e ? EnumDescriptorProto_EnumReservedRange.toSDK(e) : undefined);
-    } else {
-      obj.reserved_range = [];
-    }
-    if (message.reservedName) {
-      obj.reserved_name = message.reservedName.map(e => e);
-    } else {
-      obj.reserved_name = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EnumDescriptorProtoAmino): EnumDescriptorProto {
-    return {
-      name: object.name,
-      value: Array.isArray(object?.value) ? object.value.map((e: any) => EnumValueDescriptorProto.fromAmino(e)) : [],
-      options: object?.options ? EnumOptions.fromAmino(object.options) : undefined,
-      reservedRange: Array.isArray(object?.reserved_range) ? object.reserved_range.map((e: any) => EnumDescriptorProto_EnumReservedRange.fromAmino(e)) : [],
-      reservedName: Array.isArray(object?.reserved_name) ? object.reserved_name.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: EnumDescriptorProto): EnumDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.value) {
-      obj.value = message.value.map(e => e ? EnumValueDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.value = [];
-    }
-    obj.options = message.options ? EnumOptions.toAmino(message.options) : undefined;
-    if (message.reservedRange) {
-      obj.reserved_range = message.reservedRange.map(e => e ? EnumDescriptorProto_EnumReservedRange.toAmino(e) : undefined);
-    } else {
-      obj.reserved_range = [];
-    }
-    if (message.reservedName) {
-      obj.reserved_name = message.reservedName.map(e => e);
-    } else {
-      obj.reserved_name = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EnumDescriptorProtoAminoMsg): EnumDescriptorProto {
-    return EnumDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EnumDescriptorProtoProtoMsg): EnumDescriptorProto {
-    return EnumDescriptorProto.decode(message.value);
-  },
-  toProto(message: EnumDescriptorProto): Uint8Array {
-    return EnumDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: EnumDescriptorProto): EnumDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.EnumDescriptorProto",
-      value: EnumDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseEnumDescriptorProto_EnumReservedRange(): EnumDescriptorProto_EnumReservedRange {
-  return {
-    start: 0,
-    end: 0
-  };
-}
-export const EnumDescriptorProto_EnumReservedRange = {
-  typeUrl: "/google.protobuf.EnumReservedRange",
-  encode(message: EnumDescriptorProto_EnumReservedRange, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.start !== 0) {
-      writer.uint32(8).int32(message.start);
-    }
-    if (message.end !== 0) {
-      writer.uint32(16).int32(message.end);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EnumDescriptorProto_EnumReservedRange {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEnumDescriptorProto_EnumReservedRange();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.start = reader.int32();
-          break;
-        case 2:
-          message.end = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EnumDescriptorProto_EnumReservedRange {
-    return {
-      start: isSet(object.start) ? Number(object.start) : 0,
-      end: isSet(object.end) ? Number(object.end) : 0
-    };
-  },
-  toJSON(message: EnumDescriptorProto_EnumReservedRange): unknown {
-    const obj: any = {};
-    message.start !== undefined && (obj.start = Math.round(message.start));
-    message.end !== undefined && (obj.end = Math.round(message.end));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EnumDescriptorProto_EnumReservedRange>): EnumDescriptorProto_EnumReservedRange {
-    const message = createBaseEnumDescriptorProto_EnumReservedRange();
-    message.start = object.start ?? 0;
-    message.end = object.end ?? 0;
-    return message;
-  },
-  fromSDK(object: EnumDescriptorProto_EnumReservedRangeSDKType): EnumDescriptorProto_EnumReservedRange {
-    return {
-      start: object?.start,
-      end: object?.end
-    };
-  },
-  toSDK(message: EnumDescriptorProto_EnumReservedRange): EnumDescriptorProto_EnumReservedRangeSDKType {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAmino(object: EnumDescriptorProto_EnumReservedRangeAmino): EnumDescriptorProto_EnumReservedRange {
-    return {
-      start: object.start,
-      end: object.end
-    };
-  },
-  toAmino(message: EnumDescriptorProto_EnumReservedRange): EnumDescriptorProto_EnumReservedRangeAmino {
-    const obj: any = {};
-    obj.start = message.start;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAminoMsg(object: EnumDescriptorProto_EnumReservedRangeAminoMsg): EnumDescriptorProto_EnumReservedRange {
-    return EnumDescriptorProto_EnumReservedRange.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EnumDescriptorProto_EnumReservedRangeProtoMsg): EnumDescriptorProto_EnumReservedRange {
-    return EnumDescriptorProto_EnumReservedRange.decode(message.value);
-  },
-  toProto(message: EnumDescriptorProto_EnumReservedRange): Uint8Array {
-    return EnumDescriptorProto_EnumReservedRange.encode(message).finish();
-  },
-  toProtoMsg(message: EnumDescriptorProto_EnumReservedRange): EnumDescriptorProto_EnumReservedRangeProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.EnumReservedRange",
-      value: EnumDescriptorProto_EnumReservedRange.encode(message).finish()
-    };
-  }
-};
-function createBaseEnumValueDescriptorProto(): EnumValueDescriptorProto {
-  return {
-    name: "",
-    number: 0,
-    options: EnumValueOptions.fromPartial({})
-  };
-}
-export const EnumValueDescriptorProto = {
-  typeUrl: "/google.protobuf.EnumValueDescriptorProto",
-  encode(message: EnumValueDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.number !== 0) {
-      writer.uint32(16).int32(message.number);
-    }
-    if (message.options !== undefined) {
-      EnumValueOptions.encode(message.options, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EnumValueDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEnumValueDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.number = reader.int32();
-          break;
-        case 3:
-          message.options = EnumValueOptions.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EnumValueDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      number: isSet(object.number) ? Number(object.number) : 0,
-      options: isSet(object.options) ? EnumValueOptions.fromJSON(object.options) : undefined
-    };
-  },
-  toJSON(message: EnumValueDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.number !== undefined && (obj.number = Math.round(message.number));
-    message.options !== undefined && (obj.options = message.options ? EnumValueOptions.toJSON(message.options) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EnumValueDescriptorProto>): EnumValueDescriptorProto {
-    const message = createBaseEnumValueDescriptorProto();
-    message.name = object.name ?? "";
-    message.number = object.number ?? 0;
-    message.options = object.options !== undefined && object.options !== null ? EnumValueOptions.fromPartial(object.options) : undefined;
-    return message;
-  },
-  fromSDK(object: EnumValueDescriptorProtoSDKType): EnumValueDescriptorProto {
-    return {
-      name: object?.name,
-      number: object?.number,
-      options: object.options ? EnumValueOptions.fromSDK(object.options) : undefined
-    };
-  },
-  toSDK(message: EnumValueDescriptorProto): EnumValueDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    message.options !== undefined && (obj.options = message.options ? EnumValueOptions.toSDK(message.options) : undefined);
-    return obj;
-  },
-  fromAmino(object: EnumValueDescriptorProtoAmino): EnumValueDescriptorProto {
-    return {
-      name: object.name,
-      number: object.number,
-      options: object?.options ? EnumValueOptions.fromAmino(object.options) : undefined
-    };
-  },
-  toAmino(message: EnumValueDescriptorProto): EnumValueDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.number = message.number;
-    obj.options = message.options ? EnumValueOptions.toAmino(message.options) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EnumValueDescriptorProtoAminoMsg): EnumValueDescriptorProto {
-    return EnumValueDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EnumValueDescriptorProtoProtoMsg): EnumValueDescriptorProto {
-    return EnumValueDescriptorProto.decode(message.value);
-  },
-  toProto(message: EnumValueDescriptorProto): Uint8Array {
-    return EnumValueDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: EnumValueDescriptorProto): EnumValueDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.EnumValueDescriptorProto",
-      value: EnumValueDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseServiceDescriptorProto(): ServiceDescriptorProto {
-  return {
-    name: "",
-    method: [],
-    options: ServiceOptions.fromPartial({})
-  };
-}
-export const ServiceDescriptorProto = {
-  typeUrl: "/google.protobuf.ServiceDescriptorProto",
-  encode(message: ServiceDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    for (const v of message.method) {
-      MethodDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.options !== undefined) {
-      ServiceOptions.encode(message.options, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ServiceDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseServiceDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.method.push(MethodDescriptorProto.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.options = ServiceOptions.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ServiceDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      method: Array.isArray(object?.method) ? object.method.map((e: any) => MethodDescriptorProto.fromJSON(e)) : [],
-      options: isSet(object.options) ? ServiceOptions.fromJSON(object.options) : undefined
-    };
-  },
-  toJSON(message: ServiceDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    if (message.method) {
-      obj.method = message.method.map(e => e ? MethodDescriptorProto.toJSON(e) : undefined);
-    } else {
-      obj.method = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? ServiceOptions.toJSON(message.options) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ServiceDescriptorProto>): ServiceDescriptorProto {
-    const message = createBaseServiceDescriptorProto();
-    message.name = object.name ?? "";
-    message.method = object.method?.map(e => MethodDescriptorProto.fromPartial(e)) || [];
-    message.options = object.options !== undefined && object.options !== null ? ServiceOptions.fromPartial(object.options) : undefined;
-    return message;
-  },
-  fromSDK(object: ServiceDescriptorProtoSDKType): ServiceDescriptorProto {
-    return {
-      name: object?.name,
-      method: Array.isArray(object?.method) ? object.method.map((e: any) => MethodDescriptorProto.fromSDK(e)) : [],
-      options: object.options ? ServiceOptions.fromSDK(object.options) : undefined
-    };
-  },
-  toSDK(message: ServiceDescriptorProto): ServiceDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.method) {
-      obj.method = message.method.map(e => e ? MethodDescriptorProto.toSDK(e) : undefined);
-    } else {
-      obj.method = [];
-    }
-    message.options !== undefined && (obj.options = message.options ? ServiceOptions.toSDK(message.options) : undefined);
-    return obj;
-  },
-  fromAmino(object: ServiceDescriptorProtoAmino): ServiceDescriptorProto {
-    return {
-      name: object.name,
-      method: Array.isArray(object?.method) ? object.method.map((e: any) => MethodDescriptorProto.fromAmino(e)) : [],
-      options: object?.options ? ServiceOptions.fromAmino(object.options) : undefined
-    };
-  },
-  toAmino(message: ServiceDescriptorProto): ServiceDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    if (message.method) {
-      obj.method = message.method.map(e => e ? MethodDescriptorProto.toAmino(e) : undefined);
-    } else {
-      obj.method = [];
-    }
-    obj.options = message.options ? ServiceOptions.toAmino(message.options) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ServiceDescriptorProtoAminoMsg): ServiceDescriptorProto {
-    return ServiceDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ServiceDescriptorProtoProtoMsg): ServiceDescriptorProto {
-    return ServiceDescriptorProto.decode(message.value);
-  },
-  toProto(message: ServiceDescriptorProto): Uint8Array {
-    return ServiceDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: ServiceDescriptorProto): ServiceDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.ServiceDescriptorProto",
-      value: ServiceDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseMethodDescriptorProto(): MethodDescriptorProto {
-  return {
-    name: "",
-    inputType: "",
-    outputType: "",
-    options: MethodOptions.fromPartial({}),
-    clientStreaming: false,
-    serverStreaming: false
-  };
-}
-export const MethodDescriptorProto = {
-  typeUrl: "/google.protobuf.MethodDescriptorProto",
-  encode(message: MethodDescriptorProto, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.name !== "") {
-      writer.uint32(10).string(message.name);
-    }
-    if (message.inputType !== "") {
-      writer.uint32(18).string(message.inputType);
-    }
-    if (message.outputType !== "") {
-      writer.uint32(26).string(message.outputType);
-    }
-    if (message.options !== undefined) {
-      MethodOptions.encode(message.options, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.clientStreaming === true) {
-      writer.uint32(40).bool(message.clientStreaming);
-    }
-    if (message.serverStreaming === true) {
-      writer.uint32(48).bool(message.serverStreaming);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MethodDescriptorProto {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMethodDescriptorProto();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.name = reader.string();
-          break;
-        case 2:
-          message.inputType = reader.string();
-          break;
-        case 3:
-          message.outputType = reader.string();
-          break;
-        case 4:
-          message.options = MethodOptions.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.clientStreaming = reader.bool();
-          break;
-        case 6:
-          message.serverStreaming = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MethodDescriptorProto {
-    return {
-      name: isSet(object.name) ? String(object.name) : "",
-      inputType: isSet(object.inputType) ? String(object.inputType) : "",
-      outputType: isSet(object.outputType) ? String(object.outputType) : "",
-      options: isSet(object.options) ? MethodOptions.fromJSON(object.options) : undefined,
-      clientStreaming: isSet(object.clientStreaming) ? Boolean(object.clientStreaming) : false,
-      serverStreaming: isSet(object.serverStreaming) ? Boolean(object.serverStreaming) : false
-    };
-  },
-  toJSON(message: MethodDescriptorProto): unknown {
-    const obj: any = {};
-    message.name !== undefined && (obj.name = message.name);
-    message.inputType !== undefined && (obj.inputType = message.inputType);
-    message.outputType !== undefined && (obj.outputType = message.outputType);
-    message.options !== undefined && (obj.options = message.options ? MethodOptions.toJSON(message.options) : undefined);
-    message.clientStreaming !== undefined && (obj.clientStreaming = message.clientStreaming);
-    message.serverStreaming !== undefined && (obj.serverStreaming = message.serverStreaming);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MethodDescriptorProto>): MethodDescriptorProto {
-    const message = createBaseMethodDescriptorProto();
-    message.name = object.name ?? "";
-    message.inputType = object.inputType ?? "";
-    message.outputType = object.outputType ?? "";
-    message.options = object.options !== undefined && object.options !== null ? MethodOptions.fromPartial(object.options) : undefined;
-    message.clientStreaming = object.clientStreaming ?? false;
-    message.serverStreaming = object.serverStreaming ?? false;
-    return message;
-  },
-  fromSDK(object: MethodDescriptorProtoSDKType): MethodDescriptorProto {
-    return {
-      name: object?.name,
-      inputType: object?.input_type,
-      outputType: object?.output_type,
-      options: object.options ? MethodOptions.fromSDK(object.options) : undefined,
-      clientStreaming: object?.client_streaming,
-      serverStreaming: object?.server_streaming
-    };
-  },
-  toSDK(message: MethodDescriptorProto): MethodDescriptorProtoSDKType {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.input_type = message.inputType;
-    obj.output_type = message.outputType;
-    message.options !== undefined && (obj.options = message.options ? MethodOptions.toSDK(message.options) : undefined);
-    obj.client_streaming = message.clientStreaming;
-    obj.server_streaming = message.serverStreaming;
-    return obj;
-  },
-  fromAmino(object: MethodDescriptorProtoAmino): MethodDescriptorProto {
-    return {
-      name: object.name,
-      inputType: object.input_type,
-      outputType: object.output_type,
-      options: object?.options ? MethodOptions.fromAmino(object.options) : undefined,
-      clientStreaming: object.client_streaming,
-      serverStreaming: object.server_streaming
-    };
-  },
-  toAmino(message: MethodDescriptorProto): MethodDescriptorProtoAmino {
-    const obj: any = {};
-    obj.name = message.name;
-    obj.input_type = message.inputType;
-    obj.output_type = message.outputType;
-    obj.options = message.options ? MethodOptions.toAmino(message.options) : undefined;
-    obj.client_streaming = message.clientStreaming;
-    obj.server_streaming = message.serverStreaming;
-    return obj;
-  },
-  fromAminoMsg(object: MethodDescriptorProtoAminoMsg): MethodDescriptorProto {
-    return MethodDescriptorProto.fromAmino(object.value);
-  },
-  fromProtoMsg(message: MethodDescriptorProtoProtoMsg): MethodDescriptorProto {
-    return MethodDescriptorProto.decode(message.value);
-  },
-  toProto(message: MethodDescriptorProto): Uint8Array {
-    return MethodDescriptorProto.encode(message).finish();
-  },
-  toProtoMsg(message: MethodDescriptorProto): MethodDescriptorProtoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.MethodDescriptorProto",
-      value: MethodDescriptorProto.encode(message).finish()
-    };
-  }
-};
-function createBaseFileOptions(): FileOptions {
-  return {
-    javaPackage: "",
-    javaOuterClassname: "",
-    javaMultipleFiles: false,
-    javaGenerateEqualsAndHash: false,
-    javaStringCheckUtf8: false,
-    optimizeFor: 1,
-    goPackage: "",
-    ccGenericServices: false,
-    javaGenericServices: false,
-    pyGenericServices: false,
-    phpGenericServices: false,
-    deprecated: false,
-    ccEnableArenas: false,
-    objcClassPrefix: "",
-    csharpNamespace: "",
-    swiftPrefix: "",
-    phpClassPrefix: "",
-    phpNamespace: "",
-    phpMetadataNamespace: "",
-    rubyPackage: "",
-    uninterpretedOption: []
-  };
-}
-export const FileOptions = {
-  typeUrl: "/google.protobuf.FileOptions",
-  encode(message: FileOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.javaPackage !== "") {
-      writer.uint32(10).string(message.javaPackage);
-    }
-    if (message.javaOuterClassname !== "") {
-      writer.uint32(66).string(message.javaOuterClassname);
-    }
-    if (message.javaMultipleFiles === true) {
-      writer.uint32(80).bool(message.javaMultipleFiles);
-    }
-    if (message.javaGenerateEqualsAndHash === true) {
-      writer.uint32(160).bool(message.javaGenerateEqualsAndHash);
-    }
-    if (message.javaStringCheckUtf8 === true) {
-      writer.uint32(216).bool(message.javaStringCheckUtf8);
-    }
-    if (message.optimizeFor !== 1) {
-      writer.uint32(72).int32(message.optimizeFor);
-    }
-    if (message.goPackage !== "") {
-      writer.uint32(90).string(message.goPackage);
-    }
-    if (message.ccGenericServices === true) {
-      writer.uint32(128).bool(message.ccGenericServices);
-    }
-    if (message.javaGenericServices === true) {
-      writer.uint32(136).bool(message.javaGenericServices);
-    }
-    if (message.pyGenericServices === true) {
-      writer.uint32(144).bool(message.pyGenericServices);
-    }
-    if (message.phpGenericServices === true) {
-      writer.uint32(336).bool(message.phpGenericServices);
-    }
-    if (message.deprecated === true) {
-      writer.uint32(184).bool(message.deprecated);
-    }
-    if (message.ccEnableArenas === true) {
-      writer.uint32(248).bool(message.ccEnableArenas);
-    }
-    if (message.objcClassPrefix !== "") {
-      writer.uint32(290).string(message.objcClassPrefix);
-    }
-    if (message.csharpNamespace !== "") {
-      writer.uint32(298).string(message.csharpNamespace);
-    }
-    if (message.swiftPrefix !== "") {
-      writer.uint32(314).string(message.swiftPrefix);
-    }
-    if (message.phpClassPrefix !== "") {
-      writer.uint32(322).string(message.phpClassPrefix);
-    }
-    if (message.phpNamespace !== "") {
-      writer.uint32(330).string(message.phpNamespace);
-    }
-    if (message.phpMetadataNamespace !== "") {
-      writer.uint32(354).string(message.phpMetadataNamespace);
-    }
-    if (message.rubyPackage !== "") {
-      writer.uint32(362).string(message.rubyPackage);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FileOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFileOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.javaPackage = reader.string();
-          break;
-        case 8:
-          message.javaOuterClassname = reader.string();
-          break;
-        case 10:
-          message.javaMultipleFiles = reader.bool();
-          break;
-        case 20:
-          message.javaGenerateEqualsAndHash = reader.bool();
-          break;
-        case 27:
-          message.javaStringCheckUtf8 = reader.bool();
-          break;
-        case 9:
-          message.optimizeFor = (reader.int32() as any);
-          break;
-        case 11:
-          message.goPackage = reader.string();
-          break;
-        case 16:
-          message.ccGenericServices = reader.bool();
-          break;
-        case 17:
-          message.javaGenericServices = reader.bool();
-          break;
-        case 18:
-          message.pyGenericServices = reader.bool();
-          break;
-        case 42:
-          message.phpGenericServices = reader.bool();
-          break;
-        case 23:
-          message.deprecated = reader.bool();
-          break;
-        case 31:
-          message.ccEnableArenas = reader.bool();
-          break;
-        case 36:
-          message.objcClassPrefix = reader.string();
-          break;
-        case 37:
-          message.csharpNamespace = reader.string();
-          break;
-        case 39:
-          message.swiftPrefix = reader.string();
-          break;
-        case 40:
-          message.phpClassPrefix = reader.string();
-          break;
-        case 41:
-          message.phpNamespace = reader.string();
-          break;
-        case 44:
-          message.phpMetadataNamespace = reader.string();
-          break;
-        case 45:
-          message.rubyPackage = reader.string();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FileOptions {
-    return {
-      javaPackage: isSet(object.javaPackage) ? String(object.javaPackage) : "",
-      javaOuterClassname: isSet(object.javaOuterClassname) ? String(object.javaOuterClassname) : "",
-      javaMultipleFiles: isSet(object.javaMultipleFiles) ? Boolean(object.javaMultipleFiles) : false,
-      javaGenerateEqualsAndHash: isSet(object.javaGenerateEqualsAndHash) ? Boolean(object.javaGenerateEqualsAndHash) : false,
-      javaStringCheckUtf8: isSet(object.javaStringCheckUtf8) ? Boolean(object.javaStringCheckUtf8) : false,
-      optimizeFor: isSet(object.optimizeFor) ? fileOptions_OptimizeModeFromJSON(object.optimizeFor) : -1,
-      goPackage: isSet(object.goPackage) ? String(object.goPackage) : "",
-      ccGenericServices: isSet(object.ccGenericServices) ? Boolean(object.ccGenericServices) : false,
-      javaGenericServices: isSet(object.javaGenericServices) ? Boolean(object.javaGenericServices) : false,
-      pyGenericServices: isSet(object.pyGenericServices) ? Boolean(object.pyGenericServices) : false,
-      phpGenericServices: isSet(object.phpGenericServices) ? Boolean(object.phpGenericServices) : false,
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      ccEnableArenas: isSet(object.ccEnableArenas) ? Boolean(object.ccEnableArenas) : false,
-      objcClassPrefix: isSet(object.objcClassPrefix) ? String(object.objcClassPrefix) : "",
-      csharpNamespace: isSet(object.csharpNamespace) ? String(object.csharpNamespace) : "",
-      swiftPrefix: isSet(object.swiftPrefix) ? String(object.swiftPrefix) : "",
-      phpClassPrefix: isSet(object.phpClassPrefix) ? String(object.phpClassPrefix) : "",
-      phpNamespace: isSet(object.phpNamespace) ? String(object.phpNamespace) : "",
-      phpMetadataNamespace: isSet(object.phpMetadataNamespace) ? String(object.phpMetadataNamespace) : "",
-      rubyPackage: isSet(object.rubyPackage) ? String(object.rubyPackage) : "",
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: FileOptions): unknown {
-    const obj: any = {};
-    message.javaPackage !== undefined && (obj.javaPackage = message.javaPackage);
-    message.javaOuterClassname !== undefined && (obj.javaOuterClassname = message.javaOuterClassname);
-    message.javaMultipleFiles !== undefined && (obj.javaMultipleFiles = message.javaMultipleFiles);
-    message.javaGenerateEqualsAndHash !== undefined && (obj.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash);
-    message.javaStringCheckUtf8 !== undefined && (obj.javaStringCheckUtf8 = message.javaStringCheckUtf8);
-    message.optimizeFor !== undefined && (obj.optimizeFor = fileOptions_OptimizeModeToJSON(message.optimizeFor));
-    message.goPackage !== undefined && (obj.goPackage = message.goPackage);
-    message.ccGenericServices !== undefined && (obj.ccGenericServices = message.ccGenericServices);
-    message.javaGenericServices !== undefined && (obj.javaGenericServices = message.javaGenericServices);
-    message.pyGenericServices !== undefined && (obj.pyGenericServices = message.pyGenericServices);
-    message.phpGenericServices !== undefined && (obj.phpGenericServices = message.phpGenericServices);
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    message.ccEnableArenas !== undefined && (obj.ccEnableArenas = message.ccEnableArenas);
-    message.objcClassPrefix !== undefined && (obj.objcClassPrefix = message.objcClassPrefix);
-    message.csharpNamespace !== undefined && (obj.csharpNamespace = message.csharpNamespace);
-    message.swiftPrefix !== undefined && (obj.swiftPrefix = message.swiftPrefix);
-    message.phpClassPrefix !== undefined && (obj.phpClassPrefix = message.phpClassPrefix);
-    message.phpNamespace !== undefined && (obj.phpNamespace = message.phpNamespace);
-    message.phpMetadataNamespace !== undefined && (obj.phpMetadataNamespace = message.phpMetadataNamespace);
-    message.rubyPackage !== undefined && (obj.rubyPackage = message.rubyPackage);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FileOptions>): FileOptions {
-    const message = createBaseFileOptions();
-    message.javaPackage = object.javaPackage ?? "";
-    message.javaOuterClassname = object.javaOuterClassname ?? "";
-    message.javaMultipleFiles = object.javaMultipleFiles ?? false;
-    message.javaGenerateEqualsAndHash = object.javaGenerateEqualsAndHash ?? false;
-    message.javaStringCheckUtf8 = object.javaStringCheckUtf8 ?? false;
-    message.optimizeFor = object.optimizeFor ?? 1;
-    message.goPackage = object.goPackage ?? "";
-    message.ccGenericServices = object.ccGenericServices ?? false;
-    message.javaGenericServices = object.javaGenericServices ?? false;
-    message.pyGenericServices = object.pyGenericServices ?? false;
-    message.phpGenericServices = object.phpGenericServices ?? false;
-    message.deprecated = object.deprecated ?? false;
-    message.ccEnableArenas = object.ccEnableArenas ?? false;
-    message.objcClassPrefix = object.objcClassPrefix ?? "";
-    message.csharpNamespace = object.csharpNamespace ?? "";
-    message.swiftPrefix = object.swiftPrefix ?? "";
-    message.phpClassPrefix = object.phpClassPrefix ?? "";
-    message.phpNamespace = object.phpNamespace ?? "";
-    message.phpMetadataNamespace = object.phpMetadataNamespace ?? "";
-    message.rubyPackage = object.rubyPackage ?? "";
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: FileOptionsSDKType): FileOptions {
-    return {
-      javaPackage: object?.java_package,
-      javaOuterClassname: object?.java_outer_classname,
-      javaMultipleFiles: object?.java_multiple_files,
-      javaGenerateEqualsAndHash: object?.java_generate_equals_and_hash,
-      javaStringCheckUtf8: object?.java_string_check_utf8,
-      optimizeFor: isSet(object.optimize_for) ? fileOptions_OptimizeModeFromJSON(object.optimize_for) : -1,
-      goPackage: object?.go_package,
-      ccGenericServices: object?.cc_generic_services,
-      javaGenericServices: object?.java_generic_services,
-      pyGenericServices: object?.py_generic_services,
-      phpGenericServices: object?.php_generic_services,
-      deprecated: object?.deprecated,
-      ccEnableArenas: object?.cc_enable_arenas,
-      objcClassPrefix: object?.objc_class_prefix,
-      csharpNamespace: object?.csharp_namespace,
-      swiftPrefix: object?.swift_prefix,
-      phpClassPrefix: object?.php_class_prefix,
-      phpNamespace: object?.php_namespace,
-      phpMetadataNamespace: object?.php_metadata_namespace,
-      rubyPackage: object?.ruby_package,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: FileOptions): FileOptionsSDKType {
-    const obj: any = {};
-    obj.java_package = message.javaPackage;
-    obj.java_outer_classname = message.javaOuterClassname;
-    obj.java_multiple_files = message.javaMultipleFiles;
-    obj.java_generate_equals_and_hash = message.javaGenerateEqualsAndHash;
-    obj.java_string_check_utf8 = message.javaStringCheckUtf8;
-    message.optimizeFor !== undefined && (obj.optimize_for = fileOptions_OptimizeModeToJSON(message.optimizeFor));
-    obj.go_package = message.goPackage;
-    obj.cc_generic_services = message.ccGenericServices;
-    obj.java_generic_services = message.javaGenericServices;
-    obj.py_generic_services = message.pyGenericServices;
-    obj.php_generic_services = message.phpGenericServices;
-    obj.deprecated = message.deprecated;
-    obj.cc_enable_arenas = message.ccEnableArenas;
-    obj.objc_class_prefix = message.objcClassPrefix;
-    obj.csharp_namespace = message.csharpNamespace;
-    obj.swift_prefix = message.swiftPrefix;
-    obj.php_class_prefix = message.phpClassPrefix;
-    obj.php_namespace = message.phpNamespace;
-    obj.php_metadata_namespace = message.phpMetadataNamespace;
-    obj.ruby_package = message.rubyPackage;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: FileOptionsAmino): FileOptions {
-    return {
-      javaPackage: object.java_package,
-      javaOuterClassname: object.java_outer_classname,
-      javaMultipleFiles: object.java_multiple_files,
-      javaGenerateEqualsAndHash: object.java_generate_equals_and_hash,
-      javaStringCheckUtf8: object.java_string_check_utf8,
-      optimizeFor: isSet(object.optimize_for) ? fileOptions_OptimizeModeFromJSON(object.optimize_for) : -1,
-      goPackage: object.go_package,
-      ccGenericServices: object.cc_generic_services,
-      javaGenericServices: object.java_generic_services,
-      pyGenericServices: object.py_generic_services,
-      phpGenericServices: object.php_generic_services,
-      deprecated: object.deprecated,
-      ccEnableArenas: object.cc_enable_arenas,
-      objcClassPrefix: object.objc_class_prefix,
-      csharpNamespace: object.csharp_namespace,
-      swiftPrefix: object.swift_prefix,
-      phpClassPrefix: object.php_class_prefix,
-      phpNamespace: object.php_namespace,
-      phpMetadataNamespace: object.php_metadata_namespace,
-      rubyPackage: object.ruby_package,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: FileOptions): FileOptionsAmino {
-    const obj: any = {};
-    obj.java_package = message.javaPackage;
-    obj.java_outer_classname = message.javaOuterClassname;
-    obj.java_multiple_files = message.javaMultipleFiles;
-    obj.java_generate_equals_and_hash = message.javaGenerateEqualsAndHash;
-    obj.java_string_check_utf8 = message.javaStringCheckUtf8;
-    obj.optimize_for = message.optimizeFor;
-    obj.go_package = message.goPackage;
-    obj.cc_generic_services = message.ccGenericServices;
-    obj.java_generic_services = message.javaGenericServices;
-    obj.py_generic_services = message.pyGenericServices;
-    obj.php_generic_services = message.phpGenericServices;
-    obj.deprecated = message.deprecated;
-    obj.cc_enable_arenas = message.ccEnableArenas;
-    obj.objc_class_prefix = message.objcClassPrefix;
-    obj.csharp_namespace = message.csharpNamespace;
-    obj.swift_prefix = message.swiftPrefix;
-    obj.php_class_prefix = message.phpClassPrefix;
-    obj.php_namespace = message.phpNamespace;
-    obj.php_metadata_namespace = message.phpMetadataNamespace;
-    obj.ruby_package = message.rubyPackage;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: FileOptionsAminoMsg): FileOptions {
-    return FileOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: FileOptionsProtoMsg): FileOptions {
-    return FileOptions.decode(message.value);
-  },
-  toProto(message: FileOptions): Uint8Array {
-    return FileOptions.encode(message).finish();
-  },
-  toProtoMsg(message: FileOptions): FileOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.FileOptions",
-      value: FileOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseMessageOptions(): MessageOptions {
-  return {
-    messageSetWireFormat: false,
-    noStandardDescriptorAccessor: false,
-    deprecated: false,
-    mapEntry: false,
-    uninterpretedOption: []
-  };
-}
-export const MessageOptions = {
-  typeUrl: "/google.protobuf.MessageOptions",
-  encode(message: MessageOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.messageSetWireFormat === true) {
-      writer.uint32(8).bool(message.messageSetWireFormat);
-    }
-    if (message.noStandardDescriptorAccessor === true) {
-      writer.uint32(16).bool(message.noStandardDescriptorAccessor);
-    }
-    if (message.deprecated === true) {
-      writer.uint32(24).bool(message.deprecated);
-    }
-    if (message.mapEntry === true) {
-      writer.uint32(56).bool(message.mapEntry);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MessageOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMessageOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.messageSetWireFormat = reader.bool();
-          break;
-        case 2:
-          message.noStandardDescriptorAccessor = reader.bool();
-          break;
-        case 3:
-          message.deprecated = reader.bool();
-          break;
-        case 7:
-          message.mapEntry = reader.bool();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MessageOptions {
-    return {
-      messageSetWireFormat: isSet(object.messageSetWireFormat) ? Boolean(object.messageSetWireFormat) : false,
-      noStandardDescriptorAccessor: isSet(object.noStandardDescriptorAccessor) ? Boolean(object.noStandardDescriptorAccessor) : false,
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      mapEntry: isSet(object.mapEntry) ? Boolean(object.mapEntry) : false,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MessageOptions): unknown {
-    const obj: any = {};
-    message.messageSetWireFormat !== undefined && (obj.messageSetWireFormat = message.messageSetWireFormat);
-    message.noStandardDescriptorAccessor !== undefined && (obj.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor);
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    message.mapEntry !== undefined && (obj.mapEntry = message.mapEntry);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MessageOptions>): MessageOptions {
-    const message = createBaseMessageOptions();
-    message.messageSetWireFormat = object.messageSetWireFormat ?? false;
-    message.noStandardDescriptorAccessor = object.noStandardDescriptorAccessor ?? false;
-    message.deprecated = object.deprecated ?? false;
-    message.mapEntry = object.mapEntry ?? false;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MessageOptionsSDKType): MessageOptions {
-    return {
-      messageSetWireFormat: object?.message_set_wire_format,
-      noStandardDescriptorAccessor: object?.no_standard_descriptor_accessor,
-      deprecated: object?.deprecated,
-      mapEntry: object?.map_entry,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MessageOptions): MessageOptionsSDKType {
-    const obj: any = {};
-    obj.message_set_wire_format = message.messageSetWireFormat;
-    obj.no_standard_descriptor_accessor = message.noStandardDescriptorAccessor;
-    obj.deprecated = message.deprecated;
-    obj.map_entry = message.mapEntry;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MessageOptionsAmino): MessageOptions {
-    return {
-      messageSetWireFormat: object.message_set_wire_format,
-      noStandardDescriptorAccessor: object.no_standard_descriptor_accessor,
-      deprecated: object.deprecated,
-      mapEntry: object.map_entry,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MessageOptions): MessageOptionsAmino {
-    const obj: any = {};
-    obj.message_set_wire_format = message.messageSetWireFormat;
-    obj.no_standard_descriptor_accessor = message.noStandardDescriptorAccessor;
-    obj.deprecated = message.deprecated;
-    obj.map_entry = message.mapEntry;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MessageOptionsAminoMsg): MessageOptions {
-    return MessageOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: MessageOptionsProtoMsg): MessageOptions {
-    return MessageOptions.decode(message.value);
-  },
-  toProto(message: MessageOptions): Uint8Array {
-    return MessageOptions.encode(message).finish();
-  },
-  toProtoMsg(message: MessageOptions): MessageOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.MessageOptions",
-      value: MessageOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseFieldOptions(): FieldOptions {
-  return {
-    ctype: 1,
-    packed: false,
-    jstype: 1,
-    lazy: false,
-    deprecated: false,
-    weak: false,
-    uninterpretedOption: []
-  };
-}
-export const FieldOptions = {
-  typeUrl: "/google.protobuf.FieldOptions",
-  encode(message: FieldOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.ctype !== 1) {
-      writer.uint32(8).int32(message.ctype);
-    }
-    if (message.packed === true) {
-      writer.uint32(16).bool(message.packed);
-    }
-    if (message.jstype !== 1) {
-      writer.uint32(48).int32(message.jstype);
-    }
-    if (message.lazy === true) {
-      writer.uint32(40).bool(message.lazy);
-    }
-    if (message.deprecated === true) {
-      writer.uint32(24).bool(message.deprecated);
-    }
-    if (message.weak === true) {
-      writer.uint32(80).bool(message.weak);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FieldOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFieldOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ctype = (reader.int32() as any);
-          break;
-        case 2:
-          message.packed = reader.bool();
-          break;
-        case 6:
-          message.jstype = (reader.int32() as any);
-          break;
-        case 5:
-          message.lazy = reader.bool();
-          break;
-        case 3:
-          message.deprecated = reader.bool();
-          break;
-        case 10:
-          message.weak = reader.bool();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FieldOptions {
-    return {
-      ctype: isSet(object.ctype) ? fieldOptions_CTypeFromJSON(object.ctype) : -1,
-      packed: isSet(object.packed) ? Boolean(object.packed) : false,
-      jstype: isSet(object.jstype) ? fieldOptions_JSTypeFromJSON(object.jstype) : -1,
-      lazy: isSet(object.lazy) ? Boolean(object.lazy) : false,
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      weak: isSet(object.weak) ? Boolean(object.weak) : false,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: FieldOptions): unknown {
-    const obj: any = {};
-    message.ctype !== undefined && (obj.ctype = fieldOptions_CTypeToJSON(message.ctype));
-    message.packed !== undefined && (obj.packed = message.packed);
-    message.jstype !== undefined && (obj.jstype = fieldOptions_JSTypeToJSON(message.jstype));
-    message.lazy !== undefined && (obj.lazy = message.lazy);
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    message.weak !== undefined && (obj.weak = message.weak);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FieldOptions>): FieldOptions {
-    const message = createBaseFieldOptions();
-    message.ctype = object.ctype ?? 1;
-    message.packed = object.packed ?? false;
-    message.jstype = object.jstype ?? 1;
-    message.lazy = object.lazy ?? false;
-    message.deprecated = object.deprecated ?? false;
-    message.weak = object.weak ?? false;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: FieldOptionsSDKType): FieldOptions {
-    return {
-      ctype: isSet(object.ctype) ? fieldOptions_CTypeFromJSON(object.ctype) : -1,
-      packed: object?.packed,
-      jstype: isSet(object.jstype) ? fieldOptions_JSTypeFromJSON(object.jstype) : -1,
-      lazy: object?.lazy,
-      deprecated: object?.deprecated,
-      weak: object?.weak,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: FieldOptions): FieldOptionsSDKType {
-    const obj: any = {};
-    message.ctype !== undefined && (obj.ctype = fieldOptions_CTypeToJSON(message.ctype));
-    obj.packed = message.packed;
-    message.jstype !== undefined && (obj.jstype = fieldOptions_JSTypeToJSON(message.jstype));
-    obj.lazy = message.lazy;
-    obj.deprecated = message.deprecated;
-    obj.weak = message.weak;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: FieldOptionsAmino): FieldOptions {
-    return {
-      ctype: isSet(object.ctype) ? fieldOptions_CTypeFromJSON(object.ctype) : -1,
-      packed: object.packed,
-      jstype: isSet(object.jstype) ? fieldOptions_JSTypeFromJSON(object.jstype) : -1,
-      lazy: object.lazy,
-      deprecated: object.deprecated,
-      weak: object.weak,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: FieldOptions): FieldOptionsAmino {
-    const obj: any = {};
-    obj.ctype = message.ctype;
-    obj.packed = message.packed;
-    obj.jstype = message.jstype;
-    obj.lazy = message.lazy;
-    obj.deprecated = message.deprecated;
-    obj.weak = message.weak;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: FieldOptionsAminoMsg): FieldOptions {
-    return FieldOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: FieldOptionsProtoMsg): FieldOptions {
-    return FieldOptions.decode(message.value);
-  },
-  toProto(message: FieldOptions): Uint8Array {
-    return FieldOptions.encode(message).finish();
-  },
-  toProtoMsg(message: FieldOptions): FieldOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.FieldOptions",
-      value: FieldOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseOneofOptions(): OneofOptions {
-  return {
-    uninterpretedOption: []
-  };
-}
-export const OneofOptions = {
-  typeUrl: "/google.protobuf.OneofOptions",
-  encode(message: OneofOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): OneofOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseOneofOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): OneofOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: OneofOptions): unknown {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<OneofOptions>): OneofOptions {
-    const message = createBaseOneofOptions();
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: OneofOptionsSDKType): OneofOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: OneofOptions): OneofOptionsSDKType {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: OneofOptionsAmino): OneofOptions {
-    return {
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: OneofOptions): OneofOptionsAmino {
-    const obj: any = {};
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: OneofOptionsAminoMsg): OneofOptions {
-    return OneofOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: OneofOptionsProtoMsg): OneofOptions {
-    return OneofOptions.decode(message.value);
-  },
-  toProto(message: OneofOptions): Uint8Array {
-    return OneofOptions.encode(message).finish();
-  },
-  toProtoMsg(message: OneofOptions): OneofOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.OneofOptions",
-      value: OneofOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseEnumOptions(): EnumOptions {
-  return {
-    allowAlias: false,
-    deprecated: false,
-    uninterpretedOption: []
-  };
-}
-export const EnumOptions = {
-  typeUrl: "/google.protobuf.EnumOptions",
-  encode(message: EnumOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.allowAlias === true) {
-      writer.uint32(16).bool(message.allowAlias);
-    }
-    if (message.deprecated === true) {
-      writer.uint32(24).bool(message.deprecated);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EnumOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEnumOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.allowAlias = reader.bool();
-          break;
-        case 3:
-          message.deprecated = reader.bool();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EnumOptions {
-    return {
-      allowAlias: isSet(object.allowAlias) ? Boolean(object.allowAlias) : false,
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: EnumOptions): unknown {
-    const obj: any = {};
-    message.allowAlias !== undefined && (obj.allowAlias = message.allowAlias);
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EnumOptions>): EnumOptions {
-    const message = createBaseEnumOptions();
-    message.allowAlias = object.allowAlias ?? false;
-    message.deprecated = object.deprecated ?? false;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EnumOptionsSDKType): EnumOptions {
-    return {
-      allowAlias: object?.allow_alias,
-      deprecated: object?.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: EnumOptions): EnumOptionsSDKType {
-    const obj: any = {};
-    obj.allow_alias = message.allowAlias;
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EnumOptionsAmino): EnumOptions {
-    return {
-      allowAlias: object.allow_alias,
-      deprecated: object.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: EnumOptions): EnumOptionsAmino {
-    const obj: any = {};
-    obj.allow_alias = message.allowAlias;
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EnumOptionsAminoMsg): EnumOptions {
-    return EnumOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EnumOptionsProtoMsg): EnumOptions {
-    return EnumOptions.decode(message.value);
-  },
-  toProto(message: EnumOptions): Uint8Array {
-    return EnumOptions.encode(message).finish();
-  },
-  toProtoMsg(message: EnumOptions): EnumOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.EnumOptions",
-      value: EnumOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseEnumValueOptions(): EnumValueOptions {
-  return {
-    deprecated: false,
-    uninterpretedOption: []
-  };
-}
-export const EnumValueOptions = {
-  typeUrl: "/google.protobuf.EnumValueOptions",
-  encode(message: EnumValueOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.deprecated === true) {
-      writer.uint32(8).bool(message.deprecated);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EnumValueOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEnumValueOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.deprecated = reader.bool();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EnumValueOptions {
-    return {
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: EnumValueOptions): unknown {
-    const obj: any = {};
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EnumValueOptions>): EnumValueOptions {
-    const message = createBaseEnumValueOptions();
-    message.deprecated = object.deprecated ?? false;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EnumValueOptionsSDKType): EnumValueOptions {
-    return {
-      deprecated: object?.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: EnumValueOptions): EnumValueOptionsSDKType {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EnumValueOptionsAmino): EnumValueOptions {
-    return {
-      deprecated: object.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: EnumValueOptions): EnumValueOptionsAmino {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EnumValueOptionsAminoMsg): EnumValueOptions {
-    return EnumValueOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EnumValueOptionsProtoMsg): EnumValueOptions {
-    return EnumValueOptions.decode(message.value);
-  },
-  toProto(message: EnumValueOptions): Uint8Array {
-    return EnumValueOptions.encode(message).finish();
-  },
-  toProtoMsg(message: EnumValueOptions): EnumValueOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.EnumValueOptions",
-      value: EnumValueOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseServiceOptions(): ServiceOptions {
-  return {
-    deprecated: false,
-    uninterpretedOption: []
-  };
-}
-export const ServiceOptions = {
-  typeUrl: "/google.protobuf.ServiceOptions",
-  encode(message: ServiceOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.deprecated === true) {
-      writer.uint32(264).bool(message.deprecated);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ServiceOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseServiceOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 33:
-          message.deprecated = reader.bool();
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ServiceOptions {
-    return {
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ServiceOptions): unknown {
-    const obj: any = {};
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ServiceOptions>): ServiceOptions {
-    const message = createBaseServiceOptions();
-    message.deprecated = object.deprecated ?? false;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ServiceOptionsSDKType): ServiceOptions {
-    return {
-      deprecated: object?.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ServiceOptions): ServiceOptionsSDKType {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ServiceOptionsAmino): ServiceOptions {
-    return {
-      deprecated: object.deprecated,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ServiceOptions): ServiceOptionsAmino {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ServiceOptionsAminoMsg): ServiceOptions {
-    return ServiceOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ServiceOptionsProtoMsg): ServiceOptions {
-    return ServiceOptions.decode(message.value);
-  },
-  toProto(message: ServiceOptions): Uint8Array {
-    return ServiceOptions.encode(message).finish();
-  },
-  toProtoMsg(message: ServiceOptions): ServiceOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.ServiceOptions",
-      value: ServiceOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseMethodOptions(): MethodOptions {
-  return {
-    deprecated: false,
-    idempotencyLevel: 1,
-    uninterpretedOption: []
-  };
-}
-export const MethodOptions = {
-  typeUrl: "/google.protobuf.MethodOptions",
-  encode(message: MethodOptions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.deprecated === true) {
-      writer.uint32(264).bool(message.deprecated);
-    }
-    if (message.idempotencyLevel !== 1) {
-      writer.uint32(272).int32(message.idempotencyLevel);
-    }
-    for (const v of message.uninterpretedOption) {
-      UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MethodOptions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMethodOptions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 33:
-          message.deprecated = reader.bool();
-          break;
-        case 34:
-          message.idempotencyLevel = (reader.int32() as any);
-          break;
-        case 999:
-          message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MethodOptions {
-    return {
-      deprecated: isSet(object.deprecated) ? Boolean(object.deprecated) : false,
-      idempotencyLevel: isSet(object.idempotencyLevel) ? methodOptions_IdempotencyLevelFromJSON(object.idempotencyLevel) : -1,
-      uninterpretedOption: Array.isArray(object?.uninterpretedOption) ? object.uninterpretedOption.map((e: any) => UninterpretedOption.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MethodOptions): unknown {
-    const obj: any = {};
-    message.deprecated !== undefined && (obj.deprecated = message.deprecated);
-    message.idempotencyLevel !== undefined && (obj.idempotencyLevel = methodOptions_IdempotencyLevelToJSON(message.idempotencyLevel));
-    if (message.uninterpretedOption) {
-      obj.uninterpretedOption = message.uninterpretedOption.map(e => e ? UninterpretedOption.toJSON(e) : undefined);
-    } else {
-      obj.uninterpretedOption = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MethodOptions>): MethodOptions {
-    const message = createBaseMethodOptions();
-    message.deprecated = object.deprecated ?? false;
-    message.idempotencyLevel = object.idempotencyLevel ?? 1;
-    message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MethodOptionsSDKType): MethodOptions {
-    return {
-      deprecated: object?.deprecated,
-      idempotencyLevel: isSet(object.idempotency_level) ? methodOptions_IdempotencyLevelFromJSON(object.idempotency_level) : -1,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MethodOptions): MethodOptionsSDKType {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    message.idempotencyLevel !== undefined && (obj.idempotency_level = methodOptions_IdempotencyLevelToJSON(message.idempotencyLevel));
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toSDK(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MethodOptionsAmino): MethodOptions {
-    return {
-      deprecated: object.deprecated,
-      idempotencyLevel: isSet(object.idempotency_level) ? methodOptions_IdempotencyLevelFromJSON(object.idempotency_level) : -1,
-      uninterpretedOption: Array.isArray(object?.uninterpreted_option) ? object.uninterpreted_option.map((e: any) => UninterpretedOption.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MethodOptions): MethodOptionsAmino {
-    const obj: any = {};
-    obj.deprecated = message.deprecated;
-    obj.idempotency_level = message.idempotencyLevel;
-    if (message.uninterpretedOption) {
-      obj.uninterpreted_option = message.uninterpretedOption.map(e => e ? UninterpretedOption.toAmino(e) : undefined);
-    } else {
-      obj.uninterpreted_option = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MethodOptionsAminoMsg): MethodOptions {
-    return MethodOptions.fromAmino(object.value);
-  },
-  fromProtoMsg(message: MethodOptionsProtoMsg): MethodOptions {
-    return MethodOptions.decode(message.value);
-  },
-  toProto(message: MethodOptions): Uint8Array {
-    return MethodOptions.encode(message).finish();
-  },
-  toProtoMsg(message: MethodOptions): MethodOptionsProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.MethodOptions",
-      value: MethodOptions.encode(message).finish()
-    };
-  }
-};
-function createBaseUninterpretedOption(): UninterpretedOption {
-  return {
-    name: [],
-    identifierValue: "",
-    positiveIntValue: BigInt(0),
-    negativeIntValue: BigInt(0),
-    doubleValue: 0,
-    stringValue: new Uint8Array(),
-    aggregateValue: ""
-  };
-}
-export const UninterpretedOption = {
-  typeUrl: "/google.protobuf.UninterpretedOption",
-  encode(message: UninterpretedOption, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.name) {
-      UninterpretedOption_NamePart.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.identifierValue !== "") {
-      writer.uint32(26).string(message.identifierValue);
-    }
-    if (message.positiveIntValue !== BigInt(0)) {
-      writer.uint32(32).uint64(message.positiveIntValue);
-    }
-    if (message.negativeIntValue !== BigInt(0)) {
-      writer.uint32(40).int64(message.negativeIntValue);
-    }
-    if (message.doubleValue !== 0) {
-      writer.uint32(49).double(message.doubleValue);
-    }
-    if (message.stringValue.length !== 0) {
-      writer.uint32(58).bytes(message.stringValue);
-    }
-    if (message.aggregateValue !== "") {
-      writer.uint32(66).string(message.aggregateValue);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UninterpretedOption {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUninterpretedOption();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.name.push(UninterpretedOption_NamePart.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.identifierValue = reader.string();
-          break;
-        case 4:
-          message.positiveIntValue = reader.uint64();
-          break;
-        case 5:
-          message.negativeIntValue = reader.int64();
-          break;
-        case 6:
-          message.doubleValue = reader.double();
-          break;
-        case 7:
-          message.stringValue = reader.bytes();
-          break;
-        case 8:
-          message.aggregateValue = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UninterpretedOption {
-    return {
-      name: Array.isArray(object?.name) ? object.name.map((e: any) => UninterpretedOption_NamePart.fromJSON(e)) : [],
-      identifierValue: isSet(object.identifierValue) ? String(object.identifierValue) : "",
-      positiveIntValue: isSet(object.positiveIntValue) ? BigInt(object.positiveIntValue.toString()) : BigInt(0),
-      negativeIntValue: isSet(object.negativeIntValue) ? BigInt(object.negativeIntValue.toString()) : BigInt(0),
-      doubleValue: isSet(object.doubleValue) ? Number(object.doubleValue) : 0,
-      stringValue: isSet(object.stringValue) ? bytesFromBase64(object.stringValue) : new Uint8Array(),
-      aggregateValue: isSet(object.aggregateValue) ? String(object.aggregateValue) : ""
-    };
-  },
-  toJSON(message: UninterpretedOption): unknown {
-    const obj: any = {};
-    if (message.name) {
-      obj.name = message.name.map(e => e ? UninterpretedOption_NamePart.toJSON(e) : undefined);
-    } else {
-      obj.name = [];
-    }
-    message.identifierValue !== undefined && (obj.identifierValue = message.identifierValue);
-    message.positiveIntValue !== undefined && (obj.positiveIntValue = (message.positiveIntValue || BigInt(0)).toString());
-    message.negativeIntValue !== undefined && (obj.negativeIntValue = (message.negativeIntValue || BigInt(0)).toString());
-    message.doubleValue !== undefined && (obj.doubleValue = message.doubleValue);
-    message.stringValue !== undefined && (obj.stringValue = base64FromBytes(message.stringValue !== undefined ? message.stringValue : new Uint8Array()));
-    message.aggregateValue !== undefined && (obj.aggregateValue = message.aggregateValue);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UninterpretedOption>): UninterpretedOption {
-    const message = createBaseUninterpretedOption();
-    message.name = object.name?.map(e => UninterpretedOption_NamePart.fromPartial(e)) || [];
-    message.identifierValue = object.identifierValue ?? "";
-    message.positiveIntValue = object.positiveIntValue !== undefined && object.positiveIntValue !== null ? BigInt(object.positiveIntValue.toString()) : BigInt(0);
-    message.negativeIntValue = object.negativeIntValue !== undefined && object.negativeIntValue !== null ? BigInt(object.negativeIntValue.toString()) : BigInt(0);
-    message.doubleValue = object.doubleValue ?? 0;
-    message.stringValue = object.stringValue ?? new Uint8Array();
-    message.aggregateValue = object.aggregateValue ?? "";
-    return message;
-  },
-  fromSDK(object: UninterpretedOptionSDKType): UninterpretedOption {
-    return {
-      name: Array.isArray(object?.name) ? object.name.map((e: any) => UninterpretedOption_NamePart.fromSDK(e)) : [],
-      identifierValue: object?.identifier_value,
-      positiveIntValue: object?.positive_int_value,
-      negativeIntValue: object?.negative_int_value,
-      doubleValue: object?.double_value,
-      stringValue: object?.string_value,
-      aggregateValue: object?.aggregate_value
-    };
-  },
-  toSDK(message: UninterpretedOption): UninterpretedOptionSDKType {
-    const obj: any = {};
-    if (message.name) {
-      obj.name = message.name.map(e => e ? UninterpretedOption_NamePart.toSDK(e) : undefined);
-    } else {
-      obj.name = [];
-    }
-    obj.identifier_value = message.identifierValue;
-    obj.positive_int_value = message.positiveIntValue;
-    obj.negative_int_value = message.negativeIntValue;
-    obj.double_value = message.doubleValue;
-    obj.string_value = message.stringValue;
-    obj.aggregate_value = message.aggregateValue;
-    return obj;
-  },
-  fromAmino(object: UninterpretedOptionAmino): UninterpretedOption {
-    return {
-      name: Array.isArray(object?.name) ? object.name.map((e: any) => UninterpretedOption_NamePart.fromAmino(e)) : [],
-      identifierValue: object.identifier_value,
-      positiveIntValue: BigInt(object.positive_int_value),
-      negativeIntValue: BigInt(object.negative_int_value),
-      doubleValue: object.double_value,
-      stringValue: object.string_value,
-      aggregateValue: object.aggregate_value
-    };
-  },
-  toAmino(message: UninterpretedOption): UninterpretedOptionAmino {
-    const obj: any = {};
-    if (message.name) {
-      obj.name = message.name.map(e => e ? UninterpretedOption_NamePart.toAmino(e) : undefined);
-    } else {
-      obj.name = [];
-    }
-    obj.identifier_value = message.identifierValue;
-    obj.positive_int_value = message.positiveIntValue ? message.positiveIntValue.toString() : undefined;
-    obj.negative_int_value = message.negativeIntValue ? message.negativeIntValue.toString() : undefined;
-    obj.double_value = message.doubleValue;
-    obj.string_value = message.stringValue;
-    obj.aggregate_value = message.aggregateValue;
-    return obj;
-  },
-  fromAminoMsg(object: UninterpretedOptionAminoMsg): UninterpretedOption {
-    return UninterpretedOption.fromAmino(object.value);
-  },
-  fromProtoMsg(message: UninterpretedOptionProtoMsg): UninterpretedOption {
-    return UninterpretedOption.decode(message.value);
-  },
-  toProto(message: UninterpretedOption): Uint8Array {
-    return UninterpretedOption.encode(message).finish();
-  },
-  toProtoMsg(message: UninterpretedOption): UninterpretedOptionProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.UninterpretedOption",
-      value: UninterpretedOption.encode(message).finish()
-    };
-  }
-};
-function createBaseUninterpretedOption_NamePart(): UninterpretedOption_NamePart {
-  return {
-    namePart: "",
-    isExtension: false
-  };
-}
-export const UninterpretedOption_NamePart = {
-  typeUrl: "/google.protobuf.NamePart",
-  encode(message: UninterpretedOption_NamePart, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.namePart !== "") {
-      writer.uint32(10).string(message.namePart);
-    }
-    if (message.isExtension === true) {
-      writer.uint32(16).bool(message.isExtension);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UninterpretedOption_NamePart {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUninterpretedOption_NamePart();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.namePart = reader.string();
-          break;
-        case 2:
-          message.isExtension = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UninterpretedOption_NamePart {
-    return {
-      namePart: isSet(object.namePart) ? String(object.namePart) : "",
-      isExtension: isSet(object.isExtension) ? Boolean(object.isExtension) : false
-    };
-  },
-  toJSON(message: UninterpretedOption_NamePart): unknown {
-    const obj: any = {};
-    message.namePart !== undefined && (obj.namePart = message.namePart);
-    message.isExtension !== undefined && (obj.isExtension = message.isExtension);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UninterpretedOption_NamePart>): UninterpretedOption_NamePart {
-    const message = createBaseUninterpretedOption_NamePart();
-    message.namePart = object.namePart ?? "";
-    message.isExtension = object.isExtension ?? false;
-    return message;
-  },
-  fromSDK(object: UninterpretedOption_NamePartSDKType): UninterpretedOption_NamePart {
-    return {
-      namePart: object?.name_part,
-      isExtension: object?.is_extension
-    };
-  },
-  toSDK(message: UninterpretedOption_NamePart): UninterpretedOption_NamePartSDKType {
-    const obj: any = {};
-    obj.name_part = message.namePart;
-    obj.is_extension = message.isExtension;
-    return obj;
-  },
-  fromAmino(object: UninterpretedOption_NamePartAmino): UninterpretedOption_NamePart {
-    return {
-      namePart: object.name_part,
-      isExtension: object.is_extension
-    };
-  },
-  toAmino(message: UninterpretedOption_NamePart): UninterpretedOption_NamePartAmino {
-    const obj: any = {};
-    obj.name_part = message.namePart;
-    obj.is_extension = message.isExtension;
-    return obj;
-  },
-  fromAminoMsg(object: UninterpretedOption_NamePartAminoMsg): UninterpretedOption_NamePart {
-    return UninterpretedOption_NamePart.fromAmino(object.value);
-  },
-  fromProtoMsg(message: UninterpretedOption_NamePartProtoMsg): UninterpretedOption_NamePart {
-    return UninterpretedOption_NamePart.decode(message.value);
-  },
-  toProto(message: UninterpretedOption_NamePart): Uint8Array {
-    return UninterpretedOption_NamePart.encode(message).finish();
-  },
-  toProtoMsg(message: UninterpretedOption_NamePart): UninterpretedOption_NamePartProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.NamePart",
-      value: UninterpretedOption_NamePart.encode(message).finish()
-    };
-  }
-};
-function createBaseSourceCodeInfo(): SourceCodeInfo {
-  return {
-    location: []
-  };
-}
-export const SourceCodeInfo = {
-  typeUrl: "/google.protobuf.SourceCodeInfo",
-  encode(message: SourceCodeInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.location) {
-      SourceCodeInfo_Location.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SourceCodeInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSourceCodeInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.location.push(SourceCodeInfo_Location.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SourceCodeInfo {
-    return {
-      location: Array.isArray(object?.location) ? object.location.map((e: any) => SourceCodeInfo_Location.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SourceCodeInfo): unknown {
-    const obj: any = {};
-    if (message.location) {
-      obj.location = message.location.map(e => e ? SourceCodeInfo_Location.toJSON(e) : undefined);
-    } else {
-      obj.location = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SourceCodeInfo>): SourceCodeInfo {
-    const message = createBaseSourceCodeInfo();
-    message.location = object.location?.map(e => SourceCodeInfo_Location.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SourceCodeInfoSDKType): SourceCodeInfo {
-    return {
-      location: Array.isArray(object?.location) ? object.location.map((e: any) => SourceCodeInfo_Location.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SourceCodeInfo): SourceCodeInfoSDKType {
-    const obj: any = {};
-    if (message.location) {
-      obj.location = message.location.map(e => e ? SourceCodeInfo_Location.toSDK(e) : undefined);
-    } else {
-      obj.location = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SourceCodeInfoAmino): SourceCodeInfo {
-    return {
-      location: Array.isArray(object?.location) ? object.location.map((e: any) => SourceCodeInfo_Location.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SourceCodeInfo): SourceCodeInfoAmino {
-    const obj: any = {};
-    if (message.location) {
-      obj.location = message.location.map(e => e ? SourceCodeInfo_Location.toAmino(e) : undefined);
-    } else {
-      obj.location = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SourceCodeInfoAminoMsg): SourceCodeInfo {
-    return SourceCodeInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: SourceCodeInfoProtoMsg): SourceCodeInfo {
-    return SourceCodeInfo.decode(message.value);
-  },
-  toProto(message: SourceCodeInfo): Uint8Array {
-    return SourceCodeInfo.encode(message).finish();
-  },
-  toProtoMsg(message: SourceCodeInfo): SourceCodeInfoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.SourceCodeInfo",
-      value: SourceCodeInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseSourceCodeInfo_Location(): SourceCodeInfo_Location {
-  return {
-    path: [],
-    span: [],
-    leadingComments: "",
-    trailingComments: "",
-    leadingDetachedComments: []
-  };
-}
-export const SourceCodeInfo_Location = {
-  typeUrl: "/google.protobuf.Location",
-  encode(message: SourceCodeInfo_Location, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.path) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    writer.uint32(18).fork();
-    for (const v of message.span) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    if (message.leadingComments !== "") {
-      writer.uint32(26).string(message.leadingComments);
-    }
-    if (message.trailingComments !== "") {
-      writer.uint32(34).string(message.trailingComments);
-    }
-    for (const v of message.leadingDetachedComments) {
-      writer.uint32(50).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SourceCodeInfo_Location {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSourceCodeInfo_Location();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.path.push(reader.int32());
-            }
-          } else {
-            message.path.push(reader.int32());
-          }
-          break;
-        case 2:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.span.push(reader.int32());
-            }
-          } else {
-            message.span.push(reader.int32());
-          }
-          break;
-        case 3:
-          message.leadingComments = reader.string();
-          break;
-        case 4:
-          message.trailingComments = reader.string();
-          break;
-        case 6:
-          message.leadingDetachedComments.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SourceCodeInfo_Location {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => Number(e)) : [],
-      span: Array.isArray(object?.span) ? object.span.map((e: any) => Number(e)) : [],
-      leadingComments: isSet(object.leadingComments) ? String(object.leadingComments) : "",
-      trailingComments: isSet(object.trailingComments) ? String(object.trailingComments) : "",
-      leadingDetachedComments: Array.isArray(object?.leadingDetachedComments) ? object.leadingDetachedComments.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: SourceCodeInfo_Location): unknown {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => Math.round(e));
-    } else {
-      obj.path = [];
-    }
-    if (message.span) {
-      obj.span = message.span.map(e => Math.round(e));
-    } else {
-      obj.span = [];
-    }
-    message.leadingComments !== undefined && (obj.leadingComments = message.leadingComments);
-    message.trailingComments !== undefined && (obj.trailingComments = message.trailingComments);
-    if (message.leadingDetachedComments) {
-      obj.leadingDetachedComments = message.leadingDetachedComments.map(e => e);
-    } else {
-      obj.leadingDetachedComments = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SourceCodeInfo_Location>): SourceCodeInfo_Location {
-    const message = createBaseSourceCodeInfo_Location();
-    message.path = object.path?.map(e => e) || [];
-    message.span = object.span?.map(e => e) || [];
-    message.leadingComments = object.leadingComments ?? "";
-    message.trailingComments = object.trailingComments ?? "";
-    message.leadingDetachedComments = object.leadingDetachedComments?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: SourceCodeInfo_LocationSDKType): SourceCodeInfo_Location {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : [],
-      span: Array.isArray(object?.span) ? object.span.map((e: any) => e) : [],
-      leadingComments: object?.leading_comments,
-      trailingComments: object?.trailing_comments,
-      leadingDetachedComments: Array.isArray(object?.leading_detached_comments) ? object.leading_detached_comments.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: SourceCodeInfo_Location): SourceCodeInfo_LocationSDKType {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    if (message.span) {
-      obj.span = message.span.map(e => e);
-    } else {
-      obj.span = [];
-    }
-    obj.leading_comments = message.leadingComments;
-    obj.trailing_comments = message.trailingComments;
-    if (message.leadingDetachedComments) {
-      obj.leading_detached_comments = message.leadingDetachedComments.map(e => e);
-    } else {
-      obj.leading_detached_comments = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SourceCodeInfo_LocationAmino): SourceCodeInfo_Location {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : [],
-      span: Array.isArray(object?.span) ? object.span.map((e: any) => e) : [],
-      leadingComments: object.leading_comments,
-      trailingComments: object.trailing_comments,
-      leadingDetachedComments: Array.isArray(object?.leading_detached_comments) ? object.leading_detached_comments.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: SourceCodeInfo_Location): SourceCodeInfo_LocationAmino {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    if (message.span) {
-      obj.span = message.span.map(e => e);
-    } else {
-      obj.span = [];
-    }
-    obj.leading_comments = message.leadingComments;
-    obj.trailing_comments = message.trailingComments;
-    if (message.leadingDetachedComments) {
-      obj.leading_detached_comments = message.leadingDetachedComments.map(e => e);
-    } else {
-      obj.leading_detached_comments = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SourceCodeInfo_LocationAminoMsg): SourceCodeInfo_Location {
-    return SourceCodeInfo_Location.fromAmino(object.value);
-  },
-  fromProtoMsg(message: SourceCodeInfo_LocationProtoMsg): SourceCodeInfo_Location {
-    return SourceCodeInfo_Location.decode(message.value);
-  },
-  toProto(message: SourceCodeInfo_Location): Uint8Array {
-    return SourceCodeInfo_Location.encode(message).finish();
-  },
-  toProtoMsg(message: SourceCodeInfo_Location): SourceCodeInfo_LocationProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Location",
-      value: SourceCodeInfo_Location.encode(message).finish()
-    };
-  }
-};
-function createBaseGeneratedCodeInfo(): GeneratedCodeInfo {
-  return {
-    annotation: []
-  };
-}
-export const GeneratedCodeInfo = {
-  typeUrl: "/google.protobuf.GeneratedCodeInfo",
-  encode(message: GeneratedCodeInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.annotation) {
-      GeneratedCodeInfo_Annotation.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GeneratedCodeInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGeneratedCodeInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.annotation.push(GeneratedCodeInfo_Annotation.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GeneratedCodeInfo {
-    return {
-      annotation: Array.isArray(object?.annotation) ? object.annotation.map((e: any) => GeneratedCodeInfo_Annotation.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GeneratedCodeInfo): unknown {
-    const obj: any = {};
-    if (message.annotation) {
-      obj.annotation = message.annotation.map(e => e ? GeneratedCodeInfo_Annotation.toJSON(e) : undefined);
-    } else {
-      obj.annotation = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GeneratedCodeInfo>): GeneratedCodeInfo {
-    const message = createBaseGeneratedCodeInfo();
-    message.annotation = object.annotation?.map(e => GeneratedCodeInfo_Annotation.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GeneratedCodeInfoSDKType): GeneratedCodeInfo {
-    return {
-      annotation: Array.isArray(object?.annotation) ? object.annotation.map((e: any) => GeneratedCodeInfo_Annotation.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GeneratedCodeInfo): GeneratedCodeInfoSDKType {
-    const obj: any = {};
-    if (message.annotation) {
-      obj.annotation = message.annotation.map(e => e ? GeneratedCodeInfo_Annotation.toSDK(e) : undefined);
-    } else {
-      obj.annotation = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GeneratedCodeInfoAmino): GeneratedCodeInfo {
-    return {
-      annotation: Array.isArray(object?.annotation) ? object.annotation.map((e: any) => GeneratedCodeInfo_Annotation.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GeneratedCodeInfo): GeneratedCodeInfoAmino {
-    const obj: any = {};
-    if (message.annotation) {
-      obj.annotation = message.annotation.map(e => e ? GeneratedCodeInfo_Annotation.toAmino(e) : undefined);
-    } else {
-      obj.annotation = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GeneratedCodeInfoAminoMsg): GeneratedCodeInfo {
-    return GeneratedCodeInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: GeneratedCodeInfoProtoMsg): GeneratedCodeInfo {
-    return GeneratedCodeInfo.decode(message.value);
-  },
-  toProto(message: GeneratedCodeInfo): Uint8Array {
-    return GeneratedCodeInfo.encode(message).finish();
-  },
-  toProtoMsg(message: GeneratedCodeInfo): GeneratedCodeInfoProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.GeneratedCodeInfo",
-      value: GeneratedCodeInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseGeneratedCodeInfo_Annotation(): GeneratedCodeInfo_Annotation {
-  return {
-    path: [],
-    sourceFile: "",
-    begin: 0,
-    end: 0
-  };
-}
-export const GeneratedCodeInfo_Annotation = {
-  typeUrl: "/google.protobuf.Annotation",
-  encode(message: GeneratedCodeInfo_Annotation, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.path) {
-      writer.int32(v);
-    }
-    writer.ldelim();
-    if (message.sourceFile !== "") {
-      writer.uint32(18).string(message.sourceFile);
-    }
-    if (message.begin !== 0) {
-      writer.uint32(24).int32(message.begin);
-    }
-    if (message.end !== 0) {
-      writer.uint32(32).int32(message.end);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GeneratedCodeInfo_Annotation {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGeneratedCodeInfo_Annotation();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.path.push(reader.int32());
-            }
-          } else {
-            message.path.push(reader.int32());
-          }
-          break;
-        case 2:
-          message.sourceFile = reader.string();
-          break;
-        case 3:
-          message.begin = reader.int32();
-          break;
-        case 4:
-          message.end = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GeneratedCodeInfo_Annotation {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => Number(e)) : [],
-      sourceFile: isSet(object.sourceFile) ? String(object.sourceFile) : "",
-      begin: isSet(object.begin) ? Number(object.begin) : 0,
-      end: isSet(object.end) ? Number(object.end) : 0
-    };
-  },
-  toJSON(message: GeneratedCodeInfo_Annotation): unknown {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => Math.round(e));
-    } else {
-      obj.path = [];
-    }
-    message.sourceFile !== undefined && (obj.sourceFile = message.sourceFile);
-    message.begin !== undefined && (obj.begin = Math.round(message.begin));
-    message.end !== undefined && (obj.end = Math.round(message.end));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GeneratedCodeInfo_Annotation>): GeneratedCodeInfo_Annotation {
-    const message = createBaseGeneratedCodeInfo_Annotation();
-    message.path = object.path?.map(e => e) || [];
-    message.sourceFile = object.sourceFile ?? "";
-    message.begin = object.begin ?? 0;
-    message.end = object.end ?? 0;
-    return message;
-  },
-  fromSDK(object: GeneratedCodeInfo_AnnotationSDKType): GeneratedCodeInfo_Annotation {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : [],
-      sourceFile: object?.source_file,
-      begin: object?.begin,
-      end: object?.end
-    };
-  },
-  toSDK(message: GeneratedCodeInfo_Annotation): GeneratedCodeInfo_AnnotationSDKType {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    obj.source_file = message.sourceFile;
-    obj.begin = message.begin;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAmino(object: GeneratedCodeInfo_AnnotationAmino): GeneratedCodeInfo_Annotation {
-    return {
-      path: Array.isArray(object?.path) ? object.path.map((e: any) => e) : [],
-      sourceFile: object.source_file,
-      begin: object.begin,
-      end: object.end
-    };
-  },
-  toAmino(message: GeneratedCodeInfo_Annotation): GeneratedCodeInfo_AnnotationAmino {
-    const obj: any = {};
-    if (message.path) {
-      obj.path = message.path.map(e => e);
-    } else {
-      obj.path = [];
-    }
-    obj.source_file = message.sourceFile;
-    obj.begin = message.begin;
-    obj.end = message.end;
-    return obj;
-  },
-  fromAminoMsg(object: GeneratedCodeInfo_AnnotationAminoMsg): GeneratedCodeInfo_Annotation {
-    return GeneratedCodeInfo_Annotation.fromAmino(object.value);
-  },
-  fromProtoMsg(message: GeneratedCodeInfo_AnnotationProtoMsg): GeneratedCodeInfo_Annotation {
-    return GeneratedCodeInfo_Annotation.decode(message.value);
-  },
-  toProto(message: GeneratedCodeInfo_Annotation): Uint8Array {
-    return GeneratedCodeInfo_Annotation.encode(message).finish();
-  },
-  toProtoMsg(message: GeneratedCodeInfo_Annotation): GeneratedCodeInfo_AnnotationProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Annotation",
-      value: GeneratedCodeInfo_Annotation.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/protobuf/duration.ts b/examples/injective/src/codegen/google/protobuf/duration.ts
deleted file mode 100644
index e285f645..00000000
--- a/examples/injective/src/codegen/google/protobuf/duration.ts
+++ /dev/null
@@ -1,305 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/**
- * A Duration represents a signed, fixed-length span of time represented
- * as a count of seconds and fractions of seconds at nanosecond
- * resolution. It is independent of any calendar and concepts like "day"
- * or "month". It is related to Timestamp in that the difference between
- * two Timestamp values is a Duration and it can be added or subtracted
- * from a Timestamp. Range is approximately +-10,000 years.
- * 
- * # Examples
- * 
- * Example 1: Compute Duration from two Timestamps in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Timestamp end = ...;
- *     Duration duration = ...;
- * 
- *     duration.seconds = end.seconds - start.seconds;
- *     duration.nanos = end.nanos - start.nanos;
- * 
- *     if (duration.seconds < 0 && duration.nanos > 0) {
- *       duration.seconds += 1;
- *       duration.nanos -= 1000000000;
- *     } else if (durations.seconds > 0 && duration.nanos < 0) {
- *       duration.seconds -= 1;
- *       duration.nanos += 1000000000;
- *     }
- * 
- * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Duration duration = ...;
- *     Timestamp end = ...;
- * 
- *     end.seconds = start.seconds + duration.seconds;
- *     end.nanos = start.nanos + duration.nanos;
- * 
- *     if (end.nanos < 0) {
- *       end.seconds -= 1;
- *       end.nanos += 1000000000;
- *     } else if (end.nanos >= 1000000000) {
- *       end.seconds += 1;
- *       end.nanos -= 1000000000;
- *     }
- * 
- * Example 3: Compute Duration from datetime.timedelta in Python.
- * 
- *     td = datetime.timedelta(days=3, minutes=10)
- *     duration = Duration()
- *     duration.FromTimedelta(td)
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Duration type is encoded as a string rather than an
- * object, where the string ends in the suffix "s" (indicating seconds) and
- * is preceded by the number of seconds, with nanoseconds expressed as
- * fractional seconds. For example, 3 seconds with 0 nanoseconds should be
- * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
- * be expressed in JSON format as "3.000000001s", and 3 seconds and 1
- * microsecond should be expressed in JSON format as "3.000001s".
- */
-export interface Duration {
-  /**
-   * Signed seconds of the span of time. Must be from -315,576,000,000
-   * to +315,576,000,000 inclusive. Note: these bounds are computed from:
-   * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
-   */
-  seconds: bigint;
-  /**
-   * Signed fractions of a second at nanosecond resolution of the span
-   * of time. Durations less than one second are represented with a 0
-   * `seconds` field and a positive or negative `nanos` field. For durations
-   * of one second or more, a non-zero value for the `nanos` field must be
-   * of the same sign as the `seconds` field. Must be from -999,999,999
-   * to +999,999,999 inclusive.
-   */
-  nanos: number;
-}
-export interface DurationProtoMsg {
-  typeUrl: "/google.protobuf.Duration";
-  value: Uint8Array;
-}
-/**
- * A Duration represents a signed, fixed-length span of time represented
- * as a count of seconds and fractions of seconds at nanosecond
- * resolution. It is independent of any calendar and concepts like "day"
- * or "month". It is related to Timestamp in that the difference between
- * two Timestamp values is a Duration and it can be added or subtracted
- * from a Timestamp. Range is approximately +-10,000 years.
- * 
- * # Examples
- * 
- * Example 1: Compute Duration from two Timestamps in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Timestamp end = ...;
- *     Duration duration = ...;
- * 
- *     duration.seconds = end.seconds - start.seconds;
- *     duration.nanos = end.nanos - start.nanos;
- * 
- *     if (duration.seconds < 0 && duration.nanos > 0) {
- *       duration.seconds += 1;
- *       duration.nanos -= 1000000000;
- *     } else if (durations.seconds > 0 && duration.nanos < 0) {
- *       duration.seconds -= 1;
- *       duration.nanos += 1000000000;
- *     }
- * 
- * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Duration duration = ...;
- *     Timestamp end = ...;
- * 
- *     end.seconds = start.seconds + duration.seconds;
- *     end.nanos = start.nanos + duration.nanos;
- * 
- *     if (end.nanos < 0) {
- *       end.seconds -= 1;
- *       end.nanos += 1000000000;
- *     } else if (end.nanos >= 1000000000) {
- *       end.seconds += 1;
- *       end.nanos -= 1000000000;
- *     }
- * 
- * Example 3: Compute Duration from datetime.timedelta in Python.
- * 
- *     td = datetime.timedelta(days=3, minutes=10)
- *     duration = Duration()
- *     duration.FromTimedelta(td)
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Duration type is encoded as a string rather than an
- * object, where the string ends in the suffix "s" (indicating seconds) and
- * is preceded by the number of seconds, with nanoseconds expressed as
- * fractional seconds. For example, 3 seconds with 0 nanoseconds should be
- * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
- * be expressed in JSON format as "3.000000001s", and 3 seconds and 1
- * microsecond should be expressed in JSON format as "3.000001s".
- */
-export type DurationAmino = string;
-export interface DurationAminoMsg {
-  type: "/google.protobuf.Duration";
-  value: DurationAmino;
-}
-/**
- * A Duration represents a signed, fixed-length span of time represented
- * as a count of seconds and fractions of seconds at nanosecond
- * resolution. It is independent of any calendar and concepts like "day"
- * or "month". It is related to Timestamp in that the difference between
- * two Timestamp values is a Duration and it can be added or subtracted
- * from a Timestamp. Range is approximately +-10,000 years.
- * 
- * # Examples
- * 
- * Example 1: Compute Duration from two Timestamps in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Timestamp end = ...;
- *     Duration duration = ...;
- * 
- *     duration.seconds = end.seconds - start.seconds;
- *     duration.nanos = end.nanos - start.nanos;
- * 
- *     if (duration.seconds < 0 && duration.nanos > 0) {
- *       duration.seconds += 1;
- *       duration.nanos -= 1000000000;
- *     } else if (durations.seconds > 0 && duration.nanos < 0) {
- *       duration.seconds -= 1;
- *       duration.nanos += 1000000000;
- *     }
- * 
- * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
- * 
- *     Timestamp start = ...;
- *     Duration duration = ...;
- *     Timestamp end = ...;
- * 
- *     end.seconds = start.seconds + duration.seconds;
- *     end.nanos = start.nanos + duration.nanos;
- * 
- *     if (end.nanos < 0) {
- *       end.seconds -= 1;
- *       end.nanos += 1000000000;
- *     } else if (end.nanos >= 1000000000) {
- *       end.seconds += 1;
- *       end.nanos -= 1000000000;
- *     }
- * 
- * Example 3: Compute Duration from datetime.timedelta in Python.
- * 
- *     td = datetime.timedelta(days=3, minutes=10)
- *     duration = Duration()
- *     duration.FromTimedelta(td)
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Duration type is encoded as a string rather than an
- * object, where the string ends in the suffix "s" (indicating seconds) and
- * is preceded by the number of seconds, with nanoseconds expressed as
- * fractional seconds. For example, 3 seconds with 0 nanoseconds should be
- * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
- * be expressed in JSON format as "3.000000001s", and 3 seconds and 1
- * microsecond should be expressed in JSON format as "3.000001s".
- */
-export interface DurationSDKType {
-  seconds: bigint;
-  nanos: number;
-}
-function createBaseDuration(): Duration {
-  return {
-    seconds: BigInt(0),
-    nanos: 0
-  };
-}
-export const Duration = {
-  typeUrl: "/google.protobuf.Duration",
-  encode(message: Duration, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.seconds !== BigInt(0)) {
-      writer.uint32(8).int64(message.seconds);
-    }
-    if (message.nanos !== 0) {
-      writer.uint32(16).int32(message.nanos);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Duration {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDuration();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.seconds = reader.int64();
-          break;
-        case 2:
-          message.nanos = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Duration {
-    return {
-      seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0),
-      nanos: isSet(object.nanos) ? Number(object.nanos) : 0
-    };
-  },
-  toJSON(message: Duration): unknown {
-    const obj: any = {};
-    message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());
-    message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Duration>): Duration {
-    const message = createBaseDuration();
-    message.seconds = object.seconds !== undefined && object.seconds !== null ? BigInt(object.seconds.toString()) : BigInt(0);
-    message.nanos = object.nanos ?? 0;
-    return message;
-  },
-  fromSDK(object: DurationSDKType): Duration {
-    return {
-      seconds: object?.seconds,
-      nanos: object?.nanos
-    };
-  },
-  toSDK(message: Duration): DurationSDKType {
-    const obj: any = {};
-    obj.seconds = message.seconds;
-    obj.nanos = message.nanos;
-    return obj;
-  },
-  fromAmino(object: DurationAmino): Duration {
-    const value = BigInt(object);
-    return {
-      seconds: value / BigInt("1000000000"),
-      nanos: Number(value % BigInt("1000000000"))
-    };
-  },
-  toAmino(message: Duration): DurationAmino {
-    return (message.seconds * BigInt("1000000000") + BigInt(message.nanos)).toString();
-  },
-  fromAminoMsg(object: DurationAminoMsg): Duration {
-    return Duration.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DurationProtoMsg): Duration {
-    return Duration.decode(message.value);
-  },
-  toProto(message: Duration): Uint8Array {
-    return Duration.encode(message).finish();
-  },
-  toProtoMsg(message: Duration): DurationProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Duration",
-      value: Duration.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/protobuf/empty.ts b/examples/injective/src/codegen/google/protobuf/empty.ts
deleted file mode 100644
index 04ef44de..00000000
--- a/examples/injective/src/codegen/google/protobuf/empty.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial } from "../../helpers";
-/**
- * A generic empty message that you can re-use to avoid defining duplicated
- * empty messages in your APIs. A typical example is to use it as the request
- * or the response type of an API method. For instance:
- * 
- *     service Foo {
- *       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
- *     }
- * 
- * The JSON representation for `Empty` is empty JSON object `{}`.
- */
-export interface Empty {}
-export interface EmptyProtoMsg {
-  typeUrl: "/google.protobuf.Empty";
-  value: Uint8Array;
-}
-/**
- * A generic empty message that you can re-use to avoid defining duplicated
- * empty messages in your APIs. A typical example is to use it as the request
- * or the response type of an API method. For instance:
- * 
- *     service Foo {
- *       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
- *     }
- * 
- * The JSON representation for `Empty` is empty JSON object `{}`.
- */
-export interface EmptyAmino {}
-export interface EmptyAminoMsg {
-  type: "/google.protobuf.Empty";
-  value: EmptyAmino;
-}
-/**
- * A generic empty message that you can re-use to avoid defining duplicated
- * empty messages in your APIs. A typical example is to use it as the request
- * or the response type of an API method. For instance:
- * 
- *     service Foo {
- *       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
- *     }
- * 
- * The JSON representation for `Empty` is empty JSON object `{}`.
- */
-export interface EmptySDKType {}
-function createBaseEmpty(): Empty {
-  return {};
-}
-export const Empty = {
-  typeUrl: "/google.protobuf.Empty",
-  encode(_: Empty, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Empty {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEmpty();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): Empty {
-    return {};
-  },
-  toJSON(_: Empty): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<Empty>): Empty {
-    const message = createBaseEmpty();
-    return message;
-  },
-  fromSDK(_: EmptySDKType): Empty {
-    return {};
-  },
-  toSDK(_: Empty): EmptySDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: EmptyAmino): Empty {
-    return {};
-  },
-  toAmino(_: Empty): EmptyAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: EmptyAminoMsg): Empty {
-    return Empty.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EmptyProtoMsg): Empty {
-    return Empty.decode(message.value);
-  },
-  toProto(message: Empty): Uint8Array {
-    return Empty.encode(message).finish();
-  },
-  toProtoMsg(message: Empty): EmptyProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Empty",
-      value: Empty.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/google/protobuf/timestamp.ts b/examples/injective/src/codegen/google/protobuf/timestamp.ts
deleted file mode 100644
index 1d34cd5a..00000000
--- a/examples/injective/src/codegen/google/protobuf/timestamp.ts
+++ /dev/null
@@ -1,371 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial, fromJsonTimestamp, fromTimestamp } from "../../helpers";
-/**
- * A Timestamp represents a point in time independent of any time zone or local
- * calendar, encoded as a count of seconds and fractions of seconds at
- * nanosecond resolution. The count is relative to an epoch at UTC midnight on
- * January 1, 1970, in the proleptic Gregorian calendar which extends the
- * Gregorian calendar backwards to year one.
- * 
- * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
- * second table is needed for interpretation, using a [24-hour linear
- * smear](https://developers.google.com/time/smear).
- * 
- * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
- * restricting to that range, we ensure that we can convert to and from [RFC
- * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
- * 
- * # Examples
- * 
- * Example 1: Compute Timestamp from POSIX `time()`.
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(time(NULL));
- *     timestamp.set_nanos(0);
- * 
- * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
- * 
- *     struct timeval tv;
- *     gettimeofday(&tv, NULL);
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(tv.tv_sec);
- *     timestamp.set_nanos(tv.tv_usec * 1000);
- * 
- * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
- * 
- *     FILETIME ft;
- *     GetSystemTimeAsFileTime(&ft);
- *     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
- * 
- *     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
- *     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
- *     Timestamp timestamp;
- *     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
- *     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
- * 
- * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
- * 
- *     long millis = System.currentTimeMillis();
- * 
- *     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
- *         .setNanos((int) ((millis % 1000) * 1000000)).build();
- * 
- * 
- * Example 5: Compute Timestamp from current time in Python.
- * 
- *     timestamp = Timestamp()
- *     timestamp.GetCurrentTime()
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Timestamp type is encoded as a string in the
- * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
- * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
- * where {year} is always expressed using four digits while {month}, {day},
- * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
- * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
- * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
- * is required. A proto3 JSON serializer should always use UTC (as indicated by
- * "Z") when printing the Timestamp type and a proto3 JSON parser should be
- * able to accept both UTC and other timezones (as indicated by an offset).
- * 
- * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
- * 01:30 UTC on January 15, 2017.
- * 
- * In JavaScript, one can convert a Date object to this format using the
- * standard
- * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
- * method. In Python, a standard `datetime.datetime` object can be converted
- * to this format using
- * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
- * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
- * the Joda Time's [`ISODateTimeFormat.dateTime()`](
- * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
- * ) to obtain a formatter capable of generating timestamps in this format.
- */
-export interface Timestamp {
-  /**
-   * Represents seconds of UTC time since Unix epoch
-   * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
-   * 9999-12-31T23:59:59Z inclusive.
-   */
-  seconds: bigint;
-  /**
-   * Non-negative fractions of a second at nanosecond resolution. Negative
-   * second values with fractions must still have non-negative nanos values
-   * that count forward in time. Must be from 0 to 999,999,999
-   * inclusive.
-   */
-  nanos: number;
-}
-export interface TimestampProtoMsg {
-  typeUrl: "/google.protobuf.Timestamp";
-  value: Uint8Array;
-}
-/**
- * A Timestamp represents a point in time independent of any time zone or local
- * calendar, encoded as a count of seconds and fractions of seconds at
- * nanosecond resolution. The count is relative to an epoch at UTC midnight on
- * January 1, 1970, in the proleptic Gregorian calendar which extends the
- * Gregorian calendar backwards to year one.
- * 
- * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
- * second table is needed for interpretation, using a [24-hour linear
- * smear](https://developers.google.com/time/smear).
- * 
- * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
- * restricting to that range, we ensure that we can convert to and from [RFC
- * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
- * 
- * # Examples
- * 
- * Example 1: Compute Timestamp from POSIX `time()`.
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(time(NULL));
- *     timestamp.set_nanos(0);
- * 
- * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
- * 
- *     struct timeval tv;
- *     gettimeofday(&tv, NULL);
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(tv.tv_sec);
- *     timestamp.set_nanos(tv.tv_usec * 1000);
- * 
- * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
- * 
- *     FILETIME ft;
- *     GetSystemTimeAsFileTime(&ft);
- *     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
- * 
- *     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
- *     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
- *     Timestamp timestamp;
- *     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
- *     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
- * 
- * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
- * 
- *     long millis = System.currentTimeMillis();
- * 
- *     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
- *         .setNanos((int) ((millis % 1000) * 1000000)).build();
- * 
- * 
- * Example 5: Compute Timestamp from current time in Python.
- * 
- *     timestamp = Timestamp()
- *     timestamp.GetCurrentTime()
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Timestamp type is encoded as a string in the
- * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
- * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
- * where {year} is always expressed using four digits while {month}, {day},
- * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
- * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
- * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
- * is required. A proto3 JSON serializer should always use UTC (as indicated by
- * "Z") when printing the Timestamp type and a proto3 JSON parser should be
- * able to accept both UTC and other timezones (as indicated by an offset).
- * 
- * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
- * 01:30 UTC on January 15, 2017.
- * 
- * In JavaScript, one can convert a Date object to this format using the
- * standard
- * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
- * method. In Python, a standard `datetime.datetime` object can be converted
- * to this format using
- * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
- * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
- * the Joda Time's [`ISODateTimeFormat.dateTime()`](
- * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
- * ) to obtain a formatter capable of generating timestamps in this format.
- */
-export type TimestampAmino = string;
-export interface TimestampAminoMsg {
-  type: "/google.protobuf.Timestamp";
-  value: TimestampAmino;
-}
-/**
- * A Timestamp represents a point in time independent of any time zone or local
- * calendar, encoded as a count of seconds and fractions of seconds at
- * nanosecond resolution. The count is relative to an epoch at UTC midnight on
- * January 1, 1970, in the proleptic Gregorian calendar which extends the
- * Gregorian calendar backwards to year one.
- * 
- * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
- * second table is needed for interpretation, using a [24-hour linear
- * smear](https://developers.google.com/time/smear).
- * 
- * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
- * restricting to that range, we ensure that we can convert to and from [RFC
- * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
- * 
- * # Examples
- * 
- * Example 1: Compute Timestamp from POSIX `time()`.
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(time(NULL));
- *     timestamp.set_nanos(0);
- * 
- * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
- * 
- *     struct timeval tv;
- *     gettimeofday(&tv, NULL);
- * 
- *     Timestamp timestamp;
- *     timestamp.set_seconds(tv.tv_sec);
- *     timestamp.set_nanos(tv.tv_usec * 1000);
- * 
- * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
- * 
- *     FILETIME ft;
- *     GetSystemTimeAsFileTime(&ft);
- *     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
- * 
- *     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
- *     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
- *     Timestamp timestamp;
- *     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
- *     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
- * 
- * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
- * 
- *     long millis = System.currentTimeMillis();
- * 
- *     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
- *         .setNanos((int) ((millis % 1000) * 1000000)).build();
- * 
- * 
- * Example 5: Compute Timestamp from current time in Python.
- * 
- *     timestamp = Timestamp()
- *     timestamp.GetCurrentTime()
- * 
- * # JSON Mapping
- * 
- * In JSON format, the Timestamp type is encoded as a string in the
- * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
- * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
- * where {year} is always expressed using four digits while {month}, {day},
- * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
- * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
- * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
- * is required. A proto3 JSON serializer should always use UTC (as indicated by
- * "Z") when printing the Timestamp type and a proto3 JSON parser should be
- * able to accept both UTC and other timezones (as indicated by an offset).
- * 
- * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
- * 01:30 UTC on January 15, 2017.
- * 
- * In JavaScript, one can convert a Date object to this format using the
- * standard
- * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
- * method. In Python, a standard `datetime.datetime` object can be converted
- * to this format using
- * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
- * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
- * the Joda Time's [`ISODateTimeFormat.dateTime()`](
- * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
- * ) to obtain a formatter capable of generating timestamps in this format.
- */
-export interface TimestampSDKType {
-  seconds: bigint;
-  nanos: number;
-}
-function createBaseTimestamp(): Timestamp {
-  return {
-    seconds: BigInt(0),
-    nanos: 0
-  };
-}
-export const Timestamp = {
-  typeUrl: "/google.protobuf.Timestamp",
-  encode(message: Timestamp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.seconds !== BigInt(0)) {
-      writer.uint32(8).int64(message.seconds);
-    }
-    if (message.nanos !== 0) {
-      writer.uint32(16).int32(message.nanos);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTimestamp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.seconds = reader.int64();
-          break;
-        case 2:
-          message.nanos = reader.int32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Timestamp {
-    return {
-      seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0),
-      nanos: isSet(object.nanos) ? Number(object.nanos) : 0
-    };
-  },
-  toJSON(message: Timestamp): unknown {
-    const obj: any = {};
-    message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());
-    message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Timestamp>): Timestamp {
-    const message = createBaseTimestamp();
-    message.seconds = object.seconds !== undefined && object.seconds !== null ? BigInt(object.seconds.toString()) : BigInt(0);
-    message.nanos = object.nanos ?? 0;
-    return message;
-  },
-  fromSDK(object: TimestampSDKType): Timestamp {
-    return {
-      seconds: object?.seconds,
-      nanos: object?.nanos
-    };
-  },
-  toSDK(message: Timestamp): TimestampSDKType {
-    const obj: any = {};
-    obj.seconds = message.seconds;
-    obj.nanos = message.nanos;
-    return obj;
-  },
-  fromAmino(object: TimestampAmino): Timestamp {
-    return fromJsonTimestamp(object);
-  },
-  toAmino(message: Timestamp): TimestampAmino {
-    return fromTimestamp(message).toString();
-  },
-  fromAminoMsg(object: TimestampAminoMsg): Timestamp {
-    return Timestamp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: TimestampProtoMsg): Timestamp {
-    return Timestamp.decode(message.value);
-  },
-  toProto(message: Timestamp): Uint8Array {
-    return Timestamp.encode(message).finish();
-  },
-  toProtoMsg(message: Timestamp): TimestampProtoMsg {
-    return {
-      typeUrl: "/google.protobuf.Timestamp",
-      value: Timestamp.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/helpers.ts b/examples/injective/src/codegen/helpers.ts
deleted file mode 100644
index 510d40b8..00000000
--- a/examples/injective/src/codegen/helpers.ts
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-
-declare var self: any | undefined;
-declare var window: any | undefined;
-declare var global: any | undefined;
-var globalThis: any = (() => {
-  if (typeof globalThis !== 'undefined') return globalThis;
-  if (typeof self !== 'undefined') return self;
-  if (typeof window !== 'undefined') return window;
-  if (typeof global !== 'undefined') return global;
-  throw 'Unable to locate global object';
-})();
-
-const atob: (b64: string) => string =
-  globalThis.atob ||
-  ((b64) => globalThis.Buffer.from(b64, 'base64').toString('binary'));
-
-export function bytesFromBase64(b64: string): Uint8Array {
-  const bin = atob(b64);
-  const arr = new Uint8Array(bin.length);
-  for (let i = 0; i < bin.length; ++i) {
-    arr[i] = bin.charCodeAt(i);
-  }
-  return arr;
-}
-
-const btoa: (bin: string) => string =
-  globalThis.btoa ||
-  ((bin) => globalThis.Buffer.from(bin, 'binary').toString('base64'));
-
-export function base64FromBytes(arr: Uint8Array): string {
-  const bin: string[] = [];
-  arr.forEach((byte) => {
-    bin.push(String.fromCharCode(byte));
-  });
-  return btoa(bin.join(''));
-}
-
-export interface AminoHeight {
-  readonly revision_number?: string;
-  readonly revision_height?: string;
-}
-
-export function omitDefault<T extends string | number | bigint>(
-  input: T
-): T | undefined {
-  if (typeof input === 'string') {
-    return input === '' ? undefined : input;
-  }
-
-  if (typeof input === 'number') {
-    return input === 0 ? undefined : input;
-  }
-
-  if (typeof input === 'bigint') {
-    return input === BigInt(0) ? undefined : input;
-  }
-
-  throw new Error(`Got unsupported type ${typeof input}`);
-}
-
-interface Duration {
-  /**
-   * Signed seconds of the span of time. Must be from -315,576,000,000
-   * to +315,576,000,000 inclusive. Note: these bounds are computed from:
-   * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
-   */
-  seconds: bigint;
-  /**
-   * Signed fractions of a second at nanosecond resolution of the span
-   * of time. Durations less than one second are represented with a 0
-   * `seconds` field and a positive or negative `nanos` field. For durations
-   * of one second or more, a non-zero value for the `nanos` field must be
-   * of the same sign as the `seconds` field. Must be from -999,999,999
-   * to +999,999,999 inclusive.
-   */
-
-  nanos: number;
-}
-
-export function toDuration(duration: string): Duration {
-  return {
-    seconds: BigInt(Math.floor(parseInt(duration) / 1000000000)),
-    nanos: parseInt(duration) % 1000000000
-  };
-}
-
-export function fromDuration(duration: Duration): string {
-  return (
-    parseInt(duration.seconds.toString()) * 1000000000 +
-    duration.nanos
-  ).toString();
-}
-
-export function isSet(value: any): boolean {
-  return value !== null && value !== undefined;
-}
-
-export function isObject(value: any): boolean {
-  return typeof value === 'object' && value !== null;
-}
-
-export interface PageRequest {
-  key: Uint8Array;
-  offset: bigint;
-  limit: bigint;
-  countTotal: boolean;
-  reverse: boolean;
-}
-
-export interface PageRequestParams {
-  'pagination.key'?: string;
-  'pagination.offset'?: string;
-  'pagination.limit'?: string;
-  'pagination.count_total'?: boolean;
-  'pagination.reverse'?: boolean;
-}
-
-export interface Params {
-  params: PageRequestParams;
-}
-
-export const setPaginationParams = (
-  options: Params,
-  pagination?: PageRequest
-) => {
-  if (!pagination) {
-    return options;
-  }
-
-  if (typeof pagination?.countTotal !== 'undefined') {
-    options.params['pagination.count_total'] = pagination.countTotal;
-  }
-  if (typeof pagination?.key !== 'undefined') {
-    // String to Uint8Array
-    // let uint8arr = new Uint8Array(Buffer.from(data,'base64'));
-
-    // Uint8Array to String
-    options.params['pagination.key'] = Buffer.from(pagination.key).toString(
-      'base64'
-    );
-  }
-  if (typeof pagination?.limit !== 'undefined') {
-    options.params['pagination.limit'] = pagination.limit.toString();
-  }
-  if (typeof pagination?.offset !== 'undefined') {
-    options.params['pagination.offset'] = pagination.offset.toString();
-  }
-  if (typeof pagination?.reverse !== 'undefined') {
-    options.params['pagination.reverse'] = pagination.reverse;
-  }
-
-  return options;
-};
-
-type Builtin =
-  | Date
-  | Function
-  | Uint8Array
-  | string
-  | number
-  | bigint
-  | boolean
-  | undefined;
-
-export type DeepPartial<T> = T extends Builtin
-  ? T
-  : T extends Array<infer U>
-  ? Array<DeepPartial<U>>
-  : T extends ReadonlyArray<infer U>
-  ? ReadonlyArray<DeepPartial<U>>
-  : T extends {}
-  ? { [K in keyof T]?: DeepPartial<T[K]> }
-  : Partial<T>;
-
-type KeysOfUnion<T> = T extends T ? keyof T : never;
-export type Exact<P, I extends P> = P extends Builtin
-  ? P
-  : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<
-        Exclude<keyof I, KeysOfUnion<P>>,
-        never
-      >;
-
-export interface Rpc {
-  request(
-    service: string,
-    method: string,
-    data: Uint8Array
-  ): Promise<Uint8Array>;
-}
-
-interface Timestamp {
-  /**
-   * Represents seconds of UTC time since Unix epoch
-   * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
-   * 9999-12-31T23:59:59Z inclusive.
-   */
-  seconds: bigint;
-  /**
-   * Non-negative fractions of a second at nanosecond resolution. Negative
-   * second values with fractions must still have non-negative nanos values
-   * that count forward in time. Must be from 0 to 999,999,999
-   * inclusive.
-   */
-
-  nanos: number;
-}
-
-export function toTimestamp(date: Date): Timestamp {
-  const seconds = numberToLong(date.getTime() / 1_000);
-  const nanos = (date.getTime() % 1000) * 1000000;
-  return {
-    seconds,
-    nanos
-  };
-}
-
-export function fromTimestamp(t: Timestamp): Date {
-  let millis = Number(t.seconds) * 1000;
-  millis += t.nanos / 1000000;
-  return new Date(millis);
-}
-
-const fromJSON = (object: any): Timestamp => {
-  return {
-    seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt(0),
-    nanos: isSet(object.nanos) ? Number(object.nanos) : 0
-  };
-};
-
-const timestampFromJSON = (object: any): Timestamp => {
-  return {
-    seconds: isSet(object.seconds)
-      ? BigInt(object.seconds.toString())
-      : BigInt(0),
-    nanos: isSet(object.nanos) ? Number(object.nanos) : 0
-  };
-};
-
-export function fromJsonTimestamp(o: any): Timestamp {
-  if (o instanceof Date) {
-    return toTimestamp(o);
-  } else if (typeof o === 'string') {
-    return toTimestamp(new Date(o));
-  } else {
-    return timestampFromJSON(o);
-  }
-}
-
-function numberToLong(number: number) {
-  return BigInt(number);
-}
diff --git a/examples/injective/src/codegen/hooks.ts b/examples/injective/src/codegen/hooks.ts
deleted file mode 100644
index a85792d4..00000000
--- a/examples/injective/src/codegen/hooks.ts
+++ /dev/null
@@ -1,1374 +0,0 @@
-import { ProtobufRpcClient } from "@cosmjs/stargate";
-import * as _CosmosAppV1alpha1Queryrpc from "./cosmos/app/v1alpha1/query.rpc.Query";
-import * as _CosmosAuthV1beta1Queryrpc from "./cosmos/auth/v1beta1/query.rpc.Query";
-import * as _CosmosAuthzV1beta1Queryrpc from "./cosmos/authz/v1beta1/query.rpc.Query";
-import * as _CosmosBankV1beta1Queryrpc from "./cosmos/bank/v1beta1/query.rpc.Query";
-import * as _CosmosBaseTendermintV1beta1Queryrpc from "./cosmos/base/tendermint/v1beta1/query.rpc.Service";
-import * as _CosmosDistributionV1beta1Queryrpc from "./cosmos/distribution/v1beta1/query.rpc.Query";
-import * as _CosmosEvidenceV1beta1Queryrpc from "./cosmos/evidence/v1beta1/query.rpc.Query";
-import * as _CosmosFeegrantV1beta1Queryrpc from "./cosmos/feegrant/v1beta1/query.rpc.Query";
-import * as _CosmosGovV1Queryrpc from "./cosmos/gov/v1/query.rpc.Query";
-import * as _CosmosGovV1beta1Queryrpc from "./cosmos/gov/v1beta1/query.rpc.Query";
-import * as _CosmosGroupV1Queryrpc from "./cosmos/group/v1/query.rpc.Query";
-import * as _CosmosMintV1beta1Queryrpc from "./cosmos/mint/v1beta1/query.rpc.Query";
-import * as _CosmosNftV1beta1Queryrpc from "./cosmos/nft/v1beta1/query.rpc.Query";
-import * as _CosmosParamsV1beta1Queryrpc from "./cosmos/params/v1beta1/query.rpc.Query";
-import * as _CosmosSlashingV1beta1Queryrpc from "./cosmos/slashing/v1beta1/query.rpc.Query";
-import * as _CosmosStakingV1beta1Queryrpc from "./cosmos/staking/v1beta1/query.rpc.Query";
-import * as _CosmosTxV1beta1Servicerpc from "./cosmos/tx/v1beta1/service.rpc.Service";
-import * as _CosmosUpgradeV1beta1Queryrpc from "./cosmos/upgrade/v1beta1/query.rpc.Query";
-import * as _CosmwasmWasmV1Queryrpc from "./cosmwasm/wasm/v1/query.rpc.Query";
-import * as _IbcApplicationsTransferV1Queryrpc from "./ibc/applications/transfer/v1/query.rpc.Query";
-import * as _IbcCoreChannelV1Queryrpc from "./ibc/core/channel/v1/query.rpc.Query";
-import * as _IbcCoreClientV1Queryrpc from "./ibc/core/client/v1/query.rpc.Query";
-import * as _IbcCoreConnectionV1Queryrpc from "./ibc/core/connection/v1/query.rpc.Query";
-import * as _IbcCorePortV1Queryrpc from "./ibc/core/port/v1/query.rpc.Query";
-import * as _OsmosisClaimV1beta1Queryrpc from "./osmosis/claim/v1beta1/query.rpc.Query";
-import * as _OsmosisEpochsQueryrpc from "./osmosis/epochs/query.rpc.Query";
-import * as _OsmosisGammV1beta1Queryrpc from "./osmosis/gamm/v1beta1/query.rpc.Query";
-import * as _OsmosisGammV2Queryrpc from "./osmosis/gamm/v2/query.rpc.Query";
-import * as _OsmosisIbcratelimitV1beta1Queryrpc from "./osmosis/ibc-rate-limit/v1beta1/query.rpc.Query";
-import * as _OsmosisIncentivesQueryrpc from "./osmosis/incentives/query.rpc.Query";
-import * as _OsmosisLockupQueryrpc from "./osmosis/lockup/query.rpc.Query";
-import * as _OsmosisMintV1beta1Queryrpc from "./osmosis/mint/v1beta1/query.rpc.Query";
-import * as _OsmosisPoolincentivesV1beta1Queryrpc from "./osmosis/pool-incentives/v1beta1/query.rpc.Query";
-import * as _OsmosisSuperfluidQueryrpc from "./osmosis/superfluid/query.rpc.Query";
-import * as _OsmosisTokenfactoryV1beta1Queryrpc from "./osmosis/tokenfactory/v1beta1/query.rpc.Query";
-import * as _OsmosisTwapV1beta1Queryrpc from "./osmosis/twap/v1beta1/query.rpc.Query";
-import * as _OsmosisTxfeesV1beta1Queryrpc from "./osmosis/txfees/v1beta1/query.rpc.Query";
-export const createRpcQueryHooks = ({
-  rpc
-}: {
-  rpc: ProtobufRpcClient | undefined;
-}) => {
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: _CosmosAppV1alpha1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      auth: {
-        v1beta1: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      authz: {
-        v1beta1: _CosmosAuthzV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      bank: {
-        v1beta1: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      base: {
-        tendermint: {
-          v1beta1: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc)
-        }
-      },
-      distribution: {
-        v1beta1: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      evidence: {
-        v1beta1: _CosmosEvidenceV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      feegrant: {
-        v1beta1: _CosmosFeegrantV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      gov: {
-        v1: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc),
-        v1beta1: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      group: {
-        v1: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      mint: {
-        v1beta1: _CosmosMintV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      nft: {
-        v1beta1: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      params: {
-        v1beta1: _CosmosParamsV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      slashing: {
-        v1beta1: _CosmosSlashingV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      staking: {
-        v1beta1: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      tx: {
-        v1beta1: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc)
-      },
-      upgrade: {
-        v1beta1: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      }
-    },
-    cosmwasm: {
-      wasm: {
-        v1: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc)
-      }
-    },
-    ibc: {
-      applications: {
-        transfer: {
-          v1: _IbcApplicationsTransferV1Queryrpc.createRpcQueryHooks(rpc)
-        }
-      },
-      core: {
-        channel: {
-          v1: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc)
-        },
-        client: {
-          v1: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc)
-        },
-        connection: {
-          v1: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc)
-        },
-        port: {
-          v1: _IbcCorePortV1Queryrpc.createRpcQueryHooks(rpc)
-        }
-      }
-    },
-    osmosis: {
-      claim: {
-        v1beta1: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      epochs: {
-        v1beta1: _OsmosisEpochsQueryrpc.createRpcQueryHooks(rpc)
-      },
-      gamm: {
-        v1beta1: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc),
-        v2: _OsmosisGammV2Queryrpc.createRpcQueryHooks(rpc)
-      },
-      ibcratelimit: {
-        v1beta1: _OsmosisIbcratelimitV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      incentives: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc),
-      lockup: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc),
-      mint: {
-        v1beta1: _OsmosisMintV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      poolincentives: {
-        v1beta1: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      superfluid: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc),
-      tokenfactory: {
-        v1beta1: _OsmosisTokenfactoryV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      twap: {
-        v1beta1: _OsmosisTwapV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      },
-      txfees: {
-        v1beta1: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryHooks(rpc)
-      }
-    },
-    /**
-     * cosmos.app.v1alpha1.useConfig
-     * Config returns the current app config.
-     */
-    useConfig: _CosmosAppV1alpha1Queryrpc.createRpcQueryHooks(rpc).useConfig,
-    /**
-     * cosmos.auth.v1beta1.useAccounts
-     * Accounts returns all the existing accounts
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    useAccounts: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useAccounts,
-    /**
-     * cosmos.auth.v1beta1.useAccount
-     * Account returns account details based on address.
-     */
-    useAccount: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useAccount,
-    /**
-     * cosmos.auth.v1beta1.useParams
-     * Params queries all parameters.
-     */
-    useParams: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.auth.v1beta1.useModuleAccounts
-     * ModuleAccounts returns all the existing module accounts.
-     */
-    useModuleAccounts: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useModuleAccounts,
-    /**
-     * cosmos.auth.v1beta1.useBech32Prefix
-     * Bech32 queries bech32Prefix
-     */
-    useBech32Prefix: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useBech32Prefix,
-    /**
-     * cosmos.auth.v1beta1.useAddressBytesToString
-     * AddressBytesToString converts Account Address bytes to string
-     */
-    useAddressBytesToString: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useAddressBytesToString,
-    /**
-     * cosmos.auth.v1beta1.useAddressStringToBytes
-     * AddressStringToBytes converts Address string to bytes
-     */
-    useAddressStringToBytes: _CosmosAuthV1beta1Queryrpc.createRpcQueryHooks(rpc).useAddressStringToBytes,
-    /**
-     * cosmos.authz.v1beta1.useGrants
-     * Returns list of `Authorization`, granted to the grantee by the granter.
-     */
-    useGrants: _CosmosAuthzV1beta1Queryrpc.createRpcQueryHooks(rpc).useGrants,
-    /**
-     * cosmos.authz.v1beta1.useGranterGrants
-     * GranterGrants returns list of `GrantAuthorization`, granted by granter.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    useGranterGrants: _CosmosAuthzV1beta1Queryrpc.createRpcQueryHooks(rpc).useGranterGrants,
-    /**
-     * cosmos.authz.v1beta1.useGranteeGrants
-     * GranteeGrants returns a list of `GrantAuthorization` by grantee.
-     * 
-     * Since: cosmos-sdk 0.46
-     */
-    useGranteeGrants: _CosmosAuthzV1beta1Queryrpc.createRpcQueryHooks(rpc).useGranteeGrants,
-    /**
-     * cosmos.bank.v1beta1.useBalance
-     * Balance queries the balance of a single coin for a single account.
-     */
-    useBalance: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useBalance,
-    /**
-     * cosmos.bank.v1beta1.useAllBalances
-     * AllBalances queries the balance of all coins for a single account.
-     */
-    useAllBalances: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useAllBalances,
-    /**
-     * cosmos.bank.v1beta1.useSpendableBalances
-     * SpendableBalances queries the spenable balance of all coins for a single
-     * account.
-     */
-    useSpendableBalances: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useSpendableBalances,
-    /**
-     * cosmos.bank.v1beta1.useTotalSupply
-     * TotalSupply queries the total supply of all coins.
-     */
-    useTotalSupply: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useTotalSupply,
-    /**
-     * cosmos.bank.v1beta1.useSupplyOf
-     * SupplyOf queries the supply of a single coin.
-     */
-    useSupplyOf: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useSupplyOf,
-    /**
-     * cosmos.bank.v1beta1.useParams
-     * Params queries the parameters of x/bank module.
-     */
-    useCosmosBankV1beta1Params: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.bank.v1beta1.useDenomMetadata
-     * DenomsMetadata queries the client metadata of a given coin denomination.
-     */
-    useDenomMetadata: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomMetadata,
-    /**
-     * cosmos.bank.v1beta1.useDenomsMetadata
-     * DenomsMetadata queries the client metadata for all registered coin
-     * denominations.
-     */
-    useDenomsMetadata: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomsMetadata,
-    /**
-     * cosmos.bank.v1beta1.useDenomOwners
-     * DenomOwners queries for all account addresses that own a particular token
-     * denomination.
-     */
-    useDenomOwners: _CosmosBankV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomOwners,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetNodeInfo
-     * GetNodeInfo queries the current node info.
-     */
-    useGetNodeInfo: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetNodeInfo,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetSyncing
-     * GetSyncing queries node syncing.
-     */
-    useGetSyncing: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetSyncing,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetLatestBlock
-     * GetLatestBlock returns the latest block.
-     */
-    useGetLatestBlock: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetLatestBlock,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetBlockByHeight
-     * GetBlockByHeight queries block for given height.
-     */
-    useGetBlockByHeight: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetBlockByHeight,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetLatestValidatorSet
-     * GetLatestValidatorSet queries latest validator-set.
-     */
-    useGetLatestValidatorSet: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetLatestValidatorSet,
-    /**
-     * cosmos.base.tendermint.v1beta1.useGetValidatorSetByHeight
-     * GetValidatorSetByHeight queries validator-set at a given height.
-     */
-    useGetValidatorSetByHeight: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryHooks(rpc).useGetValidatorSetByHeight,
-    /**
-     * cosmos.distribution.v1beta1.useParams
-     * Params queries params of the distribution module.
-     */
-    useCosmosDistributionV1beta1Params: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.distribution.v1beta1.useValidatorOutstandingRewards
-     * ValidatorOutstandingRewards queries rewards of a validator address.
-     */
-    useValidatorOutstandingRewards: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidatorOutstandingRewards,
-    /**
-     * cosmos.distribution.v1beta1.useValidatorCommission
-     * ValidatorCommission queries accumulated commission for a validator.
-     */
-    useValidatorCommission: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidatorCommission,
-    /**
-     * cosmos.distribution.v1beta1.useValidatorSlashes
-     * ValidatorSlashes queries slash events of a validator.
-     */
-    useValidatorSlashes: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidatorSlashes,
-    /**
-     * cosmos.distribution.v1beta1.useDelegationRewards
-     * DelegationRewards queries the total rewards accrued by a delegation.
-     */
-    useDelegationRewards: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegationRewards,
-    /**
-     * cosmos.distribution.v1beta1.useDelegationTotalRewards
-     * DelegationTotalRewards queries the total rewards accrued by a each
-     * validator.
-     */
-    useDelegationTotalRewards: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegationTotalRewards,
-    /**
-     * cosmos.distribution.v1beta1.useDelegatorValidators
-     * DelegatorValidators queries the validators of a delegator.
-     */
-    useDelegatorValidators: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorValidators,
-    /**
-     * cosmos.distribution.v1beta1.useDelegatorWithdrawAddress
-     * DelegatorWithdrawAddress queries withdraw address of a delegator.
-     */
-    useDelegatorWithdrawAddress: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorWithdrawAddress,
-    /**
-     * cosmos.distribution.v1beta1.useCommunityPool
-     * CommunityPool queries the community pool coins.
-     */
-    useCommunityPool: _CosmosDistributionV1beta1Queryrpc.createRpcQueryHooks(rpc).useCommunityPool,
-    /**
-     * cosmos.evidence.v1beta1.useEvidence
-     * Evidence queries evidence based on evidence hash.
-     */
-    useEvidence: _CosmosEvidenceV1beta1Queryrpc.createRpcQueryHooks(rpc).useEvidence,
-    /**
-     * cosmos.evidence.v1beta1.useAllEvidence
-     * AllEvidence queries all evidence.
-     */
-    useAllEvidence: _CosmosEvidenceV1beta1Queryrpc.createRpcQueryHooks(rpc).useAllEvidence,
-    /**
-     * cosmos.feegrant.v1beta1.useAllowance
-     * Allowance returns fee granted to the grantee by the granter.
-     */
-    useAllowance: _CosmosFeegrantV1beta1Queryrpc.createRpcQueryHooks(rpc).useAllowance,
-    /**
-     * cosmos.feegrant.v1beta1.useAllowances
-     * Allowances returns all the grants for address.
-     */
-    useAllowances: _CosmosFeegrantV1beta1Queryrpc.createRpcQueryHooks(rpc).useAllowances,
-    /**
-     * cosmos.feegrant.v1beta1.useAllowancesByGranter
-     * AllowancesByGranter returns all the grants given by an address
-     * Since v0.46
-     */
-    useAllowancesByGranter: _CosmosFeegrantV1beta1Queryrpc.createRpcQueryHooks(rpc).useAllowancesByGranter,
-    /**
-     * cosmos.gov.v1.useProposal
-     * Proposal queries proposal details based on ProposalID.
-     */
-    useProposal: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useProposal,
-    /**
-     * cosmos.gov.v1.useProposals
-     * Proposals queries all proposals based on given status.
-     */
-    useProposals: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useProposals,
-    /**
-     * cosmos.gov.v1.useVote
-     * Vote queries voted information based on proposalID, voterAddr.
-     */
-    useVote: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useVote,
-    /**
-     * cosmos.gov.v1.useVotes
-     * Votes queries votes of a given proposal.
-     */
-    useVotes: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useVotes,
-    /**
-     * cosmos.gov.v1.useParams
-     * Params queries all parameters of the gov module.
-     */
-    useCosmosGovV1Params: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.gov.v1.useDeposit
-     * Deposit queries single deposit information based proposalID, depositAddr.
-     */
-    useDeposit: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useDeposit,
-    /**
-     * cosmos.gov.v1.useDeposits
-     * Deposits queries all deposits of a single proposal.
-     */
-    useDeposits: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useDeposits,
-    /**
-     * cosmos.gov.v1.useTallyResult
-     * TallyResult queries the tally of a proposal vote.
-     */
-    useTallyResult: _CosmosGovV1Queryrpc.createRpcQueryHooks(rpc).useTallyResult,
-    /**
-     * cosmos.gov.v1beta1.useProposal
-     * Proposal queries proposal details based on ProposalID.
-     */
-    useCosmosGovV1beta1Proposal: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useProposal,
-    /**
-     * cosmos.gov.v1beta1.useProposals
-     * Proposals queries all proposals based on given status.
-     */
-    useCosmosGovV1beta1Proposals: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useProposals,
-    /**
-     * cosmos.gov.v1beta1.useVote
-     * Vote queries voted information based on proposalID, voterAddr.
-     */
-    useCosmosGovV1beta1Vote: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useVote,
-    /**
-     * cosmos.gov.v1beta1.useVotes
-     * Votes queries votes of a given proposal.
-     */
-    useCosmosGovV1beta1Votes: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useVotes,
-    /**
-     * cosmos.gov.v1beta1.useParams
-     * Params queries all parameters of the gov module.
-     */
-    useCosmosGovV1beta1Params: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.gov.v1beta1.useDeposit
-     * Deposit queries single deposit information based proposalID, depositAddr.
-     */
-    useCosmosGovV1beta1Deposit: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useDeposit,
-    /**
-     * cosmos.gov.v1beta1.useDeposits
-     * Deposits queries all deposits of a single proposal.
-     */
-    useCosmosGovV1beta1Deposits: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useDeposits,
-    /**
-     * cosmos.gov.v1beta1.useTallyResult
-     * TallyResult queries the tally of a proposal vote.
-     */
-    useCosmosGovV1beta1TallyResult: _CosmosGovV1beta1Queryrpc.createRpcQueryHooks(rpc).useTallyResult,
-    /**
-     * cosmos.group.v1.useGroupInfo
-     * GroupInfo queries group info based on group id.
-     */
-    useGroupInfo: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupInfo,
-    /**
-     * cosmos.group.v1.useGroupPolicyInfo
-     * GroupPolicyInfo queries group policy info based on account address of group policy.
-     */
-    useGroupPolicyInfo: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupPolicyInfo,
-    /**
-     * cosmos.group.v1.useGroupMembers
-     * GroupMembers queries members of a group
-     */
-    useGroupMembers: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupMembers,
-    /**
-     * cosmos.group.v1.useGroupsByAdmin
-     * GroupsByAdmin queries groups by admin address.
-     */
-    useGroupsByAdmin: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupsByAdmin,
-    /**
-     * cosmos.group.v1.useGroupPoliciesByGroup
-     * GroupPoliciesByGroup queries group policies by group id.
-     */
-    useGroupPoliciesByGroup: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupPoliciesByGroup,
-    /**
-     * cosmos.group.v1.useGroupPoliciesByAdmin
-     * GroupsByAdmin queries group policies by admin address.
-     */
-    useGroupPoliciesByAdmin: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupPoliciesByAdmin,
-    /**
-     * cosmos.group.v1.useProposal
-     * Proposal queries a proposal based on proposal id.
-     */
-    useCosmosGroupV1Proposal: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useProposal,
-    /**
-     * cosmos.group.v1.useProposalsByGroupPolicy
-     * ProposalsByGroupPolicy queries proposals based on account address of group policy.
-     */
-    useProposalsByGroupPolicy: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useProposalsByGroupPolicy,
-    /**
-     * cosmos.group.v1.useVoteByProposalVoter
-     * VoteByProposalVoter queries a vote by proposal id and voter.
-     */
-    useVoteByProposalVoter: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useVoteByProposalVoter,
-    /**
-     * cosmos.group.v1.useVotesByProposal
-     * VotesByProposal queries a vote by proposal.
-     */
-    useVotesByProposal: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useVotesByProposal,
-    /**
-     * cosmos.group.v1.useVotesByVoter
-     * VotesByVoter queries a vote by voter.
-     */
-    useVotesByVoter: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useVotesByVoter,
-    /**
-     * cosmos.group.v1.useGroupsByMember
-     * GroupsByMember queries groups by member address.
-     */
-    useGroupsByMember: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useGroupsByMember,
-    /**
-     * cosmos.group.v1.useTallyResult
-     * TallyResult queries the tally of a proposal votes.
-     */
-    useCosmosGroupV1TallyResult: _CosmosGroupV1Queryrpc.createRpcQueryHooks(rpc).useTallyResult,
-    /**
-     * cosmos.mint.v1beta1.useParams
-     * Params returns the total set of minting parameters.
-     */
-    useCosmosMintV1beta1Params: _CosmosMintV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.mint.v1beta1.useInflation
-     * Inflation returns the current minting inflation value.
-     */
-    useInflation: _CosmosMintV1beta1Queryrpc.createRpcQueryHooks(rpc).useInflation,
-    /**
-     * cosmos.mint.v1beta1.useAnnualProvisions
-     * AnnualProvisions current minting annual provisions value.
-     */
-    useAnnualProvisions: _CosmosMintV1beta1Queryrpc.createRpcQueryHooks(rpc).useAnnualProvisions,
-    /**
-     * cosmos.nft.v1beta1.useBalance
-     * Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721
-     */
-    useCosmosNftV1beta1Balance: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useBalance,
-    /**
-     * cosmos.nft.v1beta1.useOwner
-     * Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721
-     */
-    useOwner: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useOwner,
-    /**
-     * cosmos.nft.v1beta1.useSupply
-     * Supply queries the number of NFTs from the given class, same as totalSupply of ERC721.
-     */
-    useSupply: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useSupply,
-    /**
-     * cosmos.nft.v1beta1.useNFTs
-     * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
-     * ERC721Enumerable
-     */
-    useNFTs: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useNFTs,
-    /**
-     * cosmos.nft.v1beta1.useNFT
-     * NFT queries an NFT based on its class and id.
-     */
-    useNFT: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useNFT,
-    /**
-     * cosmos.nft.v1beta1.useClass
-     * Class queries an NFT class based on its id
-     */
-    useClass: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useClass,
-    /**
-     * cosmos.nft.v1beta1.useClasses
-     * Classes queries all NFT classes
-     */
-    useClasses: _CosmosNftV1beta1Queryrpc.createRpcQueryHooks(rpc).useClasses,
-    /**
-     * cosmos.params.v1beta1.useParams
-     * Params queries a specific parameter of a module, given its subspace and
-     * key.
-     */
-    useCosmosParamsV1beta1Params: _CosmosParamsV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.params.v1beta1.useSubspaces
-     * Subspaces queries for all registered subspaces and all keys for a subspace.
-     */
-    useSubspaces: _CosmosParamsV1beta1Queryrpc.createRpcQueryHooks(rpc).useSubspaces,
-    /**
-     * cosmos.slashing.v1beta1.useParams
-     * Params queries the parameters of slashing module
-     */
-    useCosmosSlashingV1beta1Params: _CosmosSlashingV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.slashing.v1beta1.useSigningInfo
-     * SigningInfo queries the signing info of given cons address
-     */
-    useSigningInfo: _CosmosSlashingV1beta1Queryrpc.createRpcQueryHooks(rpc).useSigningInfo,
-    /**
-     * cosmos.slashing.v1beta1.useSigningInfos
-     * SigningInfos queries signing info of all validators
-     */
-    useSigningInfos: _CosmosSlashingV1beta1Queryrpc.createRpcQueryHooks(rpc).useSigningInfos,
-    /**
-     * cosmos.staking.v1beta1.useValidators
-     * Validators queries all validators that match the given status.
-     */
-    useValidators: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidators,
-    /**
-     * cosmos.staking.v1beta1.useValidator
-     * Validator queries validator info for given validator address.
-     */
-    useValidator: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidator,
-    /**
-     * cosmos.staking.v1beta1.useValidatorDelegations
-     * ValidatorDelegations queries delegate info for given validator.
-     */
-    useValidatorDelegations: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidatorDelegations,
-    /**
-     * cosmos.staking.v1beta1.useValidatorUnbondingDelegations
-     * ValidatorUnbondingDelegations queries unbonding delegations of a validator.
-     */
-    useValidatorUnbondingDelegations: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useValidatorUnbondingDelegations,
-    /**
-     * cosmos.staking.v1beta1.useDelegation
-     * Delegation queries delegate info for given validator delegator pair.
-     */
-    useDelegation: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegation,
-    /**
-     * cosmos.staking.v1beta1.useUnbondingDelegation
-     * UnbondingDelegation queries unbonding info for given validator delegator
-     * pair.
-     */
-    useUnbondingDelegation: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useUnbondingDelegation,
-    /**
-     * cosmos.staking.v1beta1.useDelegatorDelegations
-     * DelegatorDelegations queries all delegations of a given delegator address.
-     */
-    useDelegatorDelegations: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorDelegations,
-    /**
-     * cosmos.staking.v1beta1.useDelegatorUnbondingDelegations
-     * DelegatorUnbondingDelegations queries all unbonding delegations of a given
-     * delegator address.
-     */
-    useDelegatorUnbondingDelegations: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorUnbondingDelegations,
-    /**
-     * cosmos.staking.v1beta1.useRedelegations
-     * Redelegations queries redelegations of given address.
-     */
-    useRedelegations: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useRedelegations,
-    /**
-     * cosmos.staking.v1beta1.useDelegatorValidators
-     * DelegatorValidators queries all validators info for given delegator
-     * address.
-     */
-    useCosmosStakingV1beta1DelegatorValidators: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorValidators,
-    /**
-     * cosmos.staking.v1beta1.useDelegatorValidator
-     * DelegatorValidator queries validator info for given delegator validator
-     * pair.
-     */
-    useDelegatorValidator: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useDelegatorValidator,
-    /**
-     * cosmos.staking.v1beta1.useHistoricalInfo
-     * HistoricalInfo queries the historical info for given height.
-     */
-    useHistoricalInfo: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useHistoricalInfo,
-    /**
-     * cosmos.staking.v1beta1.usePool
-     * Pool queries the pool info.
-     */
-    usePool: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).usePool,
-    /**
-     * cosmos.staking.v1beta1.useParams
-     * Parameters queries the staking parameters.
-     */
-    useCosmosStakingV1beta1Params: _CosmosStakingV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * cosmos.tx.v1beta1.useSimulate
-     * Simulate simulates executing a transaction for estimating gas usage.
-     */
-    useSimulate: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc).useSimulate,
-    /**
-     * cosmos.tx.v1beta1.useGetTx
-     * GetTx fetches a tx by hash.
-     */
-    useGetTx: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc).useGetTx,
-    /**
-     * cosmos.tx.v1beta1.useBroadcastTx
-     * BroadcastTx broadcast transaction.
-     */
-    useBroadcastTx: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc).useBroadcastTx,
-    /**
-     * cosmos.tx.v1beta1.useGetTxsEvent
-     * GetTxsEvent fetches txs by event.
-     */
-    useGetTxsEvent: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc).useGetTxsEvent,
-    /**
-     * cosmos.tx.v1beta1.useGetBlockWithTxs
-     * GetBlockWithTxs fetches a block with decoded txs.
-     * 
-     * Since: cosmos-sdk 0.45.2
-     */
-    useGetBlockWithTxs: _CosmosTxV1beta1Servicerpc.createRpcQueryHooks(rpc).useGetBlockWithTxs,
-    /**
-     * cosmos.upgrade.v1beta1.useCurrentPlan
-     * CurrentPlan queries the current upgrade plan.
-     */
-    useCurrentPlan: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc).useCurrentPlan,
-    /**
-     * cosmos.upgrade.v1beta1.useAppliedPlan
-     * AppliedPlan queries a previously applied upgrade plan by its name.
-     */
-    useAppliedPlan: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc).useAppliedPlan,
-    /**
-     * cosmos.upgrade.v1beta1.useUpgradedConsensusState
-     * UpgradedConsensusState queries the consensus state that will serve
-     * as a trusted kernel for the next version of this chain. It will only be
-     * stored at the last height of this chain.
-     * UpgradedConsensusState RPC not supported with legacy querier
-     * This rpc is deprecated now that IBC has its own replacement
-     * (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
-     */
-    useUpgradedConsensusState: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc).useUpgradedConsensusState,
-    /**
-     * cosmos.upgrade.v1beta1.useModuleVersions
-     * ModuleVersions queries the list of module versions from state.
-     * 
-     * Since: cosmos-sdk 0.43
-     */
-    useModuleVersions: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc).useModuleVersions,
-    /**
-     * cosmos.upgrade.v1beta1.useAuthority
-     * Returns the account with authority to conduct upgrades
-     */
-    useAuthority: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryHooks(rpc).useAuthority,
-    /**
-     * cosmwasm.wasm.v1.useContractInfo
-     * ContractInfo gets the contract meta data
-     */
-    useContractInfo: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useContractInfo,
-    /**
-     * cosmwasm.wasm.v1.useContractHistory
-     * ContractHistory gets the contract code history
-     */
-    useContractHistory: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useContractHistory,
-    /**
-     * cosmwasm.wasm.v1.useContractsByCode
-     * ContractsByCode lists all smart contracts for a code id
-     */
-    useContractsByCode: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useContractsByCode,
-    /**
-     * cosmwasm.wasm.v1.useAllContractState
-     * AllContractState gets all raw store data for a single contract
-     */
-    useAllContractState: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useAllContractState,
-    /**
-     * cosmwasm.wasm.v1.useRawContractState
-     * RawContractState gets single key from the raw store data of a contract
-     */
-    useRawContractState: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useRawContractState,
-    /**
-     * cosmwasm.wasm.v1.useSmartContractState
-     * SmartContractState get smart query result from the contract
-     */
-    useSmartContractState: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useSmartContractState,
-    /**
-     * cosmwasm.wasm.v1.useCode
-     * Code gets the binary code and metadata for a singe wasm code
-     */
-    useCode: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useCode,
-    /**
-     * cosmwasm.wasm.v1.useCodes
-     * Codes gets the metadata for all stored wasm codes
-     */
-    useCodes: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).useCodes,
-    /**
-     * cosmwasm.wasm.v1.usePinnedCodes
-     * PinnedCodes gets the pinned code ids
-     */
-    usePinnedCodes: _CosmwasmWasmV1Queryrpc.createRpcQueryHooks(rpc).usePinnedCodes,
-    /**
-     * ibc.applications.transfer.v1.useDenomTrace
-     * DenomTrace queries a denomination trace information.
-     */
-    useDenomTrace: _IbcApplicationsTransferV1Queryrpc.createRpcQueryHooks(rpc).useDenomTrace,
-    /**
-     * ibc.applications.transfer.v1.useDenomTraces
-     * DenomTraces queries all denomination traces.
-     */
-    useDenomTraces: _IbcApplicationsTransferV1Queryrpc.createRpcQueryHooks(rpc).useDenomTraces,
-    /**
-     * ibc.applications.transfer.v1.useParams
-     * Params queries all parameters of the ibc-transfer module.
-     */
-    useIbcApplicationsTransferV1Params: _IbcApplicationsTransferV1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * ibc.core.channel.v1.useChannel
-     * Channel queries an IBC Channel.
-     */
-    useChannel: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useChannel,
-    /**
-     * ibc.core.channel.v1.useChannels
-     * Channels queries all the IBC channels of a chain.
-     */
-    useChannels: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useChannels,
-    /**
-     * ibc.core.channel.v1.useConnectionChannels
-     * ConnectionChannels queries all the channels associated with a connection
-     * end.
-     */
-    useConnectionChannels: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useConnectionChannels,
-    /**
-     * ibc.core.channel.v1.useChannelClientState
-     * ChannelClientState queries for the client state for the channel associated
-     * with the provided channel identifiers.
-     */
-    useChannelClientState: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useChannelClientState,
-    /**
-     * ibc.core.channel.v1.useChannelConsensusState
-     * ChannelConsensusState queries for the consensus state for the channel
-     * associated with the provided channel identifiers.
-     */
-    useChannelConsensusState: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useChannelConsensusState,
-    /**
-     * ibc.core.channel.v1.usePacketCommitment
-     * PacketCommitment queries a stored packet commitment hash.
-     */
-    usePacketCommitment: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).usePacketCommitment,
-    /**
-     * ibc.core.channel.v1.usePacketCommitments
-     * PacketCommitments returns all the packet commitments hashes associated
-     * with a channel.
-     */
-    usePacketCommitments: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).usePacketCommitments,
-    /**
-     * ibc.core.channel.v1.usePacketReceipt
-     * PacketReceipt queries if a given packet sequence has been received on the
-     * queried chain
-     */
-    usePacketReceipt: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).usePacketReceipt,
-    /**
-     * ibc.core.channel.v1.usePacketAcknowledgement
-     * PacketAcknowledgement queries a stored packet acknowledgement hash.
-     */
-    usePacketAcknowledgement: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).usePacketAcknowledgement,
-    /**
-     * ibc.core.channel.v1.usePacketAcknowledgements
-     * PacketAcknowledgements returns all the packet acknowledgements associated
-     * with a channel.
-     */
-    usePacketAcknowledgements: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).usePacketAcknowledgements,
-    /**
-     * ibc.core.channel.v1.useUnreceivedPackets
-     * UnreceivedPackets returns all the unreceived IBC packets associated with a
-     * channel and sequences.
-     */
-    useUnreceivedPackets: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useUnreceivedPackets,
-    /**
-     * ibc.core.channel.v1.useUnreceivedAcks
-     * UnreceivedAcks returns all the unreceived IBC acknowledgements associated
-     * with a channel and sequences.
-     */
-    useUnreceivedAcks: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useUnreceivedAcks,
-    /**
-     * ibc.core.channel.v1.useNextSequenceReceive
-     * NextSequenceReceive returns the next receive sequence for a given channel.
-     */
-    useNextSequenceReceive: _IbcCoreChannelV1Queryrpc.createRpcQueryHooks(rpc).useNextSequenceReceive,
-    /**
-     * ibc.core.client.v1.useClientState
-     * ClientState queries an IBC light client.
-     */
-    useClientState: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useClientState,
-    /**
-     * ibc.core.client.v1.useClientStates
-     * ClientStates queries all the IBC light clients of a chain.
-     */
-    useClientStates: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useClientStates,
-    /**
-     * ibc.core.client.v1.useConsensusState
-     * ConsensusState queries a consensus state associated with a client state at
-     * a given height.
-     */
-    useConsensusState: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useConsensusState,
-    /**
-     * ibc.core.client.v1.useConsensusStates
-     * ConsensusStates queries all the consensus state associated with a given
-     * client.
-     */
-    useConsensusStates: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useConsensusStates,
-    /**
-     * ibc.core.client.v1.useClientStatus
-     * Status queries the status of an IBC client.
-     */
-    useClientStatus: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useClientStatus,
-    /**
-     * ibc.core.client.v1.useClientParams
-     * ClientParams queries all parameters of the ibc client.
-     */
-    useClientParams: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useClientParams,
-    /**
-     * ibc.core.client.v1.useUpgradedClientState
-     * UpgradedClientState queries an Upgraded IBC light client.
-     */
-    useUpgradedClientState: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useUpgradedClientState,
-    /**
-     * ibc.core.client.v1.useUpgradedConsensusState
-     * UpgradedConsensusState queries an Upgraded IBC consensus state.
-     */
-    useIbcCoreClientV1UpgradedConsensusState: _IbcCoreClientV1Queryrpc.createRpcQueryHooks(rpc).useUpgradedConsensusState,
-    /**
-     * ibc.core.connection.v1.useConnection
-     * Connection queries an IBC connection end.
-     */
-    useConnection: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc).useConnection,
-    /**
-     * ibc.core.connection.v1.useConnections
-     * Connections queries all the IBC connections of a chain.
-     */
-    useConnections: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc).useConnections,
-    /**
-     * ibc.core.connection.v1.useClientConnections
-     * ClientConnections queries the connection paths associated with a client
-     * state.
-     */
-    useClientConnections: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc).useClientConnections,
-    /**
-     * ibc.core.connection.v1.useConnectionClientState
-     * ConnectionClientState queries the client state associated with the
-     * connection.
-     */
-    useConnectionClientState: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc).useConnectionClientState,
-    /**
-     * ibc.core.connection.v1.useConnectionConsensusState
-     * ConnectionConsensusState queries the consensus state associated with the
-     * connection.
-     */
-    useConnectionConsensusState: _IbcCoreConnectionV1Queryrpc.createRpcQueryHooks(rpc).useConnectionConsensusState,
-    /**
-     * ibc.core.port.v1.useAppVersion
-     * AppVersion queries an IBC Port and determines the appropriate application version to be used
-     */
-    useAppVersion: _IbcCorePortV1Queryrpc.createRpcQueryHooks(rpc).useAppVersion,
-    /**
-     * osmosis.claim.v1beta1.useModuleAccountBalance
-     * ModuleAccountBalance
-     */
-    useModuleAccountBalance: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc).useModuleAccountBalance,
-    /**
-     * osmosis.claim.v1beta1.useParams
-     * Params
-     */
-    useOsmosisClaimV1beta1Params: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.claim.v1beta1.useClaimRecord
-     * ClaimRecord
-     */
-    useClaimRecord: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc).useClaimRecord,
-    /**
-     * osmosis.claim.v1beta1.useClaimableForAction
-     * ClaimableForAction
-     */
-    useClaimableForAction: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc).useClaimableForAction,
-    /**
-     * osmosis.claim.v1beta1.useTotalClaimable
-     * TotalClaimable
-     */
-    useTotalClaimable: _OsmosisClaimV1beta1Queryrpc.createRpcQueryHooks(rpc).useTotalClaimable,
-    /**
-     * osmosis.epochs.v1beta1.useEpochInfos
-     * EpochInfos provide running epochInfos
-     */
-    useEpochInfos: _OsmosisEpochsQueryrpc.createRpcQueryHooks(rpc).useEpochInfos,
-    /**
-     * osmosis.epochs.v1beta1.useCurrentEpoch
-     * CurrentEpoch provide current epoch of specified identifier
-     */
-    useCurrentEpoch: _OsmosisEpochsQueryrpc.createRpcQueryHooks(rpc).useCurrentEpoch,
-    /**
-     * osmosis.gamm.v1beta1.usePools
-     * Pools
-     */
-    usePools: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).usePools,
-    /**
-     * osmosis.gamm.v1beta1.useNumPools
-     * NumPools
-     */
-    useNumPools: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useNumPools,
-    /**
-     * osmosis.gamm.v1beta1.useTotalLiquidity
-     * TotalLiquidity
-     */
-    useTotalLiquidity: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useTotalLiquidity,
-    /**
-     * osmosis.gamm.v1beta1.usePoolsWithFilter
-     * PoolsWithFilter allows you to query specific pools with requested
-     * parameters
-     */
-    usePoolsWithFilter: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).usePoolsWithFilter,
-    /**
-     * osmosis.gamm.v1beta1.usePool
-     * Per Pool gRPC Endpoints
-     */
-    useOsmosisGammV1beta1Pool: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).usePool,
-    /**
-     * osmosis.gamm.v1beta1.usePoolType
-     * PoolType returns the type of the pool.
-     * Returns "Balancer" as a string literal when the pool is a balancer pool.
-     * Errors if the pool is failed to be type caseted.
-     */
-    usePoolType: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).usePoolType,
-    /**
-     * osmosis.gamm.v1beta1.useCalcJoinPoolNoSwapShares
-     * Simulates joining pool without a swap. Returns the amount of shares you'd
-     * get and tokens needed to provide
-     */
-    useCalcJoinPoolNoSwapShares: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useCalcJoinPoolNoSwapShares,
-    /**
-     * osmosis.gamm.v1beta1.useCalcJoinPoolShares
-     * CalcJoinPoolShares
-     */
-    useCalcJoinPoolShares: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useCalcJoinPoolShares,
-    /**
-     * osmosis.gamm.v1beta1.useCalcExitPoolCoinsFromShares
-     * CalcExitPoolCoinsFromShares
-     */
-    useCalcExitPoolCoinsFromShares: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useCalcExitPoolCoinsFromShares,
-    /**
-     * osmosis.gamm.v1beta1.usePoolParams
-     * PoolParams
-     */
-    usePoolParams: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).usePoolParams,
-    /**
-     * osmosis.gamm.v1beta1.useTotalPoolLiquidity
-     * TotalPoolLiquidity
-     */
-    useTotalPoolLiquidity: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useTotalPoolLiquidity,
-    /**
-     * osmosis.gamm.v1beta1.useTotalShares
-     * TotalShares
-     */
-    useTotalShares: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useTotalShares,
-    /**
-     * osmosis.gamm.v1beta1.useSpotPrice
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    useSpotPrice: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useSpotPrice,
-    /**
-     * osmosis.gamm.v1beta1.useEstimateSwapExactAmountIn
-     * Estimate the swap.
-     */
-    useEstimateSwapExactAmountIn: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useEstimateSwapExactAmountIn,
-    /**
-     * osmosis.gamm.v1beta1.useEstimateSwapExactAmountOut
-     * EstimateSwapExactAmountOut
-     */
-    useEstimateSwapExactAmountOut: _OsmosisGammV1beta1Queryrpc.createRpcQueryHooks(rpc).useEstimateSwapExactAmountOut,
-    /**
-     * osmosis.gamm.v2.useSpotPrice
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    useOsmosisGammV2SpotPrice: _OsmosisGammV2Queryrpc.createRpcQueryHooks(rpc).useSpotPrice,
-    /**
-     * osmosis.ibcratelimit.v1beta1.useParams
-     * Params defines a gRPC query method that returns the ibc-rate-limit module's
-     * parameters.
-     */
-    useOsmosisIbcratelimitV1beta1Params: _OsmosisIbcratelimitV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.incentives.useModuleToDistributeCoins
-     * ModuleToDistributeCoins returns coins that are going to be distributed
-     */
-    useModuleToDistributeCoins: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useModuleToDistributeCoins,
-    /**
-     * osmosis.incentives.useGaugeByID
-     * GaugeByID returns gauges by their respective ID
-     */
-    useGaugeByID: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useGaugeByID,
-    /**
-     * osmosis.incentives.useGauges
-     * Gauges returns both upcoming and active gauges
-     */
-    useGauges: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useGauges,
-    /**
-     * osmosis.incentives.useActiveGauges
-     * ActiveGauges returns active gauges
-     */
-    useActiveGauges: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useActiveGauges,
-    /**
-     * osmosis.incentives.useActiveGaugesPerDenom
-     * ActiveGaugesPerDenom returns active gauges by denom
-     */
-    useActiveGaugesPerDenom: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useActiveGaugesPerDenom,
-    /**
-     * osmosis.incentives.useUpcomingGauges
-     * Returns scheduled gauges that have not yet occured
-     */
-    useUpcomingGauges: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useUpcomingGauges,
-    /**
-     * osmosis.incentives.useUpcomingGaugesPerDenom
-     * UpcomingGaugesPerDenom returns scheduled gauges that have not yet occured
-     * by denom
-     */
-    useUpcomingGaugesPerDenom: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useUpcomingGaugesPerDenom,
-    /**
-     * osmosis.incentives.useRewardsEst
-     * RewardsEst returns an estimate of the rewards from now until a specified
-     * time in the future The querier either provides an address or a set of locks
-     * for which they want to find the associated rewards
-     */
-    useRewardsEst: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useRewardsEst,
-    /**
-     * osmosis.incentives.useLockableDurations
-     * LockableDurations returns lockable durations that are valid to distribute
-     * incentives for
-     */
-    useLockableDurations: _OsmosisIncentivesQueryrpc.createRpcQueryHooks(rpc).useLockableDurations,
-    /**
-     * osmosis.lockup.useModuleBalance
-     * Return full balance of the module
-     */
-    useModuleBalance: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useModuleBalance,
-    /**
-     * osmosis.lockup.useModuleLockedAmount
-     * Return locked balance of the module
-     */
-    useModuleLockedAmount: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useModuleLockedAmount,
-    /**
-     * osmosis.lockup.useAccountUnlockableCoins
-     * Returns unlockable coins which are not withdrawn yet
-     */
-    useAccountUnlockableCoins: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountUnlockableCoins,
-    /**
-     * osmosis.lockup.useAccountUnlockingCoins
-     * Returns unlocking coins
-     */
-    useAccountUnlockingCoins: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountUnlockingCoins,
-    /**
-     * osmosis.lockup.useAccountLockedCoins
-     * Return a locked coins that can't be withdrawn
-     */
-    useAccountLockedCoins: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedCoins,
-    /**
-     * osmosis.lockup.useAccountLockedPastTime
-     * Returns locked records of an account with unlock time beyond timestamp
-     */
-    useAccountLockedPastTime: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedPastTime,
-    /**
-     * osmosis.lockup.useAccountLockedPastTimeNotUnlockingOnly
-     * Returns locked records of an account with unlock time beyond timestamp
-     * excluding tokens started unlocking
-     */
-    useAccountLockedPastTimeNotUnlockingOnly: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedPastTimeNotUnlockingOnly,
-    /**
-     * osmosis.lockup.useAccountUnlockedBeforeTime
-     * Returns unlocked records with unlock time before timestamp
-     */
-    useAccountUnlockedBeforeTime: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountUnlockedBeforeTime,
-    /**
-     * osmosis.lockup.useAccountLockedPastTimeDenom
-     * Returns lock records by address, timestamp, denom
-     */
-    useAccountLockedPastTimeDenom: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedPastTimeDenom,
-    /**
-     * osmosis.lockup.useLockedDenom
-     * Returns total locked per denom with longer past given time
-     */
-    useLockedDenom: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useLockedDenom,
-    /**
-     * osmosis.lockup.useLockedByID
-     * Returns lock record by id
-     */
-    useLockedByID: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useLockedByID,
-    /**
-     * osmosis.lockup.useSyntheticLockupsByLockupID
-     * Returns synthetic lockups by native lockup id
-     */
-    useSyntheticLockupsByLockupID: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useSyntheticLockupsByLockupID,
-    /**
-     * osmosis.lockup.useAccountLockedLongerDuration
-     * Returns account locked records with longer duration
-     */
-    useAccountLockedLongerDuration: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedLongerDuration,
-    /**
-     * osmosis.lockup.useAccountLockedDuration
-     * Returns account locked records with a specific duration
-     */
-    useAccountLockedDuration: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedDuration,
-    /**
-     * osmosis.lockup.useAccountLockedLongerDurationNotUnlockingOnly
-     * Returns account locked records with longer duration excluding tokens
-     * started unlocking
-     */
-    useAccountLockedLongerDurationNotUnlockingOnly: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedLongerDurationNotUnlockingOnly,
-    /**
-     * osmosis.lockup.useAccountLockedLongerDurationDenom
-     * Returns account's locked records for a denom with longer duration
-     */
-    useAccountLockedLongerDurationDenom: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useAccountLockedLongerDurationDenom,
-    /**
-     * osmosis.lockup.useParams
-     * Params returns lockup params.
-     */
-    useOsmosisLockupParams: _OsmosisLockupQueryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.mint.v1beta1.useParams
-     * Params returns the total set of minting parameters.
-     */
-    useOsmosisMintV1beta1Params: _OsmosisMintV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.mint.v1beta1.useEpochProvisions
-     * EpochProvisions returns the current minting epoch provisions value.
-     */
-    useEpochProvisions: _OsmosisMintV1beta1Queryrpc.createRpcQueryHooks(rpc).useEpochProvisions,
-    /**
-     * osmosis.poolincentives.v1beta1.useGaugeIds
-     * GaugeIds takes the pool id and returns the matching gauge ids and durations
-     */
-    useGaugeIds: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useGaugeIds,
-    /**
-     * osmosis.poolincentives.v1beta1.useDistrInfo
-     * DistrInfo returns the pool's matching gauge ids and weights.
-     */
-    useDistrInfo: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useDistrInfo,
-    /**
-     * osmosis.poolincentives.v1beta1.useParams
-     * Params returns pool incentives params.
-     */
-    useOsmosisPoolincentivesV1beta1Params: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.poolincentives.v1beta1.useLockableDurations
-     * LockableDurations returns lock durations for pools.
-     */
-    useOsmosisPoolincentivesV1beta1LockableDurations: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useLockableDurations,
-    /**
-     * osmosis.poolincentives.v1beta1.useIncentivizedPools
-     * IncentivizedPools returns currently incentivized pools
-     */
-    useIncentivizedPools: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useIncentivizedPools,
-    /**
-     * osmosis.poolincentives.v1beta1.useExternalIncentiveGauges
-     * ExternalIncentiveGauges returns external incentive gauges.
-     */
-    useExternalIncentiveGauges: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryHooks(rpc).useExternalIncentiveGauges,
-    /**
-     * osmosis.superfluid.useParams
-     * Params returns the total set of superfluid parameters.
-     */
-    useOsmosisSuperfluidParams: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.superfluid.useAssetType
-     * Returns superfluid asset type, whether if it's a native asset or an lp
-     * share.
-     */
-    useAssetType: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useAssetType,
-    /**
-     * osmosis.superfluid.useAllAssets
-     * Returns all registered superfluid assets.
-     */
-    useAllAssets: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useAllAssets,
-    /**
-     * osmosis.superfluid.useAssetMultiplier
-     * Returns the osmo equivalent multiplier used in the most recent epoch.
-     */
-    useAssetMultiplier: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useAssetMultiplier,
-    /**
-     * osmosis.superfluid.useAllIntermediaryAccounts
-     * Returns all superfluid intermediary accounts.
-     */
-    useAllIntermediaryAccounts: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useAllIntermediaryAccounts,
-    /**
-     * osmosis.superfluid.useConnectedIntermediaryAccount
-     * Returns intermediary account connected to a superfluid staked lock by id
-     */
-    useConnectedIntermediaryAccount: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useConnectedIntermediaryAccount,
-    /**
-     * osmosis.superfluid.useTotalDelegationByValidatorForDenom
-     * Returns the amount of delegations of specific denom for all validators
-     */
-    useTotalDelegationByValidatorForDenom: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useTotalDelegationByValidatorForDenom,
-    /**
-     * osmosis.superfluid.useTotalSuperfluidDelegations
-     * Returns the total amount of osmo superfluidly staked.
-     * Response is denominated in uosmo.
-     */
-    useTotalSuperfluidDelegations: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useTotalSuperfluidDelegations,
-    /**
-     * osmosis.superfluid.useSuperfluidDelegationAmount
-     * Returns the coins superfluid delegated for the delegator, validator, denom
-     * triplet
-     */
-    useSuperfluidDelegationAmount: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useSuperfluidDelegationAmount,
-    /**
-     * osmosis.superfluid.useSuperfluidDelegationsByDelegator
-     * Returns all the delegated superfluid poistions for a specific delegator.
-     */
-    useSuperfluidDelegationsByDelegator: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useSuperfluidDelegationsByDelegator,
-    /**
-     * osmosis.superfluid.useSuperfluidUndelegationsByDelegator
-     * Returns all the undelegating superfluid poistions for a specific delegator.
-     */
-    useSuperfluidUndelegationsByDelegator: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useSuperfluidUndelegationsByDelegator,
-    /**
-     * osmosis.superfluid.useSuperfluidDelegationsByValidatorDenom
-     * Returns all the superfluid positions of a specific denom delegated to one
-     * validator
-     */
-    useSuperfluidDelegationsByValidatorDenom: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useSuperfluidDelegationsByValidatorDenom,
-    /**
-     * osmosis.superfluid.useEstimateSuperfluidDelegatedAmountByValidatorDenom
-     * Returns the amount of a specific denom delegated to a specific validator
-     * This is labeled an estimate, because the way it calculates the amount can
-     * lead rounding errors from the true delegated amount
-     */
-    useEstimateSuperfluidDelegatedAmountByValidatorDenom: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useEstimateSuperfluidDelegatedAmountByValidatorDenom,
-    /**
-     * osmosis.superfluid.useTotalDelegationByDelegator
-     * Returns the specified delegations for a specific delegator
-     */
-    useTotalDelegationByDelegator: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useTotalDelegationByDelegator,
-    /**
-     * osmosis.superfluid.useUnpoolWhitelist
-     * Returns a list of whitelisted pool ids to unpool.
-     */
-    useUnpoolWhitelist: _OsmosisSuperfluidQueryrpc.createRpcQueryHooks(rpc).useUnpoolWhitelist,
-    /**
-     * osmosis.tokenfactory.v1beta1.useParams
-     * Params defines a gRPC query method that returns the tokenfactory module's
-     * parameters.
-     */
-    useOsmosisTokenfactoryV1beta1Params: _OsmosisTokenfactoryV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.tokenfactory.v1beta1.useDenomAuthorityMetadata
-     * DenomAuthorityMetadata defines a gRPC query method for fetching
-     * DenomAuthorityMetadata for a particular denom.
-     */
-    useDenomAuthorityMetadata: _OsmosisTokenfactoryV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomAuthorityMetadata,
-    /**
-     * osmosis.tokenfactory.v1beta1.useDenomsFromCreator
-     * DenomsFromCreator defines a gRPC query method for fetching all
-     * denominations created by a specific admin/creator.
-     */
-    useDenomsFromCreator: _OsmosisTokenfactoryV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomsFromCreator,
-    /**
-     * osmosis.twap.v1beta1.useParams
-     * Params
-     */
-    useOsmosisTwapV1beta1Params: _OsmosisTwapV1beta1Queryrpc.createRpcQueryHooks(rpc).useParams,
-    /**
-     * osmosis.twap.v1beta1.useArithmeticTwap
-     * ArithmeticTwap
-     */
-    useArithmeticTwap: _OsmosisTwapV1beta1Queryrpc.createRpcQueryHooks(rpc).useArithmeticTwap,
-    /**
-     * osmosis.twap.v1beta1.useArithmeticTwapToNow
-     * ArithmeticTwapToNow
-     */
-    useArithmeticTwapToNow: _OsmosisTwapV1beta1Queryrpc.createRpcQueryHooks(rpc).useArithmeticTwapToNow,
-    /**
-     * osmosis.txfees.v1beta1.useFeeTokens
-     * FeeTokens returns a list of all the whitelisted fee tokens and their
-     * corresponding pools. It does not include the BaseDenom, which has its own
-     * query endpoint
-     */
-    useFeeTokens: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryHooks(rpc).useFeeTokens,
-    /**
-     * osmosis.txfees.v1beta1.useDenomSpotPrice
-     * DenomSpotPrice returns all spot prices by each registered token denom.
-     */
-    useDenomSpotPrice: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomSpotPrice,
-    /**
-     * osmosis.txfees.v1beta1.useDenomPoolId
-     * Returns the poolID for a specified denom input.
-     */
-    useDenomPoolId: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryHooks(rpc).useDenomPoolId,
-    /**
-     * osmosis.txfees.v1beta1.useBaseDenom
-     * Returns a list of all base denom tokens and their corresponding pools.
-     */
-    useBaseDenom: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryHooks(rpc).useBaseDenom
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/genesis.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/genesis.ts
deleted file mode 100644
index 97113dfe..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/genesis.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-import { DenomTrace, DenomTraceAmino, DenomTraceSDKType, Params, ParamsAmino, ParamsSDKType } from "./transfer";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** GenesisState defines the ibc-transfer genesis state */
-export interface GenesisState {
-  portId: string;
-  denomTraces: DenomTrace[];
-  params: Params | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the ibc-transfer genesis state */
-export interface GenesisStateAmino {
-  port_id: string;
-  denom_traces: DenomTraceAmino[];
-  params?: ParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the ibc-transfer genesis state */
-export interface GenesisStateSDKType {
-  port_id: string;
-  denom_traces: DenomTraceSDKType[];
-  params: ParamsSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    portId: "",
-    denomTraces: [],
-    params: Params.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/ibc.applications.transfer.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    for (const v of message.denomTraces) {
-      DenomTrace.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.denomTraces.push(DenomTrace.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      denomTraces: Array.isArray(object?.denomTraces) ? object.denomTraces.map((e: any) => DenomTrace.fromJSON(e)) : [],
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    if (message.denomTraces) {
-      obj.denomTraces = message.denomTraces.map(e => e ? DenomTrace.toJSON(e) : undefined);
-    } else {
-      obj.denomTraces = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.portId = object.portId ?? "";
-    message.denomTraces = object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || [];
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      portId: object?.port_id,
-      denomTraces: Array.isArray(object?.denom_traces) ? object.denom_traces.map((e: any) => DenomTrace.fromSDK(e)) : [],
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    if (message.denomTraces) {
-      obj.denom_traces = message.denomTraces.map(e => e ? DenomTrace.toSDK(e) : undefined);
-    } else {
-      obj.denom_traces = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      portId: object.port_id,
-      denomTraces: Array.isArray(object?.denom_traces) ? object.denom_traces.map((e: any) => DenomTrace.fromAmino(e)) : [],
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    if (message.denomTraces) {
-      obj.denom_traces = message.denomTraces.map(e => e ? DenomTrace.toAmino(e) : undefined);
-    } else {
-      obj.denom_traces = [];
-    }
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/query.rpc.Query.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/query.rpc.Query.ts
deleted file mode 100644
index 8bf06c6f..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { QueryDenomTraceRequest, QueryDenomTraceResponse, QueryDenomTracesRequest, QueryDenomTracesResponse, QueryParamsRequest, QueryParamsResponse } from "./query";
-/** Query provides defines the gRPC querier service. */
-export interface Query {
-  /** DenomTrace queries a denomination trace information. */
-  denomTrace(request: QueryDenomTraceRequest): Promise<QueryDenomTraceResponse>;
-  /** DenomTraces queries all denomination traces. */
-  denomTraces(request?: QueryDenomTracesRequest): Promise<QueryDenomTracesResponse>;
-  /** Params queries all parameters of the ibc-transfer module. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.denomTrace = this.denomTrace.bind(this);
-    this.denomTraces = this.denomTraces.bind(this);
-    this.params = this.params.bind(this);
-  }
-  denomTrace(request: QueryDenomTraceRequest): Promise<QueryDenomTraceResponse> {
-    const data = QueryDenomTraceRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTrace", data);
-    return promise.then(data => QueryDenomTraceResponse.decode(new BinaryReader(data)));
-  }
-  denomTraces(request: QueryDenomTracesRequest = {
-    pagination: undefined
-  }): Promise<QueryDenomTracesResponse> {
-    const data = QueryDenomTracesRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTraces", data);
-    return promise.then(data => QueryDenomTracesResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    denomTrace(request: QueryDenomTraceRequest): Promise<QueryDenomTraceResponse> {
-      return queryService.denomTrace(request);
-    },
-    denomTraces(request?: QueryDenomTracesRequest): Promise<QueryDenomTracesResponse> {
-      return queryService.denomTraces(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    }
-  };
-};
-export interface UseDenomTraceQuery<TData> extends ReactQueryParams<QueryDenomTraceResponse, TData> {
-  request: QueryDenomTraceRequest;
-}
-export interface UseDenomTracesQuery<TData> extends ReactQueryParams<QueryDenomTracesResponse, TData> {
-  request?: QueryDenomTracesRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useDenomTrace = <TData = QueryDenomTraceResponse,>({
-    request,
-    options
-  }: UseDenomTraceQuery<TData>) => {
-    return useQuery<QueryDenomTraceResponse, Error, TData>(["denomTraceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomTrace(request);
-    }, options);
-  };
-  const useDenomTraces = <TData = QueryDenomTracesResponse,>({
-    request,
-    options
-  }: UseDenomTracesQuery<TData>) => {
-    return useQuery<QueryDenomTracesResponse, Error, TData>(["denomTracesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomTraces(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  return {
-    /** DenomTrace queries a denomination trace information. */useDenomTrace,
-    /** DenomTraces queries all denomination traces. */useDenomTraces,
-    /** Params queries all parameters of the ibc-transfer module. */useParams
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryDenomTraceStore {
-    store = new QueryStore<QueryDenomTraceRequest, QueryDenomTraceResponse>(queryService?.denomTrace);
-    denomTrace(request: QueryDenomTraceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomTracesStore {
-    store = new QueryStore<QueryDenomTracesRequest, QueryDenomTracesResponse>(queryService?.denomTraces);
-    denomTraces(request: QueryDenomTracesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** DenomTrace queries a denomination trace information. */QueryDenomTraceStore,
-    /** DenomTraces queries all denomination traces. */QueryDenomTracesStore,
-    /** Params queries all parameters of the ibc-transfer module. */QueryParamsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/query.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/query.ts
deleted file mode 100644
index d667b42a..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/query.ts
+++ /dev/null
@@ -1,705 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination";
-import { DenomTrace, DenomTraceAmino, DenomTraceSDKType, Params, ParamsAmino, ParamsSDKType } from "./transfer";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC
- * method
- */
-export interface QueryDenomTraceRequest {
-  /** hash (in hex format) of the denomination trace information. */
-  hash: string;
-}
-export interface QueryDenomTraceRequestProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC
- * method
- */
-export interface QueryDenomTraceRequestAmino {
-  /** hash (in hex format) of the denomination trace information. */
-  hash: string;
-}
-export interface QueryDenomTraceRequestAminoMsg {
-  type: "cosmos-sdk/QueryDenomTraceRequest";
-  value: QueryDenomTraceRequestAmino;
-}
-/**
- * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC
- * method
- */
-export interface QueryDenomTraceRequestSDKType {
-  hash: string;
-}
-/**
- * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC
- * method.
- */
-export interface QueryDenomTraceResponse {
-  /** denom_trace returns the requested denomination trace information. */
-  denomTrace: DenomTrace | undefined;
-}
-export interface QueryDenomTraceResponseProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC
- * method.
- */
-export interface QueryDenomTraceResponseAmino {
-  /** denom_trace returns the requested denomination trace information. */
-  denom_trace?: DenomTraceAmino | undefined;
-}
-export interface QueryDenomTraceResponseAminoMsg {
-  type: "cosmos-sdk/QueryDenomTraceResponse";
-  value: QueryDenomTraceResponseAmino;
-}
-/**
- * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC
- * method.
- */
-export interface QueryDenomTraceResponseSDKType {
-  denom_trace: DenomTraceSDKType | undefined;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC
- * method
- */
-export interface QueryDenomTracesRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryDenomTracesRequestProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC
- * method
- */
-export interface QueryDenomTracesRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryDenomTracesRequestAminoMsg {
-  type: "cosmos-sdk/QueryDenomTracesRequest";
-  value: QueryDenomTracesRequestAmino;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC
- * method
- */
-export interface QueryDenomTracesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC
- * method.
- */
-export interface QueryDenomTracesResponse {
-  /** denom_traces returns all denominations trace information. */
-  denomTraces: DenomTrace[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryDenomTracesResponseProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC
- * method.
- */
-export interface QueryDenomTracesResponseAmino {
-  /** denom_traces returns all denominations trace information. */
-  denom_traces: DenomTraceAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryDenomTracesResponseAminoMsg {
-  type: "cosmos-sdk/QueryDenomTracesResponse";
-  value: QueryDenomTracesResponseAmino;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC
- * method.
- */
-export interface QueryDenomTracesResponseSDKType {
-  denom_traces: DenomTraceSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryParamsRequest";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryParamsResponse";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-function createBaseQueryDenomTraceRequest(): QueryDenomTraceRequest {
-  return {
-    hash: ""
-  };
-}
-export const QueryDenomTraceRequest = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceRequest",
-  aminoType: "cosmos-sdk/QueryDenomTraceRequest",
-  encode(message: QueryDenomTraceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash !== "") {
-      writer.uint32(10).string(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomTraceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomTraceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomTraceRequest {
-    return {
-      hash: isSet(object.hash) ? String(object.hash) : ""
-    };
-  },
-  toJSON(message: QueryDenomTraceRequest): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = message.hash);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomTraceRequest>): QueryDenomTraceRequest {
-    const message = createBaseQueryDenomTraceRequest();
-    message.hash = object.hash ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomTraceRequestSDKType): QueryDenomTraceRequest {
-    return {
-      hash: object?.hash
-    };
-  },
-  toSDK(message: QueryDenomTraceRequest): QueryDenomTraceRequestSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: QueryDenomTraceRequestAmino): QueryDenomTraceRequest {
-    return {
-      hash: object.hash
-    };
-  },
-  toAmino(message: QueryDenomTraceRequest): QueryDenomTraceRequestAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomTraceRequestAminoMsg): QueryDenomTraceRequest {
-    return QueryDenomTraceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomTraceRequest): QueryDenomTraceRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomTraceRequest",
-      value: QueryDenomTraceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomTraceRequestProtoMsg): QueryDenomTraceRequest {
-    return QueryDenomTraceRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomTraceRequest): Uint8Array {
-    return QueryDenomTraceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomTraceRequest): QueryDenomTraceRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceRequest",
-      value: QueryDenomTraceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomTraceResponse(): QueryDenomTraceResponse {
-  return {
-    denomTrace: DenomTrace.fromPartial({})
-  };
-}
-export const QueryDenomTraceResponse = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceResponse",
-  aminoType: "cosmos-sdk/QueryDenomTraceResponse",
-  encode(message: QueryDenomTraceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denomTrace !== undefined) {
-      DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomTraceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomTraceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denomTrace = DenomTrace.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomTraceResponse {
-    return {
-      denomTrace: isSet(object.denomTrace) ? DenomTrace.fromJSON(object.denomTrace) : undefined
-    };
-  },
-  toJSON(message: QueryDenomTraceResponse): unknown {
-    const obj: any = {};
-    message.denomTrace !== undefined && (obj.denomTrace = message.denomTrace ? DenomTrace.toJSON(message.denomTrace) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomTraceResponse>): QueryDenomTraceResponse {
-    const message = createBaseQueryDenomTraceResponse();
-    message.denomTrace = object.denomTrace !== undefined && object.denomTrace !== null ? DenomTrace.fromPartial(object.denomTrace) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomTraceResponseSDKType): QueryDenomTraceResponse {
-    return {
-      denomTrace: object.denom_trace ? DenomTrace.fromSDK(object.denom_trace) : undefined
-    };
-  },
-  toSDK(message: QueryDenomTraceResponse): QueryDenomTraceResponseSDKType {
-    const obj: any = {};
-    message.denomTrace !== undefined && (obj.denom_trace = message.denomTrace ? DenomTrace.toSDK(message.denomTrace) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomTraceResponseAmino): QueryDenomTraceResponse {
-    return {
-      denomTrace: object?.denom_trace ? DenomTrace.fromAmino(object.denom_trace) : undefined
-    };
-  },
-  toAmino(message: QueryDenomTraceResponse): QueryDenomTraceResponseAmino {
-    const obj: any = {};
-    obj.denom_trace = message.denomTrace ? DenomTrace.toAmino(message.denomTrace) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomTraceResponseAminoMsg): QueryDenomTraceResponse {
-    return QueryDenomTraceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomTraceResponse): QueryDenomTraceResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomTraceResponse",
-      value: QueryDenomTraceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomTraceResponseProtoMsg): QueryDenomTraceResponse {
-    return QueryDenomTraceResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomTraceResponse): Uint8Array {
-    return QueryDenomTraceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomTraceResponse): QueryDenomTraceResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceResponse",
-      value: QueryDenomTraceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomTracesRequest(): QueryDenomTracesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryDenomTracesRequest = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesRequest",
-  aminoType: "cosmos-sdk/QueryDenomTracesRequest",
-  encode(message: QueryDenomTracesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomTracesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomTracesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomTracesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomTracesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomTracesRequest>): QueryDenomTracesRequest {
-    const message = createBaseQueryDenomTracesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomTracesRequestSDKType): QueryDenomTracesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomTracesRequest): QueryDenomTracesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomTracesRequestAmino): QueryDenomTracesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomTracesRequest): QueryDenomTracesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomTracesRequestAminoMsg): QueryDenomTracesRequest {
-    return QueryDenomTracesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomTracesRequest): QueryDenomTracesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomTracesRequest",
-      value: QueryDenomTracesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomTracesRequestProtoMsg): QueryDenomTracesRequest {
-    return QueryDenomTracesRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomTracesRequest): Uint8Array {
-    return QueryDenomTracesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomTracesRequest): QueryDenomTracesRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesRequest",
-      value: QueryDenomTracesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomTracesResponse(): QueryDenomTracesResponse {
-  return {
-    denomTraces: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryDenomTracesResponse = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesResponse",
-  aminoType: "cosmos-sdk/QueryDenomTracesResponse",
-  encode(message: QueryDenomTracesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.denomTraces) {
-      DenomTrace.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomTracesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomTracesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denomTraces.push(DenomTrace.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomTracesResponse {
-    return {
-      denomTraces: Array.isArray(object?.denomTraces) ? object.denomTraces.map((e: any) => DenomTrace.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryDenomTracesResponse): unknown {
-    const obj: any = {};
-    if (message.denomTraces) {
-      obj.denomTraces = message.denomTraces.map(e => e ? DenomTrace.toJSON(e) : undefined);
-    } else {
-      obj.denomTraces = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomTracesResponse>): QueryDenomTracesResponse {
-    const message = createBaseQueryDenomTracesResponse();
-    message.denomTraces = object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomTracesResponseSDKType): QueryDenomTracesResponse {
-    return {
-      denomTraces: Array.isArray(object?.denom_traces) ? object.denom_traces.map((e: any) => DenomTrace.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryDenomTracesResponse): QueryDenomTracesResponseSDKType {
-    const obj: any = {};
-    if (message.denomTraces) {
-      obj.denom_traces = message.denomTraces.map(e => e ? DenomTrace.toSDK(e) : undefined);
-    } else {
-      obj.denom_traces = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomTracesResponseAmino): QueryDenomTracesResponse {
-    return {
-      denomTraces: Array.isArray(object?.denom_traces) ? object.denom_traces.map((e: any) => DenomTrace.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryDenomTracesResponse): QueryDenomTracesResponseAmino {
-    const obj: any = {};
-    if (message.denomTraces) {
-      obj.denom_traces = message.denomTraces.map(e => e ? DenomTrace.toAmino(e) : undefined);
-    } else {
-      obj.denom_traces = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomTracesResponseAminoMsg): QueryDenomTracesResponse {
-    return QueryDenomTracesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomTracesResponse): QueryDenomTracesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryDenomTracesResponse",
-      value: QueryDenomTracesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomTracesResponseProtoMsg): QueryDenomTracesResponse {
-    return QueryDenomTracesResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomTracesResponse): Uint8Array {
-    return QueryDenomTracesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomTracesResponse): QueryDenomTracesResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesResponse",
-      value: QueryDenomTracesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryParamsRequest",
-  aminoType: "cosmos-sdk/QueryParamsRequest",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsRequest",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/ibc.applications.transfer.v1.QueryParamsResponse",
-  aminoType: "cosmos-sdk/QueryParamsResponse",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryParamsResponse",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/transfer.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/transfer.ts
deleted file mode 100644
index 6524585f..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/transfer.ts
+++ /dev/null
@@ -1,302 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * DenomTrace contains the base denomination for ICS20 fungible tokens and the
- * source tracing information path.
- */
-export interface DenomTrace {
-  /**
-   * path defines the chain of port/channel identifiers used for tracing the
-   * source of the fungible token.
-   */
-  path: string;
-  /** base denomination of the relayed fungible token. */
-  baseDenom: string;
-}
-export interface DenomTraceProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.DenomTrace";
-  value: Uint8Array;
-}
-/**
- * DenomTrace contains the base denomination for ICS20 fungible tokens and the
- * source tracing information path.
- */
-export interface DenomTraceAmino {
-  /**
-   * path defines the chain of port/channel identifiers used for tracing the
-   * source of the fungible token.
-   */
-  path: string;
-  /** base denomination of the relayed fungible token. */
-  base_denom: string;
-}
-export interface DenomTraceAminoMsg {
-  type: "cosmos-sdk/DenomTrace";
-  value: DenomTraceAmino;
-}
-/**
- * DenomTrace contains the base denomination for ICS20 fungible tokens and the
- * source tracing information path.
- */
-export interface DenomTraceSDKType {
-  path: string;
-  base_denom: string;
-}
-/**
- * Params defines the set of IBC transfer parameters.
- * NOTE: To prevent a single token from being transferred, set the
- * TransfersEnabled parameter to true and then set the bank module's SendEnabled
- * parameter for the denomination to false.
- */
-export interface Params {
-  /**
-   * send_enabled enables or disables all cross-chain token transfers from this
-   * chain.
-   */
-  sendEnabled: boolean;
-  /**
-   * receive_enabled enables or disables all cross-chain token transfers to this
-   * chain.
-   */
-  receiveEnabled: boolean;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.Params";
-  value: Uint8Array;
-}
-/**
- * Params defines the set of IBC transfer parameters.
- * NOTE: To prevent a single token from being transferred, set the
- * TransfersEnabled parameter to true and then set the bank module's SendEnabled
- * parameter for the denomination to false.
- */
-export interface ParamsAmino {
-  /**
-   * send_enabled enables or disables all cross-chain token transfers from this
-   * chain.
-   */
-  send_enabled: boolean;
-  /**
-   * receive_enabled enables or disables all cross-chain token transfers to this
-   * chain.
-   */
-  receive_enabled: boolean;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/**
- * Params defines the set of IBC transfer parameters.
- * NOTE: To prevent a single token from being transferred, set the
- * TransfersEnabled parameter to true and then set the bank module's SendEnabled
- * parameter for the denomination to false.
- */
-export interface ParamsSDKType {
-  send_enabled: boolean;
-  receive_enabled: boolean;
-}
-function createBaseDenomTrace(): DenomTrace {
-  return {
-    path: "",
-    baseDenom: ""
-  };
-}
-export const DenomTrace = {
-  typeUrl: "/ibc.applications.transfer.v1.DenomTrace",
-  aminoType: "cosmos-sdk/DenomTrace",
-  encode(message: DenomTrace, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path !== "") {
-      writer.uint32(10).string(message.path);
-    }
-    if (message.baseDenom !== "") {
-      writer.uint32(18).string(message.baseDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DenomTrace {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDenomTrace();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.string();
-          break;
-        case 2:
-          message.baseDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DenomTrace {
-    return {
-      path: isSet(object.path) ? String(object.path) : "",
-      baseDenom: isSet(object.baseDenom) ? String(object.baseDenom) : ""
-    };
-  },
-  toJSON(message: DenomTrace): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = message.path);
-    message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DenomTrace>): DenomTrace {
-    const message = createBaseDenomTrace();
-    message.path = object.path ?? "";
-    message.baseDenom = object.baseDenom ?? "";
-    return message;
-  },
-  fromSDK(object: DenomTraceSDKType): DenomTrace {
-    return {
-      path: object?.path,
-      baseDenom: object?.base_denom
-    };
-  },
-  toSDK(message: DenomTrace): DenomTraceSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.base_denom = message.baseDenom;
-    return obj;
-  },
-  fromAmino(object: DenomTraceAmino): DenomTrace {
-    return {
-      path: object.path,
-      baseDenom: object.base_denom
-    };
-  },
-  toAmino(message: DenomTrace): DenomTraceAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.base_denom = message.baseDenom;
-    return obj;
-  },
-  fromAminoMsg(object: DenomTraceAminoMsg): DenomTrace {
-    return DenomTrace.fromAmino(object.value);
-  },
-  toAminoMsg(message: DenomTrace): DenomTraceAminoMsg {
-    return {
-      type: "cosmos-sdk/DenomTrace",
-      value: DenomTrace.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DenomTraceProtoMsg): DenomTrace {
-    return DenomTrace.decode(message.value);
-  },
-  toProto(message: DenomTrace): Uint8Array {
-    return DenomTrace.encode(message).finish();
-  },
-  toProtoMsg(message: DenomTrace): DenomTraceProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.DenomTrace",
-      value: DenomTrace.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    sendEnabled: false,
-    receiveEnabled: false
-  };
-}
-export const Params = {
-  typeUrl: "/ibc.applications.transfer.v1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sendEnabled === true) {
-      writer.uint32(8).bool(message.sendEnabled);
-    }
-    if (message.receiveEnabled === true) {
-      writer.uint32(16).bool(message.receiveEnabled);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sendEnabled = reader.bool();
-          break;
-        case 2:
-          message.receiveEnabled = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      sendEnabled: isSet(object.sendEnabled) ? Boolean(object.sendEnabled) : false,
-      receiveEnabled: isSet(object.receiveEnabled) ? Boolean(object.receiveEnabled) : false
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);
-    message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.sendEnabled = object.sendEnabled ?? false;
-    message.receiveEnabled = object.receiveEnabled ?? false;
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      sendEnabled: object?.send_enabled,
-      receiveEnabled: object?.receive_enabled
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.send_enabled = message.sendEnabled;
-    obj.receive_enabled = message.receiveEnabled;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      sendEnabled: object.send_enabled,
-      receiveEnabled: object.receive_enabled
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.send_enabled = message.sendEnabled;
-    obj.receive_enabled = message.receiveEnabled;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.amino.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.amino.ts
deleted file mode 100644
index 65002c1e..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgTransfer } from "./tx";
-export const AminoConverter = {
-  "/ibc.applications.transfer.v1.MsgTransfer": {
-    aminoType: "cosmos-sdk/MsgTransfer",
-    toAmino: MsgTransfer.toAmino,
-    fromAmino: MsgTransfer.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.registry.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.registry.ts
deleted file mode 100644
index ad4f60ed..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgTransfer } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/ibc.applications.transfer.v1.MsgTransfer", MsgTransfer]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    transfer(value: MsgTransfer) {
-      return {
-        typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-        value: MsgTransfer.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    transfer(value: MsgTransfer) {
-      return {
-        typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-        value
-      };
-    }
-  },
-  toJSON: {
-    transfer(value: MsgTransfer) {
-      return {
-        typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-        value: MsgTransfer.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    transfer(value: any) {
-      return {
-        typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-        value: MsgTransfer.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    transfer(value: MsgTransfer) {
-      return {
-        typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-        value: MsgTransfer.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.rpc.msg.ts
deleted file mode 100644
index c4f28579..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { MsgTransfer, MsgTransferResponse } from "./tx";
-/** Msg defines the ibc/transfer Msg service. */
-export interface Msg {
-  /** Transfer defines a rpc handler method for MsgTransfer. */
-  transfer(request: MsgTransfer): Promise<MsgTransferResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.transfer = this.transfer.bind(this);
-  }
-  transfer(request: MsgTransfer): Promise<MsgTransferResponse> {
-    const data = MsgTransfer.encode(request).finish();
-    const promise = this.rpc.request("ibc.applications.transfer.v1.Msg", "Transfer", data);
-    return promise.then(data => MsgTransferResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.ts b/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.ts
deleted file mode 100644
index f65e29f5..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v1/tx.ts
+++ /dev/null
@@ -1,336 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin";
-import { Height, HeightAmino, HeightSDKType } from "../../../core/client/v1/client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between
- * ICS20 enabled chains. See ICS Spec here:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface MsgTransfer {
-  /** the port on which the packet will be sent */
-  sourcePort: string;
-  /** the channel by which the packet will be sent */
-  sourceChannel: string;
-  /** the tokens to be transferred */
-  token: Coin | undefined;
-  /** the sender address */
-  sender: string;
-  /** the recipient address on the destination chain */
-  receiver: string;
-  /**
-   * Timeout height relative to the current block height.
-   * The timeout is disabled when set to 0.
-   */
-  timeoutHeight: Height | undefined;
-  /**
-   * Timeout timestamp (in nanoseconds) relative to the current block timestamp.
-   * The timeout is disabled when set to 0.
-   */
-  timeoutTimestamp: bigint;
-}
-export interface MsgTransferProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.MsgTransfer";
-  value: Uint8Array;
-}
-/**
- * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between
- * ICS20 enabled chains. See ICS Spec here:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface MsgTransferAmino {
-  /** the port on which the packet will be sent */
-  source_port: string;
-  /** the channel by which the packet will be sent */
-  source_channel: string;
-  /** the tokens to be transferred */
-  token?: CoinAmino | undefined;
-  /** the sender address */
-  sender: string;
-  /** the recipient address on the destination chain */
-  receiver: string;
-  /**
-   * Timeout height relative to the current block height.
-   * The timeout is disabled when set to 0.
-   */
-  timeout_height?: HeightAmino | undefined;
-  /**
-   * Timeout timestamp (in nanoseconds) relative to the current block timestamp.
-   * The timeout is disabled when set to 0.
-   */
-  timeout_timestamp: string;
-}
-export interface MsgTransferAminoMsg {
-  type: "cosmos-sdk/MsgTransfer";
-  value: MsgTransferAmino;
-}
-/**
- * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between
- * ICS20 enabled chains. See ICS Spec here:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface MsgTransferSDKType {
-  source_port: string;
-  source_channel: string;
-  token: CoinSDKType | undefined;
-  sender: string;
-  receiver: string;
-  timeout_height: HeightSDKType | undefined;
-  timeout_timestamp: bigint;
-}
-/** MsgTransferResponse defines the Msg/Transfer response type. */
-export interface MsgTransferResponse {}
-export interface MsgTransferResponseProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v1.MsgTransferResponse";
-  value: Uint8Array;
-}
-/** MsgTransferResponse defines the Msg/Transfer response type. */
-export interface MsgTransferResponseAmino {}
-export interface MsgTransferResponseAminoMsg {
-  type: "cosmos-sdk/MsgTransferResponse";
-  value: MsgTransferResponseAmino;
-}
-/** MsgTransferResponse defines the Msg/Transfer response type. */
-export interface MsgTransferResponseSDKType {}
-function createBaseMsgTransfer(): MsgTransfer {
-  return {
-    sourcePort: "",
-    sourceChannel: "",
-    token: Coin.fromPartial({}),
-    sender: "",
-    receiver: "",
-    timeoutHeight: Height.fromPartial({}),
-    timeoutTimestamp: BigInt(0)
-  };
-}
-export const MsgTransfer = {
-  typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-  aminoType: "cosmos-sdk/MsgTransfer",
-  encode(message: MsgTransfer, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sourcePort !== "") {
-      writer.uint32(10).string(message.sourcePort);
-    }
-    if (message.sourceChannel !== "") {
-      writer.uint32(18).string(message.sourceChannel);
-    }
-    if (message.token !== undefined) {
-      Coin.encode(message.token, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.sender !== "") {
-      writer.uint32(34).string(message.sender);
-    }
-    if (message.receiver !== "") {
-      writer.uint32(42).string(message.receiver);
-    }
-    if (message.timeoutHeight !== undefined) {
-      Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.timeoutTimestamp !== BigInt(0)) {
-      writer.uint32(56).uint64(message.timeoutTimestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTransfer {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTransfer();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sourcePort = reader.string();
-          break;
-        case 2:
-          message.sourceChannel = reader.string();
-          break;
-        case 3:
-          message.token = Coin.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.sender = reader.string();
-          break;
-        case 5:
-          message.receiver = reader.string();
-          break;
-        case 6:
-          message.timeoutHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.timeoutTimestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgTransfer {
-    return {
-      sourcePort: isSet(object.sourcePort) ? String(object.sourcePort) : "",
-      sourceChannel: isSet(object.sourceChannel) ? String(object.sourceChannel) : "",
-      token: isSet(object.token) ? Coin.fromJSON(object.token) : undefined,
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      receiver: isSet(object.receiver) ? String(object.receiver) : "",
-      timeoutHeight: isSet(object.timeoutHeight) ? Height.fromJSON(object.timeoutHeight) : undefined,
-      timeoutTimestamp: isSet(object.timeoutTimestamp) ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgTransfer): unknown {
-    const obj: any = {};
-    message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);
-    message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);
-    message.token !== undefined && (obj.token = message.token ? Coin.toJSON(message.token) : undefined);
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.receiver !== undefined && (obj.receiver = message.receiver);
-    message.timeoutHeight !== undefined && (obj.timeoutHeight = message.timeoutHeight ? Height.toJSON(message.timeoutHeight) : undefined);
-    message.timeoutTimestamp !== undefined && (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgTransfer>): MsgTransfer {
-    const message = createBaseMsgTransfer();
-    message.sourcePort = object.sourcePort ?? "";
-    message.sourceChannel = object.sourceChannel ?? "";
-    message.token = object.token !== undefined && object.token !== null ? Coin.fromPartial(object.token) : undefined;
-    message.sender = object.sender ?? "";
-    message.receiver = object.receiver ?? "";
-    message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Height.fromPartial(object.timeoutHeight) : undefined;
-    message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgTransferSDKType): MsgTransfer {
-    return {
-      sourcePort: object?.source_port,
-      sourceChannel: object?.source_channel,
-      token: object.token ? Coin.fromSDK(object.token) : undefined,
-      sender: object?.sender,
-      receiver: object?.receiver,
-      timeoutHeight: object.timeout_height ? Height.fromSDK(object.timeout_height) : undefined,
-      timeoutTimestamp: object?.timeout_timestamp
-    };
-  },
-  toSDK(message: MsgTransfer): MsgTransferSDKType {
-    const obj: any = {};
-    obj.source_port = message.sourcePort;
-    obj.source_channel = message.sourceChannel;
-    message.token !== undefined && (obj.token = message.token ? Coin.toSDK(message.token) : undefined);
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    message.timeoutHeight !== undefined && (obj.timeout_height = message.timeoutHeight ? Height.toSDK(message.timeoutHeight) : undefined);
-    obj.timeout_timestamp = message.timeoutTimestamp;
-    return obj;
-  },
-  fromAmino(object: MsgTransferAmino): MsgTransfer {
-    return {
-      sourcePort: object.source_port,
-      sourceChannel: object.source_channel,
-      token: object?.token ? Coin.fromAmino(object.token) : undefined,
-      sender: object.sender,
-      receiver: object.receiver,
-      timeoutHeight: object?.timeout_height ? Height.fromAmino(object.timeout_height) : undefined,
-      timeoutTimestamp: BigInt(object.timeout_timestamp)
-    };
-  },
-  toAmino(message: MsgTransfer): MsgTransferAmino {
-    const obj: any = {};
-    obj.source_port = message.sourcePort;
-    obj.source_channel = message.sourceChannel;
-    obj.token = message.token ? Coin.toAmino(message.token) : undefined;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    obj.timeout_height = message.timeoutHeight ? Height.toAmino(message.timeoutHeight) : {};
-    obj.timeout_timestamp = message.timeoutTimestamp ? message.timeoutTimestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgTransferAminoMsg): MsgTransfer {
-    return MsgTransfer.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTransfer): MsgTransferAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTransfer",
-      value: MsgTransfer.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTransferProtoMsg): MsgTransfer {
-    return MsgTransfer.decode(message.value);
-  },
-  toProto(message: MsgTransfer): Uint8Array {
-    return MsgTransfer.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTransfer): MsgTransferProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
-      value: MsgTransfer.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgTransferResponse(): MsgTransferResponse {
-  return {};
-}
-export const MsgTransferResponse = {
-  typeUrl: "/ibc.applications.transfer.v1.MsgTransferResponse",
-  aminoType: "cosmos-sdk/MsgTransferResponse",
-  encode(_: MsgTransferResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTransferResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTransferResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgTransferResponse {
-    return {};
-  },
-  toJSON(_: MsgTransferResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgTransferResponse>): MsgTransferResponse {
-    const message = createBaseMsgTransferResponse();
-    return message;
-  },
-  fromSDK(_: MsgTransferResponseSDKType): MsgTransferResponse {
-    return {};
-  },
-  toSDK(_: MsgTransferResponse): MsgTransferResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgTransferResponseAmino): MsgTransferResponse {
-    return {};
-  },
-  toAmino(_: MsgTransferResponse): MsgTransferResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgTransferResponseAminoMsg): MsgTransferResponse {
-    return MsgTransferResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTransferResponse): MsgTransferResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTransferResponse",
-      value: MsgTransferResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTransferResponseProtoMsg): MsgTransferResponse {
-    return MsgTransferResponse.decode(message.value);
-  },
-  toProto(message: MsgTransferResponse): Uint8Array {
-    return MsgTransferResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTransferResponse): MsgTransferResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v1.MsgTransferResponse",
-      value: MsgTransferResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/applications/transfer/v2/packet.ts b/examples/injective/src/codegen/ibc/applications/transfer/v2/packet.ts
deleted file mode 100644
index 1cdbba0b..00000000
--- a/examples/injective/src/codegen/ibc/applications/transfer/v2/packet.ts
+++ /dev/null
@@ -1,181 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * FungibleTokenPacketData defines a struct for the packet payload
- * See FungibleTokenPacketData spec:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface FungibleTokenPacketData {
-  /** the token denomination to be transferred */
-  denom: string;
-  /** the token amount to be transferred */
-  amount: string;
-  /** the sender address */
-  sender: string;
-  /** the recipient address on the destination chain */
-  receiver: string;
-}
-export interface FungibleTokenPacketDataProtoMsg {
-  typeUrl: "/ibc.applications.transfer.v2.FungibleTokenPacketData";
-  value: Uint8Array;
-}
-/**
- * FungibleTokenPacketData defines a struct for the packet payload
- * See FungibleTokenPacketData spec:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface FungibleTokenPacketDataAmino {
-  /** the token denomination to be transferred */
-  denom: string;
-  /** the token amount to be transferred */
-  amount: string;
-  /** the sender address */
-  sender: string;
-  /** the recipient address on the destination chain */
-  receiver: string;
-}
-export interface FungibleTokenPacketDataAminoMsg {
-  type: "cosmos-sdk/FungibleTokenPacketData";
-  value: FungibleTokenPacketDataAmino;
-}
-/**
- * FungibleTokenPacketData defines a struct for the packet payload
- * See FungibleTokenPacketData spec:
- * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures
- */
-export interface FungibleTokenPacketDataSDKType {
-  denom: string;
-  amount: string;
-  sender: string;
-  receiver: string;
-}
-function createBaseFungibleTokenPacketData(): FungibleTokenPacketData {
-  return {
-    denom: "",
-    amount: "",
-    sender: "",
-    receiver: ""
-  };
-}
-export const FungibleTokenPacketData = {
-  typeUrl: "/ibc.applications.transfer.v2.FungibleTokenPacketData",
-  aminoType: "cosmos-sdk/FungibleTokenPacketData",
-  encode(message: FungibleTokenPacketData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.amount !== "") {
-      writer.uint32(18).string(message.amount);
-    }
-    if (message.sender !== "") {
-      writer.uint32(26).string(message.sender);
-    }
-    if (message.receiver !== "") {
-      writer.uint32(34).string(message.receiver);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FungibleTokenPacketData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFungibleTokenPacketData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.amount = reader.string();
-          break;
-        case 3:
-          message.sender = reader.string();
-          break;
-        case 4:
-          message.receiver = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FungibleTokenPacketData {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      amount: isSet(object.amount) ? String(object.amount) : "",
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      receiver: isSet(object.receiver) ? String(object.receiver) : ""
-    };
-  },
-  toJSON(message: FungibleTokenPacketData): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.amount !== undefined && (obj.amount = message.amount);
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.receiver !== undefined && (obj.receiver = message.receiver);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FungibleTokenPacketData>): FungibleTokenPacketData {
-    const message = createBaseFungibleTokenPacketData();
-    message.denom = object.denom ?? "";
-    message.amount = object.amount ?? "";
-    message.sender = object.sender ?? "";
-    message.receiver = object.receiver ?? "";
-    return message;
-  },
-  fromSDK(object: FungibleTokenPacketDataSDKType): FungibleTokenPacketData {
-    return {
-      denom: object?.denom,
-      amount: object?.amount,
-      sender: object?.sender,
-      receiver: object?.receiver
-    };
-  },
-  toSDK(message: FungibleTokenPacketData): FungibleTokenPacketDataSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAmino(object: FungibleTokenPacketDataAmino): FungibleTokenPacketData {
-    return {
-      denom: object.denom,
-      amount: object.amount,
-      sender: object.sender,
-      receiver: object.receiver
-    };
-  },
-  toAmino(message: FungibleTokenPacketData): FungibleTokenPacketDataAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.amount = message.amount;
-    obj.sender = message.sender;
-    obj.receiver = message.receiver;
-    return obj;
-  },
-  fromAminoMsg(object: FungibleTokenPacketDataAminoMsg): FungibleTokenPacketData {
-    return FungibleTokenPacketData.fromAmino(object.value);
-  },
-  toAminoMsg(message: FungibleTokenPacketData): FungibleTokenPacketDataAminoMsg {
-    return {
-      type: "cosmos-sdk/FungibleTokenPacketData",
-      value: FungibleTokenPacketData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: FungibleTokenPacketDataProtoMsg): FungibleTokenPacketData {
-    return FungibleTokenPacketData.decode(message.value);
-  },
-  toProto(message: FungibleTokenPacketData): Uint8Array {
-    return FungibleTokenPacketData.encode(message).finish();
-  },
-  toProtoMsg(message: FungibleTokenPacketData): FungibleTokenPacketDataProtoMsg {
-    return {
-      typeUrl: "/ibc.applications.transfer.v2.FungibleTokenPacketData",
-      value: FungibleTokenPacketData.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/bundle.ts b/examples/injective/src/codegen/ibc/bundle.ts
deleted file mode 100644
index 8cf75133..00000000
--- a/examples/injective/src/codegen/ibc/bundle.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import * as _108 from "./applications/transfer/v1/genesis";
-import * as _109 from "./applications/transfer/v1/query";
-import * as _110 from "./applications/transfer/v1/transfer";
-import * as _111 from "./applications/transfer/v1/tx";
-import * as _112 from "./applications/transfer/v2/packet";
-import * as _113 from "./core/channel/v1/channel";
-import * as _114 from "./core/channel/v1/genesis";
-import * as _115 from "./core/channel/v1/query";
-import * as _116 from "./core/channel/v1/tx";
-import * as _117 from "./core/client/v1/client";
-import * as _118 from "./core/client/v1/genesis";
-import * as _119 from "./core/client/v1/query";
-import * as _120 from "./core/client/v1/tx";
-import * as _121 from "./core/commitment/v1/commitment";
-import * as _122 from "./core/connection/v1/connection";
-import * as _123 from "./core/connection/v1/genesis";
-import * as _124 from "./core/connection/v1/query";
-import * as _125 from "./core/connection/v1/tx";
-import * as _126 from "./core/port/v1/query";
-import * as _127 from "./core/types/v1/genesis";
-import * as _128 from "./lightclients/localhost/v1/localhost";
-import * as _129 from "./lightclients/solomachine/v1/solomachine";
-import * as _130 from "./lightclients/solomachine/v2/solomachine";
-import * as _131 from "./lightclients/tendermint/v1/tendermint";
-import * as _258 from "./applications/transfer/v1/tx.amino";
-import * as _259 from "./core/channel/v1/tx.amino";
-import * as _260 from "./core/client/v1/tx.amino";
-import * as _261 from "./core/connection/v1/tx.amino";
-import * as _262 from "./applications/transfer/v1/tx.registry";
-import * as _263 from "./core/channel/v1/tx.registry";
-import * as _264 from "./core/client/v1/tx.registry";
-import * as _265 from "./core/connection/v1/tx.registry";
-import * as _266 from "./applications/transfer/v1/query.rpc.Query";
-import * as _267 from "./core/channel/v1/query.rpc.Query";
-import * as _268 from "./core/client/v1/query.rpc.Query";
-import * as _269 from "./core/connection/v1/query.rpc.Query";
-import * as _270 from "./core/port/v1/query.rpc.Query";
-import * as _271 from "./applications/transfer/v1/tx.rpc.msg";
-import * as _272 from "./core/channel/v1/tx.rpc.msg";
-import * as _273 from "./core/client/v1/tx.rpc.msg";
-import * as _274 from "./core/connection/v1/tx.rpc.msg";
-import * as _313 from "./rpc.query";
-import * as _314 from "./rpc.tx";
-export namespace ibc {
-  export namespace applications {
-    export namespace transfer {
-      export const v1 = {
-        ..._108,
-        ..._109,
-        ..._110,
-        ..._111,
-        ..._258,
-        ..._262,
-        ..._266,
-        ..._271
-      };
-      export const v2 = {
-        ..._112
-      };
-    }
-  }
-  export namespace core {
-    export namespace channel {
-      export const v1 = {
-        ..._113,
-        ..._114,
-        ..._115,
-        ..._116,
-        ..._259,
-        ..._263,
-        ..._267,
-        ..._272
-      };
-    }
-    export namespace client {
-      export const v1 = {
-        ..._117,
-        ..._118,
-        ..._119,
-        ..._120,
-        ..._260,
-        ..._264,
-        ..._268,
-        ..._273
-      };
-    }
-    export namespace commitment {
-      export const v1 = {
-        ..._121
-      };
-    }
-    export namespace connection {
-      export const v1 = {
-        ..._122,
-        ..._123,
-        ..._124,
-        ..._125,
-        ..._261,
-        ..._265,
-        ..._269,
-        ..._274
-      };
-    }
-    export namespace port {
-      export const v1 = {
-        ..._126,
-        ..._270
-      };
-    }
-    export namespace types {
-      export const v1 = {
-        ..._127
-      };
-    }
-  }
-  export namespace lightclients {
-    export namespace localhost {
-      export const v1 = {
-        ..._128
-      };
-    }
-    export namespace solomachine {
-      export const v1 = {
-        ..._129
-      };
-      export const v2 = {
-        ..._130
-      };
-    }
-    export namespace tendermint {
-      export const v1 = {
-        ..._131
-      };
-    }
-  }
-  export const ClientFactory = {
-    ..._313,
-    ..._314
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/client.ts b/examples/injective/src/codegen/ibc/client.ts
deleted file mode 100644
index 1256ef06..00000000
--- a/examples/injective/src/codegen/ibc/client.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { GeneratedType, Registry, OfflineSigner } from "@cosmjs/proto-signing";
-import { defaultRegistryTypes, AminoTypes, SigningStargateClient } from "@cosmjs/stargate";
-import { HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import * as ibcApplicationsTransferV1TxRegistry from "./applications/transfer/v1/tx.registry";
-import * as ibcCoreChannelV1TxRegistry from "./core/channel/v1/tx.registry";
-import * as ibcCoreClientV1TxRegistry from "./core/client/v1/tx.registry";
-import * as ibcCoreConnectionV1TxRegistry from "./core/connection/v1/tx.registry";
-import * as ibcApplicationsTransferV1TxAmino from "./applications/transfer/v1/tx.amino";
-import * as ibcCoreChannelV1TxAmino from "./core/channel/v1/tx.amino";
-import * as ibcCoreClientV1TxAmino from "./core/client/v1/tx.amino";
-import * as ibcCoreConnectionV1TxAmino from "./core/connection/v1/tx.amino";
-export const ibcAminoConverters = {
-  ...ibcApplicationsTransferV1TxAmino.AminoConverter,
-  ...ibcCoreChannelV1TxAmino.AminoConverter,
-  ...ibcCoreClientV1TxAmino.AminoConverter,
-  ...ibcCoreConnectionV1TxAmino.AminoConverter
-};
-export const ibcProtoRegistry: ReadonlyArray<[string, GeneratedType]> = [...ibcApplicationsTransferV1TxRegistry.registry, ...ibcCoreChannelV1TxRegistry.registry, ...ibcCoreClientV1TxRegistry.registry, ...ibcCoreConnectionV1TxRegistry.registry];
-export const getSigningIbcClientOptions = ({
-  defaultTypes = defaultRegistryTypes
-}: {
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-} = {}): {
-  registry: Registry;
-  aminoTypes: AminoTypes;
-} => {
-  const registry = new Registry([...defaultTypes, ...ibcProtoRegistry]);
-  const aminoTypes = new AminoTypes({
-    ...ibcAminoConverters
-  });
-  return {
-    registry,
-    aminoTypes
-  };
-};
-export const getSigningIbcClient = async ({
-  rpcEndpoint,
-  signer,
-  defaultTypes = defaultRegistryTypes
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-  signer: OfflineSigner;
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-}) => {
-  const {
-    registry,
-    aminoTypes
-  } = getSigningIbcClientOptions({
-    defaultTypes
-  });
-  const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
-    registry: (registry as any),
-    aminoTypes
-  });
-  return client;
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/channel.ts b/examples/injective/src/codegen/ibc/core/channel/v1/channel.ts
deleted file mode 100644
index 1c3f7377..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/channel.ts
+++ /dev/null
@@ -1,1291 +0,0 @@
-import { Height, HeightAmino, HeightSDKType } from "../../client/v1/client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * State defines if a channel is in one of the following states:
- * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.
- */
-export enum State {
-  /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */
-  STATE_UNINITIALIZED_UNSPECIFIED = 0,
-  /** STATE_INIT - A channel has just started the opening handshake. */
-  STATE_INIT = 1,
-  /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */
-  STATE_TRYOPEN = 2,
-  /**
-   * STATE_OPEN - A channel has completed the handshake. Open channels are
-   * ready to send and receive packets.
-   */
-  STATE_OPEN = 3,
-  /**
-   * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive
-   * packets.
-   */
-  STATE_CLOSED = 4,
-  UNRECOGNIZED = -1,
-}
-export const StateSDKType = State;
-export const StateAmino = State;
-export function stateFromJSON(object: any): State {
-  switch (object) {
-    case 0:
-    case "STATE_UNINITIALIZED_UNSPECIFIED":
-      return State.STATE_UNINITIALIZED_UNSPECIFIED;
-    case 1:
-    case "STATE_INIT":
-      return State.STATE_INIT;
-    case 2:
-    case "STATE_TRYOPEN":
-      return State.STATE_TRYOPEN;
-    case 3:
-    case "STATE_OPEN":
-      return State.STATE_OPEN;
-    case 4:
-    case "STATE_CLOSED":
-      return State.STATE_CLOSED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return State.UNRECOGNIZED;
-  }
-}
-export function stateToJSON(object: State): string {
-  switch (object) {
-    case State.STATE_UNINITIALIZED_UNSPECIFIED:
-      return "STATE_UNINITIALIZED_UNSPECIFIED";
-    case State.STATE_INIT:
-      return "STATE_INIT";
-    case State.STATE_TRYOPEN:
-      return "STATE_TRYOPEN";
-    case State.STATE_OPEN:
-      return "STATE_OPEN";
-    case State.STATE_CLOSED:
-      return "STATE_CLOSED";
-    case State.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** Order defines if a channel is ORDERED or UNORDERED */
-export enum Order {
-  /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */
-  ORDER_NONE_UNSPECIFIED = 0,
-  /**
-   * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in
-   * which they were sent.
-   */
-  ORDER_UNORDERED = 1,
-  /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */
-  ORDER_ORDERED = 2,
-  UNRECOGNIZED = -1,
-}
-export const OrderSDKType = Order;
-export const OrderAmino = Order;
-export function orderFromJSON(object: any): Order {
-  switch (object) {
-    case 0:
-    case "ORDER_NONE_UNSPECIFIED":
-      return Order.ORDER_NONE_UNSPECIFIED;
-    case 1:
-    case "ORDER_UNORDERED":
-      return Order.ORDER_UNORDERED;
-    case 2:
-    case "ORDER_ORDERED":
-      return Order.ORDER_ORDERED;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return Order.UNRECOGNIZED;
-  }
-}
-export function orderToJSON(object: Order): string {
-  switch (object) {
-    case Order.ORDER_NONE_UNSPECIFIED:
-      return "ORDER_NONE_UNSPECIFIED";
-    case Order.ORDER_UNORDERED:
-      return "ORDER_UNORDERED";
-    case Order.ORDER_ORDERED:
-      return "ORDER_ORDERED";
-    case Order.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * Channel defines pipeline for exactly-once packet delivery between specific
- * modules on separate blockchains, which has at least one end capable of
- * sending packets and one end capable of receiving packets.
- */
-export interface Channel {
-  /** current state of the channel end */
-  state: State;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty: Counterparty | undefined;
-  /**
-   * list of connection identifiers, in order, along which packets sent on
-   * this channel will travel
-   */
-  connectionHops: string[];
-  /** opaque channel version, which is agreed upon during the handshake */
-  version: string;
-}
-export interface ChannelProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.Channel";
-  value: Uint8Array;
-}
-/**
- * Channel defines pipeline for exactly-once packet delivery between specific
- * modules on separate blockchains, which has at least one end capable of
- * sending packets and one end capable of receiving packets.
- */
-export interface ChannelAmino {
-  /** current state of the channel end */
-  state: State;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty?: CounterpartyAmino | undefined;
-  /**
-   * list of connection identifiers, in order, along which packets sent on
-   * this channel will travel
-   */
-  connection_hops: string[];
-  /** opaque channel version, which is agreed upon during the handshake */
-  version: string;
-}
-export interface ChannelAminoMsg {
-  type: "cosmos-sdk/Channel";
-  value: ChannelAmino;
-}
-/**
- * Channel defines pipeline for exactly-once packet delivery between specific
- * modules on separate blockchains, which has at least one end capable of
- * sending packets and one end capable of receiving packets.
- */
-export interface ChannelSDKType {
-  state: State;
-  ordering: Order;
-  counterparty: CounterpartySDKType | undefined;
-  connection_hops: string[];
-  version: string;
-}
-/**
- * IdentifiedChannel defines a channel with additional port and channel
- * identifier fields.
- */
-export interface IdentifiedChannel {
-  /** current state of the channel end */
-  state: State;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty: Counterparty | undefined;
-  /**
-   * list of connection identifiers, in order, along which packets sent on
-   * this channel will travel
-   */
-  connectionHops: string[];
-  /** opaque channel version, which is agreed upon during the handshake */
-  version: string;
-  /** port identifier */
-  portId: string;
-  /** channel identifier */
-  channelId: string;
-}
-export interface IdentifiedChannelProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.IdentifiedChannel";
-  value: Uint8Array;
-}
-/**
- * IdentifiedChannel defines a channel with additional port and channel
- * identifier fields.
- */
-export interface IdentifiedChannelAmino {
-  /** current state of the channel end */
-  state: State;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty?: CounterpartyAmino | undefined;
-  /**
-   * list of connection identifiers, in order, along which packets sent on
-   * this channel will travel
-   */
-  connection_hops: string[];
-  /** opaque channel version, which is agreed upon during the handshake */
-  version: string;
-  /** port identifier */
-  port_id: string;
-  /** channel identifier */
-  channel_id: string;
-}
-export interface IdentifiedChannelAminoMsg {
-  type: "cosmos-sdk/IdentifiedChannel";
-  value: IdentifiedChannelAmino;
-}
-/**
- * IdentifiedChannel defines a channel with additional port and channel
- * identifier fields.
- */
-export interface IdentifiedChannelSDKType {
-  state: State;
-  ordering: Order;
-  counterparty: CounterpartySDKType | undefined;
-  connection_hops: string[];
-  version: string;
-  port_id: string;
-  channel_id: string;
-}
-/** Counterparty defines a channel end counterparty */
-export interface Counterparty {
-  /** port on the counterparty chain which owns the other end of the channel. */
-  portId: string;
-  /** channel end on the counterparty chain */
-  channelId: string;
-}
-export interface CounterpartyProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.Counterparty";
-  value: Uint8Array;
-}
-/** Counterparty defines a channel end counterparty */
-export interface CounterpartyAmino {
-  /** port on the counterparty chain which owns the other end of the channel. */
-  port_id: string;
-  /** channel end on the counterparty chain */
-  channel_id: string;
-}
-export interface CounterpartyAminoMsg {
-  type: "cosmos-sdk/Counterparty";
-  value: CounterpartyAmino;
-}
-/** Counterparty defines a channel end counterparty */
-export interface CounterpartySDKType {
-  port_id: string;
-  channel_id: string;
-}
-/** Packet defines a type that carries data across different chains through IBC */
-export interface Packet {
-  /**
-   * number corresponds to the order of sends and receives, where a Packet
-   * with an earlier sequence number must be sent and received before a Packet
-   * with a later sequence number.
-   */
-  sequence: bigint;
-  /** identifies the port on the sending chain. */
-  sourcePort: string;
-  /** identifies the channel end on the sending chain. */
-  sourceChannel: string;
-  /** identifies the port on the receiving chain. */
-  destinationPort: string;
-  /** identifies the channel end on the receiving chain. */
-  destinationChannel: string;
-  /** actual opaque bytes transferred directly to the application module */
-  data: Uint8Array;
-  /** block height after which the packet times out */
-  timeoutHeight: Height | undefined;
-  /** block timestamp (in nanoseconds) after which the packet times out */
-  timeoutTimestamp: bigint;
-}
-export interface PacketProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.Packet";
-  value: Uint8Array;
-}
-/** Packet defines a type that carries data across different chains through IBC */
-export interface PacketAmino {
-  /**
-   * number corresponds to the order of sends and receives, where a Packet
-   * with an earlier sequence number must be sent and received before a Packet
-   * with a later sequence number.
-   */
-  sequence: string;
-  /** identifies the port on the sending chain. */
-  source_port: string;
-  /** identifies the channel end on the sending chain. */
-  source_channel: string;
-  /** identifies the port on the receiving chain. */
-  destination_port: string;
-  /** identifies the channel end on the receiving chain. */
-  destination_channel: string;
-  /** actual opaque bytes transferred directly to the application module */
-  data: Uint8Array;
-  /** block height after which the packet times out */
-  timeout_height?: HeightAmino | undefined;
-  /** block timestamp (in nanoseconds) after which the packet times out */
-  timeout_timestamp: string;
-}
-export interface PacketAminoMsg {
-  type: "cosmos-sdk/Packet";
-  value: PacketAmino;
-}
-/** Packet defines a type that carries data across different chains through IBC */
-export interface PacketSDKType {
-  sequence: bigint;
-  source_port: string;
-  source_channel: string;
-  destination_port: string;
-  destination_channel: string;
-  data: Uint8Array;
-  timeout_height: HeightSDKType | undefined;
-  timeout_timestamp: bigint;
-}
-/**
- * PacketState defines the generic type necessary to retrieve and store
- * packet commitments, acknowledgements, and receipts.
- * Caller is responsible for knowing the context necessary to interpret this
- * state as a commitment, acknowledgement, or a receipt.
- */
-export interface PacketState {
-  /** channel port identifier. */
-  portId: string;
-  /** channel unique identifier. */
-  channelId: string;
-  /** packet sequence. */
-  sequence: bigint;
-  /** embedded data that represents packet state. */
-  data: Uint8Array;
-}
-export interface PacketStateProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.PacketState";
-  value: Uint8Array;
-}
-/**
- * PacketState defines the generic type necessary to retrieve and store
- * packet commitments, acknowledgements, and receipts.
- * Caller is responsible for knowing the context necessary to interpret this
- * state as a commitment, acknowledgement, or a receipt.
- */
-export interface PacketStateAmino {
-  /** channel port identifier. */
-  port_id: string;
-  /** channel unique identifier. */
-  channel_id: string;
-  /** packet sequence. */
-  sequence: string;
-  /** embedded data that represents packet state. */
-  data: Uint8Array;
-}
-export interface PacketStateAminoMsg {
-  type: "cosmos-sdk/PacketState";
-  value: PacketStateAmino;
-}
-/**
- * PacketState defines the generic type necessary to retrieve and store
- * packet commitments, acknowledgements, and receipts.
- * Caller is responsible for knowing the context necessary to interpret this
- * state as a commitment, acknowledgement, or a receipt.
- */
-export interface PacketStateSDKType {
-  port_id: string;
-  channel_id: string;
-  sequence: bigint;
-  data: Uint8Array;
-}
-/**
- * Acknowledgement is the recommended acknowledgement format to be used by
- * app-specific protocols.
- * NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental
- * conflicts with other protobuf message formats used for acknowledgements.
- * The first byte of any message with this format will be the non-ASCII values
- * `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS:
- * https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope
- */
-export interface Acknowledgement {
-  result?: Uint8Array;
-  error?: string;
-}
-export interface AcknowledgementProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.Acknowledgement";
-  value: Uint8Array;
-}
-/**
- * Acknowledgement is the recommended acknowledgement format to be used by
- * app-specific protocols.
- * NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental
- * conflicts with other protobuf message formats used for acknowledgements.
- * The first byte of any message with this format will be the non-ASCII values
- * `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS:
- * https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope
- */
-export interface AcknowledgementAmino {
-  result?: Uint8Array;
-  error?: string;
-}
-export interface AcknowledgementAminoMsg {
-  type: "cosmos-sdk/Acknowledgement";
-  value: AcknowledgementAmino;
-}
-/**
- * Acknowledgement is the recommended acknowledgement format to be used by
- * app-specific protocols.
- * NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental
- * conflicts with other protobuf message formats used for acknowledgements.
- * The first byte of any message with this format will be the non-ASCII values
- * `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS:
- * https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope
- */
-export interface AcknowledgementSDKType {
-  result?: Uint8Array;
-  error?: string;
-}
-function createBaseChannel(): Channel {
-  return {
-    state: 0,
-    ordering: 0,
-    counterparty: Counterparty.fromPartial({}),
-    connectionHops: [],
-    version: ""
-  };
-}
-export const Channel = {
-  typeUrl: "/ibc.core.channel.v1.Channel",
-  aminoType: "cosmos-sdk/Channel",
-  encode(message: Channel, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.state !== 0) {
-      writer.uint32(8).int32(message.state);
-    }
-    if (message.ordering !== 0) {
-      writer.uint32(16).int32(message.ordering);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.connectionHops) {
-      writer.uint32(34).string(v!);
-    }
-    if (message.version !== "") {
-      writer.uint32(42).string(message.version);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Channel {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseChannel();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.state = (reader.int32() as any);
-          break;
-        case 2:
-          message.ordering = (reader.int32() as any);
-          break;
-        case 3:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.connectionHops.push(reader.string());
-          break;
-        case 5:
-          message.version = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Channel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connectionHops) ? object.connectionHops.map((e: any) => String(e)) : [],
-      version: isSet(object.version) ? String(object.version) : ""
-    };
-  },
-  toJSON(message: Channel): unknown {
-    const obj: any = {};
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    if (message.connectionHops) {
-      obj.connectionHops = message.connectionHops.map(e => e);
-    } else {
-      obj.connectionHops = [];
-    }
-    message.version !== undefined && (obj.version = message.version);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Channel>): Channel {
-    const message = createBaseChannel();
-    message.state = object.state ?? 0;
-    message.ordering = object.ordering ?? 0;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.connectionHops = object.connectionHops?.map(e => e) || [];
-    message.version = object.version ?? "";
-    return message;
-  },
-  fromSDK(object: ChannelSDKType): Channel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connection_hops) ? object.connection_hops.map((e: any) => e) : [],
-      version: object?.version
-    };
-  },
-  toSDK(message: Channel): ChannelSDKType {
-    const obj: any = {};
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    if (message.connectionHops) {
-      obj.connection_hops = message.connectionHops.map(e => e);
-    } else {
-      obj.connection_hops = [];
-    }
-    obj.version = message.version;
-    return obj;
-  },
-  fromAmino(object: ChannelAmino): Channel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connection_hops) ? object.connection_hops.map((e: any) => e) : [],
-      version: object.version
-    };
-  },
-  toAmino(message: Channel): ChannelAmino {
-    const obj: any = {};
-    obj.state = message.state;
-    obj.ordering = message.ordering;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    if (message.connectionHops) {
-      obj.connection_hops = message.connectionHops.map(e => e);
-    } else {
-      obj.connection_hops = [];
-    }
-    obj.version = message.version;
-    return obj;
-  },
-  fromAminoMsg(object: ChannelAminoMsg): Channel {
-    return Channel.fromAmino(object.value);
-  },
-  toAminoMsg(message: Channel): ChannelAminoMsg {
-    return {
-      type: "cosmos-sdk/Channel",
-      value: Channel.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ChannelProtoMsg): Channel {
-    return Channel.decode(message.value);
-  },
-  toProto(message: Channel): Uint8Array {
-    return Channel.encode(message).finish();
-  },
-  toProtoMsg(message: Channel): ChannelProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.Channel",
-      value: Channel.encode(message).finish()
-    };
-  }
-};
-function createBaseIdentifiedChannel(): IdentifiedChannel {
-  return {
-    state: 0,
-    ordering: 0,
-    counterparty: Counterparty.fromPartial({}),
-    connectionHops: [],
-    version: "",
-    portId: "",
-    channelId: ""
-  };
-}
-export const IdentifiedChannel = {
-  typeUrl: "/ibc.core.channel.v1.IdentifiedChannel",
-  aminoType: "cosmos-sdk/IdentifiedChannel",
-  encode(message: IdentifiedChannel, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.state !== 0) {
-      writer.uint32(8).int32(message.state);
-    }
-    if (message.ordering !== 0) {
-      writer.uint32(16).int32(message.ordering);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.connectionHops) {
-      writer.uint32(34).string(v!);
-    }
-    if (message.version !== "") {
-      writer.uint32(42).string(message.version);
-    }
-    if (message.portId !== "") {
-      writer.uint32(50).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(58).string(message.channelId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IdentifiedChannel {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIdentifiedChannel();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.state = (reader.int32() as any);
-          break;
-        case 2:
-          message.ordering = (reader.int32() as any);
-          break;
-        case 3:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.connectionHops.push(reader.string());
-          break;
-        case 5:
-          message.version = reader.string();
-          break;
-        case 6:
-          message.portId = reader.string();
-          break;
-        case 7:
-          message.channelId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IdentifiedChannel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connectionHops) ? object.connectionHops.map((e: any) => String(e)) : [],
-      version: isSet(object.version) ? String(object.version) : "",
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : ""
-    };
-  },
-  toJSON(message: IdentifiedChannel): unknown {
-    const obj: any = {};
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    if (message.connectionHops) {
-      obj.connectionHops = message.connectionHops.map(e => e);
-    } else {
-      obj.connectionHops = [];
-    }
-    message.version !== undefined && (obj.version = message.version);
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IdentifiedChannel>): IdentifiedChannel {
-    const message = createBaseIdentifiedChannel();
-    message.state = object.state ?? 0;
-    message.ordering = object.ordering ?? 0;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.connectionHops = object.connectionHops?.map(e => e) || [];
-    message.version = object.version ?? "";
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    return message;
-  },
-  fromSDK(object: IdentifiedChannelSDKType): IdentifiedChannel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connection_hops) ? object.connection_hops.map((e: any) => e) : [],
-      version: object?.version,
-      portId: object?.port_id,
-      channelId: object?.channel_id
-    };
-  },
-  toSDK(message: IdentifiedChannel): IdentifiedChannelSDKType {
-    const obj: any = {};
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    if (message.connectionHops) {
-      obj.connection_hops = message.connectionHops.map(e => e);
-    } else {
-      obj.connection_hops = [];
-    }
-    obj.version = message.version;
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAmino(object: IdentifiedChannelAmino): IdentifiedChannel {
-    return {
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      connectionHops: Array.isArray(object?.connection_hops) ? object.connection_hops.map((e: any) => e) : [],
-      version: object.version,
-      portId: object.port_id,
-      channelId: object.channel_id
-    };
-  },
-  toAmino(message: IdentifiedChannel): IdentifiedChannelAmino {
-    const obj: any = {};
-    obj.state = message.state;
-    obj.ordering = message.ordering;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    if (message.connectionHops) {
-      obj.connection_hops = message.connectionHops.map(e => e);
-    } else {
-      obj.connection_hops = [];
-    }
-    obj.version = message.version;
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAminoMsg(object: IdentifiedChannelAminoMsg): IdentifiedChannel {
-    return IdentifiedChannel.fromAmino(object.value);
-  },
-  toAminoMsg(message: IdentifiedChannel): IdentifiedChannelAminoMsg {
-    return {
-      type: "cosmos-sdk/IdentifiedChannel",
-      value: IdentifiedChannel.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IdentifiedChannelProtoMsg): IdentifiedChannel {
-    return IdentifiedChannel.decode(message.value);
-  },
-  toProto(message: IdentifiedChannel): Uint8Array {
-    return IdentifiedChannel.encode(message).finish();
-  },
-  toProtoMsg(message: IdentifiedChannel): IdentifiedChannelProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.IdentifiedChannel",
-      value: IdentifiedChannel.encode(message).finish()
-    };
-  }
-};
-function createBaseCounterparty(): Counterparty {
-  return {
-    portId: "",
-    channelId: ""
-  };
-}
-export const Counterparty = {
-  typeUrl: "/ibc.core.channel.v1.Counterparty",
-  aminoType: "cosmos-sdk/Counterparty",
-  encode(message: Counterparty, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Counterparty {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCounterparty();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Counterparty {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : ""
-    };
-  },
-  toJSON(message: Counterparty): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Counterparty>): Counterparty {
-    const message = createBaseCounterparty();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    return message;
-  },
-  fromSDK(object: CounterpartySDKType): Counterparty {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id
-    };
-  },
-  toSDK(message: Counterparty): CounterpartySDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAmino(object: CounterpartyAmino): Counterparty {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id
-    };
-  },
-  toAmino(message: Counterparty): CounterpartyAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAminoMsg(object: CounterpartyAminoMsg): Counterparty {
-    return Counterparty.fromAmino(object.value);
-  },
-  toAminoMsg(message: Counterparty): CounterpartyAminoMsg {
-    return {
-      type: "cosmos-sdk/Counterparty",
-      value: Counterparty.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CounterpartyProtoMsg): Counterparty {
-    return Counterparty.decode(message.value);
-  },
-  toProto(message: Counterparty): Uint8Array {
-    return Counterparty.encode(message).finish();
-  },
-  toProtoMsg(message: Counterparty): CounterpartyProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.Counterparty",
-      value: Counterparty.encode(message).finish()
-    };
-  }
-};
-function createBasePacket(): Packet {
-  return {
-    sequence: BigInt(0),
-    sourcePort: "",
-    sourceChannel: "",
-    destinationPort: "",
-    destinationChannel: "",
-    data: new Uint8Array(),
-    timeoutHeight: Height.fromPartial({}),
-    timeoutTimestamp: BigInt(0)
-  };
-}
-export const Packet = {
-  typeUrl: "/ibc.core.channel.v1.Packet",
-  aminoType: "cosmos-sdk/Packet",
-  encode(message: Packet, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.sourcePort !== "") {
-      writer.uint32(18).string(message.sourcePort);
-    }
-    if (message.sourceChannel !== "") {
-      writer.uint32(26).string(message.sourceChannel);
-    }
-    if (message.destinationPort !== "") {
-      writer.uint32(34).string(message.destinationPort);
-    }
-    if (message.destinationChannel !== "") {
-      writer.uint32(42).string(message.destinationChannel);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(50).bytes(message.data);
-    }
-    if (message.timeoutHeight !== undefined) {
-      Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.timeoutTimestamp !== BigInt(0)) {
-      writer.uint32(64).uint64(message.timeoutTimestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Packet {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacket();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.sourcePort = reader.string();
-          break;
-        case 3:
-          message.sourceChannel = reader.string();
-          break;
-        case 4:
-          message.destinationPort = reader.string();
-          break;
-        case 5:
-          message.destinationChannel = reader.string();
-          break;
-        case 6:
-          message.data = reader.bytes();
-          break;
-        case 7:
-          message.timeoutHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.timeoutTimestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Packet {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      sourcePort: isSet(object.sourcePort) ? String(object.sourcePort) : "",
-      sourceChannel: isSet(object.sourceChannel) ? String(object.sourceChannel) : "",
-      destinationPort: isSet(object.destinationPort) ? String(object.destinationPort) : "",
-      destinationChannel: isSet(object.destinationChannel) ? String(object.destinationChannel) : "",
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      timeoutHeight: isSet(object.timeoutHeight) ? Height.fromJSON(object.timeoutHeight) : undefined,
-      timeoutTimestamp: isSet(object.timeoutTimestamp) ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Packet): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);
-    message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);
-    message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);
-    message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.timeoutHeight !== undefined && (obj.timeoutHeight = message.timeoutHeight ? Height.toJSON(message.timeoutHeight) : undefined);
-    message.timeoutTimestamp !== undefined && (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Packet>): Packet {
-    const message = createBasePacket();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.sourcePort = object.sourcePort ?? "";
-    message.sourceChannel = object.sourceChannel ?? "";
-    message.destinationPort = object.destinationPort ?? "";
-    message.destinationChannel = object.destinationChannel ?? "";
-    message.data = object.data ?? new Uint8Array();
-    message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Height.fromPartial(object.timeoutHeight) : undefined;
-    message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? BigInt(object.timeoutTimestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: PacketSDKType): Packet {
-    return {
-      sequence: object?.sequence,
-      sourcePort: object?.source_port,
-      sourceChannel: object?.source_channel,
-      destinationPort: object?.destination_port,
-      destinationChannel: object?.destination_channel,
-      data: object?.data,
-      timeoutHeight: object.timeout_height ? Height.fromSDK(object.timeout_height) : undefined,
-      timeoutTimestamp: object?.timeout_timestamp
-    };
-  },
-  toSDK(message: Packet): PacketSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.source_port = message.sourcePort;
-    obj.source_channel = message.sourceChannel;
-    obj.destination_port = message.destinationPort;
-    obj.destination_channel = message.destinationChannel;
-    obj.data = message.data;
-    message.timeoutHeight !== undefined && (obj.timeout_height = message.timeoutHeight ? Height.toSDK(message.timeoutHeight) : undefined);
-    obj.timeout_timestamp = message.timeoutTimestamp;
-    return obj;
-  },
-  fromAmino(object: PacketAmino): Packet {
-    return {
-      sequence: BigInt(object.sequence),
-      sourcePort: object.source_port,
-      sourceChannel: object.source_channel,
-      destinationPort: object.destination_port,
-      destinationChannel: object.destination_channel,
-      data: object.data,
-      timeoutHeight: object?.timeout_height ? Height.fromAmino(object.timeout_height) : undefined,
-      timeoutTimestamp: BigInt(object.timeout_timestamp)
-    };
-  },
-  toAmino(message: Packet): PacketAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.source_port = message.sourcePort;
-    obj.source_channel = message.sourceChannel;
-    obj.destination_port = message.destinationPort;
-    obj.destination_channel = message.destinationChannel;
-    obj.data = message.data;
-    obj.timeout_height = message.timeoutHeight ? Height.toAmino(message.timeoutHeight) : {};
-    obj.timeout_timestamp = message.timeoutTimestamp ? message.timeoutTimestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PacketAminoMsg): Packet {
-    return Packet.fromAmino(object.value);
-  },
-  toAminoMsg(message: Packet): PacketAminoMsg {
-    return {
-      type: "cosmos-sdk/Packet",
-      value: Packet.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketProtoMsg): Packet {
-    return Packet.decode(message.value);
-  },
-  toProto(message: Packet): Uint8Array {
-    return Packet.encode(message).finish();
-  },
-  toProtoMsg(message: Packet): PacketProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.Packet",
-      value: Packet.encode(message).finish()
-    };
-  }
-};
-function createBasePacketState(): PacketState {
-  return {
-    portId: "",
-    channelId: "",
-    sequence: BigInt(0),
-    data: new Uint8Array()
-  };
-}
-export const PacketState = {
-  typeUrl: "/ibc.core.channel.v1.PacketState",
-  aminoType: "cosmos-sdk/PacketState",
-  encode(message: PacketState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(34).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        case 4:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketState {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketState): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketState>): PacketState {
-    const message = createBasePacketState();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketStateSDKType): PacketState {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      sequence: object?.sequence,
-      data: object?.data
-    };
-  },
-  toSDK(message: PacketState): PacketStateSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: PacketStateAmino): PacketState {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      sequence: BigInt(object.sequence),
-      data: object.data
-    };
-  },
-  toAmino(message: PacketState): PacketStateAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: PacketStateAminoMsg): PacketState {
-    return PacketState.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketState): PacketStateAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketState",
-      value: PacketState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketStateProtoMsg): PacketState {
-    return PacketState.decode(message.value);
-  },
-  toProto(message: PacketState): Uint8Array {
-    return PacketState.encode(message).finish();
-  },
-  toProtoMsg(message: PacketState): PacketStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.PacketState",
-      value: PacketState.encode(message).finish()
-    };
-  }
-};
-function createBaseAcknowledgement(): Acknowledgement {
-  return {
-    result: undefined,
-    error: undefined
-  };
-}
-export const Acknowledgement = {
-  typeUrl: "/ibc.core.channel.v1.Acknowledgement",
-  aminoType: "cosmos-sdk/Acknowledgement",
-  encode(message: Acknowledgement, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.result !== undefined) {
-      writer.uint32(170).bytes(message.result);
-    }
-    if (message.error !== undefined) {
-      writer.uint32(178).string(message.error);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Acknowledgement {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAcknowledgement();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 21:
-          message.result = reader.bytes();
-          break;
-        case 22:
-          message.error = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Acknowledgement {
-    return {
-      result: isSet(object.result) ? bytesFromBase64(object.result) : undefined,
-      error: isSet(object.error) ? String(object.error) : undefined
-    };
-  },
-  toJSON(message: Acknowledgement): unknown {
-    const obj: any = {};
-    message.result !== undefined && (obj.result = message.result !== undefined ? base64FromBytes(message.result) : undefined);
-    message.error !== undefined && (obj.error = message.error);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Acknowledgement>): Acknowledgement {
-    const message = createBaseAcknowledgement();
-    message.result = object.result ?? undefined;
-    message.error = object.error ?? undefined;
-    return message;
-  },
-  fromSDK(object: AcknowledgementSDKType): Acknowledgement {
-    return {
-      result: object?.result,
-      error: object?.error
-    };
-  },
-  toSDK(message: Acknowledgement): AcknowledgementSDKType {
-    const obj: any = {};
-    obj.result = message.result;
-    obj.error = message.error;
-    return obj;
-  },
-  fromAmino(object: AcknowledgementAmino): Acknowledgement {
-    return {
-      result: object?.result,
-      error: object?.error
-    };
-  },
-  toAmino(message: Acknowledgement): AcknowledgementAmino {
-    const obj: any = {};
-    obj.result = message.result;
-    obj.error = message.error;
-    return obj;
-  },
-  fromAminoMsg(object: AcknowledgementAminoMsg): Acknowledgement {
-    return Acknowledgement.fromAmino(object.value);
-  },
-  toAminoMsg(message: Acknowledgement): AcknowledgementAminoMsg {
-    return {
-      type: "cosmos-sdk/Acknowledgement",
-      value: Acknowledgement.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AcknowledgementProtoMsg): Acknowledgement {
-    return Acknowledgement.decode(message.value);
-  },
-  toProto(message: Acknowledgement): Uint8Array {
-    return Acknowledgement.encode(message).finish();
-  },
-  toProtoMsg(message: Acknowledgement): AcknowledgementProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.Acknowledgement",
-      value: Acknowledgement.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/genesis.ts b/examples/injective/src/codegen/ibc/core/channel/v1/genesis.ts
deleted file mode 100644
index 9c12d13b..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/genesis.ts
+++ /dev/null
@@ -1,467 +0,0 @@
-import { IdentifiedChannel, IdentifiedChannelAmino, IdentifiedChannelSDKType, PacketState, PacketStateAmino, PacketStateSDKType } from "./channel";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** GenesisState defines the ibc channel submodule's genesis state. */
-export interface GenesisState {
-  channels: IdentifiedChannel[];
-  acknowledgements: PacketState[];
-  commitments: PacketState[];
-  receipts: PacketState[];
-  sendSequences: PacketSequence[];
-  recvSequences: PacketSequence[];
-  ackSequences: PacketSequence[];
-  /** the sequence for the next generated channel identifier */
-  nextChannelSequence: bigint;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the ibc channel submodule's genesis state. */
-export interface GenesisStateAmino {
-  channels: IdentifiedChannelAmino[];
-  acknowledgements: PacketStateAmino[];
-  commitments: PacketStateAmino[];
-  receipts: PacketStateAmino[];
-  send_sequences: PacketSequenceAmino[];
-  recv_sequences: PacketSequenceAmino[];
-  ack_sequences: PacketSequenceAmino[];
-  /** the sequence for the next generated channel identifier */
-  next_channel_sequence: string;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the ibc channel submodule's genesis state. */
-export interface GenesisStateSDKType {
-  channels: IdentifiedChannelSDKType[];
-  acknowledgements: PacketStateSDKType[];
-  commitments: PacketStateSDKType[];
-  receipts: PacketStateSDKType[];
-  send_sequences: PacketSequenceSDKType[];
-  recv_sequences: PacketSequenceSDKType[];
-  ack_sequences: PacketSequenceSDKType[];
-  next_channel_sequence: bigint;
-}
-/**
- * PacketSequence defines the genesis type necessary to retrieve and store
- * next send and receive sequences.
- */
-export interface PacketSequence {
-  portId: string;
-  channelId: string;
-  sequence: bigint;
-}
-export interface PacketSequenceProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.PacketSequence";
-  value: Uint8Array;
-}
-/**
- * PacketSequence defines the genesis type necessary to retrieve and store
- * next send and receive sequences.
- */
-export interface PacketSequenceAmino {
-  port_id: string;
-  channel_id: string;
-  sequence: string;
-}
-export interface PacketSequenceAminoMsg {
-  type: "cosmos-sdk/PacketSequence";
-  value: PacketSequenceAmino;
-}
-/**
- * PacketSequence defines the genesis type necessary to retrieve and store
- * next send and receive sequences.
- */
-export interface PacketSequenceSDKType {
-  port_id: string;
-  channel_id: string;
-  sequence: bigint;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    channels: [],
-    acknowledgements: [],
-    commitments: [],
-    receipts: [],
-    sendSequences: [],
-    recvSequences: [],
-    ackSequences: [],
-    nextChannelSequence: BigInt(0)
-  };
-}
-export const GenesisState = {
-  typeUrl: "/ibc.core.channel.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.channels) {
-      IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.acknowledgements) {
-      PacketState.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.commitments) {
-      PacketState.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.receipts) {
-      PacketState.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.sendSequences) {
-      PacketSequence.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.recvSequences) {
-      PacketSequence.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.ackSequences) {
-      PacketSequence.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.nextChannelSequence !== BigInt(0)) {
-      writer.uint32(64).uint64(message.nextChannelSequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.channels.push(IdentifiedChannel.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.acknowledgements.push(PacketState.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.commitments.push(PacketState.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.receipts.push(PacketState.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.sendSequences.push(PacketSequence.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.recvSequences.push(PacketSequence.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.ackSequences.push(PacketSequence.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.nextChannelSequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromJSON(e)) : [],
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromJSON(e)) : [],
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromJSON(e)) : [],
-      receipts: Array.isArray(object?.receipts) ? object.receipts.map((e: any) => PacketState.fromJSON(e)) : [],
-      sendSequences: Array.isArray(object?.sendSequences) ? object.sendSequences.map((e: any) => PacketSequence.fromJSON(e)) : [],
-      recvSequences: Array.isArray(object?.recvSequences) ? object.recvSequences.map((e: any) => PacketSequence.fromJSON(e)) : [],
-      ackSequences: Array.isArray(object?.ackSequences) ? object.ackSequences.map((e: any) => PacketSequence.fromJSON(e)) : [],
-      nextChannelSequence: isSet(object.nextChannelSequence) ? BigInt(object.nextChannelSequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toJSON(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toJSON(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toJSON(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    if (message.receipts) {
-      obj.receipts = message.receipts.map(e => e ? PacketState.toJSON(e) : undefined);
-    } else {
-      obj.receipts = [];
-    }
-    if (message.sendSequences) {
-      obj.sendSequences = message.sendSequences.map(e => e ? PacketSequence.toJSON(e) : undefined);
-    } else {
-      obj.sendSequences = [];
-    }
-    if (message.recvSequences) {
-      obj.recvSequences = message.recvSequences.map(e => e ? PacketSequence.toJSON(e) : undefined);
-    } else {
-      obj.recvSequences = [];
-    }
-    if (message.ackSequences) {
-      obj.ackSequences = message.ackSequences.map(e => e ? PacketSequence.toJSON(e) : undefined);
-    } else {
-      obj.ackSequences = [];
-    }
-    message.nextChannelSequence !== undefined && (obj.nextChannelSequence = (message.nextChannelSequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || [];
-    message.acknowledgements = object.acknowledgements?.map(e => PacketState.fromPartial(e)) || [];
-    message.commitments = object.commitments?.map(e => PacketState.fromPartial(e)) || [];
-    message.receipts = object.receipts?.map(e => PacketState.fromPartial(e)) || [];
-    message.sendSequences = object.sendSequences?.map(e => PacketSequence.fromPartial(e)) || [];
-    message.recvSequences = object.recvSequences?.map(e => PacketSequence.fromPartial(e)) || [];
-    message.ackSequences = object.ackSequences?.map(e => PacketSequence.fromPartial(e)) || [];
-    message.nextChannelSequence = object.nextChannelSequence !== undefined && object.nextChannelSequence !== null ? BigInt(object.nextChannelSequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromSDK(e)) : [],
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromSDK(e)) : [],
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromSDK(e)) : [],
-      receipts: Array.isArray(object?.receipts) ? object.receipts.map((e: any) => PacketState.fromSDK(e)) : [],
-      sendSequences: Array.isArray(object?.send_sequences) ? object.send_sequences.map((e: any) => PacketSequence.fromSDK(e)) : [],
-      recvSequences: Array.isArray(object?.recv_sequences) ? object.recv_sequences.map((e: any) => PacketSequence.fromSDK(e)) : [],
-      ackSequences: Array.isArray(object?.ack_sequences) ? object.ack_sequences.map((e: any) => PacketSequence.fromSDK(e)) : [],
-      nextChannelSequence: object?.next_channel_sequence
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toSDK(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toSDK(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toSDK(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    if (message.receipts) {
-      obj.receipts = message.receipts.map(e => e ? PacketState.toSDK(e) : undefined);
-    } else {
-      obj.receipts = [];
-    }
-    if (message.sendSequences) {
-      obj.send_sequences = message.sendSequences.map(e => e ? PacketSequence.toSDK(e) : undefined);
-    } else {
-      obj.send_sequences = [];
-    }
-    if (message.recvSequences) {
-      obj.recv_sequences = message.recvSequences.map(e => e ? PacketSequence.toSDK(e) : undefined);
-    } else {
-      obj.recv_sequences = [];
-    }
-    if (message.ackSequences) {
-      obj.ack_sequences = message.ackSequences.map(e => e ? PacketSequence.toSDK(e) : undefined);
-    } else {
-      obj.ack_sequences = [];
-    }
-    obj.next_channel_sequence = message.nextChannelSequence;
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromAmino(e)) : [],
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromAmino(e)) : [],
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromAmino(e)) : [],
-      receipts: Array.isArray(object?.receipts) ? object.receipts.map((e: any) => PacketState.fromAmino(e)) : [],
-      sendSequences: Array.isArray(object?.send_sequences) ? object.send_sequences.map((e: any) => PacketSequence.fromAmino(e)) : [],
-      recvSequences: Array.isArray(object?.recv_sequences) ? object.recv_sequences.map((e: any) => PacketSequence.fromAmino(e)) : [],
-      ackSequences: Array.isArray(object?.ack_sequences) ? object.ack_sequences.map((e: any) => PacketSequence.fromAmino(e)) : [],
-      nextChannelSequence: BigInt(object.next_channel_sequence)
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toAmino(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toAmino(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toAmino(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    if (message.receipts) {
-      obj.receipts = message.receipts.map(e => e ? PacketState.toAmino(e) : undefined);
-    } else {
-      obj.receipts = [];
-    }
-    if (message.sendSequences) {
-      obj.send_sequences = message.sendSequences.map(e => e ? PacketSequence.toAmino(e) : undefined);
-    } else {
-      obj.send_sequences = [];
-    }
-    if (message.recvSequences) {
-      obj.recv_sequences = message.recvSequences.map(e => e ? PacketSequence.toAmino(e) : undefined);
-    } else {
-      obj.recv_sequences = [];
-    }
-    if (message.ackSequences) {
-      obj.ack_sequences = message.ackSequences.map(e => e ? PacketSequence.toAmino(e) : undefined);
-    } else {
-      obj.ack_sequences = [];
-    }
-    obj.next_channel_sequence = message.nextChannelSequence ? message.nextChannelSequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBasePacketSequence(): PacketSequence {
-  return {
-    portId: "",
-    channelId: "",
-    sequence: BigInt(0)
-  };
-}
-export const PacketSequence = {
-  typeUrl: "/ibc.core.channel.v1.PacketSequence",
-  aminoType: "cosmos-sdk/PacketSequence",
-  encode(message: PacketSequence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketSequence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketSequence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketSequence {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: PacketSequence): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketSequence>): PacketSequence {
-    const message = createBasePacketSequence();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: PacketSequenceSDKType): PacketSequence {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: PacketSequence): PacketSequenceSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: PacketSequenceAmino): PacketSequence {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: PacketSequence): PacketSequenceAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PacketSequenceAminoMsg): PacketSequence {
-    return PacketSequence.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketSequence): PacketSequenceAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketSequence",
-      value: PacketSequence.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketSequenceProtoMsg): PacketSequence {
-    return PacketSequence.decode(message.value);
-  },
-  toProto(message: PacketSequence): Uint8Array {
-    return PacketSequence.encode(message).finish();
-  },
-  toProtoMsg(message: PacketSequence): PacketSequenceProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.PacketSequence",
-      value: PacketSequence.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/query.rpc.Query.ts b/examples/injective/src/codegen/ibc/core/channel/v1/query.rpc.Query.ts
deleted file mode 100644
index ee19de5b..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,535 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { QueryChannelRequest, QueryChannelResponse, QueryChannelsRequest, QueryChannelsResponse, QueryConnectionChannelsRequest, QueryConnectionChannelsResponse, QueryChannelClientStateRequest, QueryChannelClientStateResponse, QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse, QueryPacketCommitmentRequest, QueryPacketCommitmentResponse, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponse, QueryPacketReceiptRequest, QueryPacketReceiptResponse, QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponse, QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponse, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponse, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponse, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponse } from "./query";
-/** Query provides defines the gRPC querier service */
-export interface Query {
-  /** Channel queries an IBC Channel. */
-  channel(request: QueryChannelRequest): Promise<QueryChannelResponse>;
-  /** Channels queries all the IBC channels of a chain. */
-  channels(request?: QueryChannelsRequest): Promise<QueryChannelsResponse>;
-  /**
-   * ConnectionChannels queries all the channels associated with a connection
-   * end.
-   */
-  connectionChannels(request: QueryConnectionChannelsRequest): Promise<QueryConnectionChannelsResponse>;
-  /**
-   * ChannelClientState queries for the client state for the channel associated
-   * with the provided channel identifiers.
-   */
-  channelClientState(request: QueryChannelClientStateRequest): Promise<QueryChannelClientStateResponse>;
-  /**
-   * ChannelConsensusState queries for the consensus state for the channel
-   * associated with the provided channel identifiers.
-   */
-  channelConsensusState(request: QueryChannelConsensusStateRequest): Promise<QueryChannelConsensusStateResponse>;
-  /** PacketCommitment queries a stored packet commitment hash. */
-  packetCommitment(request: QueryPacketCommitmentRequest): Promise<QueryPacketCommitmentResponse>;
-  /**
-   * PacketCommitments returns all the packet commitments hashes associated
-   * with a channel.
-   */
-  packetCommitments(request: QueryPacketCommitmentsRequest): Promise<QueryPacketCommitmentsResponse>;
-  /**
-   * PacketReceipt queries if a given packet sequence has been received on the
-   * queried chain
-   */
-  packetReceipt(request: QueryPacketReceiptRequest): Promise<QueryPacketReceiptResponse>;
-  /** PacketAcknowledgement queries a stored packet acknowledgement hash. */
-  packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise<QueryPacketAcknowledgementResponse>;
-  /**
-   * PacketAcknowledgements returns all the packet acknowledgements associated
-   * with a channel.
-   */
-  packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise<QueryPacketAcknowledgementsResponse>;
-  /**
-   * UnreceivedPackets returns all the unreceived IBC packets associated with a
-   * channel and sequences.
-   */
-  unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise<QueryUnreceivedPacketsResponse>;
-  /**
-   * UnreceivedAcks returns all the unreceived IBC acknowledgements associated
-   * with a channel and sequences.
-   */
-  unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise<QueryUnreceivedAcksResponse>;
-  /** NextSequenceReceive returns the next receive sequence for a given channel. */
-  nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise<QueryNextSequenceReceiveResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.channel = this.channel.bind(this);
-    this.channels = this.channels.bind(this);
-    this.connectionChannels = this.connectionChannels.bind(this);
-    this.channelClientState = this.channelClientState.bind(this);
-    this.channelConsensusState = this.channelConsensusState.bind(this);
-    this.packetCommitment = this.packetCommitment.bind(this);
-    this.packetCommitments = this.packetCommitments.bind(this);
-    this.packetReceipt = this.packetReceipt.bind(this);
-    this.packetAcknowledgement = this.packetAcknowledgement.bind(this);
-    this.packetAcknowledgements = this.packetAcknowledgements.bind(this);
-    this.unreceivedPackets = this.unreceivedPackets.bind(this);
-    this.unreceivedAcks = this.unreceivedAcks.bind(this);
-    this.nextSequenceReceive = this.nextSequenceReceive.bind(this);
-  }
-  channel(request: QueryChannelRequest): Promise<QueryChannelResponse> {
-    const data = QueryChannelRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channel", data);
-    return promise.then(data => QueryChannelResponse.decode(new BinaryReader(data)));
-  }
-  channels(request: QueryChannelsRequest = {
-    pagination: undefined
-  }): Promise<QueryChannelsResponse> {
-    const data = QueryChannelsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channels", data);
-    return promise.then(data => QueryChannelsResponse.decode(new BinaryReader(data)));
-  }
-  connectionChannels(request: QueryConnectionChannelsRequest): Promise<QueryConnectionChannelsResponse> {
-    const data = QueryConnectionChannelsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "ConnectionChannels", data);
-    return promise.then(data => QueryConnectionChannelsResponse.decode(new BinaryReader(data)));
-  }
-  channelClientState(request: QueryChannelClientStateRequest): Promise<QueryChannelClientStateResponse> {
-    const data = QueryChannelClientStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelClientState", data);
-    return promise.then(data => QueryChannelClientStateResponse.decode(new BinaryReader(data)));
-  }
-  channelConsensusState(request: QueryChannelConsensusStateRequest): Promise<QueryChannelConsensusStateResponse> {
-    const data = QueryChannelConsensusStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelConsensusState", data);
-    return promise.then(data => QueryChannelConsensusStateResponse.decode(new BinaryReader(data)));
-  }
-  packetCommitment(request: QueryPacketCommitmentRequest): Promise<QueryPacketCommitmentResponse> {
-    const data = QueryPacketCommitmentRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitment", data);
-    return promise.then(data => QueryPacketCommitmentResponse.decode(new BinaryReader(data)));
-  }
-  packetCommitments(request: QueryPacketCommitmentsRequest): Promise<QueryPacketCommitmentsResponse> {
-    const data = QueryPacketCommitmentsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitments", data);
-    return promise.then(data => QueryPacketCommitmentsResponse.decode(new BinaryReader(data)));
-  }
-  packetReceipt(request: QueryPacketReceiptRequest): Promise<QueryPacketReceiptResponse> {
-    const data = QueryPacketReceiptRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketReceipt", data);
-    return promise.then(data => QueryPacketReceiptResponse.decode(new BinaryReader(data)));
-  }
-  packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise<QueryPacketAcknowledgementResponse> {
-    const data = QueryPacketAcknowledgementRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgement", data);
-    return promise.then(data => QueryPacketAcknowledgementResponse.decode(new BinaryReader(data)));
-  }
-  packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise<QueryPacketAcknowledgementsResponse> {
-    const data = QueryPacketAcknowledgementsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgements", data);
-    return promise.then(data => QueryPacketAcknowledgementsResponse.decode(new BinaryReader(data)));
-  }
-  unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise<QueryUnreceivedPacketsResponse> {
-    const data = QueryUnreceivedPacketsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedPackets", data);
-    return promise.then(data => QueryUnreceivedPacketsResponse.decode(new BinaryReader(data)));
-  }
-  unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise<QueryUnreceivedAcksResponse> {
-    const data = QueryUnreceivedAcksRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedAcks", data);
-    return promise.then(data => QueryUnreceivedAcksResponse.decode(new BinaryReader(data)));
-  }
-  nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise<QueryNextSequenceReceiveResponse> {
-    const data = QueryNextSequenceReceiveRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Query", "NextSequenceReceive", data);
-    return promise.then(data => QueryNextSequenceReceiveResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    channel(request: QueryChannelRequest): Promise<QueryChannelResponse> {
-      return queryService.channel(request);
-    },
-    channels(request?: QueryChannelsRequest): Promise<QueryChannelsResponse> {
-      return queryService.channels(request);
-    },
-    connectionChannels(request: QueryConnectionChannelsRequest): Promise<QueryConnectionChannelsResponse> {
-      return queryService.connectionChannels(request);
-    },
-    channelClientState(request: QueryChannelClientStateRequest): Promise<QueryChannelClientStateResponse> {
-      return queryService.channelClientState(request);
-    },
-    channelConsensusState(request: QueryChannelConsensusStateRequest): Promise<QueryChannelConsensusStateResponse> {
-      return queryService.channelConsensusState(request);
-    },
-    packetCommitment(request: QueryPacketCommitmentRequest): Promise<QueryPacketCommitmentResponse> {
-      return queryService.packetCommitment(request);
-    },
-    packetCommitments(request: QueryPacketCommitmentsRequest): Promise<QueryPacketCommitmentsResponse> {
-      return queryService.packetCommitments(request);
-    },
-    packetReceipt(request: QueryPacketReceiptRequest): Promise<QueryPacketReceiptResponse> {
-      return queryService.packetReceipt(request);
-    },
-    packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise<QueryPacketAcknowledgementResponse> {
-      return queryService.packetAcknowledgement(request);
-    },
-    packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise<QueryPacketAcknowledgementsResponse> {
-      return queryService.packetAcknowledgements(request);
-    },
-    unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise<QueryUnreceivedPacketsResponse> {
-      return queryService.unreceivedPackets(request);
-    },
-    unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise<QueryUnreceivedAcksResponse> {
-      return queryService.unreceivedAcks(request);
-    },
-    nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise<QueryNextSequenceReceiveResponse> {
-      return queryService.nextSequenceReceive(request);
-    }
-  };
-};
-export interface UseChannelQuery<TData> extends ReactQueryParams<QueryChannelResponse, TData> {
-  request: QueryChannelRequest;
-}
-export interface UseChannelsQuery<TData> extends ReactQueryParams<QueryChannelsResponse, TData> {
-  request?: QueryChannelsRequest;
-}
-export interface UseConnectionChannelsQuery<TData> extends ReactQueryParams<QueryConnectionChannelsResponse, TData> {
-  request: QueryConnectionChannelsRequest;
-}
-export interface UseChannelClientStateQuery<TData> extends ReactQueryParams<QueryChannelClientStateResponse, TData> {
-  request: QueryChannelClientStateRequest;
-}
-export interface UseChannelConsensusStateQuery<TData> extends ReactQueryParams<QueryChannelConsensusStateResponse, TData> {
-  request: QueryChannelConsensusStateRequest;
-}
-export interface UsePacketCommitmentQuery<TData> extends ReactQueryParams<QueryPacketCommitmentResponse, TData> {
-  request: QueryPacketCommitmentRequest;
-}
-export interface UsePacketCommitmentsQuery<TData> extends ReactQueryParams<QueryPacketCommitmentsResponse, TData> {
-  request: QueryPacketCommitmentsRequest;
-}
-export interface UsePacketReceiptQuery<TData> extends ReactQueryParams<QueryPacketReceiptResponse, TData> {
-  request: QueryPacketReceiptRequest;
-}
-export interface UsePacketAcknowledgementQuery<TData> extends ReactQueryParams<QueryPacketAcknowledgementResponse, TData> {
-  request: QueryPacketAcknowledgementRequest;
-}
-export interface UsePacketAcknowledgementsQuery<TData> extends ReactQueryParams<QueryPacketAcknowledgementsResponse, TData> {
-  request: QueryPacketAcknowledgementsRequest;
-}
-export interface UseUnreceivedPacketsQuery<TData> extends ReactQueryParams<QueryUnreceivedPacketsResponse, TData> {
-  request: QueryUnreceivedPacketsRequest;
-}
-export interface UseUnreceivedAcksQuery<TData> extends ReactQueryParams<QueryUnreceivedAcksResponse, TData> {
-  request: QueryUnreceivedAcksRequest;
-}
-export interface UseNextSequenceReceiveQuery<TData> extends ReactQueryParams<QueryNextSequenceReceiveResponse, TData> {
-  request: QueryNextSequenceReceiveRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useChannel = <TData = QueryChannelResponse,>({
-    request,
-    options
-  }: UseChannelQuery<TData>) => {
-    return useQuery<QueryChannelResponse, Error, TData>(["channelQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.channel(request);
-    }, options);
-  };
-  const useChannels = <TData = QueryChannelsResponse,>({
-    request,
-    options
-  }: UseChannelsQuery<TData>) => {
-    return useQuery<QueryChannelsResponse, Error, TData>(["channelsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.channels(request);
-    }, options);
-  };
-  const useConnectionChannels = <TData = QueryConnectionChannelsResponse,>({
-    request,
-    options
-  }: UseConnectionChannelsQuery<TData>) => {
-    return useQuery<QueryConnectionChannelsResponse, Error, TData>(["connectionChannelsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connectionChannels(request);
-    }, options);
-  };
-  const useChannelClientState = <TData = QueryChannelClientStateResponse,>({
-    request,
-    options
-  }: UseChannelClientStateQuery<TData>) => {
-    return useQuery<QueryChannelClientStateResponse, Error, TData>(["channelClientStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.channelClientState(request);
-    }, options);
-  };
-  const useChannelConsensusState = <TData = QueryChannelConsensusStateResponse,>({
-    request,
-    options
-  }: UseChannelConsensusStateQuery<TData>) => {
-    return useQuery<QueryChannelConsensusStateResponse, Error, TData>(["channelConsensusStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.channelConsensusState(request);
-    }, options);
-  };
-  const usePacketCommitment = <TData = QueryPacketCommitmentResponse,>({
-    request,
-    options
-  }: UsePacketCommitmentQuery<TData>) => {
-    return useQuery<QueryPacketCommitmentResponse, Error, TData>(["packetCommitmentQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.packetCommitment(request);
-    }, options);
-  };
-  const usePacketCommitments = <TData = QueryPacketCommitmentsResponse,>({
-    request,
-    options
-  }: UsePacketCommitmentsQuery<TData>) => {
-    return useQuery<QueryPacketCommitmentsResponse, Error, TData>(["packetCommitmentsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.packetCommitments(request);
-    }, options);
-  };
-  const usePacketReceipt = <TData = QueryPacketReceiptResponse,>({
-    request,
-    options
-  }: UsePacketReceiptQuery<TData>) => {
-    return useQuery<QueryPacketReceiptResponse, Error, TData>(["packetReceiptQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.packetReceipt(request);
-    }, options);
-  };
-  const usePacketAcknowledgement = <TData = QueryPacketAcknowledgementResponse,>({
-    request,
-    options
-  }: UsePacketAcknowledgementQuery<TData>) => {
-    return useQuery<QueryPacketAcknowledgementResponse, Error, TData>(["packetAcknowledgementQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.packetAcknowledgement(request);
-    }, options);
-  };
-  const usePacketAcknowledgements = <TData = QueryPacketAcknowledgementsResponse,>({
-    request,
-    options
-  }: UsePacketAcknowledgementsQuery<TData>) => {
-    return useQuery<QueryPacketAcknowledgementsResponse, Error, TData>(["packetAcknowledgementsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.packetAcknowledgements(request);
-    }, options);
-  };
-  const useUnreceivedPackets = <TData = QueryUnreceivedPacketsResponse,>({
-    request,
-    options
-  }: UseUnreceivedPacketsQuery<TData>) => {
-    return useQuery<QueryUnreceivedPacketsResponse, Error, TData>(["unreceivedPacketsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.unreceivedPackets(request);
-    }, options);
-  };
-  const useUnreceivedAcks = <TData = QueryUnreceivedAcksResponse,>({
-    request,
-    options
-  }: UseUnreceivedAcksQuery<TData>) => {
-    return useQuery<QueryUnreceivedAcksResponse, Error, TData>(["unreceivedAcksQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.unreceivedAcks(request);
-    }, options);
-  };
-  const useNextSequenceReceive = <TData = QueryNextSequenceReceiveResponse,>({
-    request,
-    options
-  }: UseNextSequenceReceiveQuery<TData>) => {
-    return useQuery<QueryNextSequenceReceiveResponse, Error, TData>(["nextSequenceReceiveQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.nextSequenceReceive(request);
-    }, options);
-  };
-  return {
-    /** Channel queries an IBC Channel. */useChannel,
-    /** Channels queries all the IBC channels of a chain. */useChannels,
-    /**
-     * ConnectionChannels queries all the channels associated with a connection
-     * end.
-     */
-    useConnectionChannels,
-    /**
-     * ChannelClientState queries for the client state for the channel associated
-     * with the provided channel identifiers.
-     */
-    useChannelClientState,
-    /**
-     * ChannelConsensusState queries for the consensus state for the channel
-     * associated with the provided channel identifiers.
-     */
-    useChannelConsensusState,
-    /** PacketCommitment queries a stored packet commitment hash. */usePacketCommitment,
-    /**
-     * PacketCommitments returns all the packet commitments hashes associated
-     * with a channel.
-     */
-    usePacketCommitments,
-    /**
-     * PacketReceipt queries if a given packet sequence has been received on the
-     * queried chain
-     */
-    usePacketReceipt,
-    /** PacketAcknowledgement queries a stored packet acknowledgement hash. */usePacketAcknowledgement,
-    /**
-     * PacketAcknowledgements returns all the packet acknowledgements associated
-     * with a channel.
-     */
-    usePacketAcknowledgements,
-    /**
-     * UnreceivedPackets returns all the unreceived IBC packets associated with a
-     * channel and sequences.
-     */
-    useUnreceivedPackets,
-    /**
-     * UnreceivedAcks returns all the unreceived IBC acknowledgements associated
-     * with a channel and sequences.
-     */
-    useUnreceivedAcks,
-    /** NextSequenceReceive returns the next receive sequence for a given channel. */useNextSequenceReceive
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryChannelStore {
-    store = new QueryStore<QueryChannelRequest, QueryChannelResponse>(queryService?.channel);
-    channel(request: QueryChannelRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryChannelsStore {
-    store = new QueryStore<QueryChannelsRequest, QueryChannelsResponse>(queryService?.channels);
-    channels(request: QueryChannelsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConnectionChannelsStore {
-    store = new QueryStore<QueryConnectionChannelsRequest, QueryConnectionChannelsResponse>(queryService?.connectionChannels);
-    connectionChannels(request: QueryConnectionChannelsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryChannelClientStateStore {
-    store = new QueryStore<QueryChannelClientStateRequest, QueryChannelClientStateResponse>(queryService?.channelClientState);
-    channelClientState(request: QueryChannelClientStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryChannelConsensusStateStore {
-    store = new QueryStore<QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse>(queryService?.channelConsensusState);
-    channelConsensusState(request: QueryChannelConsensusStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPacketCommitmentStore {
-    store = new QueryStore<QueryPacketCommitmentRequest, QueryPacketCommitmentResponse>(queryService?.packetCommitment);
-    packetCommitment(request: QueryPacketCommitmentRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPacketCommitmentsStore {
-    store = new QueryStore<QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponse>(queryService?.packetCommitments);
-    packetCommitments(request: QueryPacketCommitmentsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPacketReceiptStore {
-    store = new QueryStore<QueryPacketReceiptRequest, QueryPacketReceiptResponse>(queryService?.packetReceipt);
-    packetReceipt(request: QueryPacketReceiptRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPacketAcknowledgementStore {
-    store = new QueryStore<QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponse>(queryService?.packetAcknowledgement);
-    packetAcknowledgement(request: QueryPacketAcknowledgementRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPacketAcknowledgementsStore {
-    store = new QueryStore<QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponse>(queryService?.packetAcknowledgements);
-    packetAcknowledgements(request: QueryPacketAcknowledgementsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUnreceivedPacketsStore {
-    store = new QueryStore<QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponse>(queryService?.unreceivedPackets);
-    unreceivedPackets(request: QueryUnreceivedPacketsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUnreceivedAcksStore {
-    store = new QueryStore<QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponse>(queryService?.unreceivedAcks);
-    unreceivedAcks(request: QueryUnreceivedAcksRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryNextSequenceReceiveStore {
-    store = new QueryStore<QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponse>(queryService?.nextSequenceReceive);
-    nextSequenceReceive(request: QueryNextSequenceReceiveRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Channel queries an IBC Channel. */QueryChannelStore,
-    /** Channels queries all the IBC channels of a chain. */QueryChannelsStore,
-    /**
-     * ConnectionChannels queries all the channels associated with a connection
-     * end.
-     */
-    QueryConnectionChannelsStore,
-    /**
-     * ChannelClientState queries for the client state for the channel associated
-     * with the provided channel identifiers.
-     */
-    QueryChannelClientStateStore,
-    /**
-     * ChannelConsensusState queries for the consensus state for the channel
-     * associated with the provided channel identifiers.
-     */
-    QueryChannelConsensusStateStore,
-    /** PacketCommitment queries a stored packet commitment hash. */QueryPacketCommitmentStore,
-    /**
-     * PacketCommitments returns all the packet commitments hashes associated
-     * with a channel.
-     */
-    QueryPacketCommitmentsStore,
-    /**
-     * PacketReceipt queries if a given packet sequence has been received on the
-     * queried chain
-     */
-    QueryPacketReceiptStore,
-    /** PacketAcknowledgement queries a stored packet acknowledgement hash. */QueryPacketAcknowledgementStore,
-    /**
-     * PacketAcknowledgements returns all the packet acknowledgements associated
-     * with a channel.
-     */
-    QueryPacketAcknowledgementsStore,
-    /**
-     * UnreceivedPackets returns all the unreceived IBC packets associated with a
-     * channel and sequences.
-     */
-    QueryUnreceivedPacketsStore,
-    /**
-     * UnreceivedAcks returns all the unreceived IBC acknowledgements associated
-     * with a channel and sequences.
-     */
-    QueryUnreceivedAcksStore,
-    /** NextSequenceReceive returns the next receive sequence for a given channel. */QueryNextSequenceReceiveStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/query.ts b/examples/injective/src/codegen/ibc/core/channel/v1/query.ts
deleted file mode 100644
index 946f588a..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/query.ts
+++ /dev/null
@@ -1,4127 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination";
-import { Channel, ChannelAmino, ChannelSDKType, IdentifiedChannel, IdentifiedChannelAmino, IdentifiedChannelSDKType, PacketState, PacketStateAmino, PacketStateSDKType } from "./channel";
-import { Height, HeightAmino, HeightSDKType, IdentifiedClientState, IdentifiedClientStateAmino, IdentifiedClientStateSDKType } from "../../client/v1/client";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/** QueryChannelRequest is the request type for the Query/Channel RPC method */
-export interface QueryChannelRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-}
-export interface QueryChannelRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelRequest";
-  value: Uint8Array;
-}
-/** QueryChannelRequest is the request type for the Query/Channel RPC method */
-export interface QueryChannelRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-}
-export interface QueryChannelRequestAminoMsg {
-  type: "cosmos-sdk/QueryChannelRequest";
-  value: QueryChannelRequestAmino;
-}
-/** QueryChannelRequest is the request type for the Query/Channel RPC method */
-export interface QueryChannelRequestSDKType {
-  port_id: string;
-  channel_id: string;
-}
-/**
- * QueryChannelResponse is the response type for the Query/Channel RPC method.
- * Besides the Channel end, it includes a proof and the height from which the
- * proof was retrieved.
- */
-export interface QueryChannelResponse {
-  /** channel associated with the request identifiers */
-  channel: Channel | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryChannelResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelResponse";
-  value: Uint8Array;
-}
-/**
- * QueryChannelResponse is the response type for the Query/Channel RPC method.
- * Besides the Channel end, it includes a proof and the height from which the
- * proof was retrieved.
- */
-export interface QueryChannelResponseAmino {
-  /** channel associated with the request identifiers */
-  channel?: ChannelAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryChannelResponseAminoMsg {
-  type: "cosmos-sdk/QueryChannelResponse";
-  value: QueryChannelResponseAmino;
-}
-/**
- * QueryChannelResponse is the response type for the Query/Channel RPC method.
- * Besides the Channel end, it includes a proof and the height from which the
- * proof was retrieved.
- */
-export interface QueryChannelResponseSDKType {
-  channel: ChannelSDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/** QueryChannelsRequest is the request type for the Query/Channels RPC method */
-export interface QueryChannelsRequest {
-  /** pagination request */
-  pagination: PageRequest | undefined;
-}
-export interface QueryChannelsRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelsRequest";
-  value: Uint8Array;
-}
-/** QueryChannelsRequest is the request type for the Query/Channels RPC method */
-export interface QueryChannelsRequestAmino {
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryChannelsRequestAminoMsg {
-  type: "cosmos-sdk/QueryChannelsRequest";
-  value: QueryChannelsRequestAmino;
-}
-/** QueryChannelsRequest is the request type for the Query/Channels RPC method */
-export interface QueryChannelsRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */
-export interface QueryChannelsResponse {
-  /** list of stored channels of the chain. */
-  channels: IdentifiedChannel[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryChannelsResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelsResponse";
-  value: Uint8Array;
-}
-/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */
-export interface QueryChannelsResponseAmino {
-  /** list of stored channels of the chain. */
-  channels: IdentifiedChannelAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryChannelsResponseAminoMsg {
-  type: "cosmos-sdk/QueryChannelsResponse";
-  value: QueryChannelsResponseAmino;
-}
-/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */
-export interface QueryChannelsResponseSDKType {
-  channels: IdentifiedChannelSDKType[];
-  pagination: PageResponseSDKType | undefined;
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryConnectionChannelsRequest is the request type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsRequest {
-  /** connection unique identifier */
-  connection: string;
-  /** pagination request */
-  pagination: PageRequest | undefined;
-}
-export interface QueryConnectionChannelsRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionChannelsRequest is the request type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsRequestAmino {
-  /** connection unique identifier */
-  connection: string;
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryConnectionChannelsRequestAminoMsg {
-  type: "cosmos-sdk/QueryConnectionChannelsRequest";
-  value: QueryConnectionChannelsRequestAmino;
-}
-/**
- * QueryConnectionChannelsRequest is the request type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsRequestSDKType {
-  connection: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryConnectionChannelsResponse is the Response type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsResponse {
-  /** list of channels associated with a connection. */
-  channels: IdentifiedChannel[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryConnectionChannelsResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionChannelsResponse is the Response type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsResponseAmino {
-  /** list of channels associated with a connection. */
-  channels: IdentifiedChannelAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryConnectionChannelsResponseAminoMsg {
-  type: "cosmos-sdk/QueryConnectionChannelsResponse";
-  value: QueryConnectionChannelsResponseAmino;
-}
-/**
- * QueryConnectionChannelsResponse is the Response type for the
- * Query/QueryConnectionChannels RPC method
- */
-export interface QueryConnectionChannelsResponseSDKType {
-  channels: IdentifiedChannelSDKType[];
-  pagination: PageResponseSDKType | undefined;
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryChannelClientStateRequest is the request type for the Query/ClientState
- * RPC method
- */
-export interface QueryChannelClientStateRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-}
-export interface QueryChannelClientStateRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryChannelClientStateRequest is the request type for the Query/ClientState
- * RPC method
- */
-export interface QueryChannelClientStateRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-}
-export interface QueryChannelClientStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryChannelClientStateRequest";
-  value: QueryChannelClientStateRequestAmino;
-}
-/**
- * QueryChannelClientStateRequest is the request type for the Query/ClientState
- * RPC method
- */
-export interface QueryChannelClientStateRequestSDKType {
-  port_id: string;
-  channel_id: string;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelClientStateResponse {
-  /** client state associated with the channel */
-  identifiedClientState: IdentifiedClientState | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryChannelClientStateResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelClientStateResponseAmino {
-  /** client state associated with the channel */
-  identified_client_state?: IdentifiedClientStateAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryChannelClientStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryChannelClientStateResponse";
-  value: QueryChannelClientStateResponseAmino;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelClientStateResponseSDKType {
-  identified_client_state: IdentifiedClientStateSDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryChannelConsensusStateRequest is the request type for the
- * Query/ConsensusState RPC method
- */
-export interface QueryChannelConsensusStateRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** revision number of the consensus state */
-  revisionNumber: bigint;
-  /** revision height of the consensus state */
-  revisionHeight: bigint;
-}
-export interface QueryChannelConsensusStateRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryChannelConsensusStateRequest is the request type for the
- * Query/ConsensusState RPC method
- */
-export interface QueryChannelConsensusStateRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** revision number of the consensus state */
-  revision_number: string;
-  /** revision height of the consensus state */
-  revision_height: string;
-}
-export interface QueryChannelConsensusStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryChannelConsensusStateRequest";
-  value: QueryChannelConsensusStateRequestAmino;
-}
-/**
- * QueryChannelConsensusStateRequest is the request type for the
- * Query/ConsensusState RPC method
- */
-export interface QueryChannelConsensusStateRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  revision_number: bigint;
-  revision_height: bigint;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelConsensusStateResponse {
-  /** consensus state associated with the channel */
-  consensusState: Any | undefined;
-  /** client ID associated with the consensus state */
-  clientId: string;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryChannelConsensusStateResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelConsensusStateResponseAmino {
-  /** consensus state associated with the channel */
-  consensus_state?: AnyAmino | undefined;
-  /** client ID associated with the consensus state */
-  client_id: string;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryChannelConsensusStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryChannelConsensusStateResponse";
-  value: QueryChannelConsensusStateResponseAmino;
-}
-/**
- * QueryChannelClientStateResponse is the Response type for the
- * Query/QueryChannelClientState RPC method
- */
-export interface QueryChannelConsensusStateResponseSDKType {
-  consensus_state: AnySDKType | undefined;
-  client_id: string;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryPacketCommitmentRequest is the request type for the
- * Query/PacketCommitment RPC method
- */
-export interface QueryPacketCommitmentRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** packet sequence */
-  sequence: bigint;
-}
-export interface QueryPacketCommitmentRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPacketCommitmentRequest is the request type for the
- * Query/PacketCommitment RPC method
- */
-export interface QueryPacketCommitmentRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** packet sequence */
-  sequence: string;
-}
-export interface QueryPacketCommitmentRequestAminoMsg {
-  type: "cosmos-sdk/QueryPacketCommitmentRequest";
-  value: QueryPacketCommitmentRequestAmino;
-}
-/**
- * QueryPacketCommitmentRequest is the request type for the
- * Query/PacketCommitment RPC method
- */
-export interface QueryPacketCommitmentRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  sequence: bigint;
-}
-/**
- * QueryPacketCommitmentResponse defines the client query response for a packet
- * which also includes a proof and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketCommitmentResponse {
-  /** packet associated with the request fields */
-  commitment: Uint8Array;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryPacketCommitmentResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPacketCommitmentResponse defines the client query response for a packet
- * which also includes a proof and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketCommitmentResponseAmino {
-  /** packet associated with the request fields */
-  commitment: Uint8Array;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryPacketCommitmentResponseAminoMsg {
-  type: "cosmos-sdk/QueryPacketCommitmentResponse";
-  value: QueryPacketCommitmentResponseAmino;
-}
-/**
- * QueryPacketCommitmentResponse defines the client query response for a packet
- * which also includes a proof and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketCommitmentResponseSDKType {
-  commitment: Uint8Array;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryPacketCommitmentsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** pagination request */
-  pagination: PageRequest | undefined;
-}
-export interface QueryPacketCommitmentsRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPacketCommitmentsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryPacketCommitmentsRequestAminoMsg {
-  type: "cosmos-sdk/QueryPacketCommitmentsRequest";
-  value: QueryPacketCommitmentsRequestAmino;
-}
-/**
- * QueryPacketCommitmentsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryPacketCommitmentsResponse is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsResponse {
-  commitments: PacketState[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryPacketCommitmentsResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPacketCommitmentsResponse is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsResponseAmino {
-  commitments: PacketStateAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryPacketCommitmentsResponseAminoMsg {
-  type: "cosmos-sdk/QueryPacketCommitmentsResponse";
-  value: QueryPacketCommitmentsResponseAmino;
-}
-/**
- * QueryPacketCommitmentsResponse is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketCommitmentsResponseSDKType {
-  commitments: PacketStateSDKType[];
-  pagination: PageResponseSDKType | undefined;
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryPacketReceiptRequest is the request type for the
- * Query/PacketReceipt RPC method
- */
-export interface QueryPacketReceiptRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** packet sequence */
-  sequence: bigint;
-}
-export interface QueryPacketReceiptRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPacketReceiptRequest is the request type for the
- * Query/PacketReceipt RPC method
- */
-export interface QueryPacketReceiptRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** packet sequence */
-  sequence: string;
-}
-export interface QueryPacketReceiptRequestAminoMsg {
-  type: "cosmos-sdk/QueryPacketReceiptRequest";
-  value: QueryPacketReceiptRequestAmino;
-}
-/**
- * QueryPacketReceiptRequest is the request type for the
- * Query/PacketReceipt RPC method
- */
-export interface QueryPacketReceiptRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  sequence: bigint;
-}
-/**
- * QueryPacketReceiptResponse defines the client query response for a packet
- * receipt which also includes a proof, and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketReceiptResponse {
-  /** success flag for if receipt exists */
-  received: boolean;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryPacketReceiptResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPacketReceiptResponse defines the client query response for a packet
- * receipt which also includes a proof, and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketReceiptResponseAmino {
-  /** success flag for if receipt exists */
-  received: boolean;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryPacketReceiptResponseAminoMsg {
-  type: "cosmos-sdk/QueryPacketReceiptResponse";
-  value: QueryPacketReceiptResponseAmino;
-}
-/**
- * QueryPacketReceiptResponse defines the client query response for a packet
- * receipt which also includes a proof, and the height from which the proof was
- * retrieved
- */
-export interface QueryPacketReceiptResponseSDKType {
-  received: boolean;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryPacketAcknowledgementRequest is the request type for the
- * Query/PacketAcknowledgement RPC method
- */
-export interface QueryPacketAcknowledgementRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** packet sequence */
-  sequence: bigint;
-}
-export interface QueryPacketAcknowledgementRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPacketAcknowledgementRequest is the request type for the
- * Query/PacketAcknowledgement RPC method
- */
-export interface QueryPacketAcknowledgementRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** packet sequence */
-  sequence: string;
-}
-export interface QueryPacketAcknowledgementRequestAminoMsg {
-  type: "cosmos-sdk/QueryPacketAcknowledgementRequest";
-  value: QueryPacketAcknowledgementRequestAmino;
-}
-/**
- * QueryPacketAcknowledgementRequest is the request type for the
- * Query/PacketAcknowledgement RPC method
- */
-export interface QueryPacketAcknowledgementRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  sequence: bigint;
-}
-/**
- * QueryPacketAcknowledgementResponse defines the client query response for a
- * packet which also includes a proof and the height from which the
- * proof was retrieved
- */
-export interface QueryPacketAcknowledgementResponse {
-  /** packet associated with the request fields */
-  acknowledgement: Uint8Array;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryPacketAcknowledgementResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPacketAcknowledgementResponse defines the client query response for a
- * packet which also includes a proof and the height from which the
- * proof was retrieved
- */
-export interface QueryPacketAcknowledgementResponseAmino {
-  /** packet associated with the request fields */
-  acknowledgement: Uint8Array;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryPacketAcknowledgementResponseAminoMsg {
-  type: "cosmos-sdk/QueryPacketAcknowledgementResponse";
-  value: QueryPacketAcknowledgementResponseAmino;
-}
-/**
- * QueryPacketAcknowledgementResponse defines the client query response for a
- * packet which also includes a proof and the height from which the
- * proof was retrieved
- */
-export interface QueryPacketAcknowledgementResponseSDKType {
-  acknowledgement: Uint8Array;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryPacketAcknowledgementsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketAcknowledgementsRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** pagination request */
-  pagination: PageRequest | undefined;
-  /** list of packet sequences */
-  packetCommitmentSequences: bigint[];
-}
-export interface QueryPacketAcknowledgementsRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryPacketAcknowledgementsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketAcknowledgementsRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-  /** list of packet sequences */
-  packet_commitment_sequences: string[];
-}
-export interface QueryPacketAcknowledgementsRequestAminoMsg {
-  type: "cosmos-sdk/QueryPacketAcknowledgementsRequest";
-  value: QueryPacketAcknowledgementsRequestAmino;
-}
-/**
- * QueryPacketAcknowledgementsRequest is the request type for the
- * Query/QueryPacketCommitments RPC method
- */
-export interface QueryPacketAcknowledgementsRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  pagination: PageRequestSDKType | undefined;
-  packet_commitment_sequences: bigint[];
-}
-/**
- * QueryPacketAcknowledgemetsResponse is the request type for the
- * Query/QueryPacketAcknowledgements RPC method
- */
-export interface QueryPacketAcknowledgementsResponse {
-  acknowledgements: PacketState[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryPacketAcknowledgementsResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryPacketAcknowledgemetsResponse is the request type for the
- * Query/QueryPacketAcknowledgements RPC method
- */
-export interface QueryPacketAcknowledgementsResponseAmino {
-  acknowledgements: PacketStateAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryPacketAcknowledgementsResponseAminoMsg {
-  type: "cosmos-sdk/QueryPacketAcknowledgementsResponse";
-  value: QueryPacketAcknowledgementsResponseAmino;
-}
-/**
- * QueryPacketAcknowledgemetsResponse is the request type for the
- * Query/QueryPacketAcknowledgements RPC method
- */
-export interface QueryPacketAcknowledgementsResponseSDKType {
-  acknowledgements: PacketStateSDKType[];
-  pagination: PageResponseSDKType | undefined;
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryUnreceivedPacketsRequest is the request type for the
- * Query/UnreceivedPackets RPC method
- */
-export interface QueryUnreceivedPacketsRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** list of packet sequences */
-  packetCommitmentSequences: bigint[];
-}
-export interface QueryUnreceivedPacketsRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUnreceivedPacketsRequest is the request type for the
- * Query/UnreceivedPackets RPC method
- */
-export interface QueryUnreceivedPacketsRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** list of packet sequences */
-  packet_commitment_sequences: string[];
-}
-export interface QueryUnreceivedPacketsRequestAminoMsg {
-  type: "cosmos-sdk/QueryUnreceivedPacketsRequest";
-  value: QueryUnreceivedPacketsRequestAmino;
-}
-/**
- * QueryUnreceivedPacketsRequest is the request type for the
- * Query/UnreceivedPackets RPC method
- */
-export interface QueryUnreceivedPacketsRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  packet_commitment_sequences: bigint[];
-}
-/**
- * QueryUnreceivedPacketsResponse is the response type for the
- * Query/UnreceivedPacketCommitments RPC method
- */
-export interface QueryUnreceivedPacketsResponse {
-  /** list of unreceived packet sequences */
-  sequences: bigint[];
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryUnreceivedPacketsResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUnreceivedPacketsResponse is the response type for the
- * Query/UnreceivedPacketCommitments RPC method
- */
-export interface QueryUnreceivedPacketsResponseAmino {
-  /** list of unreceived packet sequences */
-  sequences: string[];
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryUnreceivedPacketsResponseAminoMsg {
-  type: "cosmos-sdk/QueryUnreceivedPacketsResponse";
-  value: QueryUnreceivedPacketsResponseAmino;
-}
-/**
- * QueryUnreceivedPacketsResponse is the response type for the
- * Query/UnreceivedPacketCommitments RPC method
- */
-export interface QueryUnreceivedPacketsResponseSDKType {
-  sequences: bigint[];
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryUnreceivedAcks is the request type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-  /** list of acknowledgement sequences */
-  packetAckSequences: bigint[];
-}
-export interface QueryUnreceivedAcksRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUnreceivedAcks is the request type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-  /** list of acknowledgement sequences */
-  packet_ack_sequences: string[];
-}
-export interface QueryUnreceivedAcksRequestAminoMsg {
-  type: "cosmos-sdk/QueryUnreceivedAcksRequest";
-  value: QueryUnreceivedAcksRequestAmino;
-}
-/**
- * QueryUnreceivedAcks is the request type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksRequestSDKType {
-  port_id: string;
-  channel_id: string;
-  packet_ack_sequences: bigint[];
-}
-/**
- * QueryUnreceivedAcksResponse is the response type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksResponse {
-  /** list of unreceived acknowledgement sequences */
-  sequences: bigint[];
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryUnreceivedAcksResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUnreceivedAcksResponse is the response type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksResponseAmino {
-  /** list of unreceived acknowledgement sequences */
-  sequences: string[];
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryUnreceivedAcksResponseAminoMsg {
-  type: "cosmos-sdk/QueryUnreceivedAcksResponse";
-  value: QueryUnreceivedAcksResponseAmino;
-}
-/**
- * QueryUnreceivedAcksResponse is the response type for the
- * Query/UnreceivedAcks RPC method
- */
-export interface QueryUnreceivedAcksResponseSDKType {
-  sequences: bigint[];
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryNextSequenceReceiveRequest is the request type for the
- * Query/QueryNextSequenceReceiveRequest RPC method
- */
-export interface QueryNextSequenceReceiveRequest {
-  /** port unique identifier */
-  portId: string;
-  /** channel unique identifier */
-  channelId: string;
-}
-export interface QueryNextSequenceReceiveRequestProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveRequest";
-  value: Uint8Array;
-}
-/**
- * QueryNextSequenceReceiveRequest is the request type for the
- * Query/QueryNextSequenceReceiveRequest RPC method
- */
-export interface QueryNextSequenceReceiveRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** channel unique identifier */
-  channel_id: string;
-}
-export interface QueryNextSequenceReceiveRequestAminoMsg {
-  type: "cosmos-sdk/QueryNextSequenceReceiveRequest";
-  value: QueryNextSequenceReceiveRequestAmino;
-}
-/**
- * QueryNextSequenceReceiveRequest is the request type for the
- * Query/QueryNextSequenceReceiveRequest RPC method
- */
-export interface QueryNextSequenceReceiveRequestSDKType {
-  port_id: string;
-  channel_id: string;
-}
-/**
- * QuerySequenceResponse is the request type for the
- * Query/QueryNextSequenceReceiveResponse RPC method
- */
-export interface QueryNextSequenceReceiveResponse {
-  /** next sequence receive number */
-  nextSequenceReceive: bigint;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryNextSequenceReceiveResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySequenceResponse is the request type for the
- * Query/QueryNextSequenceReceiveResponse RPC method
- */
-export interface QueryNextSequenceReceiveResponseAmino {
-  /** next sequence receive number */
-  next_sequence_receive: string;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryNextSequenceReceiveResponseAminoMsg {
-  type: "cosmos-sdk/QueryNextSequenceReceiveResponse";
-  value: QueryNextSequenceReceiveResponseAmino;
-}
-/**
- * QuerySequenceResponse is the request type for the
- * Query/QueryNextSequenceReceiveResponse RPC method
- */
-export interface QueryNextSequenceReceiveResponseSDKType {
-  next_sequence_receive: bigint;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-function createBaseQueryChannelRequest(): QueryChannelRequest {
-  return {
-    portId: "",
-    channelId: ""
-  };
-}
-export const QueryChannelRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelRequest",
-  aminoType: "cosmos-sdk/QueryChannelRequest",
-  encode(message: QueryChannelRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : ""
-    };
-  },
-  toJSON(message: QueryChannelRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelRequest>): QueryChannelRequest {
-    const message = createBaseQueryChannelRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryChannelRequestSDKType): QueryChannelRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id
-    };
-  },
-  toSDK(message: QueryChannelRequest): QueryChannelRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAmino(object: QueryChannelRequestAmino): QueryChannelRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id
-    };
-  },
-  toAmino(message: QueryChannelRequest): QueryChannelRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelRequestAminoMsg): QueryChannelRequest {
-    return QueryChannelRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelRequest): QueryChannelRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelRequest",
-      value: QueryChannelRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelRequestProtoMsg): QueryChannelRequest {
-    return QueryChannelRequest.decode(message.value);
-  },
-  toProto(message: QueryChannelRequest): Uint8Array {
-    return QueryChannelRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelRequest): QueryChannelRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelRequest",
-      value: QueryChannelRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelResponse(): QueryChannelResponse {
-  return {
-    channel: Channel.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryChannelResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelResponse",
-  aminoType: "cosmos-sdk/QueryChannelResponse",
-  encode(message: QueryChannelResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.channel !== undefined) {
-      Channel.encode(message.channel, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.channel = Channel.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelResponse {
-    return {
-      channel: isSet(object.channel) ? Channel.fromJSON(object.channel) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryChannelResponse): unknown {
-    const obj: any = {};
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toJSON(message.channel) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelResponse>): QueryChannelResponse {
-    const message = createBaseQueryChannelResponse();
-    message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryChannelResponseSDKType): QueryChannelResponse {
-    return {
-      channel: object.channel ? Channel.fromSDK(object.channel) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryChannelResponse): QueryChannelResponseSDKType {
-    const obj: any = {};
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toSDK(message.channel) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryChannelResponseAmino): QueryChannelResponse {
-    return {
-      channel: object?.channel ? Channel.fromAmino(object.channel) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryChannelResponse): QueryChannelResponseAmino {
-    const obj: any = {};
-    obj.channel = message.channel ? Channel.toAmino(message.channel) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelResponseAminoMsg): QueryChannelResponse {
-    return QueryChannelResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelResponse): QueryChannelResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelResponse",
-      value: QueryChannelResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelResponseProtoMsg): QueryChannelResponse {
-    return QueryChannelResponse.decode(message.value);
-  },
-  toProto(message: QueryChannelResponse): Uint8Array {
-    return QueryChannelResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelResponse): QueryChannelResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelResponse",
-      value: QueryChannelResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelsRequest(): QueryChannelsRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryChannelsRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelsRequest",
-  aminoType: "cosmos-sdk/QueryChannelsRequest",
-  encode(message: QueryChannelsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelsRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryChannelsRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelsRequest>): QueryChannelsRequest {
-    const message = createBaseQueryChannelsRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryChannelsRequestSDKType): QueryChannelsRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryChannelsRequest): QueryChannelsRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryChannelsRequestAmino): QueryChannelsRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryChannelsRequest): QueryChannelsRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelsRequestAminoMsg): QueryChannelsRequest {
-    return QueryChannelsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelsRequest): QueryChannelsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelsRequest",
-      value: QueryChannelsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelsRequestProtoMsg): QueryChannelsRequest {
-    return QueryChannelsRequest.decode(message.value);
-  },
-  toProto(message: QueryChannelsRequest): Uint8Array {
-    return QueryChannelsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelsRequest): QueryChannelsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelsRequest",
-      value: QueryChannelsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelsResponse(): QueryChannelsResponse {
-  return {
-    channels: [],
-    pagination: PageResponse.fromPartial({}),
-    height: Height.fromPartial({})
-  };
-}
-export const QueryChannelsResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelsResponse",
-  aminoType: "cosmos-sdk/QueryChannelsResponse",
-  encode(message: QueryChannelsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.channels) {
-      IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.channels.push(IdentifiedChannel.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryChannelsResponse): unknown {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toJSON(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelsResponse>): QueryChannelsResponse {
-    const message = createBaseQueryChannelsResponse();
-    message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryChannelsResponseSDKType): QueryChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryChannelsResponse): QueryChannelsResponseSDKType {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toSDK(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryChannelsResponseAmino): QueryChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryChannelsResponse): QueryChannelsResponseAmino {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toAmino(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelsResponseAminoMsg): QueryChannelsResponse {
-    return QueryChannelsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelsResponse): QueryChannelsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelsResponse",
-      value: QueryChannelsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelsResponseProtoMsg): QueryChannelsResponse {
-    return QueryChannelsResponse.decode(message.value);
-  },
-  toProto(message: QueryChannelsResponse): Uint8Array {
-    return QueryChannelsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelsResponse): QueryChannelsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelsResponse",
-      value: QueryChannelsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionChannelsRequest(): QueryConnectionChannelsRequest {
-  return {
-    connection: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryConnectionChannelsRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsRequest",
-  aminoType: "cosmos-sdk/QueryConnectionChannelsRequest",
-  encode(message: QueryConnectionChannelsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connection !== "") {
-      writer.uint32(10).string(message.connection);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionChannelsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionChannelsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connection = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionChannelsRequest {
-    return {
-      connection: isSet(object.connection) ? String(object.connection) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionChannelsRequest): unknown {
-    const obj: any = {};
-    message.connection !== undefined && (obj.connection = message.connection);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionChannelsRequest>): QueryConnectionChannelsRequest {
-    const message = createBaseQueryConnectionChannelsRequest();
-    message.connection = object.connection ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionChannelsRequestSDKType): QueryConnectionChannelsRequest {
-    return {
-      connection: object?.connection,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionChannelsRequest): QueryConnectionChannelsRequestSDKType {
-    const obj: any = {};
-    obj.connection = message.connection;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionChannelsRequestAmino): QueryConnectionChannelsRequest {
-    return {
-      connection: object.connection,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionChannelsRequest): QueryConnectionChannelsRequestAmino {
-    const obj: any = {};
-    obj.connection = message.connection;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionChannelsRequestAminoMsg): QueryConnectionChannelsRequest {
-    return QueryConnectionChannelsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionChannelsRequest): QueryConnectionChannelsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionChannelsRequest",
-      value: QueryConnectionChannelsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionChannelsRequestProtoMsg): QueryConnectionChannelsRequest {
-    return QueryConnectionChannelsRequest.decode(message.value);
-  },
-  toProto(message: QueryConnectionChannelsRequest): Uint8Array {
-    return QueryConnectionChannelsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionChannelsRequest): QueryConnectionChannelsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsRequest",
-      value: QueryConnectionChannelsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionChannelsResponse(): QueryConnectionChannelsResponse {
-  return {
-    channels: [],
-    pagination: PageResponse.fromPartial({}),
-    height: Height.fromPartial({})
-  };
-}
-export const QueryConnectionChannelsResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsResponse",
-  aminoType: "cosmos-sdk/QueryConnectionChannelsResponse",
-  encode(message: QueryConnectionChannelsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.channels) {
-      IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionChannelsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionChannelsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.channels.push(IdentifiedChannel.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionChannelsResponse): unknown {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toJSON(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionChannelsResponse>): QueryConnectionChannelsResponse {
-    const message = createBaseQueryConnectionChannelsResponse();
-    message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionChannelsResponseSDKType): QueryConnectionChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionChannelsResponse): QueryConnectionChannelsResponseSDKType {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toSDK(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionChannelsResponseAmino): QueryConnectionChannelsResponse {
-    return {
-      channels: Array.isArray(object?.channels) ? object.channels.map((e: any) => IdentifiedChannel.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionChannelsResponse): QueryConnectionChannelsResponseAmino {
-    const obj: any = {};
-    if (message.channels) {
-      obj.channels = message.channels.map(e => e ? IdentifiedChannel.toAmino(e) : undefined);
-    } else {
-      obj.channels = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionChannelsResponseAminoMsg): QueryConnectionChannelsResponse {
-    return QueryConnectionChannelsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionChannelsResponse): QueryConnectionChannelsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionChannelsResponse",
-      value: QueryConnectionChannelsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionChannelsResponseProtoMsg): QueryConnectionChannelsResponse {
-    return QueryConnectionChannelsResponse.decode(message.value);
-  },
-  toProto(message: QueryConnectionChannelsResponse): Uint8Array {
-    return QueryConnectionChannelsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionChannelsResponse): QueryConnectionChannelsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsResponse",
-      value: QueryConnectionChannelsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelClientStateRequest(): QueryChannelClientStateRequest {
-  return {
-    portId: "",
-    channelId: ""
-  };
-}
-export const QueryChannelClientStateRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateRequest",
-  aminoType: "cosmos-sdk/QueryChannelClientStateRequest",
-  encode(message: QueryChannelClientStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelClientStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelClientStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelClientStateRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : ""
-    };
-  },
-  toJSON(message: QueryChannelClientStateRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelClientStateRequest>): QueryChannelClientStateRequest {
-    const message = createBaseQueryChannelClientStateRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryChannelClientStateRequestSDKType): QueryChannelClientStateRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id
-    };
-  },
-  toSDK(message: QueryChannelClientStateRequest): QueryChannelClientStateRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAmino(object: QueryChannelClientStateRequestAmino): QueryChannelClientStateRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id
-    };
-  },
-  toAmino(message: QueryChannelClientStateRequest): QueryChannelClientStateRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelClientStateRequestAminoMsg): QueryChannelClientStateRequest {
-    return QueryChannelClientStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelClientStateRequest): QueryChannelClientStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelClientStateRequest",
-      value: QueryChannelClientStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelClientStateRequestProtoMsg): QueryChannelClientStateRequest {
-    return QueryChannelClientStateRequest.decode(message.value);
-  },
-  toProto(message: QueryChannelClientStateRequest): Uint8Array {
-    return QueryChannelClientStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelClientStateRequest): QueryChannelClientStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateRequest",
-      value: QueryChannelClientStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelClientStateResponse(): QueryChannelClientStateResponse {
-  return {
-    identifiedClientState: IdentifiedClientState.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryChannelClientStateResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateResponse",
-  aminoType: "cosmos-sdk/QueryChannelClientStateResponse",
-  encode(message: QueryChannelClientStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.identifiedClientState !== undefined) {
-      IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelClientStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelClientStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.identifiedClientState = IdentifiedClientState.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelClientStateResponse {
-    return {
-      identifiedClientState: isSet(object.identifiedClientState) ? IdentifiedClientState.fromJSON(object.identifiedClientState) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryChannelClientStateResponse): unknown {
-    const obj: any = {};
-    message.identifiedClientState !== undefined && (obj.identifiedClientState = message.identifiedClientState ? IdentifiedClientState.toJSON(message.identifiedClientState) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelClientStateResponse>): QueryChannelClientStateResponse {
-    const message = createBaseQueryChannelClientStateResponse();
-    message.identifiedClientState = object.identifiedClientState !== undefined && object.identifiedClientState !== null ? IdentifiedClientState.fromPartial(object.identifiedClientState) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryChannelClientStateResponseSDKType): QueryChannelClientStateResponse {
-    return {
-      identifiedClientState: object.identified_client_state ? IdentifiedClientState.fromSDK(object.identified_client_state) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryChannelClientStateResponse): QueryChannelClientStateResponseSDKType {
-    const obj: any = {};
-    message.identifiedClientState !== undefined && (obj.identified_client_state = message.identifiedClientState ? IdentifiedClientState.toSDK(message.identifiedClientState) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryChannelClientStateResponseAmino): QueryChannelClientStateResponse {
-    return {
-      identifiedClientState: object?.identified_client_state ? IdentifiedClientState.fromAmino(object.identified_client_state) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryChannelClientStateResponse): QueryChannelClientStateResponseAmino {
-    const obj: any = {};
-    obj.identified_client_state = message.identifiedClientState ? IdentifiedClientState.toAmino(message.identifiedClientState) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelClientStateResponseAminoMsg): QueryChannelClientStateResponse {
-    return QueryChannelClientStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelClientStateResponse): QueryChannelClientStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelClientStateResponse",
-      value: QueryChannelClientStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelClientStateResponseProtoMsg): QueryChannelClientStateResponse {
-    return QueryChannelClientStateResponse.decode(message.value);
-  },
-  toProto(message: QueryChannelClientStateResponse): Uint8Array {
-    return QueryChannelClientStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelClientStateResponse): QueryChannelClientStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateResponse",
-      value: QueryChannelClientStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelConsensusStateRequest(): QueryChannelConsensusStateRequest {
-  return {
-    portId: "",
-    channelId: "",
-    revisionNumber: BigInt(0),
-    revisionHeight: BigInt(0)
-  };
-}
-export const QueryChannelConsensusStateRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateRequest",
-  aminoType: "cosmos-sdk/QueryChannelConsensusStateRequest",
-  encode(message: QueryChannelConsensusStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.revisionNumber !== BigInt(0)) {
-      writer.uint32(24).uint64(message.revisionNumber);
-    }
-    if (message.revisionHeight !== BigInt(0)) {
-      writer.uint32(32).uint64(message.revisionHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelConsensusStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelConsensusStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.revisionNumber = reader.uint64();
-          break;
-        case 4:
-          message.revisionHeight = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelConsensusStateRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      revisionNumber: isSet(object.revisionNumber) ? BigInt(object.revisionNumber.toString()) : BigInt(0),
-      revisionHeight: isSet(object.revisionHeight) ? BigInt(object.revisionHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryChannelConsensusStateRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.revisionNumber !== undefined && (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());
-    message.revisionHeight !== undefined && (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelConsensusStateRequest>): QueryChannelConsensusStateRequest {
-    const message = createBaseQueryChannelConsensusStateRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? BigInt(object.revisionNumber.toString()) : BigInt(0);
-    message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? BigInt(object.revisionHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryChannelConsensusStateRequestSDKType): QueryChannelConsensusStateRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      revisionNumber: object?.revision_number,
-      revisionHeight: object?.revision_height
-    };
-  },
-  toSDK(message: QueryChannelConsensusStateRequest): QueryChannelConsensusStateRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.revision_number = message.revisionNumber;
-    obj.revision_height = message.revisionHeight;
-    return obj;
-  },
-  fromAmino(object: QueryChannelConsensusStateRequestAmino): QueryChannelConsensusStateRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      revisionNumber: BigInt(object.revision_number),
-      revisionHeight: BigInt(object.revision_height)
-    };
-  },
-  toAmino(message: QueryChannelConsensusStateRequest): QueryChannelConsensusStateRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.revision_number = message.revisionNumber ? message.revisionNumber.toString() : undefined;
-    obj.revision_height = message.revisionHeight ? message.revisionHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelConsensusStateRequestAminoMsg): QueryChannelConsensusStateRequest {
-    return QueryChannelConsensusStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelConsensusStateRequest): QueryChannelConsensusStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelConsensusStateRequest",
-      value: QueryChannelConsensusStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelConsensusStateRequestProtoMsg): QueryChannelConsensusStateRequest {
-    return QueryChannelConsensusStateRequest.decode(message.value);
-  },
-  toProto(message: QueryChannelConsensusStateRequest): Uint8Array {
-    return QueryChannelConsensusStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelConsensusStateRequest): QueryChannelConsensusStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateRequest",
-      value: QueryChannelConsensusStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryChannelConsensusStateResponse(): QueryChannelConsensusStateResponse {
-  return {
-    consensusState: Any.fromPartial({}),
-    clientId: "",
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryChannelConsensusStateResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateResponse",
-  aminoType: "cosmos-sdk/QueryChannelConsensusStateResponse",
-  encode(message: QueryChannelConsensusStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.clientId !== "") {
-      writer.uint32(18).string(message.clientId);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(26).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryChannelConsensusStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryChannelConsensusStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.clientId = reader.string();
-          break;
-        case 3:
-          message.proof = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryChannelConsensusStateResponse {
-    return {
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined,
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryChannelConsensusStateResponse): unknown {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryChannelConsensusStateResponse>): QueryChannelConsensusStateResponse {
-    const message = createBaseQueryChannelConsensusStateResponse();
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    message.clientId = object.clientId ?? "";
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryChannelConsensusStateResponseSDKType): QueryChannelConsensusStateResponse {
-    return {
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined,
-      clientId: object?.client_id,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryChannelConsensusStateResponse): QueryChannelConsensusStateResponseSDKType {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    obj.client_id = message.clientId;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryChannelConsensusStateResponseAmino): QueryChannelConsensusStateResponse {
-    return {
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined,
-      clientId: object.client_id,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryChannelConsensusStateResponse): QueryChannelConsensusStateResponseAmino {
-    const obj: any = {};
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    obj.client_id = message.clientId;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryChannelConsensusStateResponseAminoMsg): QueryChannelConsensusStateResponse {
-    return QueryChannelConsensusStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryChannelConsensusStateResponse): QueryChannelConsensusStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryChannelConsensusStateResponse",
-      value: QueryChannelConsensusStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryChannelConsensusStateResponseProtoMsg): QueryChannelConsensusStateResponse {
-    return QueryChannelConsensusStateResponse.decode(message.value);
-  },
-  toProto(message: QueryChannelConsensusStateResponse): Uint8Array {
-    return QueryChannelConsensusStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryChannelConsensusStateResponse): QueryChannelConsensusStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateResponse",
-      value: QueryChannelConsensusStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketCommitmentRequest(): QueryPacketCommitmentRequest {
-  return {
-    portId: "",
-    channelId: "",
-    sequence: BigInt(0)
-  };
-}
-export const QueryPacketCommitmentRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentRequest",
-  aminoType: "cosmos-sdk/QueryPacketCommitmentRequest",
-  encode(message: QueryPacketCommitmentRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketCommitmentRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketCommitmentRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketCommitmentRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPacketCommitmentRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketCommitmentRequest>): QueryPacketCommitmentRequest {
-    const message = createBaseQueryPacketCommitmentRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPacketCommitmentRequestSDKType): QueryPacketCommitmentRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: QueryPacketCommitmentRequest): QueryPacketCommitmentRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: QueryPacketCommitmentRequestAmino): QueryPacketCommitmentRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: QueryPacketCommitmentRequest): QueryPacketCommitmentRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketCommitmentRequestAminoMsg): QueryPacketCommitmentRequest {
-    return QueryPacketCommitmentRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketCommitmentRequest): QueryPacketCommitmentRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketCommitmentRequest",
-      value: QueryPacketCommitmentRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketCommitmentRequestProtoMsg): QueryPacketCommitmentRequest {
-    return QueryPacketCommitmentRequest.decode(message.value);
-  },
-  toProto(message: QueryPacketCommitmentRequest): Uint8Array {
-    return QueryPacketCommitmentRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketCommitmentRequest): QueryPacketCommitmentRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentRequest",
-      value: QueryPacketCommitmentRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketCommitmentResponse(): QueryPacketCommitmentResponse {
-  return {
-    commitment: new Uint8Array(),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryPacketCommitmentResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentResponse",
-  aminoType: "cosmos-sdk/QueryPacketCommitmentResponse",
-  encode(message: QueryPacketCommitmentResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.commitment.length !== 0) {
-      writer.uint32(10).bytes(message.commitment);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketCommitmentResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketCommitmentResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.commitment = reader.bytes();
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketCommitmentResponse {
-    return {
-      commitment: isSet(object.commitment) ? bytesFromBase64(object.commitment) : new Uint8Array(),
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryPacketCommitmentResponse): unknown {
-    const obj: any = {};
-    message.commitment !== undefined && (obj.commitment = base64FromBytes(message.commitment !== undefined ? message.commitment : new Uint8Array()));
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketCommitmentResponse>): QueryPacketCommitmentResponse {
-    const message = createBaseQueryPacketCommitmentResponse();
-    message.commitment = object.commitment ?? new Uint8Array();
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketCommitmentResponseSDKType): QueryPacketCommitmentResponse {
-    return {
-      commitment: object?.commitment,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryPacketCommitmentResponse): QueryPacketCommitmentResponseSDKType {
-    const obj: any = {};
-    obj.commitment = message.commitment;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketCommitmentResponseAmino): QueryPacketCommitmentResponse {
-    return {
-      commitment: object.commitment,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryPacketCommitmentResponse): QueryPacketCommitmentResponseAmino {
-    const obj: any = {};
-    obj.commitment = message.commitment;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketCommitmentResponseAminoMsg): QueryPacketCommitmentResponse {
-    return QueryPacketCommitmentResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketCommitmentResponse): QueryPacketCommitmentResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketCommitmentResponse",
-      value: QueryPacketCommitmentResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketCommitmentResponseProtoMsg): QueryPacketCommitmentResponse {
-    return QueryPacketCommitmentResponse.decode(message.value);
-  },
-  toProto(message: QueryPacketCommitmentResponse): Uint8Array {
-    return QueryPacketCommitmentResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketCommitmentResponse): QueryPacketCommitmentResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentResponse",
-      value: QueryPacketCommitmentResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketCommitmentsRequest(): QueryPacketCommitmentsRequest {
-  return {
-    portId: "",
-    channelId: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryPacketCommitmentsRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsRequest",
-  aminoType: "cosmos-sdk/QueryPacketCommitmentsRequest",
-  encode(message: QueryPacketCommitmentsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketCommitmentsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketCommitmentsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketCommitmentsRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPacketCommitmentsRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketCommitmentsRequest>): QueryPacketCommitmentsRequest {
-    const message = createBaseQueryPacketCommitmentsRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketCommitmentsRequestSDKType): QueryPacketCommitmentsRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPacketCommitmentsRequest): QueryPacketCommitmentsRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketCommitmentsRequestAmino): QueryPacketCommitmentsRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPacketCommitmentsRequest): QueryPacketCommitmentsRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketCommitmentsRequestAminoMsg): QueryPacketCommitmentsRequest {
-    return QueryPacketCommitmentsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketCommitmentsRequest): QueryPacketCommitmentsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketCommitmentsRequest",
-      value: QueryPacketCommitmentsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketCommitmentsRequestProtoMsg): QueryPacketCommitmentsRequest {
-    return QueryPacketCommitmentsRequest.decode(message.value);
-  },
-  toProto(message: QueryPacketCommitmentsRequest): Uint8Array {
-    return QueryPacketCommitmentsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketCommitmentsRequest): QueryPacketCommitmentsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsRequest",
-      value: QueryPacketCommitmentsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketCommitmentsResponse(): QueryPacketCommitmentsResponse {
-  return {
-    commitments: [],
-    pagination: PageResponse.fromPartial({}),
-    height: Height.fromPartial({})
-  };
-}
-export const QueryPacketCommitmentsResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsResponse",
-  aminoType: "cosmos-sdk/QueryPacketCommitmentsResponse",
-  encode(message: QueryPacketCommitmentsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.commitments) {
-      PacketState.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketCommitmentsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketCommitmentsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.commitments.push(PacketState.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketCommitmentsResponse {
-    return {
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryPacketCommitmentsResponse): unknown {
-    const obj: any = {};
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toJSON(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketCommitmentsResponse>): QueryPacketCommitmentsResponse {
-    const message = createBaseQueryPacketCommitmentsResponse();
-    message.commitments = object.commitments?.map(e => PacketState.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketCommitmentsResponseSDKType): QueryPacketCommitmentsResponse {
-    return {
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryPacketCommitmentsResponse): QueryPacketCommitmentsResponseSDKType {
-    const obj: any = {};
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toSDK(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketCommitmentsResponseAmino): QueryPacketCommitmentsResponse {
-    return {
-      commitments: Array.isArray(object?.commitments) ? object.commitments.map((e: any) => PacketState.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryPacketCommitmentsResponse): QueryPacketCommitmentsResponseAmino {
-    const obj: any = {};
-    if (message.commitments) {
-      obj.commitments = message.commitments.map(e => e ? PacketState.toAmino(e) : undefined);
-    } else {
-      obj.commitments = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketCommitmentsResponseAminoMsg): QueryPacketCommitmentsResponse {
-    return QueryPacketCommitmentsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketCommitmentsResponse): QueryPacketCommitmentsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketCommitmentsResponse",
-      value: QueryPacketCommitmentsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketCommitmentsResponseProtoMsg): QueryPacketCommitmentsResponse {
-    return QueryPacketCommitmentsResponse.decode(message.value);
-  },
-  toProto(message: QueryPacketCommitmentsResponse): Uint8Array {
-    return QueryPacketCommitmentsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketCommitmentsResponse): QueryPacketCommitmentsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsResponse",
-      value: QueryPacketCommitmentsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketReceiptRequest(): QueryPacketReceiptRequest {
-  return {
-    portId: "",
-    channelId: "",
-    sequence: BigInt(0)
-  };
-}
-export const QueryPacketReceiptRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptRequest",
-  aminoType: "cosmos-sdk/QueryPacketReceiptRequest",
-  encode(message: QueryPacketReceiptRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketReceiptRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketReceiptRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketReceiptRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPacketReceiptRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketReceiptRequest>): QueryPacketReceiptRequest {
-    const message = createBaseQueryPacketReceiptRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPacketReceiptRequestSDKType): QueryPacketReceiptRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: QueryPacketReceiptRequest): QueryPacketReceiptRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: QueryPacketReceiptRequestAmino): QueryPacketReceiptRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: QueryPacketReceiptRequest): QueryPacketReceiptRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketReceiptRequestAminoMsg): QueryPacketReceiptRequest {
-    return QueryPacketReceiptRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketReceiptRequest): QueryPacketReceiptRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketReceiptRequest",
-      value: QueryPacketReceiptRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketReceiptRequestProtoMsg): QueryPacketReceiptRequest {
-    return QueryPacketReceiptRequest.decode(message.value);
-  },
-  toProto(message: QueryPacketReceiptRequest): Uint8Array {
-    return QueryPacketReceiptRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketReceiptRequest): QueryPacketReceiptRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptRequest",
-      value: QueryPacketReceiptRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketReceiptResponse(): QueryPacketReceiptResponse {
-  return {
-    received: false,
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryPacketReceiptResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptResponse",
-  aminoType: "cosmos-sdk/QueryPacketReceiptResponse",
-  encode(message: QueryPacketReceiptResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.received === true) {
-      writer.uint32(16).bool(message.received);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(26).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketReceiptResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketReceiptResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.received = reader.bool();
-          break;
-        case 3:
-          message.proof = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketReceiptResponse {
-    return {
-      received: isSet(object.received) ? Boolean(object.received) : false,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryPacketReceiptResponse): unknown {
-    const obj: any = {};
-    message.received !== undefined && (obj.received = message.received);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketReceiptResponse>): QueryPacketReceiptResponse {
-    const message = createBaseQueryPacketReceiptResponse();
-    message.received = object.received ?? false;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketReceiptResponseSDKType): QueryPacketReceiptResponse {
-    return {
-      received: object?.received,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryPacketReceiptResponse): QueryPacketReceiptResponseSDKType {
-    const obj: any = {};
-    obj.received = message.received;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketReceiptResponseAmino): QueryPacketReceiptResponse {
-    return {
-      received: object.received,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryPacketReceiptResponse): QueryPacketReceiptResponseAmino {
-    const obj: any = {};
-    obj.received = message.received;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketReceiptResponseAminoMsg): QueryPacketReceiptResponse {
-    return QueryPacketReceiptResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketReceiptResponse): QueryPacketReceiptResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketReceiptResponse",
-      value: QueryPacketReceiptResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketReceiptResponseProtoMsg): QueryPacketReceiptResponse {
-    return QueryPacketReceiptResponse.decode(message.value);
-  },
-  toProto(message: QueryPacketReceiptResponse): Uint8Array {
-    return QueryPacketReceiptResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketReceiptResponse): QueryPacketReceiptResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptResponse",
-      value: QueryPacketReceiptResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketAcknowledgementRequest(): QueryPacketAcknowledgementRequest {
-  return {
-    portId: "",
-    channelId: "",
-    sequence: BigInt(0)
-  };
-}
-export const QueryPacketAcknowledgementRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementRequest",
-  aminoType: "cosmos-sdk/QueryPacketAcknowledgementRequest",
-  encode(message: QueryPacketAcknowledgementRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.sequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketAcknowledgementRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketAcknowledgementRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.sequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketAcknowledgementRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPacketAcknowledgementRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketAcknowledgementRequest>): QueryPacketAcknowledgementRequest {
-    const message = createBaseQueryPacketAcknowledgementRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPacketAcknowledgementRequestSDKType): QueryPacketAcknowledgementRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      sequence: object?.sequence
-    };
-  },
-  toSDK(message: QueryPacketAcknowledgementRequest): QueryPacketAcknowledgementRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence;
-    return obj;
-  },
-  fromAmino(object: QueryPacketAcknowledgementRequestAmino): QueryPacketAcknowledgementRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      sequence: BigInt(object.sequence)
-    };
-  },
-  toAmino(message: QueryPacketAcknowledgementRequest): QueryPacketAcknowledgementRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketAcknowledgementRequestAminoMsg): QueryPacketAcknowledgementRequest {
-    return QueryPacketAcknowledgementRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketAcknowledgementRequest): QueryPacketAcknowledgementRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketAcknowledgementRequest",
-      value: QueryPacketAcknowledgementRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketAcknowledgementRequestProtoMsg): QueryPacketAcknowledgementRequest {
-    return QueryPacketAcknowledgementRequest.decode(message.value);
-  },
-  toProto(message: QueryPacketAcknowledgementRequest): Uint8Array {
-    return QueryPacketAcknowledgementRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketAcknowledgementRequest): QueryPacketAcknowledgementRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementRequest",
-      value: QueryPacketAcknowledgementRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketAcknowledgementResponse(): QueryPacketAcknowledgementResponse {
-  return {
-    acknowledgement: new Uint8Array(),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryPacketAcknowledgementResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementResponse",
-  aminoType: "cosmos-sdk/QueryPacketAcknowledgementResponse",
-  encode(message: QueryPacketAcknowledgementResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.acknowledgement.length !== 0) {
-      writer.uint32(10).bytes(message.acknowledgement);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketAcknowledgementResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketAcknowledgementResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.acknowledgement = reader.bytes();
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketAcknowledgementResponse {
-    return {
-      acknowledgement: isSet(object.acknowledgement) ? bytesFromBase64(object.acknowledgement) : new Uint8Array(),
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryPacketAcknowledgementResponse): unknown {
-    const obj: any = {};
-    message.acknowledgement !== undefined && (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketAcknowledgementResponse>): QueryPacketAcknowledgementResponse {
-    const message = createBaseQueryPacketAcknowledgementResponse();
-    message.acknowledgement = object.acknowledgement ?? new Uint8Array();
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketAcknowledgementResponseSDKType): QueryPacketAcknowledgementResponse {
-    return {
-      acknowledgement: object?.acknowledgement,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryPacketAcknowledgementResponse): QueryPacketAcknowledgementResponseSDKType {
-    const obj: any = {};
-    obj.acknowledgement = message.acknowledgement;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketAcknowledgementResponseAmino): QueryPacketAcknowledgementResponse {
-    return {
-      acknowledgement: object.acknowledgement,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryPacketAcknowledgementResponse): QueryPacketAcknowledgementResponseAmino {
-    const obj: any = {};
-    obj.acknowledgement = message.acknowledgement;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketAcknowledgementResponseAminoMsg): QueryPacketAcknowledgementResponse {
-    return QueryPacketAcknowledgementResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketAcknowledgementResponse): QueryPacketAcknowledgementResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketAcknowledgementResponse",
-      value: QueryPacketAcknowledgementResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketAcknowledgementResponseProtoMsg): QueryPacketAcknowledgementResponse {
-    return QueryPacketAcknowledgementResponse.decode(message.value);
-  },
-  toProto(message: QueryPacketAcknowledgementResponse): Uint8Array {
-    return QueryPacketAcknowledgementResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketAcknowledgementResponse): QueryPacketAcknowledgementResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementResponse",
-      value: QueryPacketAcknowledgementResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketAcknowledgementsRequest(): QueryPacketAcknowledgementsRequest {
-  return {
-    portId: "",
-    channelId: "",
-    pagination: PageRequest.fromPartial({}),
-    packetCommitmentSequences: []
-  };
-}
-export const QueryPacketAcknowledgementsRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest",
-  aminoType: "cosmos-sdk/QueryPacketAcknowledgementsRequest",
-  encode(message: QueryPacketAcknowledgementsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    writer.uint32(34).fork();
-    for (const v of message.packetCommitmentSequences) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketAcknowledgementsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketAcknowledgementsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        case 4:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.packetCommitmentSequences.push(reader.uint64());
-            }
-          } else {
-            message.packetCommitmentSequences.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketAcknowledgementsRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,
-      packetCommitmentSequences: Array.isArray(object?.packetCommitmentSequences) ? object.packetCommitmentSequences.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: QueryPacketAcknowledgementsRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    if (message.packetCommitmentSequences) {
-      obj.packetCommitmentSequences = message.packetCommitmentSequences.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.packetCommitmentSequences = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketAcknowledgementsRequest>): QueryPacketAcknowledgementsRequest {
-    const message = createBaseQueryPacketAcknowledgementsRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    message.packetCommitmentSequences = object.packetCommitmentSequences?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: QueryPacketAcknowledgementsRequestSDKType): QueryPacketAcknowledgementsRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined,
-      packetCommitmentSequences: Array.isArray(object?.packet_commitment_sequences) ? object.packet_commitment_sequences.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryPacketAcknowledgementsRequest): QueryPacketAcknowledgementsRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    if (message.packetCommitmentSequences) {
-      obj.packet_commitment_sequences = message.packetCommitmentSequences.map(e => e);
-    } else {
-      obj.packet_commitment_sequences = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryPacketAcknowledgementsRequestAmino): QueryPacketAcknowledgementsRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined,
-      packetCommitmentSequences: Array.isArray(object?.packet_commitment_sequences) ? object.packet_commitment_sequences.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: QueryPacketAcknowledgementsRequest): QueryPacketAcknowledgementsRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    if (message.packetCommitmentSequences) {
-      obj.packet_commitment_sequences = message.packetCommitmentSequences.map(e => e.toString());
-    } else {
-      obj.packet_commitment_sequences = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketAcknowledgementsRequestAminoMsg): QueryPacketAcknowledgementsRequest {
-    return QueryPacketAcknowledgementsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketAcknowledgementsRequest): QueryPacketAcknowledgementsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketAcknowledgementsRequest",
-      value: QueryPacketAcknowledgementsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketAcknowledgementsRequestProtoMsg): QueryPacketAcknowledgementsRequest {
-    return QueryPacketAcknowledgementsRequest.decode(message.value);
-  },
-  toProto(message: QueryPacketAcknowledgementsRequest): Uint8Array {
-    return QueryPacketAcknowledgementsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketAcknowledgementsRequest): QueryPacketAcknowledgementsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest",
-      value: QueryPacketAcknowledgementsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPacketAcknowledgementsResponse(): QueryPacketAcknowledgementsResponse {
-  return {
-    acknowledgements: [],
-    pagination: PageResponse.fromPartial({}),
-    height: Height.fromPartial({})
-  };
-}
-export const QueryPacketAcknowledgementsResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse",
-  aminoType: "cosmos-sdk/QueryPacketAcknowledgementsResponse",
-  encode(message: QueryPacketAcknowledgementsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.acknowledgements) {
-      PacketState.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPacketAcknowledgementsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPacketAcknowledgementsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.acknowledgements.push(PacketState.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPacketAcknowledgementsResponse {
-    return {
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryPacketAcknowledgementsResponse): unknown {
-    const obj: any = {};
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toJSON(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPacketAcknowledgementsResponse>): QueryPacketAcknowledgementsResponse {
-    const message = createBaseQueryPacketAcknowledgementsResponse();
-    message.acknowledgements = object.acknowledgements?.map(e => PacketState.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPacketAcknowledgementsResponseSDKType): QueryPacketAcknowledgementsResponse {
-    return {
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryPacketAcknowledgementsResponse): QueryPacketAcknowledgementsResponseSDKType {
-    const obj: any = {};
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toSDK(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPacketAcknowledgementsResponseAmino): QueryPacketAcknowledgementsResponse {
-    return {
-      acknowledgements: Array.isArray(object?.acknowledgements) ? object.acknowledgements.map((e: any) => PacketState.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryPacketAcknowledgementsResponse): QueryPacketAcknowledgementsResponseAmino {
-    const obj: any = {};
-    if (message.acknowledgements) {
-      obj.acknowledgements = message.acknowledgements.map(e => e ? PacketState.toAmino(e) : undefined);
-    } else {
-      obj.acknowledgements = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryPacketAcknowledgementsResponseAminoMsg): QueryPacketAcknowledgementsResponse {
-    return QueryPacketAcknowledgementsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPacketAcknowledgementsResponse): QueryPacketAcknowledgementsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryPacketAcknowledgementsResponse",
-      value: QueryPacketAcknowledgementsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPacketAcknowledgementsResponseProtoMsg): QueryPacketAcknowledgementsResponse {
-    return QueryPacketAcknowledgementsResponse.decode(message.value);
-  },
-  toProto(message: QueryPacketAcknowledgementsResponse): Uint8Array {
-    return QueryPacketAcknowledgementsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPacketAcknowledgementsResponse): QueryPacketAcknowledgementsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse",
-      value: QueryPacketAcknowledgementsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnreceivedPacketsRequest(): QueryUnreceivedPacketsRequest {
-  return {
-    portId: "",
-    channelId: "",
-    packetCommitmentSequences: []
-  };
-}
-export const QueryUnreceivedPacketsRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsRequest",
-  aminoType: "cosmos-sdk/QueryUnreceivedPacketsRequest",
-  encode(message: QueryUnreceivedPacketsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.packetCommitmentSequences) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnreceivedPacketsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnreceivedPacketsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.packetCommitmentSequences.push(reader.uint64());
-            }
-          } else {
-            message.packetCommitmentSequences.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnreceivedPacketsRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      packetCommitmentSequences: Array.isArray(object?.packetCommitmentSequences) ? object.packetCommitmentSequences.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: QueryUnreceivedPacketsRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    if (message.packetCommitmentSequences) {
-      obj.packetCommitmentSequences = message.packetCommitmentSequences.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.packetCommitmentSequences = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnreceivedPacketsRequest>): QueryUnreceivedPacketsRequest {
-    const message = createBaseQueryUnreceivedPacketsRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.packetCommitmentSequences = object.packetCommitmentSequences?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: QueryUnreceivedPacketsRequestSDKType): QueryUnreceivedPacketsRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      packetCommitmentSequences: Array.isArray(object?.packet_commitment_sequences) ? object.packet_commitment_sequences.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryUnreceivedPacketsRequest): QueryUnreceivedPacketsRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    if (message.packetCommitmentSequences) {
-      obj.packet_commitment_sequences = message.packetCommitmentSequences.map(e => e);
-    } else {
-      obj.packet_commitment_sequences = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryUnreceivedPacketsRequestAmino): QueryUnreceivedPacketsRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      packetCommitmentSequences: Array.isArray(object?.packet_commitment_sequences) ? object.packet_commitment_sequences.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: QueryUnreceivedPacketsRequest): QueryUnreceivedPacketsRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    if (message.packetCommitmentSequences) {
-      obj.packet_commitment_sequences = message.packetCommitmentSequences.map(e => e.toString());
-    } else {
-      obj.packet_commitment_sequences = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnreceivedPacketsRequestAminoMsg): QueryUnreceivedPacketsRequest {
-    return QueryUnreceivedPacketsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnreceivedPacketsRequest): QueryUnreceivedPacketsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnreceivedPacketsRequest",
-      value: QueryUnreceivedPacketsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnreceivedPacketsRequestProtoMsg): QueryUnreceivedPacketsRequest {
-    return QueryUnreceivedPacketsRequest.decode(message.value);
-  },
-  toProto(message: QueryUnreceivedPacketsRequest): Uint8Array {
-    return QueryUnreceivedPacketsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnreceivedPacketsRequest): QueryUnreceivedPacketsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsRequest",
-      value: QueryUnreceivedPacketsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnreceivedPacketsResponse(): QueryUnreceivedPacketsResponse {
-  return {
-    sequences: [],
-    height: Height.fromPartial({})
-  };
-}
-export const QueryUnreceivedPacketsResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsResponse",
-  aminoType: "cosmos-sdk/QueryUnreceivedPacketsResponse",
-  encode(message: QueryUnreceivedPacketsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.sequences) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnreceivedPacketsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnreceivedPacketsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.sequences.push(reader.uint64());
-            }
-          } else {
-            message.sequences.push(reader.uint64());
-          }
-          break;
-        case 2:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnreceivedPacketsResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => BigInt(e.toString())) : [],
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryUnreceivedPacketsResponse): unknown {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.sequences = [];
-    }
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnreceivedPacketsResponse>): QueryUnreceivedPacketsResponse {
-    const message = createBaseQueryUnreceivedPacketsResponse();
-    message.sequences = object.sequences?.map(e => BigInt(e.toString())) || [];
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryUnreceivedPacketsResponseSDKType): QueryUnreceivedPacketsResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => e) : [],
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryUnreceivedPacketsResponse): QueryUnreceivedPacketsResponseSDKType {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e);
-    } else {
-      obj.sequences = [];
-    }
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryUnreceivedPacketsResponseAmino): QueryUnreceivedPacketsResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => BigInt(e)) : [],
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryUnreceivedPacketsResponse): QueryUnreceivedPacketsResponseAmino {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e.toString());
-    } else {
-      obj.sequences = [];
-    }
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnreceivedPacketsResponseAminoMsg): QueryUnreceivedPacketsResponse {
-    return QueryUnreceivedPacketsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnreceivedPacketsResponse): QueryUnreceivedPacketsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnreceivedPacketsResponse",
-      value: QueryUnreceivedPacketsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnreceivedPacketsResponseProtoMsg): QueryUnreceivedPacketsResponse {
-    return QueryUnreceivedPacketsResponse.decode(message.value);
-  },
-  toProto(message: QueryUnreceivedPacketsResponse): Uint8Array {
-    return QueryUnreceivedPacketsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnreceivedPacketsResponse): QueryUnreceivedPacketsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsResponse",
-      value: QueryUnreceivedPacketsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnreceivedAcksRequest(): QueryUnreceivedAcksRequest {
-  return {
-    portId: "",
-    channelId: "",
-    packetAckSequences: []
-  };
-}
-export const QueryUnreceivedAcksRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksRequest",
-  aminoType: "cosmos-sdk/QueryUnreceivedAcksRequest",
-  encode(message: QueryUnreceivedAcksRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.packetAckSequences) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnreceivedAcksRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnreceivedAcksRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.packetAckSequences.push(reader.uint64());
-            }
-          } else {
-            message.packetAckSequences.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnreceivedAcksRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      packetAckSequences: Array.isArray(object?.packetAckSequences) ? object.packetAckSequences.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: QueryUnreceivedAcksRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    if (message.packetAckSequences) {
-      obj.packetAckSequences = message.packetAckSequences.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.packetAckSequences = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnreceivedAcksRequest>): QueryUnreceivedAcksRequest {
-    const message = createBaseQueryUnreceivedAcksRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.packetAckSequences = object.packetAckSequences?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: QueryUnreceivedAcksRequestSDKType): QueryUnreceivedAcksRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      packetAckSequences: Array.isArray(object?.packet_ack_sequences) ? object.packet_ack_sequences.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryUnreceivedAcksRequest): QueryUnreceivedAcksRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    if (message.packetAckSequences) {
-      obj.packet_ack_sequences = message.packetAckSequences.map(e => e);
-    } else {
-      obj.packet_ack_sequences = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryUnreceivedAcksRequestAmino): QueryUnreceivedAcksRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      packetAckSequences: Array.isArray(object?.packet_ack_sequences) ? object.packet_ack_sequences.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: QueryUnreceivedAcksRequest): QueryUnreceivedAcksRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    if (message.packetAckSequences) {
-      obj.packet_ack_sequences = message.packetAckSequences.map(e => e.toString());
-    } else {
-      obj.packet_ack_sequences = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnreceivedAcksRequestAminoMsg): QueryUnreceivedAcksRequest {
-    return QueryUnreceivedAcksRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnreceivedAcksRequest): QueryUnreceivedAcksRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnreceivedAcksRequest",
-      value: QueryUnreceivedAcksRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnreceivedAcksRequestProtoMsg): QueryUnreceivedAcksRequest {
-    return QueryUnreceivedAcksRequest.decode(message.value);
-  },
-  toProto(message: QueryUnreceivedAcksRequest): Uint8Array {
-    return QueryUnreceivedAcksRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnreceivedAcksRequest): QueryUnreceivedAcksRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksRequest",
-      value: QueryUnreceivedAcksRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnreceivedAcksResponse(): QueryUnreceivedAcksResponse {
-  return {
-    sequences: [],
-    height: Height.fromPartial({})
-  };
-}
-export const QueryUnreceivedAcksResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksResponse",
-  aminoType: "cosmos-sdk/QueryUnreceivedAcksResponse",
-  encode(message: QueryUnreceivedAcksResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.sequences) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnreceivedAcksResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnreceivedAcksResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.sequences.push(reader.uint64());
-            }
-          } else {
-            message.sequences.push(reader.uint64());
-          }
-          break;
-        case 2:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnreceivedAcksResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => BigInt(e.toString())) : [],
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryUnreceivedAcksResponse): unknown {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.sequences = [];
-    }
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnreceivedAcksResponse>): QueryUnreceivedAcksResponse {
-    const message = createBaseQueryUnreceivedAcksResponse();
-    message.sequences = object.sequences?.map(e => BigInt(e.toString())) || [];
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryUnreceivedAcksResponseSDKType): QueryUnreceivedAcksResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => e) : [],
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryUnreceivedAcksResponse): QueryUnreceivedAcksResponseSDKType {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e);
-    } else {
-      obj.sequences = [];
-    }
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryUnreceivedAcksResponseAmino): QueryUnreceivedAcksResponse {
-    return {
-      sequences: Array.isArray(object?.sequences) ? object.sequences.map((e: any) => BigInt(e)) : [],
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryUnreceivedAcksResponse): QueryUnreceivedAcksResponseAmino {
-    const obj: any = {};
-    if (message.sequences) {
-      obj.sequences = message.sequences.map(e => e.toString());
-    } else {
-      obj.sequences = [];
-    }
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnreceivedAcksResponseAminoMsg): QueryUnreceivedAcksResponse {
-    return QueryUnreceivedAcksResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnreceivedAcksResponse): QueryUnreceivedAcksResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUnreceivedAcksResponse",
-      value: QueryUnreceivedAcksResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnreceivedAcksResponseProtoMsg): QueryUnreceivedAcksResponse {
-    return QueryUnreceivedAcksResponse.decode(message.value);
-  },
-  toProto(message: QueryUnreceivedAcksResponse): Uint8Array {
-    return QueryUnreceivedAcksResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnreceivedAcksResponse): QueryUnreceivedAcksResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksResponse",
-      value: QueryUnreceivedAcksResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNextSequenceReceiveRequest(): QueryNextSequenceReceiveRequest {
-  return {
-    portId: "",
-    channelId: ""
-  };
-}
-export const QueryNextSequenceReceiveRequest = {
-  typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveRequest",
-  aminoType: "cosmos-sdk/QueryNextSequenceReceiveRequest",
-  encode(message: QueryNextSequenceReceiveRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNextSequenceReceiveRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNextSequenceReceiveRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNextSequenceReceiveRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : ""
-    };
-  },
-  toJSON(message: QueryNextSequenceReceiveRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNextSequenceReceiveRequest>): QueryNextSequenceReceiveRequest {
-    const message = createBaseQueryNextSequenceReceiveRequest();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryNextSequenceReceiveRequestSDKType): QueryNextSequenceReceiveRequest {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id
-    };
-  },
-  toSDK(message: QueryNextSequenceReceiveRequest): QueryNextSequenceReceiveRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAmino(object: QueryNextSequenceReceiveRequestAmino): QueryNextSequenceReceiveRequest {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id
-    };
-  },
-  toAmino(message: QueryNextSequenceReceiveRequest): QueryNextSequenceReceiveRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNextSequenceReceiveRequestAminoMsg): QueryNextSequenceReceiveRequest {
-    return QueryNextSequenceReceiveRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNextSequenceReceiveRequest): QueryNextSequenceReceiveRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNextSequenceReceiveRequest",
-      value: QueryNextSequenceReceiveRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNextSequenceReceiveRequestProtoMsg): QueryNextSequenceReceiveRequest {
-    return QueryNextSequenceReceiveRequest.decode(message.value);
-  },
-  toProto(message: QueryNextSequenceReceiveRequest): Uint8Array {
-    return QueryNextSequenceReceiveRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNextSequenceReceiveRequest): QueryNextSequenceReceiveRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveRequest",
-      value: QueryNextSequenceReceiveRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNextSequenceReceiveResponse(): QueryNextSequenceReceiveResponse {
-  return {
-    nextSequenceReceive: BigInt(0),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryNextSequenceReceiveResponse = {
-  typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveResponse",
-  aminoType: "cosmos-sdk/QueryNextSequenceReceiveResponse",
-  encode(message: QueryNextSequenceReceiveResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.nextSequenceReceive !== BigInt(0)) {
-      writer.uint32(8).uint64(message.nextSequenceReceive);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNextSequenceReceiveResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNextSequenceReceiveResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.nextSequenceReceive = reader.uint64();
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNextSequenceReceiveResponse {
-    return {
-      nextSequenceReceive: isSet(object.nextSequenceReceive) ? BigInt(object.nextSequenceReceive.toString()) : BigInt(0),
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryNextSequenceReceiveResponse): unknown {
-    const obj: any = {};
-    message.nextSequenceReceive !== undefined && (obj.nextSequenceReceive = (message.nextSequenceReceive || BigInt(0)).toString());
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNextSequenceReceiveResponse>): QueryNextSequenceReceiveResponse {
-    const message = createBaseQueryNextSequenceReceiveResponse();
-    message.nextSequenceReceive = object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null ? BigInt(object.nextSequenceReceive.toString()) : BigInt(0);
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryNextSequenceReceiveResponseSDKType): QueryNextSequenceReceiveResponse {
-    return {
-      nextSequenceReceive: object?.next_sequence_receive,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryNextSequenceReceiveResponse): QueryNextSequenceReceiveResponseSDKType {
-    const obj: any = {};
-    obj.next_sequence_receive = message.nextSequenceReceive;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryNextSequenceReceiveResponseAmino): QueryNextSequenceReceiveResponse {
-    return {
-      nextSequenceReceive: BigInt(object.next_sequence_receive),
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryNextSequenceReceiveResponse): QueryNextSequenceReceiveResponseAmino {
-    const obj: any = {};
-    obj.next_sequence_receive = message.nextSequenceReceive ? message.nextSequenceReceive.toString() : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryNextSequenceReceiveResponseAminoMsg): QueryNextSequenceReceiveResponse {
-    return QueryNextSequenceReceiveResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNextSequenceReceiveResponse): QueryNextSequenceReceiveResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryNextSequenceReceiveResponse",
-      value: QueryNextSequenceReceiveResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNextSequenceReceiveResponseProtoMsg): QueryNextSequenceReceiveResponse {
-    return QueryNextSequenceReceiveResponse.decode(message.value);
-  },
-  toProto(message: QueryNextSequenceReceiveResponse): Uint8Array {
-    return QueryNextSequenceReceiveResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNextSequenceReceiveResponse): QueryNextSequenceReceiveResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveResponse",
-      value: QueryNextSequenceReceiveResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/tx.amino.ts b/examples/injective/src/codegen/ibc/core/channel/v1/tx.amino.ts
deleted file mode 100644
index 0884ce7d..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/tx.amino.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { MsgChannelOpenInit, MsgChannelOpenTry, MsgChannelOpenAck, MsgChannelOpenConfirm, MsgChannelCloseInit, MsgChannelCloseConfirm, MsgRecvPacket, MsgTimeout, MsgTimeoutOnClose, MsgAcknowledgement } from "./tx";
-export const AminoConverter = {
-  "/ibc.core.channel.v1.MsgChannelOpenInit": {
-    aminoType: "cosmos-sdk/MsgChannelOpenInit",
-    toAmino: MsgChannelOpenInit.toAmino,
-    fromAmino: MsgChannelOpenInit.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgChannelOpenTry": {
-    aminoType: "cosmos-sdk/MsgChannelOpenTry",
-    toAmino: MsgChannelOpenTry.toAmino,
-    fromAmino: MsgChannelOpenTry.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgChannelOpenAck": {
-    aminoType: "cosmos-sdk/MsgChannelOpenAck",
-    toAmino: MsgChannelOpenAck.toAmino,
-    fromAmino: MsgChannelOpenAck.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgChannelOpenConfirm": {
-    aminoType: "cosmos-sdk/MsgChannelOpenConfirm",
-    toAmino: MsgChannelOpenConfirm.toAmino,
-    fromAmino: MsgChannelOpenConfirm.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgChannelCloseInit": {
-    aminoType: "cosmos-sdk/MsgChannelCloseInit",
-    toAmino: MsgChannelCloseInit.toAmino,
-    fromAmino: MsgChannelCloseInit.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgChannelCloseConfirm": {
-    aminoType: "cosmos-sdk/MsgChannelCloseConfirm",
-    toAmino: MsgChannelCloseConfirm.toAmino,
-    fromAmino: MsgChannelCloseConfirm.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgRecvPacket": {
-    aminoType: "cosmos-sdk/MsgRecvPacket",
-    toAmino: MsgRecvPacket.toAmino,
-    fromAmino: MsgRecvPacket.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgTimeout": {
-    aminoType: "cosmos-sdk/MsgTimeout",
-    toAmino: MsgTimeout.toAmino,
-    fromAmino: MsgTimeout.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgTimeoutOnClose": {
-    aminoType: "cosmos-sdk/MsgTimeoutOnClose",
-    toAmino: MsgTimeoutOnClose.toAmino,
-    fromAmino: MsgTimeoutOnClose.fromAmino
-  },
-  "/ibc.core.channel.v1.MsgAcknowledgement": {
-    aminoType: "cosmos-sdk/MsgAcknowledgement",
-    toAmino: MsgAcknowledgement.toAmino,
-    fromAmino: MsgAcknowledgement.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/tx.registry.ts b/examples/injective/src/codegen/ibc/core/channel/v1/tx.registry.ts
deleted file mode 100644
index 57b3d28a..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/tx.registry.ts
+++ /dev/null
@@ -1,321 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgChannelOpenInit, MsgChannelOpenTry, MsgChannelOpenAck, MsgChannelOpenConfirm, MsgChannelCloseInit, MsgChannelCloseConfirm, MsgRecvPacket, MsgTimeout, MsgTimeoutOnClose, MsgAcknowledgement } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/ibc.core.channel.v1.MsgChannelOpenInit", MsgChannelOpenInit], ["/ibc.core.channel.v1.MsgChannelOpenTry", MsgChannelOpenTry], ["/ibc.core.channel.v1.MsgChannelOpenAck", MsgChannelOpenAck], ["/ibc.core.channel.v1.MsgChannelOpenConfirm", MsgChannelOpenConfirm], ["/ibc.core.channel.v1.MsgChannelCloseInit", MsgChannelCloseInit], ["/ibc.core.channel.v1.MsgChannelCloseConfirm", MsgChannelCloseConfirm], ["/ibc.core.channel.v1.MsgRecvPacket", MsgRecvPacket], ["/ibc.core.channel.v1.MsgTimeout", MsgTimeout], ["/ibc.core.channel.v1.MsgTimeoutOnClose", MsgTimeoutOnClose], ["/ibc.core.channel.v1.MsgAcknowledgement", MsgAcknowledgement]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    channelOpenInit(value: MsgChannelOpenInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-        value: MsgChannelOpenInit.encode(value).finish()
-      };
-    },
-    channelOpenTry(value: MsgChannelOpenTry) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-        value: MsgChannelOpenTry.encode(value).finish()
-      };
-    },
-    channelOpenAck(value: MsgChannelOpenAck) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-        value: MsgChannelOpenAck.encode(value).finish()
-      };
-    },
-    channelOpenConfirm(value: MsgChannelOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-        value: MsgChannelOpenConfirm.encode(value).finish()
-      };
-    },
-    channelCloseInit(value: MsgChannelCloseInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-        value: MsgChannelCloseInit.encode(value).finish()
-      };
-    },
-    channelCloseConfirm(value: MsgChannelCloseConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-        value: MsgChannelCloseConfirm.encode(value).finish()
-      };
-    },
-    recvPacket(value: MsgRecvPacket) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-        value: MsgRecvPacket.encode(value).finish()
-      };
-    },
-    timeout(value: MsgTimeout) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-        value: MsgTimeout.encode(value).finish()
-      };
-    },
-    timeoutOnClose(value: MsgTimeoutOnClose) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-        value: MsgTimeoutOnClose.encode(value).finish()
-      };
-    },
-    acknowledgement(value: MsgAcknowledgement) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-        value: MsgAcknowledgement.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    channelOpenInit(value: MsgChannelOpenInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-        value
-      };
-    },
-    channelOpenTry(value: MsgChannelOpenTry) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-        value
-      };
-    },
-    channelOpenAck(value: MsgChannelOpenAck) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-        value
-      };
-    },
-    channelOpenConfirm(value: MsgChannelOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-        value
-      };
-    },
-    channelCloseInit(value: MsgChannelCloseInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-        value
-      };
-    },
-    channelCloseConfirm(value: MsgChannelCloseConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-        value
-      };
-    },
-    recvPacket(value: MsgRecvPacket) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-        value
-      };
-    },
-    timeout(value: MsgTimeout) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-        value
-      };
-    },
-    timeoutOnClose(value: MsgTimeoutOnClose) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-        value
-      };
-    },
-    acknowledgement(value: MsgAcknowledgement) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-        value
-      };
-    }
-  },
-  toJSON: {
-    channelOpenInit(value: MsgChannelOpenInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-        value: MsgChannelOpenInit.toJSON(value)
-      };
-    },
-    channelOpenTry(value: MsgChannelOpenTry) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-        value: MsgChannelOpenTry.toJSON(value)
-      };
-    },
-    channelOpenAck(value: MsgChannelOpenAck) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-        value: MsgChannelOpenAck.toJSON(value)
-      };
-    },
-    channelOpenConfirm(value: MsgChannelOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-        value: MsgChannelOpenConfirm.toJSON(value)
-      };
-    },
-    channelCloseInit(value: MsgChannelCloseInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-        value: MsgChannelCloseInit.toJSON(value)
-      };
-    },
-    channelCloseConfirm(value: MsgChannelCloseConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-        value: MsgChannelCloseConfirm.toJSON(value)
-      };
-    },
-    recvPacket(value: MsgRecvPacket) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-        value: MsgRecvPacket.toJSON(value)
-      };
-    },
-    timeout(value: MsgTimeout) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-        value: MsgTimeout.toJSON(value)
-      };
-    },
-    timeoutOnClose(value: MsgTimeoutOnClose) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-        value: MsgTimeoutOnClose.toJSON(value)
-      };
-    },
-    acknowledgement(value: MsgAcknowledgement) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-        value: MsgAcknowledgement.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    channelOpenInit(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-        value: MsgChannelOpenInit.fromJSON(value)
-      };
-    },
-    channelOpenTry(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-        value: MsgChannelOpenTry.fromJSON(value)
-      };
-    },
-    channelOpenAck(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-        value: MsgChannelOpenAck.fromJSON(value)
-      };
-    },
-    channelOpenConfirm(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-        value: MsgChannelOpenConfirm.fromJSON(value)
-      };
-    },
-    channelCloseInit(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-        value: MsgChannelCloseInit.fromJSON(value)
-      };
-    },
-    channelCloseConfirm(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-        value: MsgChannelCloseConfirm.fromJSON(value)
-      };
-    },
-    recvPacket(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-        value: MsgRecvPacket.fromJSON(value)
-      };
-    },
-    timeout(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-        value: MsgTimeout.fromJSON(value)
-      };
-    },
-    timeoutOnClose(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-        value: MsgTimeoutOnClose.fromJSON(value)
-      };
-    },
-    acknowledgement(value: any) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-        value: MsgAcknowledgement.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    channelOpenInit(value: MsgChannelOpenInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-        value: MsgChannelOpenInit.fromPartial(value)
-      };
-    },
-    channelOpenTry(value: MsgChannelOpenTry) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-        value: MsgChannelOpenTry.fromPartial(value)
-      };
-    },
-    channelOpenAck(value: MsgChannelOpenAck) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-        value: MsgChannelOpenAck.fromPartial(value)
-      };
-    },
-    channelOpenConfirm(value: MsgChannelOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-        value: MsgChannelOpenConfirm.fromPartial(value)
-      };
-    },
-    channelCloseInit(value: MsgChannelCloseInit) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-        value: MsgChannelCloseInit.fromPartial(value)
-      };
-    },
-    channelCloseConfirm(value: MsgChannelCloseConfirm) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-        value: MsgChannelCloseConfirm.fromPartial(value)
-      };
-    },
-    recvPacket(value: MsgRecvPacket) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-        value: MsgRecvPacket.fromPartial(value)
-      };
-    },
-    timeout(value: MsgTimeout) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-        value: MsgTimeout.fromPartial(value)
-      };
-    },
-    timeoutOnClose(value: MsgTimeoutOnClose) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-        value: MsgTimeoutOnClose.fromPartial(value)
-      };
-    },
-    acknowledgement(value: MsgAcknowledgement) {
-      return {
-        typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-        value: MsgAcknowledgement.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/ibc/core/channel/v1/tx.rpc.msg.ts
deleted file mode 100644
index 1429bd67..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { MsgChannelOpenInit, MsgChannelOpenInitResponse, MsgChannelOpenTry, MsgChannelOpenTryResponse, MsgChannelOpenAck, MsgChannelOpenAckResponse, MsgChannelOpenConfirm, MsgChannelOpenConfirmResponse, MsgChannelCloseInit, MsgChannelCloseInitResponse, MsgChannelCloseConfirm, MsgChannelCloseConfirmResponse, MsgRecvPacket, MsgRecvPacketResponse, MsgTimeout, MsgTimeoutResponse, MsgTimeoutOnClose, MsgTimeoutOnCloseResponse, MsgAcknowledgement, MsgAcknowledgementResponse } from "./tx";
-/** Msg defines the ibc/channel Msg service. */
-export interface Msg {
-  /** ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. */
-  channelOpenInit(request: MsgChannelOpenInit): Promise<MsgChannelOpenInitResponse>;
-  /** ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. */
-  channelOpenTry(request: MsgChannelOpenTry): Promise<MsgChannelOpenTryResponse>;
-  /** ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. */
-  channelOpenAck(request: MsgChannelOpenAck): Promise<MsgChannelOpenAckResponse>;
-  /** ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. */
-  channelOpenConfirm(request: MsgChannelOpenConfirm): Promise<MsgChannelOpenConfirmResponse>;
-  /** ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. */
-  channelCloseInit(request: MsgChannelCloseInit): Promise<MsgChannelCloseInitResponse>;
-  /**
-   * ChannelCloseConfirm defines a rpc handler method for
-   * MsgChannelCloseConfirm.
-   */
-  channelCloseConfirm(request: MsgChannelCloseConfirm): Promise<MsgChannelCloseConfirmResponse>;
-  /** RecvPacket defines a rpc handler method for MsgRecvPacket. */
-  recvPacket(request: MsgRecvPacket): Promise<MsgRecvPacketResponse>;
-  /** Timeout defines a rpc handler method for MsgTimeout. */
-  timeout(request: MsgTimeout): Promise<MsgTimeoutResponse>;
-  /** TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. */
-  timeoutOnClose(request: MsgTimeoutOnClose): Promise<MsgTimeoutOnCloseResponse>;
-  /** Acknowledgement defines a rpc handler method for MsgAcknowledgement. */
-  acknowledgement(request: MsgAcknowledgement): Promise<MsgAcknowledgementResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.channelOpenInit = this.channelOpenInit.bind(this);
-    this.channelOpenTry = this.channelOpenTry.bind(this);
-    this.channelOpenAck = this.channelOpenAck.bind(this);
-    this.channelOpenConfirm = this.channelOpenConfirm.bind(this);
-    this.channelCloseInit = this.channelCloseInit.bind(this);
-    this.channelCloseConfirm = this.channelCloseConfirm.bind(this);
-    this.recvPacket = this.recvPacket.bind(this);
-    this.timeout = this.timeout.bind(this);
-    this.timeoutOnClose = this.timeoutOnClose.bind(this);
-    this.acknowledgement = this.acknowledgement.bind(this);
-  }
-  channelOpenInit(request: MsgChannelOpenInit): Promise<MsgChannelOpenInitResponse> {
-    const data = MsgChannelOpenInit.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenInit", data);
-    return promise.then(data => MsgChannelOpenInitResponse.decode(new BinaryReader(data)));
-  }
-  channelOpenTry(request: MsgChannelOpenTry): Promise<MsgChannelOpenTryResponse> {
-    const data = MsgChannelOpenTry.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenTry", data);
-    return promise.then(data => MsgChannelOpenTryResponse.decode(new BinaryReader(data)));
-  }
-  channelOpenAck(request: MsgChannelOpenAck): Promise<MsgChannelOpenAckResponse> {
-    const data = MsgChannelOpenAck.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenAck", data);
-    return promise.then(data => MsgChannelOpenAckResponse.decode(new BinaryReader(data)));
-  }
-  channelOpenConfirm(request: MsgChannelOpenConfirm): Promise<MsgChannelOpenConfirmResponse> {
-    const data = MsgChannelOpenConfirm.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenConfirm", data);
-    return promise.then(data => MsgChannelOpenConfirmResponse.decode(new BinaryReader(data)));
-  }
-  channelCloseInit(request: MsgChannelCloseInit): Promise<MsgChannelCloseInitResponse> {
-    const data = MsgChannelCloseInit.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseInit", data);
-    return promise.then(data => MsgChannelCloseInitResponse.decode(new BinaryReader(data)));
-  }
-  channelCloseConfirm(request: MsgChannelCloseConfirm): Promise<MsgChannelCloseConfirmResponse> {
-    const data = MsgChannelCloseConfirm.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseConfirm", data);
-    return promise.then(data => MsgChannelCloseConfirmResponse.decode(new BinaryReader(data)));
-  }
-  recvPacket(request: MsgRecvPacket): Promise<MsgRecvPacketResponse> {
-    const data = MsgRecvPacket.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "RecvPacket", data);
-    return promise.then(data => MsgRecvPacketResponse.decode(new BinaryReader(data)));
-  }
-  timeout(request: MsgTimeout): Promise<MsgTimeoutResponse> {
-    const data = MsgTimeout.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Timeout", data);
-    return promise.then(data => MsgTimeoutResponse.decode(new BinaryReader(data)));
-  }
-  timeoutOnClose(request: MsgTimeoutOnClose): Promise<MsgTimeoutOnCloseResponse> {
-    const data = MsgTimeoutOnClose.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "TimeoutOnClose", data);
-    return promise.then(data => MsgTimeoutOnCloseResponse.decode(new BinaryReader(data)));
-  }
-  acknowledgement(request: MsgAcknowledgement): Promise<MsgAcknowledgementResponse> {
-    const data = MsgAcknowledgement.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Acknowledgement", data);
-    return promise.then(data => MsgAcknowledgementResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/channel/v1/tx.ts b/examples/injective/src/codegen/ibc/core/channel/v1/tx.ts
deleted file mode 100644
index f7b35b3a..00000000
--- a/examples/injective/src/codegen/ibc/core/channel/v1/tx.ts
+++ /dev/null
@@ -1,2684 +0,0 @@
-import { Channel, ChannelAmino, ChannelSDKType, Packet, PacketAmino, PacketSDKType } from "./channel";
-import { Height, HeightAmino, HeightSDKType } from "../../client/v1/client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It
- * is called by a relayer on Chain A.
- */
-export interface MsgChannelOpenInit {
-  portId: string;
-  channel: Channel | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenInitProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit";
-  value: Uint8Array;
-}
-/**
- * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It
- * is called by a relayer on Chain A.
- */
-export interface MsgChannelOpenInitAmino {
-  port_id: string;
-  channel?: ChannelAmino | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenInitAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenInit";
-  value: MsgChannelOpenInitAmino;
-}
-/**
- * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It
- * is called by a relayer on Chain A.
- */
-export interface MsgChannelOpenInitSDKType {
-  port_id: string;
-  channel: ChannelSDKType | undefined;
-  signer: string;
-}
-/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */
-export interface MsgChannelOpenInitResponse {}
-export interface MsgChannelOpenInitResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInitResponse";
-  value: Uint8Array;
-}
-/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */
-export interface MsgChannelOpenInitResponseAmino {}
-export interface MsgChannelOpenInitResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenInitResponse";
-  value: MsgChannelOpenInitResponseAmino;
-}
-/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */
-export interface MsgChannelOpenInitResponseSDKType {}
-/**
- * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel
- * on Chain B.
- */
-export interface MsgChannelOpenTry {
-  portId: string;
-  /**
-   * in the case of crossing hello's, when both chains call OpenInit, we need
-   * the channel identifier of the previous channel in state INIT
-   */
-  previousChannelId: string;
-  channel: Channel | undefined;
-  counterpartyVersion: string;
-  proofInit: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenTryProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry";
-  value: Uint8Array;
-}
-/**
- * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel
- * on Chain B.
- */
-export interface MsgChannelOpenTryAmino {
-  port_id: string;
-  /**
-   * in the case of crossing hello's, when both chains call OpenInit, we need
-   * the channel identifier of the previous channel in state INIT
-   */
-  previous_channel_id: string;
-  channel?: ChannelAmino | undefined;
-  counterparty_version: string;
-  proof_init: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenTryAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenTry";
-  value: MsgChannelOpenTryAmino;
-}
-/**
- * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel
- * on Chain B.
- */
-export interface MsgChannelOpenTrySDKType {
-  port_id: string;
-  previous_channel_id: string;
-  channel: ChannelSDKType | undefined;
-  counterparty_version: string;
-  proof_init: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */
-export interface MsgChannelOpenTryResponse {}
-export interface MsgChannelOpenTryResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTryResponse";
-  value: Uint8Array;
-}
-/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */
-export interface MsgChannelOpenTryResponseAmino {}
-export interface MsgChannelOpenTryResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenTryResponse";
-  value: MsgChannelOpenTryResponseAmino;
-}
-/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */
-export interface MsgChannelOpenTryResponseSDKType {}
-/**
- * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge
- * the change of channel state to TRYOPEN on Chain B.
- */
-export interface MsgChannelOpenAck {
-  portId: string;
-  channelId: string;
-  counterpartyChannelId: string;
-  counterpartyVersion: string;
-  proofTry: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenAckProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck";
-  value: Uint8Array;
-}
-/**
- * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge
- * the change of channel state to TRYOPEN on Chain B.
- */
-export interface MsgChannelOpenAckAmino {
-  port_id: string;
-  channel_id: string;
-  counterparty_channel_id: string;
-  counterparty_version: string;
-  proof_try: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenAckAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenAck";
-  value: MsgChannelOpenAckAmino;
-}
-/**
- * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge
- * the change of channel state to TRYOPEN on Chain B.
- */
-export interface MsgChannelOpenAckSDKType {
-  port_id: string;
-  channel_id: string;
-  counterparty_channel_id: string;
-  counterparty_version: string;
-  proof_try: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */
-export interface MsgChannelOpenAckResponse {}
-export interface MsgChannelOpenAckResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAckResponse";
-  value: Uint8Array;
-}
-/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */
-export interface MsgChannelOpenAckResponseAmino {}
-export interface MsgChannelOpenAckResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenAckResponse";
-  value: MsgChannelOpenAckResponseAmino;
-}
-/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */
-export interface MsgChannelOpenAckResponseSDKType {}
-/**
- * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of channel state to OPEN on Chain A.
- */
-export interface MsgChannelOpenConfirm {
-  portId: string;
-  channelId: string;
-  proofAck: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenConfirmProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm";
-  value: Uint8Array;
-}
-/**
- * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of channel state to OPEN on Chain A.
- */
-export interface MsgChannelOpenConfirmAmino {
-  port_id: string;
-  channel_id: string;
-  proof_ack: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgChannelOpenConfirmAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenConfirm";
-  value: MsgChannelOpenConfirmAmino;
-}
-/**
- * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of channel state to OPEN on Chain A.
- */
-export interface MsgChannelOpenConfirmSDKType {
-  port_id: string;
-  channel_id: string;
-  proof_ack: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/**
- * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response
- * type.
- */
-export interface MsgChannelOpenConfirmResponse {}
-export interface MsgChannelOpenConfirmResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirmResponse";
-  value: Uint8Array;
-}
-/**
- * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response
- * type.
- */
-export interface MsgChannelOpenConfirmResponseAmino {}
-export interface MsgChannelOpenConfirmResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelOpenConfirmResponse";
-  value: MsgChannelOpenConfirmResponseAmino;
-}
-/**
- * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response
- * type.
- */
-export interface MsgChannelOpenConfirmResponseSDKType {}
-/**
- * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A
- * to close a channel with Chain B.
- */
-export interface MsgChannelCloseInit {
-  portId: string;
-  channelId: string;
-  signer: string;
-}
-export interface MsgChannelCloseInitProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit";
-  value: Uint8Array;
-}
-/**
- * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A
- * to close a channel with Chain B.
- */
-export interface MsgChannelCloseInitAmino {
-  port_id: string;
-  channel_id: string;
-  signer: string;
-}
-export interface MsgChannelCloseInitAminoMsg {
-  type: "cosmos-sdk/MsgChannelCloseInit";
-  value: MsgChannelCloseInitAmino;
-}
-/**
- * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A
- * to close a channel with Chain B.
- */
-export interface MsgChannelCloseInitSDKType {
-  port_id: string;
-  channel_id: string;
-  signer: string;
-}
-/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */
-export interface MsgChannelCloseInitResponse {}
-export interface MsgChannelCloseInitResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInitResponse";
-  value: Uint8Array;
-}
-/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */
-export interface MsgChannelCloseInitResponseAmino {}
-export interface MsgChannelCloseInitResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelCloseInitResponse";
-  value: MsgChannelCloseInitResponseAmino;
-}
-/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */
-export interface MsgChannelCloseInitResponseSDKType {}
-/**
- * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B
- * to acknowledge the change of channel state to CLOSED on Chain A.
- */
-export interface MsgChannelCloseConfirm {
-  portId: string;
-  channelId: string;
-  proofInit: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgChannelCloseConfirmProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm";
-  value: Uint8Array;
-}
-/**
- * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B
- * to acknowledge the change of channel state to CLOSED on Chain A.
- */
-export interface MsgChannelCloseConfirmAmino {
-  port_id: string;
-  channel_id: string;
-  proof_init: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgChannelCloseConfirmAminoMsg {
-  type: "cosmos-sdk/MsgChannelCloseConfirm";
-  value: MsgChannelCloseConfirmAmino;
-}
-/**
- * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B
- * to acknowledge the change of channel state to CLOSED on Chain A.
- */
-export interface MsgChannelCloseConfirmSDKType {
-  port_id: string;
-  channel_id: string;
-  proof_init: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/**
- * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response
- * type.
- */
-export interface MsgChannelCloseConfirmResponse {}
-export interface MsgChannelCloseConfirmResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirmResponse";
-  value: Uint8Array;
-}
-/**
- * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response
- * type.
- */
-export interface MsgChannelCloseConfirmResponseAmino {}
-export interface MsgChannelCloseConfirmResponseAminoMsg {
-  type: "cosmos-sdk/MsgChannelCloseConfirmResponse";
-  value: MsgChannelCloseConfirmResponseAmino;
-}
-/**
- * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response
- * type.
- */
-export interface MsgChannelCloseConfirmResponseSDKType {}
-/** MsgRecvPacket receives incoming IBC packet */
-export interface MsgRecvPacket {
-  packet: Packet | undefined;
-  proofCommitment: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgRecvPacketProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgRecvPacket";
-  value: Uint8Array;
-}
-/** MsgRecvPacket receives incoming IBC packet */
-export interface MsgRecvPacketAmino {
-  packet?: PacketAmino | undefined;
-  proof_commitment: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgRecvPacketAminoMsg {
-  type: "cosmos-sdk/MsgRecvPacket";
-  value: MsgRecvPacketAmino;
-}
-/** MsgRecvPacket receives incoming IBC packet */
-export interface MsgRecvPacketSDKType {
-  packet: PacketSDKType | undefined;
-  proof_commitment: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */
-export interface MsgRecvPacketResponse {}
-export interface MsgRecvPacketResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgRecvPacketResponse";
-  value: Uint8Array;
-}
-/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */
-export interface MsgRecvPacketResponseAmino {}
-export interface MsgRecvPacketResponseAminoMsg {
-  type: "cosmos-sdk/MsgRecvPacketResponse";
-  value: MsgRecvPacketResponseAmino;
-}
-/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */
-export interface MsgRecvPacketResponseSDKType {}
-/** MsgTimeout receives timed-out packet */
-export interface MsgTimeout {
-  packet: Packet | undefined;
-  proofUnreceived: Uint8Array;
-  proofHeight: Height | undefined;
-  nextSequenceRecv: bigint;
-  signer: string;
-}
-export interface MsgTimeoutProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeout";
-  value: Uint8Array;
-}
-/** MsgTimeout receives timed-out packet */
-export interface MsgTimeoutAmino {
-  packet?: PacketAmino | undefined;
-  proof_unreceived: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  next_sequence_recv: string;
-  signer: string;
-}
-export interface MsgTimeoutAminoMsg {
-  type: "cosmos-sdk/MsgTimeout";
-  value: MsgTimeoutAmino;
-}
-/** MsgTimeout receives timed-out packet */
-export interface MsgTimeoutSDKType {
-  packet: PacketSDKType | undefined;
-  proof_unreceived: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  next_sequence_recv: bigint;
-  signer: string;
-}
-/** MsgTimeoutResponse defines the Msg/Timeout response type. */
-export interface MsgTimeoutResponse {}
-export interface MsgTimeoutResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutResponse";
-  value: Uint8Array;
-}
-/** MsgTimeoutResponse defines the Msg/Timeout response type. */
-export interface MsgTimeoutResponseAmino {}
-export interface MsgTimeoutResponseAminoMsg {
-  type: "cosmos-sdk/MsgTimeoutResponse";
-  value: MsgTimeoutResponseAmino;
-}
-/** MsgTimeoutResponse defines the Msg/Timeout response type. */
-export interface MsgTimeoutResponseSDKType {}
-/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */
-export interface MsgTimeoutOnClose {
-  packet: Packet | undefined;
-  proofUnreceived: Uint8Array;
-  proofClose: Uint8Array;
-  proofHeight: Height | undefined;
-  nextSequenceRecv: bigint;
-  signer: string;
-}
-export interface MsgTimeoutOnCloseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose";
-  value: Uint8Array;
-}
-/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */
-export interface MsgTimeoutOnCloseAmino {
-  packet?: PacketAmino | undefined;
-  proof_unreceived: Uint8Array;
-  proof_close: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  next_sequence_recv: string;
-  signer: string;
-}
-export interface MsgTimeoutOnCloseAminoMsg {
-  type: "cosmos-sdk/MsgTimeoutOnClose";
-  value: MsgTimeoutOnCloseAmino;
-}
-/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */
-export interface MsgTimeoutOnCloseSDKType {
-  packet: PacketSDKType | undefined;
-  proof_unreceived: Uint8Array;
-  proof_close: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  next_sequence_recv: bigint;
-  signer: string;
-}
-/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */
-export interface MsgTimeoutOnCloseResponse {}
-export interface MsgTimeoutOnCloseResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnCloseResponse";
-  value: Uint8Array;
-}
-/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */
-export interface MsgTimeoutOnCloseResponseAmino {}
-export interface MsgTimeoutOnCloseResponseAminoMsg {
-  type: "cosmos-sdk/MsgTimeoutOnCloseResponse";
-  value: MsgTimeoutOnCloseResponseAmino;
-}
-/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */
-export interface MsgTimeoutOnCloseResponseSDKType {}
-/** MsgAcknowledgement receives incoming IBC acknowledgement */
-export interface MsgAcknowledgement {
-  packet: Packet | undefined;
-  acknowledgement: Uint8Array;
-  proofAcked: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgAcknowledgementProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement";
-  value: Uint8Array;
-}
-/** MsgAcknowledgement receives incoming IBC acknowledgement */
-export interface MsgAcknowledgementAmino {
-  packet?: PacketAmino | undefined;
-  acknowledgement: Uint8Array;
-  proof_acked: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgAcknowledgementAminoMsg {
-  type: "cosmos-sdk/MsgAcknowledgement";
-  value: MsgAcknowledgementAmino;
-}
-/** MsgAcknowledgement receives incoming IBC acknowledgement */
-export interface MsgAcknowledgementSDKType {
-  packet: PacketSDKType | undefined;
-  acknowledgement: Uint8Array;
-  proof_acked: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */
-export interface MsgAcknowledgementResponse {}
-export interface MsgAcknowledgementResponseProtoMsg {
-  typeUrl: "/ibc.core.channel.v1.MsgAcknowledgementResponse";
-  value: Uint8Array;
-}
-/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */
-export interface MsgAcknowledgementResponseAmino {}
-export interface MsgAcknowledgementResponseAminoMsg {
-  type: "cosmos-sdk/MsgAcknowledgementResponse";
-  value: MsgAcknowledgementResponseAmino;
-}
-/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */
-export interface MsgAcknowledgementResponseSDKType {}
-function createBaseMsgChannelOpenInit(): MsgChannelOpenInit {
-  return {
-    portId: "",
-    channel: Channel.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgChannelOpenInit = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-  aminoType: "cosmos-sdk/MsgChannelOpenInit",
-  encode(message: MsgChannelOpenInit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channel !== undefined) {
-      Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(26).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenInit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenInit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channel = Channel.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelOpenInit {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channel: isSet(object.channel) ? Channel.fromJSON(object.channel) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelOpenInit): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toJSON(message.channel) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelOpenInit>): MsgChannelOpenInit {
-    const message = createBaseMsgChannelOpenInit();
-    message.portId = object.portId ?? "";
-    message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelOpenInitSDKType): MsgChannelOpenInit {
-    return {
-      portId: object?.port_id,
-      channel: object.channel ? Channel.fromSDK(object.channel) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelOpenInit): MsgChannelOpenInitSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toSDK(message.channel) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelOpenInitAmino): MsgChannelOpenInit {
-    return {
-      portId: object.port_id,
-      channel: object?.channel ? Channel.fromAmino(object.channel) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelOpenInit): MsgChannelOpenInitAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel = message.channel ? Channel.toAmino(message.channel) : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenInitAminoMsg): MsgChannelOpenInit {
-    return MsgChannelOpenInit.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenInit): MsgChannelOpenInitAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenInit",
-      value: MsgChannelOpenInit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenInitProtoMsg): MsgChannelOpenInit {
-    return MsgChannelOpenInit.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenInit): Uint8Array {
-    return MsgChannelOpenInit.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenInit): MsgChannelOpenInitProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit",
-      value: MsgChannelOpenInit.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenInitResponse(): MsgChannelOpenInitResponse {
-  return {};
-}
-export const MsgChannelOpenInitResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInitResponse",
-  aminoType: "cosmos-sdk/MsgChannelOpenInitResponse",
-  encode(_: MsgChannelOpenInitResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenInitResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenInitResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelOpenInitResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelOpenInitResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelOpenInitResponse>): MsgChannelOpenInitResponse {
-    const message = createBaseMsgChannelOpenInitResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelOpenInitResponseSDKType): MsgChannelOpenInitResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelOpenInitResponse): MsgChannelOpenInitResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelOpenInitResponseAmino): MsgChannelOpenInitResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelOpenInitResponse): MsgChannelOpenInitResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenInitResponseAminoMsg): MsgChannelOpenInitResponse {
-    return MsgChannelOpenInitResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenInitResponse): MsgChannelOpenInitResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenInitResponse",
-      value: MsgChannelOpenInitResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenInitResponseProtoMsg): MsgChannelOpenInitResponse {
-    return MsgChannelOpenInitResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenInitResponse): Uint8Array {
-    return MsgChannelOpenInitResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenInitResponse): MsgChannelOpenInitResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInitResponse",
-      value: MsgChannelOpenInitResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenTry(): MsgChannelOpenTry {
-  return {
-    portId: "",
-    previousChannelId: "",
-    channel: Channel.fromPartial({}),
-    counterpartyVersion: "",
-    proofInit: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgChannelOpenTry = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-  aminoType: "cosmos-sdk/MsgChannelOpenTry",
-  encode(message: MsgChannelOpenTry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.previousChannelId !== "") {
-      writer.uint32(18).string(message.previousChannelId);
-    }
-    if (message.channel !== undefined) {
-      Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.counterpartyVersion !== "") {
-      writer.uint32(34).string(message.counterpartyVersion);
-    }
-    if (message.proofInit.length !== 0) {
-      writer.uint32(42).bytes(message.proofInit);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(58).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenTry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenTry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.previousChannelId = reader.string();
-          break;
-        case 3:
-          message.channel = Channel.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.counterpartyVersion = reader.string();
-          break;
-        case 5:
-          message.proofInit = reader.bytes();
-          break;
-        case 6:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelOpenTry {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      previousChannelId: isSet(object.previousChannelId) ? String(object.previousChannelId) : "",
-      channel: isSet(object.channel) ? Channel.fromJSON(object.channel) : undefined,
-      counterpartyVersion: isSet(object.counterpartyVersion) ? String(object.counterpartyVersion) : "",
-      proofInit: isSet(object.proofInit) ? bytesFromBase64(object.proofInit) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelOpenTry): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toJSON(message.channel) : undefined);
-    message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);
-    message.proofInit !== undefined && (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelOpenTry>): MsgChannelOpenTry {
-    const message = createBaseMsgChannelOpenTry();
-    message.portId = object.portId ?? "";
-    message.previousChannelId = object.previousChannelId ?? "";
-    message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined;
-    message.counterpartyVersion = object.counterpartyVersion ?? "";
-    message.proofInit = object.proofInit ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelOpenTrySDKType): MsgChannelOpenTry {
-    return {
-      portId: object?.port_id,
-      previousChannelId: object?.previous_channel_id,
-      channel: object.channel ? Channel.fromSDK(object.channel) : undefined,
-      counterpartyVersion: object?.counterparty_version,
-      proofInit: object?.proof_init,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelOpenTry): MsgChannelOpenTrySDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.previous_channel_id = message.previousChannelId;
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toSDK(message.channel) : undefined);
-    obj.counterparty_version = message.counterpartyVersion;
-    obj.proof_init = message.proofInit;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelOpenTryAmino): MsgChannelOpenTry {
-    return {
-      portId: object.port_id,
-      previousChannelId: object.previous_channel_id,
-      channel: object?.channel ? Channel.fromAmino(object.channel) : undefined,
-      counterpartyVersion: object.counterparty_version,
-      proofInit: object.proof_init,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelOpenTry): MsgChannelOpenTryAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.previous_channel_id = message.previousChannelId;
-    obj.channel = message.channel ? Channel.toAmino(message.channel) : undefined;
-    obj.counterparty_version = message.counterpartyVersion;
-    obj.proof_init = message.proofInit;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenTryAminoMsg): MsgChannelOpenTry {
-    return MsgChannelOpenTry.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenTry): MsgChannelOpenTryAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenTry",
-      value: MsgChannelOpenTry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenTryProtoMsg): MsgChannelOpenTry {
-    return MsgChannelOpenTry.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenTry): Uint8Array {
-    return MsgChannelOpenTry.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenTry): MsgChannelOpenTryProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry",
-      value: MsgChannelOpenTry.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenTryResponse(): MsgChannelOpenTryResponse {
-  return {};
-}
-export const MsgChannelOpenTryResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTryResponse",
-  aminoType: "cosmos-sdk/MsgChannelOpenTryResponse",
-  encode(_: MsgChannelOpenTryResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenTryResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenTryResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelOpenTryResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelOpenTryResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelOpenTryResponse>): MsgChannelOpenTryResponse {
-    const message = createBaseMsgChannelOpenTryResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelOpenTryResponseSDKType): MsgChannelOpenTryResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelOpenTryResponse): MsgChannelOpenTryResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelOpenTryResponseAmino): MsgChannelOpenTryResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelOpenTryResponse): MsgChannelOpenTryResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenTryResponseAminoMsg): MsgChannelOpenTryResponse {
-    return MsgChannelOpenTryResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenTryResponse): MsgChannelOpenTryResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenTryResponse",
-      value: MsgChannelOpenTryResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenTryResponseProtoMsg): MsgChannelOpenTryResponse {
-    return MsgChannelOpenTryResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenTryResponse): Uint8Array {
-    return MsgChannelOpenTryResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenTryResponse): MsgChannelOpenTryResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTryResponse",
-      value: MsgChannelOpenTryResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenAck(): MsgChannelOpenAck {
-  return {
-    portId: "",
-    channelId: "",
-    counterpartyChannelId: "",
-    counterpartyVersion: "",
-    proofTry: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgChannelOpenAck = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-  aminoType: "cosmos-sdk/MsgChannelOpenAck",
-  encode(message: MsgChannelOpenAck, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.counterpartyChannelId !== "") {
-      writer.uint32(26).string(message.counterpartyChannelId);
-    }
-    if (message.counterpartyVersion !== "") {
-      writer.uint32(34).string(message.counterpartyVersion);
-    }
-    if (message.proofTry.length !== 0) {
-      writer.uint32(42).bytes(message.proofTry);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(58).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenAck {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenAck();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.counterpartyChannelId = reader.string();
-          break;
-        case 4:
-          message.counterpartyVersion = reader.string();
-          break;
-        case 5:
-          message.proofTry = reader.bytes();
-          break;
-        case 6:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelOpenAck {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      counterpartyChannelId: isSet(object.counterpartyChannelId) ? String(object.counterpartyChannelId) : "",
-      counterpartyVersion: isSet(object.counterpartyVersion) ? String(object.counterpartyVersion) : "",
-      proofTry: isSet(object.proofTry) ? bytesFromBase64(object.proofTry) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelOpenAck): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.counterpartyChannelId !== undefined && (obj.counterpartyChannelId = message.counterpartyChannelId);
-    message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);
-    message.proofTry !== undefined && (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelOpenAck>): MsgChannelOpenAck {
-    const message = createBaseMsgChannelOpenAck();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.counterpartyChannelId = object.counterpartyChannelId ?? "";
-    message.counterpartyVersion = object.counterpartyVersion ?? "";
-    message.proofTry = object.proofTry ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelOpenAckSDKType): MsgChannelOpenAck {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      counterpartyChannelId: object?.counterparty_channel_id,
-      counterpartyVersion: object?.counterparty_version,
-      proofTry: object?.proof_try,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelOpenAck): MsgChannelOpenAckSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.counterparty_channel_id = message.counterpartyChannelId;
-    obj.counterparty_version = message.counterpartyVersion;
-    obj.proof_try = message.proofTry;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelOpenAckAmino): MsgChannelOpenAck {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      counterpartyChannelId: object.counterparty_channel_id,
-      counterpartyVersion: object.counterparty_version,
-      proofTry: object.proof_try,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelOpenAck): MsgChannelOpenAckAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.counterparty_channel_id = message.counterpartyChannelId;
-    obj.counterparty_version = message.counterpartyVersion;
-    obj.proof_try = message.proofTry;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenAckAminoMsg): MsgChannelOpenAck {
-    return MsgChannelOpenAck.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenAck): MsgChannelOpenAckAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenAck",
-      value: MsgChannelOpenAck.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenAckProtoMsg): MsgChannelOpenAck {
-    return MsgChannelOpenAck.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenAck): Uint8Array {
-    return MsgChannelOpenAck.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenAck): MsgChannelOpenAckProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck",
-      value: MsgChannelOpenAck.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenAckResponse(): MsgChannelOpenAckResponse {
-  return {};
-}
-export const MsgChannelOpenAckResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAckResponse",
-  aminoType: "cosmos-sdk/MsgChannelOpenAckResponse",
-  encode(_: MsgChannelOpenAckResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenAckResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenAckResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelOpenAckResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelOpenAckResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelOpenAckResponse>): MsgChannelOpenAckResponse {
-    const message = createBaseMsgChannelOpenAckResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelOpenAckResponseSDKType): MsgChannelOpenAckResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelOpenAckResponse): MsgChannelOpenAckResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelOpenAckResponseAmino): MsgChannelOpenAckResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelOpenAckResponse): MsgChannelOpenAckResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenAckResponseAminoMsg): MsgChannelOpenAckResponse {
-    return MsgChannelOpenAckResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenAckResponse): MsgChannelOpenAckResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenAckResponse",
-      value: MsgChannelOpenAckResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenAckResponseProtoMsg): MsgChannelOpenAckResponse {
-    return MsgChannelOpenAckResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenAckResponse): Uint8Array {
-    return MsgChannelOpenAckResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenAckResponse): MsgChannelOpenAckResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAckResponse",
-      value: MsgChannelOpenAckResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenConfirm(): MsgChannelOpenConfirm {
-  return {
-    portId: "",
-    channelId: "",
-    proofAck: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgChannelOpenConfirm = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-  aminoType: "cosmos-sdk/MsgChannelOpenConfirm",
-  encode(message: MsgChannelOpenConfirm, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.proofAck.length !== 0) {
-      writer.uint32(26).bytes(message.proofAck);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(42).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenConfirm {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenConfirm();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.proofAck = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelOpenConfirm {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      proofAck: isSet(object.proofAck) ? bytesFromBase64(object.proofAck) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelOpenConfirm): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.proofAck !== undefined && (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelOpenConfirm>): MsgChannelOpenConfirm {
-    const message = createBaseMsgChannelOpenConfirm();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.proofAck = object.proofAck ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelOpenConfirmSDKType): MsgChannelOpenConfirm {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      proofAck: object?.proof_ack,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelOpenConfirm): MsgChannelOpenConfirmSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.proof_ack = message.proofAck;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelOpenConfirmAmino): MsgChannelOpenConfirm {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      proofAck: object.proof_ack,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelOpenConfirm): MsgChannelOpenConfirmAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.proof_ack = message.proofAck;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenConfirmAminoMsg): MsgChannelOpenConfirm {
-    return MsgChannelOpenConfirm.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenConfirm): MsgChannelOpenConfirmAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenConfirm",
-      value: MsgChannelOpenConfirm.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenConfirmProtoMsg): MsgChannelOpenConfirm {
-    return MsgChannelOpenConfirm.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenConfirm): Uint8Array {
-    return MsgChannelOpenConfirm.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenConfirm): MsgChannelOpenConfirmProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm",
-      value: MsgChannelOpenConfirm.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelOpenConfirmResponse(): MsgChannelOpenConfirmResponse {
-  return {};
-}
-export const MsgChannelOpenConfirmResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirmResponse",
-  aminoType: "cosmos-sdk/MsgChannelOpenConfirmResponse",
-  encode(_: MsgChannelOpenConfirmResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelOpenConfirmResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelOpenConfirmResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelOpenConfirmResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelOpenConfirmResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelOpenConfirmResponse>): MsgChannelOpenConfirmResponse {
-    const message = createBaseMsgChannelOpenConfirmResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelOpenConfirmResponseSDKType): MsgChannelOpenConfirmResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelOpenConfirmResponse): MsgChannelOpenConfirmResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelOpenConfirmResponseAmino): MsgChannelOpenConfirmResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelOpenConfirmResponse): MsgChannelOpenConfirmResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelOpenConfirmResponseAminoMsg): MsgChannelOpenConfirmResponse {
-    return MsgChannelOpenConfirmResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelOpenConfirmResponse): MsgChannelOpenConfirmResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelOpenConfirmResponse",
-      value: MsgChannelOpenConfirmResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelOpenConfirmResponseProtoMsg): MsgChannelOpenConfirmResponse {
-    return MsgChannelOpenConfirmResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelOpenConfirmResponse): Uint8Array {
-    return MsgChannelOpenConfirmResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelOpenConfirmResponse): MsgChannelOpenConfirmResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirmResponse",
-      value: MsgChannelOpenConfirmResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelCloseInit(): MsgChannelCloseInit {
-  return {
-    portId: "",
-    channelId: "",
-    signer: ""
-  };
-}
-export const MsgChannelCloseInit = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-  aminoType: "cosmos-sdk/MsgChannelCloseInit",
-  encode(message: MsgChannelCloseInit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.signer !== "") {
-      writer.uint32(26).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelCloseInit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelCloseInit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelCloseInit {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelCloseInit): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelCloseInit>): MsgChannelCloseInit {
-    const message = createBaseMsgChannelCloseInit();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelCloseInitSDKType): MsgChannelCloseInit {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelCloseInit): MsgChannelCloseInitSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelCloseInitAmino): MsgChannelCloseInit {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelCloseInit): MsgChannelCloseInitAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelCloseInitAminoMsg): MsgChannelCloseInit {
-    return MsgChannelCloseInit.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelCloseInit): MsgChannelCloseInitAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelCloseInit",
-      value: MsgChannelCloseInit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelCloseInitProtoMsg): MsgChannelCloseInit {
-    return MsgChannelCloseInit.decode(message.value);
-  },
-  toProto(message: MsgChannelCloseInit): Uint8Array {
-    return MsgChannelCloseInit.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelCloseInit): MsgChannelCloseInitProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit",
-      value: MsgChannelCloseInit.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelCloseInitResponse(): MsgChannelCloseInitResponse {
-  return {};
-}
-export const MsgChannelCloseInitResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInitResponse",
-  aminoType: "cosmos-sdk/MsgChannelCloseInitResponse",
-  encode(_: MsgChannelCloseInitResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelCloseInitResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelCloseInitResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelCloseInitResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelCloseInitResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelCloseInitResponse>): MsgChannelCloseInitResponse {
-    const message = createBaseMsgChannelCloseInitResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelCloseInitResponseSDKType): MsgChannelCloseInitResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelCloseInitResponse): MsgChannelCloseInitResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelCloseInitResponseAmino): MsgChannelCloseInitResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelCloseInitResponse): MsgChannelCloseInitResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelCloseInitResponseAminoMsg): MsgChannelCloseInitResponse {
-    return MsgChannelCloseInitResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelCloseInitResponse): MsgChannelCloseInitResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelCloseInitResponse",
-      value: MsgChannelCloseInitResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelCloseInitResponseProtoMsg): MsgChannelCloseInitResponse {
-    return MsgChannelCloseInitResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelCloseInitResponse): Uint8Array {
-    return MsgChannelCloseInitResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelCloseInitResponse): MsgChannelCloseInitResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInitResponse",
-      value: MsgChannelCloseInitResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelCloseConfirm(): MsgChannelCloseConfirm {
-  return {
-    portId: "",
-    channelId: "",
-    proofInit: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgChannelCloseConfirm = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-  aminoType: "cosmos-sdk/MsgChannelCloseConfirm",
-  encode(message: MsgChannelCloseConfirm, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.channelId !== "") {
-      writer.uint32(18).string(message.channelId);
-    }
-    if (message.proofInit.length !== 0) {
-      writer.uint32(26).bytes(message.proofInit);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(42).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelCloseConfirm {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelCloseConfirm();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.channelId = reader.string();
-          break;
-        case 3:
-          message.proofInit = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChannelCloseConfirm {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      channelId: isSet(object.channelId) ? String(object.channelId) : "",
-      proofInit: isSet(object.proofInit) ? bytesFromBase64(object.proofInit) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgChannelCloseConfirm): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.channelId !== undefined && (obj.channelId = message.channelId);
-    message.proofInit !== undefined && (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChannelCloseConfirm>): MsgChannelCloseConfirm {
-    const message = createBaseMsgChannelCloseConfirm();
-    message.portId = object.portId ?? "";
-    message.channelId = object.channelId ?? "";
-    message.proofInit = object.proofInit ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChannelCloseConfirmSDKType): MsgChannelCloseConfirm {
-    return {
-      portId: object?.port_id,
-      channelId: object?.channel_id,
-      proofInit: object?.proof_init,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgChannelCloseConfirm): MsgChannelCloseConfirmSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.proof_init = message.proofInit;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgChannelCloseConfirmAmino): MsgChannelCloseConfirm {
-    return {
-      portId: object.port_id,
-      channelId: object.channel_id,
-      proofInit: object.proof_init,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgChannelCloseConfirm): MsgChannelCloseConfirmAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.channel_id = message.channelId;
-    obj.proof_init = message.proofInit;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelCloseConfirmAminoMsg): MsgChannelCloseConfirm {
-    return MsgChannelCloseConfirm.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelCloseConfirm): MsgChannelCloseConfirmAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelCloseConfirm",
-      value: MsgChannelCloseConfirm.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelCloseConfirmProtoMsg): MsgChannelCloseConfirm {
-    return MsgChannelCloseConfirm.decode(message.value);
-  },
-  toProto(message: MsgChannelCloseConfirm): Uint8Array {
-    return MsgChannelCloseConfirm.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelCloseConfirm): MsgChannelCloseConfirmProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm",
-      value: MsgChannelCloseConfirm.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChannelCloseConfirmResponse(): MsgChannelCloseConfirmResponse {
-  return {};
-}
-export const MsgChannelCloseConfirmResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirmResponse",
-  aminoType: "cosmos-sdk/MsgChannelCloseConfirmResponse",
-  encode(_: MsgChannelCloseConfirmResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChannelCloseConfirmResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChannelCloseConfirmResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChannelCloseConfirmResponse {
-    return {};
-  },
-  toJSON(_: MsgChannelCloseConfirmResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChannelCloseConfirmResponse>): MsgChannelCloseConfirmResponse {
-    const message = createBaseMsgChannelCloseConfirmResponse();
-    return message;
-  },
-  fromSDK(_: MsgChannelCloseConfirmResponseSDKType): MsgChannelCloseConfirmResponse {
-    return {};
-  },
-  toSDK(_: MsgChannelCloseConfirmResponse): MsgChannelCloseConfirmResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChannelCloseConfirmResponseAmino): MsgChannelCloseConfirmResponse {
-    return {};
-  },
-  toAmino(_: MsgChannelCloseConfirmResponse): MsgChannelCloseConfirmResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChannelCloseConfirmResponseAminoMsg): MsgChannelCloseConfirmResponse {
-    return MsgChannelCloseConfirmResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChannelCloseConfirmResponse): MsgChannelCloseConfirmResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgChannelCloseConfirmResponse",
-      value: MsgChannelCloseConfirmResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChannelCloseConfirmResponseProtoMsg): MsgChannelCloseConfirmResponse {
-    return MsgChannelCloseConfirmResponse.decode(message.value);
-  },
-  toProto(message: MsgChannelCloseConfirmResponse): Uint8Array {
-    return MsgChannelCloseConfirmResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChannelCloseConfirmResponse): MsgChannelCloseConfirmResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirmResponse",
-      value: MsgChannelCloseConfirmResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRecvPacket(): MsgRecvPacket {
-  return {
-    packet: Packet.fromPartial({}),
-    proofCommitment: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgRecvPacket = {
-  typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-  aminoType: "cosmos-sdk/MsgRecvPacket",
-  encode(message: MsgRecvPacket, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.packet !== undefined) {
-      Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proofCommitment.length !== 0) {
-      writer.uint32(18).bytes(message.proofCommitment);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(34).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRecvPacket {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRecvPacket();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.packet = Packet.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proofCommitment = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgRecvPacket {
-    return {
-      packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,
-      proofCommitment: isSet(object.proofCommitment) ? bytesFromBase64(object.proofCommitment) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgRecvPacket): unknown {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);
-    message.proofCommitment !== undefined && (obj.proofCommitment = base64FromBytes(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgRecvPacket>): MsgRecvPacket {
-    const message = createBaseMsgRecvPacket();
-    message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined;
-    message.proofCommitment = object.proofCommitment ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgRecvPacketSDKType): MsgRecvPacket {
-    return {
-      packet: object.packet ? Packet.fromSDK(object.packet) : undefined,
-      proofCommitment: object?.proof_commitment,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgRecvPacket): MsgRecvPacketSDKType {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toSDK(message.packet) : undefined);
-    obj.proof_commitment = message.proofCommitment;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgRecvPacketAmino): MsgRecvPacket {
-    return {
-      packet: object?.packet ? Packet.fromAmino(object.packet) : undefined,
-      proofCommitment: object.proof_commitment,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgRecvPacket): MsgRecvPacketAmino {
-    const obj: any = {};
-    obj.packet = message.packet ? Packet.toAmino(message.packet) : undefined;
-    obj.proof_commitment = message.proofCommitment;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgRecvPacketAminoMsg): MsgRecvPacket {
-    return MsgRecvPacket.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRecvPacket): MsgRecvPacketAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRecvPacket",
-      value: MsgRecvPacket.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRecvPacketProtoMsg): MsgRecvPacket {
-    return MsgRecvPacket.decode(message.value);
-  },
-  toProto(message: MsgRecvPacket): Uint8Array {
-    return MsgRecvPacket.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRecvPacket): MsgRecvPacketProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgRecvPacket",
-      value: MsgRecvPacket.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgRecvPacketResponse(): MsgRecvPacketResponse {
-  return {};
-}
-export const MsgRecvPacketResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgRecvPacketResponse",
-  aminoType: "cosmos-sdk/MsgRecvPacketResponse",
-  encode(_: MsgRecvPacketResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgRecvPacketResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgRecvPacketResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgRecvPacketResponse {
-    return {};
-  },
-  toJSON(_: MsgRecvPacketResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgRecvPacketResponse>): MsgRecvPacketResponse {
-    const message = createBaseMsgRecvPacketResponse();
-    return message;
-  },
-  fromSDK(_: MsgRecvPacketResponseSDKType): MsgRecvPacketResponse {
-    return {};
-  },
-  toSDK(_: MsgRecvPacketResponse): MsgRecvPacketResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgRecvPacketResponseAmino): MsgRecvPacketResponse {
-    return {};
-  },
-  toAmino(_: MsgRecvPacketResponse): MsgRecvPacketResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgRecvPacketResponseAminoMsg): MsgRecvPacketResponse {
-    return MsgRecvPacketResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgRecvPacketResponse): MsgRecvPacketResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgRecvPacketResponse",
-      value: MsgRecvPacketResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgRecvPacketResponseProtoMsg): MsgRecvPacketResponse {
-    return MsgRecvPacketResponse.decode(message.value);
-  },
-  toProto(message: MsgRecvPacketResponse): Uint8Array {
-    return MsgRecvPacketResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgRecvPacketResponse): MsgRecvPacketResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgRecvPacketResponse",
-      value: MsgRecvPacketResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgTimeout(): MsgTimeout {
-  return {
-    packet: Packet.fromPartial({}),
-    proofUnreceived: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    nextSequenceRecv: BigInt(0),
-    signer: ""
-  };
-}
-export const MsgTimeout = {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-  aminoType: "cosmos-sdk/MsgTimeout",
-  encode(message: MsgTimeout, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.packet !== undefined) {
-      Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proofUnreceived.length !== 0) {
-      writer.uint32(18).bytes(message.proofUnreceived);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.nextSequenceRecv !== BigInt(0)) {
-      writer.uint32(32).uint64(message.nextSequenceRecv);
-    }
-    if (message.signer !== "") {
-      writer.uint32(42).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeout {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTimeout();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.packet = Packet.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proofUnreceived = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.nextSequenceRecv = reader.uint64();
-          break;
-        case 5:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgTimeout {
-    return {
-      packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,
-      proofUnreceived: isSet(object.proofUnreceived) ? bytesFromBase64(object.proofUnreceived) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      nextSequenceRecv: isSet(object.nextSequenceRecv) ? BigInt(object.nextSequenceRecv.toString()) : BigInt(0),
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgTimeout): unknown {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);
-    message.proofUnreceived !== undefined && (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.nextSequenceRecv !== undefined && (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgTimeout>): MsgTimeout {
-    const message = createBaseMsgTimeout();
-    message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined;
-    message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.nextSequenceRecv = object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null ? BigInt(object.nextSequenceRecv.toString()) : BigInt(0);
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgTimeoutSDKType): MsgTimeout {
-    return {
-      packet: object.packet ? Packet.fromSDK(object.packet) : undefined,
-      proofUnreceived: object?.proof_unreceived,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      nextSequenceRecv: object?.next_sequence_recv,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgTimeout): MsgTimeoutSDKType {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toSDK(message.packet) : undefined);
-    obj.proof_unreceived = message.proofUnreceived;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.next_sequence_recv = message.nextSequenceRecv;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgTimeoutAmino): MsgTimeout {
-    return {
-      packet: object?.packet ? Packet.fromAmino(object.packet) : undefined,
-      proofUnreceived: object.proof_unreceived,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      nextSequenceRecv: BigInt(object.next_sequence_recv),
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgTimeout): MsgTimeoutAmino {
-    const obj: any = {};
-    obj.packet = message.packet ? Packet.toAmino(message.packet) : undefined;
-    obj.proof_unreceived = message.proofUnreceived;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.next_sequence_recv = message.nextSequenceRecv ? message.nextSequenceRecv.toString() : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgTimeoutAminoMsg): MsgTimeout {
-    return MsgTimeout.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTimeout): MsgTimeoutAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTimeout",
-      value: MsgTimeout.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTimeoutProtoMsg): MsgTimeout {
-    return MsgTimeout.decode(message.value);
-  },
-  toProto(message: MsgTimeout): Uint8Array {
-    return MsgTimeout.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTimeout): MsgTimeoutProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgTimeout",
-      value: MsgTimeout.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgTimeoutResponse(): MsgTimeoutResponse {
-  return {};
-}
-export const MsgTimeoutResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutResponse",
-  aminoType: "cosmos-sdk/MsgTimeoutResponse",
-  encode(_: MsgTimeoutResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeoutResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTimeoutResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgTimeoutResponse {
-    return {};
-  },
-  toJSON(_: MsgTimeoutResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgTimeoutResponse>): MsgTimeoutResponse {
-    const message = createBaseMsgTimeoutResponse();
-    return message;
-  },
-  fromSDK(_: MsgTimeoutResponseSDKType): MsgTimeoutResponse {
-    return {};
-  },
-  toSDK(_: MsgTimeoutResponse): MsgTimeoutResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgTimeoutResponseAmino): MsgTimeoutResponse {
-    return {};
-  },
-  toAmino(_: MsgTimeoutResponse): MsgTimeoutResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgTimeoutResponseAminoMsg): MsgTimeoutResponse {
-    return MsgTimeoutResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTimeoutResponse): MsgTimeoutResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTimeoutResponse",
-      value: MsgTimeoutResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTimeoutResponseProtoMsg): MsgTimeoutResponse {
-    return MsgTimeoutResponse.decode(message.value);
-  },
-  toProto(message: MsgTimeoutResponse): Uint8Array {
-    return MsgTimeoutResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTimeoutResponse): MsgTimeoutResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgTimeoutResponse",
-      value: MsgTimeoutResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgTimeoutOnClose(): MsgTimeoutOnClose {
-  return {
-    packet: Packet.fromPartial({}),
-    proofUnreceived: new Uint8Array(),
-    proofClose: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    nextSequenceRecv: BigInt(0),
-    signer: ""
-  };
-}
-export const MsgTimeoutOnClose = {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-  aminoType: "cosmos-sdk/MsgTimeoutOnClose",
-  encode(message: MsgTimeoutOnClose, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.packet !== undefined) {
-      Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proofUnreceived.length !== 0) {
-      writer.uint32(18).bytes(message.proofUnreceived);
-    }
-    if (message.proofClose.length !== 0) {
-      writer.uint32(26).bytes(message.proofClose);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.nextSequenceRecv !== BigInt(0)) {
-      writer.uint32(40).uint64(message.nextSequenceRecv);
-    }
-    if (message.signer !== "") {
-      writer.uint32(50).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeoutOnClose {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTimeoutOnClose();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.packet = Packet.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proofUnreceived = reader.bytes();
-          break;
-        case 3:
-          message.proofClose = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.nextSequenceRecv = reader.uint64();
-          break;
-        case 6:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgTimeoutOnClose {
-    return {
-      packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,
-      proofUnreceived: isSet(object.proofUnreceived) ? bytesFromBase64(object.proofUnreceived) : new Uint8Array(),
-      proofClose: isSet(object.proofClose) ? bytesFromBase64(object.proofClose) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      nextSequenceRecv: isSet(object.nextSequenceRecv) ? BigInt(object.nextSequenceRecv.toString()) : BigInt(0),
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgTimeoutOnClose): unknown {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);
-    message.proofUnreceived !== undefined && (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));
-    message.proofClose !== undefined && (obj.proofClose = base64FromBytes(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.nextSequenceRecv !== undefined && (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgTimeoutOnClose>): MsgTimeoutOnClose {
-    const message = createBaseMsgTimeoutOnClose();
-    message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined;
-    message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();
-    message.proofClose = object.proofClose ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.nextSequenceRecv = object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null ? BigInt(object.nextSequenceRecv.toString()) : BigInt(0);
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgTimeoutOnCloseSDKType): MsgTimeoutOnClose {
-    return {
-      packet: object.packet ? Packet.fromSDK(object.packet) : undefined,
-      proofUnreceived: object?.proof_unreceived,
-      proofClose: object?.proof_close,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      nextSequenceRecv: object?.next_sequence_recv,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgTimeoutOnClose): MsgTimeoutOnCloseSDKType {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toSDK(message.packet) : undefined);
-    obj.proof_unreceived = message.proofUnreceived;
-    obj.proof_close = message.proofClose;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.next_sequence_recv = message.nextSequenceRecv;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgTimeoutOnCloseAmino): MsgTimeoutOnClose {
-    return {
-      packet: object?.packet ? Packet.fromAmino(object.packet) : undefined,
-      proofUnreceived: object.proof_unreceived,
-      proofClose: object.proof_close,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      nextSequenceRecv: BigInt(object.next_sequence_recv),
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgTimeoutOnClose): MsgTimeoutOnCloseAmino {
-    const obj: any = {};
-    obj.packet = message.packet ? Packet.toAmino(message.packet) : undefined;
-    obj.proof_unreceived = message.proofUnreceived;
-    obj.proof_close = message.proofClose;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.next_sequence_recv = message.nextSequenceRecv ? message.nextSequenceRecv.toString() : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgTimeoutOnCloseAminoMsg): MsgTimeoutOnClose {
-    return MsgTimeoutOnClose.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTimeoutOnClose): MsgTimeoutOnCloseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTimeoutOnClose",
-      value: MsgTimeoutOnClose.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTimeoutOnCloseProtoMsg): MsgTimeoutOnClose {
-    return MsgTimeoutOnClose.decode(message.value);
-  },
-  toProto(message: MsgTimeoutOnClose): Uint8Array {
-    return MsgTimeoutOnClose.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTimeoutOnClose): MsgTimeoutOnCloseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose",
-      value: MsgTimeoutOnClose.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgTimeoutOnCloseResponse(): MsgTimeoutOnCloseResponse {
-  return {};
-}
-export const MsgTimeoutOnCloseResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnCloseResponse",
-  aminoType: "cosmos-sdk/MsgTimeoutOnCloseResponse",
-  encode(_: MsgTimeoutOnCloseResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeoutOnCloseResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgTimeoutOnCloseResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgTimeoutOnCloseResponse {
-    return {};
-  },
-  toJSON(_: MsgTimeoutOnCloseResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgTimeoutOnCloseResponse>): MsgTimeoutOnCloseResponse {
-    const message = createBaseMsgTimeoutOnCloseResponse();
-    return message;
-  },
-  fromSDK(_: MsgTimeoutOnCloseResponseSDKType): MsgTimeoutOnCloseResponse {
-    return {};
-  },
-  toSDK(_: MsgTimeoutOnCloseResponse): MsgTimeoutOnCloseResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgTimeoutOnCloseResponseAmino): MsgTimeoutOnCloseResponse {
-    return {};
-  },
-  toAmino(_: MsgTimeoutOnCloseResponse): MsgTimeoutOnCloseResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgTimeoutOnCloseResponseAminoMsg): MsgTimeoutOnCloseResponse {
-    return MsgTimeoutOnCloseResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgTimeoutOnCloseResponse): MsgTimeoutOnCloseResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgTimeoutOnCloseResponse",
-      value: MsgTimeoutOnCloseResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgTimeoutOnCloseResponseProtoMsg): MsgTimeoutOnCloseResponse {
-    return MsgTimeoutOnCloseResponse.decode(message.value);
-  },
-  toProto(message: MsgTimeoutOnCloseResponse): Uint8Array {
-    return MsgTimeoutOnCloseResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgTimeoutOnCloseResponse): MsgTimeoutOnCloseResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnCloseResponse",
-      value: MsgTimeoutOnCloseResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgAcknowledgement(): MsgAcknowledgement {
-  return {
-    packet: Packet.fromPartial({}),
-    acknowledgement: new Uint8Array(),
-    proofAcked: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgAcknowledgement = {
-  typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-  aminoType: "cosmos-sdk/MsgAcknowledgement",
-  encode(message: MsgAcknowledgement, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.packet !== undefined) {
-      Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.acknowledgement.length !== 0) {
-      writer.uint32(18).bytes(message.acknowledgement);
-    }
-    if (message.proofAcked.length !== 0) {
-      writer.uint32(26).bytes(message.proofAcked);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(42).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgAcknowledgement {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgAcknowledgement();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.packet = Packet.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.acknowledgement = reader.bytes();
-          break;
-        case 3:
-          message.proofAcked = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgAcknowledgement {
-    return {
-      packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,
-      acknowledgement: isSet(object.acknowledgement) ? bytesFromBase64(object.acknowledgement) : new Uint8Array(),
-      proofAcked: isSet(object.proofAcked) ? bytesFromBase64(object.proofAcked) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgAcknowledgement): unknown {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);
-    message.acknowledgement !== undefined && (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));
-    message.proofAcked !== undefined && (obj.proofAcked = base64FromBytes(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgAcknowledgement>): MsgAcknowledgement {
-    const message = createBaseMsgAcknowledgement();
-    message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined;
-    message.acknowledgement = object.acknowledgement ?? new Uint8Array();
-    message.proofAcked = object.proofAcked ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgAcknowledgementSDKType): MsgAcknowledgement {
-    return {
-      packet: object.packet ? Packet.fromSDK(object.packet) : undefined,
-      acknowledgement: object?.acknowledgement,
-      proofAcked: object?.proof_acked,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgAcknowledgement): MsgAcknowledgementSDKType {
-    const obj: any = {};
-    message.packet !== undefined && (obj.packet = message.packet ? Packet.toSDK(message.packet) : undefined);
-    obj.acknowledgement = message.acknowledgement;
-    obj.proof_acked = message.proofAcked;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgAcknowledgementAmino): MsgAcknowledgement {
-    return {
-      packet: object?.packet ? Packet.fromAmino(object.packet) : undefined,
-      acknowledgement: object.acknowledgement,
-      proofAcked: object.proof_acked,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgAcknowledgement): MsgAcknowledgementAmino {
-    const obj: any = {};
-    obj.packet = message.packet ? Packet.toAmino(message.packet) : undefined;
-    obj.acknowledgement = message.acknowledgement;
-    obj.proof_acked = message.proofAcked;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgAcknowledgementAminoMsg): MsgAcknowledgement {
-    return MsgAcknowledgement.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgAcknowledgement): MsgAcknowledgementAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgAcknowledgement",
-      value: MsgAcknowledgement.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgAcknowledgementProtoMsg): MsgAcknowledgement {
-    return MsgAcknowledgement.decode(message.value);
-  },
-  toProto(message: MsgAcknowledgement): Uint8Array {
-    return MsgAcknowledgement.encode(message).finish();
-  },
-  toProtoMsg(message: MsgAcknowledgement): MsgAcknowledgementProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement",
-      value: MsgAcknowledgement.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgAcknowledgementResponse(): MsgAcknowledgementResponse {
-  return {};
-}
-export const MsgAcknowledgementResponse = {
-  typeUrl: "/ibc.core.channel.v1.MsgAcknowledgementResponse",
-  aminoType: "cosmos-sdk/MsgAcknowledgementResponse",
-  encode(_: MsgAcknowledgementResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgAcknowledgementResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgAcknowledgementResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgAcknowledgementResponse {
-    return {};
-  },
-  toJSON(_: MsgAcknowledgementResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgAcknowledgementResponse>): MsgAcknowledgementResponse {
-    const message = createBaseMsgAcknowledgementResponse();
-    return message;
-  },
-  fromSDK(_: MsgAcknowledgementResponseSDKType): MsgAcknowledgementResponse {
-    return {};
-  },
-  toSDK(_: MsgAcknowledgementResponse): MsgAcknowledgementResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgAcknowledgementResponseAmino): MsgAcknowledgementResponse {
-    return {};
-  },
-  toAmino(_: MsgAcknowledgementResponse): MsgAcknowledgementResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgAcknowledgementResponseAminoMsg): MsgAcknowledgementResponse {
-    return MsgAcknowledgementResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgAcknowledgementResponse): MsgAcknowledgementResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgAcknowledgementResponse",
-      value: MsgAcknowledgementResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgAcknowledgementResponseProtoMsg): MsgAcknowledgementResponse {
-    return MsgAcknowledgementResponse.decode(message.value);
-  },
-  toProto(message: MsgAcknowledgementResponse): Uint8Array {
-    return MsgAcknowledgementResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgAcknowledgementResponse): MsgAcknowledgementResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.channel.v1.MsgAcknowledgementResponse",
-      value: MsgAcknowledgementResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/client.ts b/examples/injective/src/codegen/ibc/core/client/v1/client.ts
deleted file mode 100644
index 959ab539..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/client.ts
+++ /dev/null
@@ -1,1086 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { Plan, PlanAmino, PlanSDKType } from "../../../../cosmos/upgrade/v1beta1/upgrade";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * IdentifiedClientState defines a client state with an additional client
- * identifier field.
- */
-export interface IdentifiedClientState {
-  /** client identifier */
-  clientId: string;
-  /** client state */
-  clientState: Any | undefined;
-}
-export interface IdentifiedClientStateProtoMsg {
-  typeUrl: "/ibc.core.client.v1.IdentifiedClientState";
-  value: Uint8Array;
-}
-/**
- * IdentifiedClientState defines a client state with an additional client
- * identifier field.
- */
-export interface IdentifiedClientStateAmino {
-  /** client identifier */
-  client_id: string;
-  /** client state */
-  client_state?: AnyAmino | undefined;
-}
-export interface IdentifiedClientStateAminoMsg {
-  type: "cosmos-sdk/IdentifiedClientState";
-  value: IdentifiedClientStateAmino;
-}
-/**
- * IdentifiedClientState defines a client state with an additional client
- * identifier field.
- */
-export interface IdentifiedClientStateSDKType {
-  client_id: string;
-  client_state: AnySDKType | undefined;
-}
-/**
- * ConsensusStateWithHeight defines a consensus state with an additional height
- * field.
- */
-export interface ConsensusStateWithHeight {
-  /** consensus state height */
-  height: Height | undefined;
-  /** consensus state */
-  consensusState: Any | undefined;
-}
-export interface ConsensusStateWithHeightProtoMsg {
-  typeUrl: "/ibc.core.client.v1.ConsensusStateWithHeight";
-  value: Uint8Array;
-}
-/**
- * ConsensusStateWithHeight defines a consensus state with an additional height
- * field.
- */
-export interface ConsensusStateWithHeightAmino {
-  /** consensus state height */
-  height?: HeightAmino | undefined;
-  /** consensus state */
-  consensus_state?: AnyAmino | undefined;
-}
-export interface ConsensusStateWithHeightAminoMsg {
-  type: "cosmos-sdk/ConsensusStateWithHeight";
-  value: ConsensusStateWithHeightAmino;
-}
-/**
- * ConsensusStateWithHeight defines a consensus state with an additional height
- * field.
- */
-export interface ConsensusStateWithHeightSDKType {
-  height: HeightSDKType | undefined;
-  consensus_state: AnySDKType | undefined;
-}
-/**
- * ClientConsensusStates defines all the stored consensus states for a given
- * client.
- */
-export interface ClientConsensusStates {
-  /** client identifier */
-  clientId: string;
-  /** consensus states and their heights associated with the client */
-  consensusStates: ConsensusStateWithHeight[];
-}
-export interface ClientConsensusStatesProtoMsg {
-  typeUrl: "/ibc.core.client.v1.ClientConsensusStates";
-  value: Uint8Array;
-}
-/**
- * ClientConsensusStates defines all the stored consensus states for a given
- * client.
- */
-export interface ClientConsensusStatesAmino {
-  /** client identifier */
-  client_id: string;
-  /** consensus states and their heights associated with the client */
-  consensus_states: ConsensusStateWithHeightAmino[];
-}
-export interface ClientConsensusStatesAminoMsg {
-  type: "cosmos-sdk/ClientConsensusStates";
-  value: ClientConsensusStatesAmino;
-}
-/**
- * ClientConsensusStates defines all the stored consensus states for a given
- * client.
- */
-export interface ClientConsensusStatesSDKType {
-  client_id: string;
-  consensus_states: ConsensusStateWithHeightSDKType[];
-}
-/**
- * ClientUpdateProposal is a governance proposal. If it passes, the substitute
- * client's latest consensus state is copied over to the subject client. The proposal
- * handler may fail if the subject and the substitute do not match in client and
- * chain parameters (with exception to latest height, frozen height, and chain-id).
- */
-export interface ClientUpdateProposal {
-  /** the title of the update proposal */
-  title: string;
-  /** the description of the proposal */
-  description: string;
-  /** the client identifier for the client to be updated if the proposal passes */
-  subjectClientId: string;
-  /**
-   * the substitute client identifier for the client standing in for the subject
-   * client
-   */
-  substituteClientId: string;
-}
-export interface ClientUpdateProposalProtoMsg {
-  typeUrl: "/ibc.core.client.v1.ClientUpdateProposal";
-  value: Uint8Array;
-}
-/**
- * ClientUpdateProposal is a governance proposal. If it passes, the substitute
- * client's latest consensus state is copied over to the subject client. The proposal
- * handler may fail if the subject and the substitute do not match in client and
- * chain parameters (with exception to latest height, frozen height, and chain-id).
- */
-export interface ClientUpdateProposalAmino {
-  /** the title of the update proposal */
-  title: string;
-  /** the description of the proposal */
-  description: string;
-  /** the client identifier for the client to be updated if the proposal passes */
-  subject_client_id: string;
-  /**
-   * the substitute client identifier for the client standing in for the subject
-   * client
-   */
-  substitute_client_id: string;
-}
-export interface ClientUpdateProposalAminoMsg {
-  type: "cosmos-sdk/ClientUpdateProposal";
-  value: ClientUpdateProposalAmino;
-}
-/**
- * ClientUpdateProposal is a governance proposal. If it passes, the substitute
- * client's latest consensus state is copied over to the subject client. The proposal
- * handler may fail if the subject and the substitute do not match in client and
- * chain parameters (with exception to latest height, frozen height, and chain-id).
- */
-export interface ClientUpdateProposalSDKType {
-  title: string;
-  description: string;
-  subject_client_id: string;
-  substitute_client_id: string;
-}
-/**
- * UpgradeProposal is a gov Content type for initiating an IBC breaking
- * upgrade.
- */
-export interface UpgradeProposal {
-  title: string;
-  description: string;
-  plan: Plan | undefined;
-  /**
-   * An UpgradedClientState must be provided to perform an IBC breaking upgrade.
-   * This will make the chain commit to the correct upgraded (self) client state
-   * before the upgrade occurs, so that connecting chains can verify that the
-   * new upgraded client is valid by verifying a proof on the previous version
-   * of the chain. This will allow IBC connections to persist smoothly across
-   * planned chain upgrades
-   */
-  upgradedClientState: Any | undefined;
-}
-export interface UpgradeProposalProtoMsg {
-  typeUrl: "/ibc.core.client.v1.UpgradeProposal";
-  value: Uint8Array;
-}
-/**
- * UpgradeProposal is a gov Content type for initiating an IBC breaking
- * upgrade.
- */
-export interface UpgradeProposalAmino {
-  title: string;
-  description: string;
-  plan?: PlanAmino | undefined;
-  /**
-   * An UpgradedClientState must be provided to perform an IBC breaking upgrade.
-   * This will make the chain commit to the correct upgraded (self) client state
-   * before the upgrade occurs, so that connecting chains can verify that the
-   * new upgraded client is valid by verifying a proof on the previous version
-   * of the chain. This will allow IBC connections to persist smoothly across
-   * planned chain upgrades
-   */
-  upgraded_client_state?: AnyAmino | undefined;
-}
-export interface UpgradeProposalAminoMsg {
-  type: "cosmos-sdk/UpgradeProposal";
-  value: UpgradeProposalAmino;
-}
-/**
- * UpgradeProposal is a gov Content type for initiating an IBC breaking
- * upgrade.
- */
-export interface UpgradeProposalSDKType {
-  title: string;
-  description: string;
-  plan: PlanSDKType | undefined;
-  upgraded_client_state: AnySDKType | undefined;
-}
-/**
- * Height is a monotonically increasing data type
- * that can be compared against another Height for the purposes of updating and
- * freezing clients
- * 
- * Normally the RevisionHeight is incremented at each height while keeping
- * RevisionNumber the same. However some consensus algorithms may choose to
- * reset the height in certain conditions e.g. hard forks, state-machine
- * breaking changes In these cases, the RevisionNumber is incremented so that
- * height continues to be monitonically increasing even as the RevisionHeight
- * gets reset
- */
-export interface Height {
-  /** the revision that the client is currently on */
-  revisionNumber: bigint;
-  /** the height within the given revision */
-  revisionHeight: bigint;
-}
-export interface HeightProtoMsg {
-  typeUrl: "/ibc.core.client.v1.Height";
-  value: Uint8Array;
-}
-/**
- * Height is a monotonically increasing data type
- * that can be compared against another Height for the purposes of updating and
- * freezing clients
- * 
- * Normally the RevisionHeight is incremented at each height while keeping
- * RevisionNumber the same. However some consensus algorithms may choose to
- * reset the height in certain conditions e.g. hard forks, state-machine
- * breaking changes In these cases, the RevisionNumber is incremented so that
- * height continues to be monitonically increasing even as the RevisionHeight
- * gets reset
- */
-export interface HeightAmino {
-  /** the revision that the client is currently on */
-  revision_number: string;
-  /** the height within the given revision */
-  revision_height: string;
-}
-export interface HeightAminoMsg {
-  type: "cosmos-sdk/Height";
-  value: HeightAmino;
-}
-/**
- * Height is a monotonically increasing data type
- * that can be compared against another Height for the purposes of updating and
- * freezing clients
- * 
- * Normally the RevisionHeight is incremented at each height while keeping
- * RevisionNumber the same. However some consensus algorithms may choose to
- * reset the height in certain conditions e.g. hard forks, state-machine
- * breaking changes In these cases, the RevisionNumber is incremented so that
- * height continues to be monitonically increasing even as the RevisionHeight
- * gets reset
- */
-export interface HeightSDKType {
-  revision_number: bigint;
-  revision_height: bigint;
-}
-/** Params defines the set of IBC light client parameters. */
-export interface Params {
-  /** allowed_clients defines the list of allowed client state types. */
-  allowedClients: string[];
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/ibc.core.client.v1.Params";
-  value: Uint8Array;
-}
-/** Params defines the set of IBC light client parameters. */
-export interface ParamsAmino {
-  /** allowed_clients defines the list of allowed client state types. */
-  allowed_clients: string[];
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the set of IBC light client parameters. */
-export interface ParamsSDKType {
-  allowed_clients: string[];
-}
-function createBaseIdentifiedClientState(): IdentifiedClientState {
-  return {
-    clientId: "",
-    clientState: Any.fromPartial({})
-  };
-}
-export const IdentifiedClientState = {
-  typeUrl: "/ibc.core.client.v1.IdentifiedClientState",
-  aminoType: "cosmos-sdk/IdentifiedClientState",
-  encode(message: IdentifiedClientState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IdentifiedClientState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIdentifiedClientState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IdentifiedClientState {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined
-    };
-  },
-  toJSON(message: IdentifiedClientState): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IdentifiedClientState>): IdentifiedClientState {
-    const message = createBaseIdentifiedClientState();
-    message.clientId = object.clientId ?? "";
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    return message;
-  },
-  fromSDK(object: IdentifiedClientStateSDKType): IdentifiedClientState {
-    return {
-      clientId: object?.client_id,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined
-    };
-  },
-  toSDK(message: IdentifiedClientState): IdentifiedClientStateSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: IdentifiedClientStateAmino): IdentifiedClientState {
-    return {
-      clientId: object.client_id,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined
-    };
-  },
-  toAmino(message: IdentifiedClientState): IdentifiedClientStateAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: IdentifiedClientStateAminoMsg): IdentifiedClientState {
-    return IdentifiedClientState.fromAmino(object.value);
-  },
-  toAminoMsg(message: IdentifiedClientState): IdentifiedClientStateAminoMsg {
-    return {
-      type: "cosmos-sdk/IdentifiedClientState",
-      value: IdentifiedClientState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IdentifiedClientStateProtoMsg): IdentifiedClientState {
-    return IdentifiedClientState.decode(message.value);
-  },
-  toProto(message: IdentifiedClientState): Uint8Array {
-    return IdentifiedClientState.encode(message).finish();
-  },
-  toProtoMsg(message: IdentifiedClientState): IdentifiedClientStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.IdentifiedClientState",
-      value: IdentifiedClientState.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusStateWithHeight(): ConsensusStateWithHeight {
-  return {
-    height: Height.fromPartial({}),
-    consensusState: Any.fromPartial({})
-  };
-}
-export const ConsensusStateWithHeight = {
-  typeUrl: "/ibc.core.client.v1.ConsensusStateWithHeight",
-  aminoType: "cosmos-sdk/ConsensusStateWithHeight",
-  encode(message: ConsensusStateWithHeight, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusStateWithHeight {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusStateWithHeight();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusStateWithHeight {
-    return {
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined,
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined
-    };
-  },
-  toJSON(message: ConsensusStateWithHeight): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusStateWithHeight>): ConsensusStateWithHeight {
-    const message = createBaseConsensusStateWithHeight();
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    return message;
-  },
-  fromSDK(object: ConsensusStateWithHeightSDKType): ConsensusStateWithHeight {
-    return {
-      height: object.height ? Height.fromSDK(object.height) : undefined,
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined
-    };
-  },
-  toSDK(message: ConsensusStateWithHeight): ConsensusStateWithHeightSDKType {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConsensusStateWithHeightAmino): ConsensusStateWithHeight {
-    return {
-      height: object?.height ? Height.fromAmino(object.height) : undefined,
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined
-    };
-  },
-  toAmino(message: ConsensusStateWithHeight): ConsensusStateWithHeightAmino {
-    const obj: any = {};
-    obj.height = message.height ? Height.toAmino(message.height) : undefined;
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateWithHeightAminoMsg): ConsensusStateWithHeight {
-    return ConsensusStateWithHeight.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusStateWithHeight): ConsensusStateWithHeightAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusStateWithHeight",
-      value: ConsensusStateWithHeight.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateWithHeightProtoMsg): ConsensusStateWithHeight {
-    return ConsensusStateWithHeight.decode(message.value);
-  },
-  toProto(message: ConsensusStateWithHeight): Uint8Array {
-    return ConsensusStateWithHeight.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusStateWithHeight): ConsensusStateWithHeightProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.ConsensusStateWithHeight",
-      value: ConsensusStateWithHeight.encode(message).finish()
-    };
-  }
-};
-function createBaseClientConsensusStates(): ClientConsensusStates {
-  return {
-    clientId: "",
-    consensusStates: []
-  };
-}
-export const ClientConsensusStates = {
-  typeUrl: "/ibc.core.client.v1.ClientConsensusStates",
-  aminoType: "cosmos-sdk/ClientConsensusStates",
-  encode(message: ClientConsensusStates, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    for (const v of message.consensusStates) {
-      ConsensusStateWithHeight.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientConsensusStates {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientConsensusStates();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.consensusStates.push(ConsensusStateWithHeight.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientConsensusStates {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      consensusStates: Array.isArray(object?.consensusStates) ? object.consensusStates.map((e: any) => ConsensusStateWithHeight.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ClientConsensusStates): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    if (message.consensusStates) {
-      obj.consensusStates = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toJSON(e) : undefined);
-    } else {
-      obj.consensusStates = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientConsensusStates>): ClientConsensusStates {
-    const message = createBaseClientConsensusStates();
-    message.clientId = object.clientId ?? "";
-    message.consensusStates = object.consensusStates?.map(e => ConsensusStateWithHeight.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ClientConsensusStatesSDKType): ClientConsensusStates {
-    return {
-      clientId: object?.client_id,
-      consensusStates: Array.isArray(object?.consensus_states) ? object.consensus_states.map((e: any) => ConsensusStateWithHeight.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ClientConsensusStates): ClientConsensusStatesSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.consensusStates) {
-      obj.consensus_states = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toSDK(e) : undefined);
-    } else {
-      obj.consensus_states = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ClientConsensusStatesAmino): ClientConsensusStates {
-    return {
-      clientId: object.client_id,
-      consensusStates: Array.isArray(object?.consensus_states) ? object.consensus_states.map((e: any) => ConsensusStateWithHeight.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ClientConsensusStates): ClientConsensusStatesAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.consensusStates) {
-      obj.consensus_states = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toAmino(e) : undefined);
-    } else {
-      obj.consensus_states = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ClientConsensusStatesAminoMsg): ClientConsensusStates {
-    return ClientConsensusStates.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientConsensusStates): ClientConsensusStatesAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientConsensusStates",
-      value: ClientConsensusStates.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientConsensusStatesProtoMsg): ClientConsensusStates {
-    return ClientConsensusStates.decode(message.value);
-  },
-  toProto(message: ClientConsensusStates): Uint8Array {
-    return ClientConsensusStates.encode(message).finish();
-  },
-  toProtoMsg(message: ClientConsensusStates): ClientConsensusStatesProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.ClientConsensusStates",
-      value: ClientConsensusStates.encode(message).finish()
-    };
-  }
-};
-function createBaseClientUpdateProposal(): ClientUpdateProposal {
-  return {
-    title: "",
-    description: "",
-    subjectClientId: "",
-    substituteClientId: ""
-  };
-}
-export const ClientUpdateProposal = {
-  typeUrl: "/ibc.core.client.v1.ClientUpdateProposal",
-  aminoType: "cosmos-sdk/ClientUpdateProposal",
-  encode(message: ClientUpdateProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.subjectClientId !== "") {
-      writer.uint32(26).string(message.subjectClientId);
-    }
-    if (message.substituteClientId !== "") {
-      writer.uint32(34).string(message.substituteClientId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientUpdateProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientUpdateProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.subjectClientId = reader.string();
-          break;
-        case 4:
-          message.substituteClientId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientUpdateProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      subjectClientId: isSet(object.subjectClientId) ? String(object.subjectClientId) : "",
-      substituteClientId: isSet(object.substituteClientId) ? String(object.substituteClientId) : ""
-    };
-  },
-  toJSON(message: ClientUpdateProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.subjectClientId !== undefined && (obj.subjectClientId = message.subjectClientId);
-    message.substituteClientId !== undefined && (obj.substituteClientId = message.substituteClientId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientUpdateProposal>): ClientUpdateProposal {
-    const message = createBaseClientUpdateProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.subjectClientId = object.subjectClientId ?? "";
-    message.substituteClientId = object.substituteClientId ?? "";
-    return message;
-  },
-  fromSDK(object: ClientUpdateProposalSDKType): ClientUpdateProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      subjectClientId: object?.subject_client_id,
-      substituteClientId: object?.substitute_client_id
-    };
-  },
-  toSDK(message: ClientUpdateProposal): ClientUpdateProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.subject_client_id = message.subjectClientId;
-    obj.substitute_client_id = message.substituteClientId;
-    return obj;
-  },
-  fromAmino(object: ClientUpdateProposalAmino): ClientUpdateProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      subjectClientId: object.subject_client_id,
-      substituteClientId: object.substitute_client_id
-    };
-  },
-  toAmino(message: ClientUpdateProposal): ClientUpdateProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.subject_client_id = message.subjectClientId;
-    obj.substitute_client_id = message.substituteClientId;
-    return obj;
-  },
-  fromAminoMsg(object: ClientUpdateProposalAminoMsg): ClientUpdateProposal {
-    return ClientUpdateProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientUpdateProposal): ClientUpdateProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientUpdateProposal",
-      value: ClientUpdateProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientUpdateProposalProtoMsg): ClientUpdateProposal {
-    return ClientUpdateProposal.decode(message.value);
-  },
-  toProto(message: ClientUpdateProposal): Uint8Array {
-    return ClientUpdateProposal.encode(message).finish();
-  },
-  toProtoMsg(message: ClientUpdateProposal): ClientUpdateProposalProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.ClientUpdateProposal",
-      value: ClientUpdateProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseUpgradeProposal(): UpgradeProposal {
-  return {
-    title: "",
-    description: "",
-    plan: Plan.fromPartial({}),
-    upgradedClientState: Any.fromPartial({})
-  };
-}
-export const UpgradeProposal = {
-  typeUrl: "/ibc.core.client.v1.UpgradeProposal",
-  aminoType: "cosmos-sdk/UpgradeProposal",
-  encode(message: UpgradeProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.plan !== undefined) {
-      Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.upgradedClientState !== undefined) {
-      Any.encode(message.upgradedClientState, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpgradeProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpgradeProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.plan = Plan.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.upgradedClientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpgradeProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined,
-      upgradedClientState: isSet(object.upgradedClientState) ? Any.fromJSON(object.upgradedClientState) : undefined
-    };
-  },
-  toJSON(message: UpgradeProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);
-    message.upgradedClientState !== undefined && (obj.upgradedClientState = message.upgradedClientState ? Any.toJSON(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpgradeProposal>): UpgradeProposal {
-    const message = createBaseUpgradeProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined;
-    message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined;
-    return message;
-  },
-  fromSDK(object: UpgradeProposalSDKType): UpgradeProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      plan: object.plan ? Plan.fromSDK(object.plan) : undefined,
-      upgradedClientState: object.upgraded_client_state ? Any.fromSDK(object.upgraded_client_state) : undefined
-    };
-  },
-  toSDK(message: UpgradeProposal): UpgradeProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    message.plan !== undefined && (obj.plan = message.plan ? Plan.toSDK(message.plan) : undefined);
-    message.upgradedClientState !== undefined && (obj.upgraded_client_state = message.upgradedClientState ? Any.toSDK(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpgradeProposalAmino): UpgradeProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      plan: object?.plan ? Plan.fromAmino(object.plan) : undefined,
-      upgradedClientState: object?.upgraded_client_state ? Any.fromAmino(object.upgraded_client_state) : undefined
-    };
-  },
-  toAmino(message: UpgradeProposal): UpgradeProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.plan = message.plan ? Plan.toAmino(message.plan) : undefined;
-    obj.upgraded_client_state = message.upgradedClientState ? Any.toAmino(message.upgradedClientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpgradeProposalAminoMsg): UpgradeProposal {
-    return UpgradeProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpgradeProposal): UpgradeProposalAminoMsg {
-    return {
-      type: "cosmos-sdk/UpgradeProposal",
-      value: UpgradeProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpgradeProposalProtoMsg): UpgradeProposal {
-    return UpgradeProposal.decode(message.value);
-  },
-  toProto(message: UpgradeProposal): Uint8Array {
-    return UpgradeProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UpgradeProposal): UpgradeProposalProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.UpgradeProposal",
-      value: UpgradeProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseHeight(): Height {
-  return {
-    revisionNumber: BigInt(0),
-    revisionHeight: BigInt(0)
-  };
-}
-export const Height = {
-  typeUrl: "/ibc.core.client.v1.Height",
-  aminoType: "cosmos-sdk/Height",
-  encode(message: Height, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.revisionNumber !== BigInt(0)) {
-      writer.uint32(8).uint64(message.revisionNumber);
-    }
-    if (message.revisionHeight !== BigInt(0)) {
-      writer.uint32(16).uint64(message.revisionHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Height {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeight();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.revisionNumber = reader.uint64();
-          break;
-        case 2:
-          message.revisionHeight = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Height {
-    return {
-      revisionNumber: isSet(object.revisionNumber) ? BigInt(object.revisionNumber.toString()) : BigInt(0),
-      revisionHeight: isSet(object.revisionHeight) ? BigInt(object.revisionHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Height): unknown {
-    const obj: any = {};
-    message.revisionNumber !== undefined && (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());
-    message.revisionHeight !== undefined && (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Height>): Height {
-    const message = createBaseHeight();
-    message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? BigInt(object.revisionNumber.toString()) : BigInt(0);
-    message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? BigInt(object.revisionHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: HeightSDKType): Height {
-    return {
-      revisionNumber: object?.revision_number,
-      revisionHeight: object?.revision_height
-    };
-  },
-  toSDK(message: Height): HeightSDKType {
-    const obj: any = {};
-    obj.revision_number = message.revisionNumber;
-    obj.revision_height = message.revisionHeight;
-    return obj;
-  },
-  fromAmino(object: HeightAmino): Height {
-    return {
-      revisionNumber: BigInt(object.revision_number || "0"),
-      revisionHeight: BigInt(object.revision_height || "0")
-    };
-  },
-  toAmino(message: Height): HeightAmino {
-    const obj: any = {};
-    obj.revision_number = message.revisionNumber ? message.revisionNumber.toString() : undefined;
-    obj.revision_height = message.revisionHeight ? message.revisionHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: HeightAminoMsg): Height {
-    return Height.fromAmino(object.value);
-  },
-  toAminoMsg(message: Height): HeightAminoMsg {
-    return {
-      type: "cosmos-sdk/Height",
-      value: Height.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeightProtoMsg): Height {
-    return Height.decode(message.value);
-  },
-  toProto(message: Height): Uint8Array {
-    return Height.encode(message).finish();
-  },
-  toProtoMsg(message: Height): HeightProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.Height",
-      value: Height.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    allowedClients: []
-  };
-}
-export const Params = {
-  typeUrl: "/ibc.core.client.v1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.allowedClients) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.allowedClients.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      allowedClients: Array.isArray(object?.allowedClients) ? object.allowedClients.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    if (message.allowedClients) {
-      obj.allowedClients = message.allowedClients.map(e => e);
-    } else {
-      obj.allowedClients = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.allowedClients = object.allowedClients?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      allowedClients: Array.isArray(object?.allowed_clients) ? object.allowed_clients.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    if (message.allowedClients) {
-      obj.allowed_clients = message.allowedClients.map(e => e);
-    } else {
-      obj.allowed_clients = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      allowedClients: Array.isArray(object?.allowed_clients) ? object.allowed_clients.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    if (message.allowedClients) {
-      obj.allowed_clients = message.allowedClients.map(e => e);
-    } else {
-      obj.allowed_clients = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/genesis.ts b/examples/injective/src/codegen/ibc/core/client/v1/genesis.ts
deleted file mode 100644
index 3a4ffed5..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/genesis.ts
+++ /dev/null
@@ -1,526 +0,0 @@
-import { IdentifiedClientState, IdentifiedClientStateAmino, IdentifiedClientStateSDKType, ClientConsensusStates, ClientConsensusStatesAmino, ClientConsensusStatesSDKType, Params, ParamsAmino, ParamsSDKType } from "./client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/** GenesisState defines the ibc client submodule's genesis state. */
-export interface GenesisState {
-  /** client states with their corresponding identifiers */
-  clients: IdentifiedClientState[];
-  /** consensus states from each client */
-  clientsConsensus: ClientConsensusStates[];
-  /** metadata from each client */
-  clientsMetadata: IdentifiedGenesisMetadata[];
-  params: Params | undefined;
-  /** create localhost on initialization */
-  createLocalhost: boolean;
-  /** the sequence for the next generated client identifier */
-  nextClientSequence: bigint;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/ibc.core.client.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the ibc client submodule's genesis state. */
-export interface GenesisStateAmino {
-  /** client states with their corresponding identifiers */
-  clients: IdentifiedClientStateAmino[];
-  /** consensus states from each client */
-  clients_consensus: ClientConsensusStatesAmino[];
-  /** metadata from each client */
-  clients_metadata: IdentifiedGenesisMetadataAmino[];
-  params?: ParamsAmino | undefined;
-  /** create localhost on initialization */
-  create_localhost: boolean;
-  /** the sequence for the next generated client identifier */
-  next_client_sequence: string;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the ibc client submodule's genesis state. */
-export interface GenesisStateSDKType {
-  clients: IdentifiedClientStateSDKType[];
-  clients_consensus: ClientConsensusStatesSDKType[];
-  clients_metadata: IdentifiedGenesisMetadataSDKType[];
-  params: ParamsSDKType | undefined;
-  create_localhost: boolean;
-  next_client_sequence: bigint;
-}
-/**
- * GenesisMetadata defines the genesis type for metadata that clients may return
- * with ExportMetadata
- */
-export interface GenesisMetadata {
-  /** store key of metadata without clientID-prefix */
-  key: Uint8Array;
-  /** metadata value */
-  value: Uint8Array;
-}
-export interface GenesisMetadataProtoMsg {
-  typeUrl: "/ibc.core.client.v1.GenesisMetadata";
-  value: Uint8Array;
-}
-/**
- * GenesisMetadata defines the genesis type for metadata that clients may return
- * with ExportMetadata
- */
-export interface GenesisMetadataAmino {
-  /** store key of metadata without clientID-prefix */
-  key: Uint8Array;
-  /** metadata value */
-  value: Uint8Array;
-}
-export interface GenesisMetadataAminoMsg {
-  type: "cosmos-sdk/GenesisMetadata";
-  value: GenesisMetadataAmino;
-}
-/**
- * GenesisMetadata defines the genesis type for metadata that clients may return
- * with ExportMetadata
- */
-export interface GenesisMetadataSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-}
-/**
- * IdentifiedGenesisMetadata has the client metadata with the corresponding
- * client id.
- */
-export interface IdentifiedGenesisMetadata {
-  clientId: string;
-  clientMetadata: GenesisMetadata[];
-}
-export interface IdentifiedGenesisMetadataProtoMsg {
-  typeUrl: "/ibc.core.client.v1.IdentifiedGenesisMetadata";
-  value: Uint8Array;
-}
-/**
- * IdentifiedGenesisMetadata has the client metadata with the corresponding
- * client id.
- */
-export interface IdentifiedGenesisMetadataAmino {
-  client_id: string;
-  client_metadata: GenesisMetadataAmino[];
-}
-export interface IdentifiedGenesisMetadataAminoMsg {
-  type: "cosmos-sdk/IdentifiedGenesisMetadata";
-  value: IdentifiedGenesisMetadataAmino;
-}
-/**
- * IdentifiedGenesisMetadata has the client metadata with the corresponding
- * client id.
- */
-export interface IdentifiedGenesisMetadataSDKType {
-  client_id: string;
-  client_metadata: GenesisMetadataSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    clients: [],
-    clientsConsensus: [],
-    clientsMetadata: [],
-    params: Params.fromPartial({}),
-    createLocalhost: false,
-    nextClientSequence: BigInt(0)
-  };
-}
-export const GenesisState = {
-  typeUrl: "/ibc.core.client.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.clients) {
-      IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.clientsConsensus) {
-      ClientConsensusStates.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.clientsMetadata) {
-      IdentifiedGenesisMetadata.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.createLocalhost === true) {
-      writer.uint32(40).bool(message.createLocalhost);
-    }
-    if (message.nextClientSequence !== BigInt(0)) {
-      writer.uint32(48).uint64(message.nextClientSequence);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clients.push(IdentifiedClientState.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.clientsConsensus.push(ClientConsensusStates.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.clientsMetadata.push(IdentifiedGenesisMetadata.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.createLocalhost = reader.bool();
-          break;
-        case 6:
-          message.nextClientSequence = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      clients: Array.isArray(object?.clients) ? object.clients.map((e: any) => IdentifiedClientState.fromJSON(e)) : [],
-      clientsConsensus: Array.isArray(object?.clientsConsensus) ? object.clientsConsensus.map((e: any) => ClientConsensusStates.fromJSON(e)) : [],
-      clientsMetadata: Array.isArray(object?.clientsMetadata) ? object.clientsMetadata.map((e: any) => IdentifiedGenesisMetadata.fromJSON(e)) : [],
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      createLocalhost: isSet(object.createLocalhost) ? Boolean(object.createLocalhost) : false,
-      nextClientSequence: isSet(object.nextClientSequence) ? BigInt(object.nextClientSequence.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.clients) {
-      obj.clients = message.clients.map(e => e ? IdentifiedClientState.toJSON(e) : undefined);
-    } else {
-      obj.clients = [];
-    }
-    if (message.clientsConsensus) {
-      obj.clientsConsensus = message.clientsConsensus.map(e => e ? ClientConsensusStates.toJSON(e) : undefined);
-    } else {
-      obj.clientsConsensus = [];
-    }
-    if (message.clientsMetadata) {
-      obj.clientsMetadata = message.clientsMetadata.map(e => e ? IdentifiedGenesisMetadata.toJSON(e) : undefined);
-    } else {
-      obj.clientsMetadata = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    message.createLocalhost !== undefined && (obj.createLocalhost = message.createLocalhost);
-    message.nextClientSequence !== undefined && (obj.nextClientSequence = (message.nextClientSequence || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.clients = object.clients?.map(e => IdentifiedClientState.fromPartial(e)) || [];
-    message.clientsConsensus = object.clientsConsensus?.map(e => ClientConsensusStates.fromPartial(e)) || [];
-    message.clientsMetadata = object.clientsMetadata?.map(e => IdentifiedGenesisMetadata.fromPartial(e)) || [];
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.createLocalhost = object.createLocalhost ?? false;
-    message.nextClientSequence = object.nextClientSequence !== undefined && object.nextClientSequence !== null ? BigInt(object.nextClientSequence.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      clients: Array.isArray(object?.clients) ? object.clients.map((e: any) => IdentifiedClientState.fromSDK(e)) : [],
-      clientsConsensus: Array.isArray(object?.clients_consensus) ? object.clients_consensus.map((e: any) => ClientConsensusStates.fromSDK(e)) : [],
-      clientsMetadata: Array.isArray(object?.clients_metadata) ? object.clients_metadata.map((e: any) => IdentifiedGenesisMetadata.fromSDK(e)) : [],
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      createLocalhost: object?.create_localhost,
-      nextClientSequence: object?.next_client_sequence
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.clients) {
-      obj.clients = message.clients.map(e => e ? IdentifiedClientState.toSDK(e) : undefined);
-    } else {
-      obj.clients = [];
-    }
-    if (message.clientsConsensus) {
-      obj.clients_consensus = message.clientsConsensus.map(e => e ? ClientConsensusStates.toSDK(e) : undefined);
-    } else {
-      obj.clients_consensus = [];
-    }
-    if (message.clientsMetadata) {
-      obj.clients_metadata = message.clientsMetadata.map(e => e ? IdentifiedGenesisMetadata.toSDK(e) : undefined);
-    } else {
-      obj.clients_metadata = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    obj.create_localhost = message.createLocalhost;
-    obj.next_client_sequence = message.nextClientSequence;
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      clients: Array.isArray(object?.clients) ? object.clients.map((e: any) => IdentifiedClientState.fromAmino(e)) : [],
-      clientsConsensus: Array.isArray(object?.clients_consensus) ? object.clients_consensus.map((e: any) => ClientConsensusStates.fromAmino(e)) : [],
-      clientsMetadata: Array.isArray(object?.clients_metadata) ? object.clients_metadata.map((e: any) => IdentifiedGenesisMetadata.fromAmino(e)) : [],
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      createLocalhost: object.create_localhost,
-      nextClientSequence: BigInt(object.next_client_sequence)
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.clients) {
-      obj.clients = message.clients.map(e => e ? IdentifiedClientState.toAmino(e) : undefined);
-    } else {
-      obj.clients = [];
-    }
-    if (message.clientsConsensus) {
-      obj.clients_consensus = message.clientsConsensus.map(e => e ? ClientConsensusStates.toAmino(e) : undefined);
-    } else {
-      obj.clients_consensus = [];
-    }
-    if (message.clientsMetadata) {
-      obj.clients_metadata = message.clientsMetadata.map(e => e ? IdentifiedGenesisMetadata.toAmino(e) : undefined);
-    } else {
-      obj.clients_metadata = [];
-    }
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    obj.create_localhost = message.createLocalhost;
-    obj.next_client_sequence = message.nextClientSequence ? message.nextClientSequence.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisMetadata(): GenesisMetadata {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array()
-  };
-}
-export const GenesisMetadata = {
-  typeUrl: "/ibc.core.client.v1.GenesisMetadata",
-  aminoType: "cosmos-sdk/GenesisMetadata",
-  encode(message: GenesisMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisMetadata {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array()
-    };
-  },
-  toJSON(message: GenesisMetadata): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisMetadata>): GenesisMetadata {
-    const message = createBaseGenesisMetadata();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: GenesisMetadataSDKType): GenesisMetadata {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: GenesisMetadata): GenesisMetadataSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: GenesisMetadataAmino): GenesisMetadata {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: GenesisMetadata): GenesisMetadataAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisMetadataAminoMsg): GenesisMetadata {
-    return GenesisMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisMetadata): GenesisMetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisMetadata",
-      value: GenesisMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisMetadataProtoMsg): GenesisMetadata {
-    return GenesisMetadata.decode(message.value);
-  },
-  toProto(message: GenesisMetadata): Uint8Array {
-    return GenesisMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisMetadata): GenesisMetadataProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.GenesisMetadata",
-      value: GenesisMetadata.encode(message).finish()
-    };
-  }
-};
-function createBaseIdentifiedGenesisMetadata(): IdentifiedGenesisMetadata {
-  return {
-    clientId: "",
-    clientMetadata: []
-  };
-}
-export const IdentifiedGenesisMetadata = {
-  typeUrl: "/ibc.core.client.v1.IdentifiedGenesisMetadata",
-  aminoType: "cosmos-sdk/IdentifiedGenesisMetadata",
-  encode(message: IdentifiedGenesisMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    for (const v of message.clientMetadata) {
-      GenesisMetadata.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IdentifiedGenesisMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIdentifiedGenesisMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.clientMetadata.push(GenesisMetadata.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IdentifiedGenesisMetadata {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      clientMetadata: Array.isArray(object?.clientMetadata) ? object.clientMetadata.map((e: any) => GenesisMetadata.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: IdentifiedGenesisMetadata): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    if (message.clientMetadata) {
-      obj.clientMetadata = message.clientMetadata.map(e => e ? GenesisMetadata.toJSON(e) : undefined);
-    } else {
-      obj.clientMetadata = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IdentifiedGenesisMetadata>): IdentifiedGenesisMetadata {
-    const message = createBaseIdentifiedGenesisMetadata();
-    message.clientId = object.clientId ?? "";
-    message.clientMetadata = object.clientMetadata?.map(e => GenesisMetadata.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: IdentifiedGenesisMetadataSDKType): IdentifiedGenesisMetadata {
-    return {
-      clientId: object?.client_id,
-      clientMetadata: Array.isArray(object?.client_metadata) ? object.client_metadata.map((e: any) => GenesisMetadata.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: IdentifiedGenesisMetadata): IdentifiedGenesisMetadataSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.clientMetadata) {
-      obj.client_metadata = message.clientMetadata.map(e => e ? GenesisMetadata.toSDK(e) : undefined);
-    } else {
-      obj.client_metadata = [];
-    }
-    return obj;
-  },
-  fromAmino(object: IdentifiedGenesisMetadataAmino): IdentifiedGenesisMetadata {
-    return {
-      clientId: object.client_id,
-      clientMetadata: Array.isArray(object?.client_metadata) ? object.client_metadata.map((e: any) => GenesisMetadata.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: IdentifiedGenesisMetadata): IdentifiedGenesisMetadataAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.clientMetadata) {
-      obj.client_metadata = message.clientMetadata.map(e => e ? GenesisMetadata.toAmino(e) : undefined);
-    } else {
-      obj.client_metadata = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: IdentifiedGenesisMetadataAminoMsg): IdentifiedGenesisMetadata {
-    return IdentifiedGenesisMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: IdentifiedGenesisMetadata): IdentifiedGenesisMetadataAminoMsg {
-    return {
-      type: "cosmos-sdk/IdentifiedGenesisMetadata",
-      value: IdentifiedGenesisMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IdentifiedGenesisMetadataProtoMsg): IdentifiedGenesisMetadata {
-    return IdentifiedGenesisMetadata.decode(message.value);
-  },
-  toProto(message: IdentifiedGenesisMetadata): Uint8Array {
-    return IdentifiedGenesisMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: IdentifiedGenesisMetadata): IdentifiedGenesisMetadataProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.IdentifiedGenesisMetadata",
-      value: IdentifiedGenesisMetadata.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/query.rpc.Query.ts b/examples/injective/src/codegen/ibc/core/client/v1/query.rpc.Query.ts
deleted file mode 100644
index edd297f8..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,314 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { QueryClientStateRequest, QueryClientStateResponse, QueryClientStatesRequest, QueryClientStatesResponse, QueryConsensusStateRequest, QueryConsensusStateResponse, QueryConsensusStatesRequest, QueryConsensusStatesResponse, QueryClientStatusRequest, QueryClientStatusResponse, QueryClientParamsRequest, QueryClientParamsResponse, QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse } from "./query";
-/** Query provides defines the gRPC querier service */
-export interface Query {
-  /** ClientState queries an IBC light client. */
-  clientState(request: QueryClientStateRequest): Promise<QueryClientStateResponse>;
-  /** ClientStates queries all the IBC light clients of a chain. */
-  clientStates(request?: QueryClientStatesRequest): Promise<QueryClientStatesResponse>;
-  /**
-   * ConsensusState queries a consensus state associated with a client state at
-   * a given height.
-   */
-  consensusState(request: QueryConsensusStateRequest): Promise<QueryConsensusStateResponse>;
-  /**
-   * ConsensusStates queries all the consensus state associated with a given
-   * client.
-   */
-  consensusStates(request: QueryConsensusStatesRequest): Promise<QueryConsensusStatesResponse>;
-  /** Status queries the status of an IBC client. */
-  clientStatus(request: QueryClientStatusRequest): Promise<QueryClientStatusResponse>;
-  /** ClientParams queries all parameters of the ibc client. */
-  clientParams(request?: QueryClientParamsRequest): Promise<QueryClientParamsResponse>;
-  /** UpgradedClientState queries an Upgraded IBC light client. */
-  upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise<QueryUpgradedClientStateResponse>;
-  /** UpgradedConsensusState queries an Upgraded IBC consensus state. */
-  upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.clientState = this.clientState.bind(this);
-    this.clientStates = this.clientStates.bind(this);
-    this.consensusState = this.consensusState.bind(this);
-    this.consensusStates = this.consensusStates.bind(this);
-    this.clientStatus = this.clientStatus.bind(this);
-    this.clientParams = this.clientParams.bind(this);
-    this.upgradedClientState = this.upgradedClientState.bind(this);
-    this.upgradedConsensusState = this.upgradedConsensusState.bind(this);
-  }
-  clientState(request: QueryClientStateRequest): Promise<QueryClientStateResponse> {
-    const data = QueryClientStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientState", data);
-    return promise.then(data => QueryClientStateResponse.decode(new BinaryReader(data)));
-  }
-  clientStates(request: QueryClientStatesRequest = {
-    pagination: undefined
-  }): Promise<QueryClientStatesResponse> {
-    const data = QueryClientStatesRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStates", data);
-    return promise.then(data => QueryClientStatesResponse.decode(new BinaryReader(data)));
-  }
-  consensusState(request: QueryConsensusStateRequest): Promise<QueryConsensusStateResponse> {
-    const data = QueryConsensusStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusState", data);
-    return promise.then(data => QueryConsensusStateResponse.decode(new BinaryReader(data)));
-  }
-  consensusStates(request: QueryConsensusStatesRequest): Promise<QueryConsensusStatesResponse> {
-    const data = QueryConsensusStatesRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusStates", data);
-    return promise.then(data => QueryConsensusStatesResponse.decode(new BinaryReader(data)));
-  }
-  clientStatus(request: QueryClientStatusRequest): Promise<QueryClientStatusResponse> {
-    const data = QueryClientStatusRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStatus", data);
-    return promise.then(data => QueryClientStatusResponse.decode(new BinaryReader(data)));
-  }
-  clientParams(request: QueryClientParamsRequest = {}): Promise<QueryClientParamsResponse> {
-    const data = QueryClientParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientParams", data);
-    return promise.then(data => QueryClientParamsResponse.decode(new BinaryReader(data)));
-  }
-  upgradedClientState(request: QueryUpgradedClientStateRequest = {}): Promise<QueryUpgradedClientStateResponse> {
-    const data = QueryUpgradedClientStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedClientState", data);
-    return promise.then(data => QueryUpgradedClientStateResponse.decode(new BinaryReader(data)));
-  }
-  upgradedConsensusState(request: QueryUpgradedConsensusStateRequest = {}): Promise<QueryUpgradedConsensusStateResponse> {
-    const data = QueryUpgradedConsensusStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedConsensusState", data);
-    return promise.then(data => QueryUpgradedConsensusStateResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    clientState(request: QueryClientStateRequest): Promise<QueryClientStateResponse> {
-      return queryService.clientState(request);
-    },
-    clientStates(request?: QueryClientStatesRequest): Promise<QueryClientStatesResponse> {
-      return queryService.clientStates(request);
-    },
-    consensusState(request: QueryConsensusStateRequest): Promise<QueryConsensusStateResponse> {
-      return queryService.consensusState(request);
-    },
-    consensusStates(request: QueryConsensusStatesRequest): Promise<QueryConsensusStatesResponse> {
-      return queryService.consensusStates(request);
-    },
-    clientStatus(request: QueryClientStatusRequest): Promise<QueryClientStatusResponse> {
-      return queryService.clientStatus(request);
-    },
-    clientParams(request?: QueryClientParamsRequest): Promise<QueryClientParamsResponse> {
-      return queryService.clientParams(request);
-    },
-    upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise<QueryUpgradedClientStateResponse> {
-      return queryService.upgradedClientState(request);
-    },
-    upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse> {
-      return queryService.upgradedConsensusState(request);
-    }
-  };
-};
-export interface UseClientStateQuery<TData> extends ReactQueryParams<QueryClientStateResponse, TData> {
-  request: QueryClientStateRequest;
-}
-export interface UseClientStatesQuery<TData> extends ReactQueryParams<QueryClientStatesResponse, TData> {
-  request?: QueryClientStatesRequest;
-}
-export interface UseConsensusStateQuery<TData> extends ReactQueryParams<QueryConsensusStateResponse, TData> {
-  request: QueryConsensusStateRequest;
-}
-export interface UseConsensusStatesQuery<TData> extends ReactQueryParams<QueryConsensusStatesResponse, TData> {
-  request: QueryConsensusStatesRequest;
-}
-export interface UseClientStatusQuery<TData> extends ReactQueryParams<QueryClientStatusResponse, TData> {
-  request: QueryClientStatusRequest;
-}
-export interface UseClientParamsQuery<TData> extends ReactQueryParams<QueryClientParamsResponse, TData> {
-  request?: QueryClientParamsRequest;
-}
-export interface UseUpgradedClientStateQuery<TData> extends ReactQueryParams<QueryUpgradedClientStateResponse, TData> {
-  request?: QueryUpgradedClientStateRequest;
-}
-export interface UseUpgradedConsensusStateQuery<TData> extends ReactQueryParams<QueryUpgradedConsensusStateResponse, TData> {
-  request?: QueryUpgradedConsensusStateRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useClientState = <TData = QueryClientStateResponse,>({
-    request,
-    options
-  }: UseClientStateQuery<TData>) => {
-    return useQuery<QueryClientStateResponse, Error, TData>(["clientStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.clientState(request);
-    }, options);
-  };
-  const useClientStates = <TData = QueryClientStatesResponse,>({
-    request,
-    options
-  }: UseClientStatesQuery<TData>) => {
-    return useQuery<QueryClientStatesResponse, Error, TData>(["clientStatesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.clientStates(request);
-    }, options);
-  };
-  const useConsensusState = <TData = QueryConsensusStateResponse,>({
-    request,
-    options
-  }: UseConsensusStateQuery<TData>) => {
-    return useQuery<QueryConsensusStateResponse, Error, TData>(["consensusStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.consensusState(request);
-    }, options);
-  };
-  const useConsensusStates = <TData = QueryConsensusStatesResponse,>({
-    request,
-    options
-  }: UseConsensusStatesQuery<TData>) => {
-    return useQuery<QueryConsensusStatesResponse, Error, TData>(["consensusStatesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.consensusStates(request);
-    }, options);
-  };
-  const useClientStatus = <TData = QueryClientStatusResponse,>({
-    request,
-    options
-  }: UseClientStatusQuery<TData>) => {
-    return useQuery<QueryClientStatusResponse, Error, TData>(["clientStatusQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.clientStatus(request);
-    }, options);
-  };
-  const useClientParams = <TData = QueryClientParamsResponse,>({
-    request,
-    options
-  }: UseClientParamsQuery<TData>) => {
-    return useQuery<QueryClientParamsResponse, Error, TData>(["clientParamsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.clientParams(request);
-    }, options);
-  };
-  const useUpgradedClientState = <TData = QueryUpgradedClientStateResponse,>({
-    request,
-    options
-  }: UseUpgradedClientStateQuery<TData>) => {
-    return useQuery<QueryUpgradedClientStateResponse, Error, TData>(["upgradedClientStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.upgradedClientState(request);
-    }, options);
-  };
-  const useUpgradedConsensusState = <TData = QueryUpgradedConsensusStateResponse,>({
-    request,
-    options
-  }: UseUpgradedConsensusStateQuery<TData>) => {
-    return useQuery<QueryUpgradedConsensusStateResponse, Error, TData>(["upgradedConsensusStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.upgradedConsensusState(request);
-    }, options);
-  };
-  return {
-    /** ClientState queries an IBC light client. */useClientState,
-    /** ClientStates queries all the IBC light clients of a chain. */useClientStates,
-    /**
-     * ConsensusState queries a consensus state associated with a client state at
-     * a given height.
-     */
-    useConsensusState,
-    /**
-     * ConsensusStates queries all the consensus state associated with a given
-     * client.
-     */
-    useConsensusStates,
-    /** Status queries the status of an IBC client. */useClientStatus,
-    /** ClientParams queries all parameters of the ibc client. */useClientParams,
-    /** UpgradedClientState queries an Upgraded IBC light client. */useUpgradedClientState,
-    /** UpgradedConsensusState queries an Upgraded IBC consensus state. */useUpgradedConsensusState
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryClientStateStore {
-    store = new QueryStore<QueryClientStateRequest, QueryClientStateResponse>(queryService?.clientState);
-    clientState(request: QueryClientStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClientStatesStore {
-    store = new QueryStore<QueryClientStatesRequest, QueryClientStatesResponse>(queryService?.clientStates);
-    clientStates(request: QueryClientStatesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConsensusStateStore {
-    store = new QueryStore<QueryConsensusStateRequest, QueryConsensusStateResponse>(queryService?.consensusState);
-    consensusState(request: QueryConsensusStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConsensusStatesStore {
-    store = new QueryStore<QueryConsensusStatesRequest, QueryConsensusStatesResponse>(queryService?.consensusStates);
-    consensusStates(request: QueryConsensusStatesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClientStatusStore {
-    store = new QueryStore<QueryClientStatusRequest, QueryClientStatusResponse>(queryService?.clientStatus);
-    clientStatus(request: QueryClientStatusRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClientParamsStore {
-    store = new QueryStore<QueryClientParamsRequest, QueryClientParamsResponse>(queryService?.clientParams);
-    clientParams(request: QueryClientParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUpgradedClientStateStore {
-    store = new QueryStore<QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse>(queryService?.upgradedClientState);
-    upgradedClientState(request: QueryUpgradedClientStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUpgradedConsensusStateStore {
-    store = new QueryStore<QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse>(queryService?.upgradedConsensusState);
-    upgradedConsensusState(request: QueryUpgradedConsensusStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** ClientState queries an IBC light client. */QueryClientStateStore,
-    /** ClientStates queries all the IBC light clients of a chain. */QueryClientStatesStore,
-    /**
-     * ConsensusState queries a consensus state associated with a client state at
-     * a given height.
-     */
-    QueryConsensusStateStore,
-    /**
-     * ConsensusStates queries all the consensus state associated with a given
-     * client.
-     */
-    QueryConsensusStatesStore,
-    /** Status queries the status of an IBC client. */QueryClientStatusStore,
-    /** ClientParams queries all parameters of the ibc client. */QueryClientParamsStore,
-    /** UpgradedClientState queries an Upgraded IBC light client. */QueryUpgradedClientStateStore,
-    /** UpgradedConsensusState queries an Upgraded IBC consensus state. */QueryUpgradedConsensusStateStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/query.ts b/examples/injective/src/codegen/ibc/core/client/v1/query.ts
deleted file mode 100644
index 63c8ab91..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/query.ts
+++ /dev/null
@@ -1,2055 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { Height, HeightAmino, HeightSDKType, IdentifiedClientState, IdentifiedClientStateAmino, IdentifiedClientStateSDKType, ConsensusStateWithHeight, ConsensusStateWithHeightAmino, ConsensusStateWithHeightSDKType, Params, ParamsAmino, ParamsSDKType } from "./client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * QueryClientStateRequest is the request type for the Query/ClientState RPC
- * method
- */
-export interface QueryClientStateRequest {
-  /** client state unique identifier */
-  clientId: string;
-}
-export interface QueryClientStateRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryClientStateRequest is the request type for the Query/ClientState RPC
- * method
- */
-export interface QueryClientStateRequestAmino {
-  /** client state unique identifier */
-  client_id: string;
-}
-export interface QueryClientStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryClientStateRequest";
-  value: QueryClientStateRequestAmino;
-}
-/**
- * QueryClientStateRequest is the request type for the Query/ClientState RPC
- * method
- */
-export interface QueryClientStateRequestSDKType {
-  client_id: string;
-}
-/**
- * QueryClientStateResponse is the response type for the Query/ClientState RPC
- * method. Besides the client state, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryClientStateResponse {
-  /** client state associated with the request identifier */
-  clientState: Any | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryClientStateResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryClientStateResponse is the response type for the Query/ClientState RPC
- * method. Besides the client state, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryClientStateResponseAmino {
-  /** client state associated with the request identifier */
-  client_state?: AnyAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryClientStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryClientStateResponse";
-  value: QueryClientStateResponseAmino;
-}
-/**
- * QueryClientStateResponse is the response type for the Query/ClientState RPC
- * method. Besides the client state, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryClientStateResponseSDKType {
-  client_state: AnySDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryClientStatesRequest is the request type for the Query/ClientStates RPC
- * method
- */
-export interface QueryClientStatesRequest {
-  /** pagination request */
-  pagination: PageRequest | undefined;
-}
-export interface QueryClientStatesRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatesRequest";
-  value: Uint8Array;
-}
-/**
- * QueryClientStatesRequest is the request type for the Query/ClientStates RPC
- * method
- */
-export interface QueryClientStatesRequestAmino {
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryClientStatesRequestAminoMsg {
-  type: "cosmos-sdk/QueryClientStatesRequest";
-  value: QueryClientStatesRequestAmino;
-}
-/**
- * QueryClientStatesRequest is the request type for the Query/ClientStates RPC
- * method
- */
-export interface QueryClientStatesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryClientStatesResponse is the response type for the Query/ClientStates RPC
- * method.
- */
-export interface QueryClientStatesResponse {
-  /** list of stored ClientStates of the chain. */
-  clientStates: IdentifiedClientState[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-}
-export interface QueryClientStatesResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryClientStatesResponse is the response type for the Query/ClientStates RPC
- * method.
- */
-export interface QueryClientStatesResponseAmino {
-  /** list of stored ClientStates of the chain. */
-  client_states: IdentifiedClientStateAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryClientStatesResponseAminoMsg {
-  type: "cosmos-sdk/QueryClientStatesResponse";
-  value: QueryClientStatesResponseAmino;
-}
-/**
- * QueryClientStatesResponse is the response type for the Query/ClientStates RPC
- * method.
- */
-export interface QueryClientStatesResponseSDKType {
-  client_states: IdentifiedClientStateSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryConsensusStateRequest is the request type for the Query/ConsensusState
- * RPC method. Besides the consensus state, it includes a proof and the height
- * from which the proof was retrieved.
- */
-export interface QueryConsensusStateRequest {
-  /** client identifier */
-  clientId: string;
-  /** consensus state revision number */
-  revisionNumber: bigint;
-  /** consensus state revision height */
-  revisionHeight: bigint;
-  /**
-   * latest_height overrrides the height field and queries the latest stored
-   * ConsensusState
-   */
-  latestHeight: boolean;
-}
-export interface QueryConsensusStateRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConsensusStateRequest is the request type for the Query/ConsensusState
- * RPC method. Besides the consensus state, it includes a proof and the height
- * from which the proof was retrieved.
- */
-export interface QueryConsensusStateRequestAmino {
-  /** client identifier */
-  client_id: string;
-  /** consensus state revision number */
-  revision_number: string;
-  /** consensus state revision height */
-  revision_height: string;
-  /**
-   * latest_height overrrides the height field and queries the latest stored
-   * ConsensusState
-   */
-  latest_height: boolean;
-}
-export interface QueryConsensusStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryConsensusStateRequest";
-  value: QueryConsensusStateRequestAmino;
-}
-/**
- * QueryConsensusStateRequest is the request type for the Query/ConsensusState
- * RPC method. Besides the consensus state, it includes a proof and the height
- * from which the proof was retrieved.
- */
-export interface QueryConsensusStateRequestSDKType {
-  client_id: string;
-  revision_number: bigint;
-  revision_height: bigint;
-  latest_height: boolean;
-}
-/**
- * QueryConsensusStateResponse is the response type for the Query/ConsensusState
- * RPC method
- */
-export interface QueryConsensusStateResponse {
-  /** consensus state associated with the client identifier at the given height */
-  consensusState: Any | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryConsensusStateResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConsensusStateResponse is the response type for the Query/ConsensusState
- * RPC method
- */
-export interface QueryConsensusStateResponseAmino {
-  /** consensus state associated with the client identifier at the given height */
-  consensus_state?: AnyAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryConsensusStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryConsensusStateResponse";
-  value: QueryConsensusStateResponseAmino;
-}
-/**
- * QueryConsensusStateResponse is the response type for the Query/ConsensusState
- * RPC method
- */
-export interface QueryConsensusStateResponseSDKType {
-  consensus_state: AnySDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates
- * RPC method.
- */
-export interface QueryConsensusStatesRequest {
-  /** client identifier */
-  clientId: string;
-  /** pagination request */
-  pagination: PageRequest | undefined;
-}
-export interface QueryConsensusStatesRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStatesRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates
- * RPC method.
- */
-export interface QueryConsensusStatesRequestAmino {
-  /** client identifier */
-  client_id: string;
-  /** pagination request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryConsensusStatesRequestAminoMsg {
-  type: "cosmos-sdk/QueryConsensusStatesRequest";
-  value: QueryConsensusStatesRequestAmino;
-}
-/**
- * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates
- * RPC method.
- */
-export interface QueryConsensusStatesRequestSDKType {
-  client_id: string;
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryConsensusStatesResponse is the response type for the
- * Query/ConsensusStates RPC method
- */
-export interface QueryConsensusStatesResponse {
-  /** consensus states associated with the identifier */
-  consensusStates: ConsensusStateWithHeight[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-}
-export interface QueryConsensusStatesResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStatesResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConsensusStatesResponse is the response type for the
- * Query/ConsensusStates RPC method
- */
-export interface QueryConsensusStatesResponseAmino {
-  /** consensus states associated with the identifier */
-  consensus_states: ConsensusStateWithHeightAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryConsensusStatesResponseAminoMsg {
-  type: "cosmos-sdk/QueryConsensusStatesResponse";
-  value: QueryConsensusStatesResponseAmino;
-}
-/**
- * QueryConsensusStatesResponse is the response type for the
- * Query/ConsensusStates RPC method
- */
-export interface QueryConsensusStatesResponseSDKType {
-  consensus_states: ConsensusStateWithHeightSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC
- * method
- */
-export interface QueryClientStatusRequest {
-  /** client unique identifier */
-  clientId: string;
-}
-export interface QueryClientStatusRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatusRequest";
-  value: Uint8Array;
-}
-/**
- * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC
- * method
- */
-export interface QueryClientStatusRequestAmino {
-  /** client unique identifier */
-  client_id: string;
-}
-export interface QueryClientStatusRequestAminoMsg {
-  type: "cosmos-sdk/QueryClientStatusRequest";
-  value: QueryClientStatusRequestAmino;
-}
-/**
- * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC
- * method
- */
-export interface QueryClientStatusRequestSDKType {
-  client_id: string;
-}
-/**
- * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC
- * method. It returns the current status of the IBC client.
- */
-export interface QueryClientStatusResponse {
-  status: string;
-}
-export interface QueryClientStatusResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatusResponse";
-  value: Uint8Array;
-}
-/**
- * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC
- * method. It returns the current status of the IBC client.
- */
-export interface QueryClientStatusResponseAmino {
-  status: string;
-}
-export interface QueryClientStatusResponseAminoMsg {
-  type: "cosmos-sdk/QueryClientStatusResponse";
-  value: QueryClientStatusResponseAmino;
-}
-/**
- * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC
- * method. It returns the current status of the IBC client.
- */
-export interface QueryClientStatusResponseSDKType {
-  status: string;
-}
-/**
- * QueryClientParamsRequest is the request type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsRequest {}
-export interface QueryClientParamsRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientParamsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryClientParamsRequest is the request type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsRequestAmino {}
-export interface QueryClientParamsRequestAminoMsg {
-  type: "cosmos-sdk/QueryClientParamsRequest";
-  value: QueryClientParamsRequestAmino;
-}
-/**
- * QueryClientParamsRequest is the request type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsRequestSDKType {}
-/**
- * QueryClientParamsResponse is the response type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryClientParamsResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryClientParamsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryClientParamsResponse is the response type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryClientParamsResponseAminoMsg {
-  type: "cosmos-sdk/QueryClientParamsResponse";
-  value: QueryClientParamsResponseAmino;
-}
-/**
- * QueryClientParamsResponse is the response type for the Query/ClientParams RPC
- * method.
- */
-export interface QueryClientParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/**
- * QueryUpgradedClientStateRequest is the request type for the
- * Query/UpgradedClientState RPC method
- */
-export interface QueryUpgradedClientStateRequest {}
-export interface QueryUpgradedClientStateRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedClientStateRequest is the request type for the
- * Query/UpgradedClientState RPC method
- */
-export interface QueryUpgradedClientStateRequestAmino {}
-export interface QueryUpgradedClientStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedClientStateRequest";
-  value: QueryUpgradedClientStateRequestAmino;
-}
-/**
- * QueryUpgradedClientStateRequest is the request type for the
- * Query/UpgradedClientState RPC method
- */
-export interface QueryUpgradedClientStateRequestSDKType {}
-/**
- * QueryUpgradedClientStateResponse is the response type for the
- * Query/UpgradedClientState RPC method.
- */
-export interface QueryUpgradedClientStateResponse {
-  /** client state associated with the request identifier */
-  upgradedClientState: Any | undefined;
-}
-export interface QueryUpgradedClientStateResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedClientStateResponse is the response type for the
- * Query/UpgradedClientState RPC method.
- */
-export interface QueryUpgradedClientStateResponseAmino {
-  /** client state associated with the request identifier */
-  upgraded_client_state?: AnyAmino | undefined;
-}
-export interface QueryUpgradedClientStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedClientStateResponse";
-  value: QueryUpgradedClientStateResponseAmino;
-}
-/**
- * QueryUpgradedClientStateResponse is the response type for the
- * Query/UpgradedClientState RPC method.
- */
-export interface QueryUpgradedClientStateResponseSDKType {
-  upgraded_client_state: AnySDKType | undefined;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the
- * Query/UpgradedConsensusState RPC method
- */
-export interface QueryUpgradedConsensusStateRequest {}
-export interface QueryUpgradedConsensusStateRequestProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the
- * Query/UpgradedConsensusState RPC method
- */
-export interface QueryUpgradedConsensusStateRequestAmino {}
-export interface QueryUpgradedConsensusStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedConsensusStateRequest";
-  value: QueryUpgradedConsensusStateRequestAmino;
-}
-/**
- * QueryUpgradedConsensusStateRequest is the request type for the
- * Query/UpgradedConsensusState RPC method
- */
-export interface QueryUpgradedConsensusStateRequestSDKType {}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the
- * Query/UpgradedConsensusState RPC method.
- */
-export interface QueryUpgradedConsensusStateResponse {
-  /** Consensus state associated with the request identifier */
-  upgradedConsensusState: Any | undefined;
-}
-export interface QueryUpgradedConsensusStateResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the
- * Query/UpgradedConsensusState RPC method.
- */
-export interface QueryUpgradedConsensusStateResponseAmino {
-  /** Consensus state associated with the request identifier */
-  upgraded_consensus_state?: AnyAmino | undefined;
-}
-export interface QueryUpgradedConsensusStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryUpgradedConsensusStateResponse";
-  value: QueryUpgradedConsensusStateResponseAmino;
-}
-/**
- * QueryUpgradedConsensusStateResponse is the response type for the
- * Query/UpgradedConsensusState RPC method.
- */
-export interface QueryUpgradedConsensusStateResponseSDKType {
-  upgraded_consensus_state: AnySDKType | undefined;
-}
-function createBaseQueryClientStateRequest(): QueryClientStateRequest {
-  return {
-    clientId: ""
-  };
-}
-export const QueryClientStateRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStateRequest",
-  aminoType: "cosmos-sdk/QueryClientStateRequest",
-  encode(message: QueryClientStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStateRequest {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : ""
-    };
-  },
-  toJSON(message: QueryClientStateRequest): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStateRequest>): QueryClientStateRequest {
-    const message = createBaseQueryClientStateRequest();
-    message.clientId = object.clientId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClientStateRequestSDKType): QueryClientStateRequest {
-    return {
-      clientId: object?.client_id
-    };
-  },
-  toSDK(message: QueryClientStateRequest): QueryClientStateRequestSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAmino(object: QueryClientStateRequestAmino): QueryClientStateRequest {
-    return {
-      clientId: object.client_id
-    };
-  },
-  toAmino(message: QueryClientStateRequest): QueryClientStateRequestAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStateRequestAminoMsg): QueryClientStateRequest {
-    return QueryClientStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStateRequest): QueryClientStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStateRequest",
-      value: QueryClientStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStateRequestProtoMsg): QueryClientStateRequest {
-    return QueryClientStateRequest.decode(message.value);
-  },
-  toProto(message: QueryClientStateRequest): Uint8Array {
-    return QueryClientStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStateRequest): QueryClientStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStateRequest",
-      value: QueryClientStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientStateResponse(): QueryClientStateResponse {
-  return {
-    clientState: Any.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryClientStateResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStateResponse",
-  aminoType: "cosmos-sdk/QueryClientStateResponse",
-  encode(message: QueryClientStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStateResponse {
-    return {
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryClientStateResponse): unknown {
-    const obj: any = {};
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStateResponse>): QueryClientStateResponse {
-    const message = createBaseQueryClientStateResponse();
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClientStateResponseSDKType): QueryClientStateResponse {
-    return {
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryClientStateResponse): QueryClientStateResponseSDKType {
-    const obj: any = {};
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClientStateResponseAmino): QueryClientStateResponse {
-    return {
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryClientStateResponse): QueryClientStateResponseAmino {
-    const obj: any = {};
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStateResponseAminoMsg): QueryClientStateResponse {
-    return QueryClientStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStateResponse): QueryClientStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStateResponse",
-      value: QueryClientStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStateResponseProtoMsg): QueryClientStateResponse {
-    return QueryClientStateResponse.decode(message.value);
-  },
-  toProto(message: QueryClientStateResponse): Uint8Array {
-    return QueryClientStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStateResponse): QueryClientStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStateResponse",
-      value: QueryClientStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientStatesRequest(): QueryClientStatesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryClientStatesRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatesRequest",
-  aminoType: "cosmos-sdk/QueryClientStatesRequest",
-  encode(message: QueryClientStatesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStatesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStatesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStatesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryClientStatesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStatesRequest>): QueryClientStatesRequest {
-    const message = createBaseQueryClientStatesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClientStatesRequestSDKType): QueryClientStatesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryClientStatesRequest): QueryClientStatesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClientStatesRequestAmino): QueryClientStatesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryClientStatesRequest): QueryClientStatesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStatesRequestAminoMsg): QueryClientStatesRequest {
-    return QueryClientStatesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStatesRequest): QueryClientStatesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStatesRequest",
-      value: QueryClientStatesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStatesRequestProtoMsg): QueryClientStatesRequest {
-    return QueryClientStatesRequest.decode(message.value);
-  },
-  toProto(message: QueryClientStatesRequest): Uint8Array {
-    return QueryClientStatesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStatesRequest): QueryClientStatesRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStatesRequest",
-      value: QueryClientStatesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientStatesResponse(): QueryClientStatesResponse {
-  return {
-    clientStates: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryClientStatesResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatesResponse",
-  aminoType: "cosmos-sdk/QueryClientStatesResponse",
-  encode(message: QueryClientStatesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.clientStates) {
-      IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStatesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStatesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientStates.push(IdentifiedClientState.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStatesResponse {
-    return {
-      clientStates: Array.isArray(object?.clientStates) ? object.clientStates.map((e: any) => IdentifiedClientState.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryClientStatesResponse): unknown {
-    const obj: any = {};
-    if (message.clientStates) {
-      obj.clientStates = message.clientStates.map(e => e ? IdentifiedClientState.toJSON(e) : undefined);
-    } else {
-      obj.clientStates = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStatesResponse>): QueryClientStatesResponse {
-    const message = createBaseQueryClientStatesResponse();
-    message.clientStates = object.clientStates?.map(e => IdentifiedClientState.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClientStatesResponseSDKType): QueryClientStatesResponse {
-    return {
-      clientStates: Array.isArray(object?.client_states) ? object.client_states.map((e: any) => IdentifiedClientState.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryClientStatesResponse): QueryClientStatesResponseSDKType {
-    const obj: any = {};
-    if (message.clientStates) {
-      obj.client_states = message.clientStates.map(e => e ? IdentifiedClientState.toSDK(e) : undefined);
-    } else {
-      obj.client_states = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClientStatesResponseAmino): QueryClientStatesResponse {
-    return {
-      clientStates: Array.isArray(object?.client_states) ? object.client_states.map((e: any) => IdentifiedClientState.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryClientStatesResponse): QueryClientStatesResponseAmino {
-    const obj: any = {};
-    if (message.clientStates) {
-      obj.client_states = message.clientStates.map(e => e ? IdentifiedClientState.toAmino(e) : undefined);
-    } else {
-      obj.client_states = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStatesResponseAminoMsg): QueryClientStatesResponse {
-    return QueryClientStatesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStatesResponse): QueryClientStatesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStatesResponse",
-      value: QueryClientStatesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStatesResponseProtoMsg): QueryClientStatesResponse {
-    return QueryClientStatesResponse.decode(message.value);
-  },
-  toProto(message: QueryClientStatesResponse): Uint8Array {
-    return QueryClientStatesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStatesResponse): QueryClientStatesResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStatesResponse",
-      value: QueryClientStatesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConsensusStateRequest(): QueryConsensusStateRequest {
-  return {
-    clientId: "",
-    revisionNumber: BigInt(0),
-    revisionHeight: BigInt(0),
-    latestHeight: false
-  };
-}
-export const QueryConsensusStateRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStateRequest",
-  aminoType: "cosmos-sdk/QueryConsensusStateRequest",
-  encode(message: QueryConsensusStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.revisionNumber !== BigInt(0)) {
-      writer.uint32(16).uint64(message.revisionNumber);
-    }
-    if (message.revisionHeight !== BigInt(0)) {
-      writer.uint32(24).uint64(message.revisionHeight);
-    }
-    if (message.latestHeight === true) {
-      writer.uint32(32).bool(message.latestHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConsensusStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConsensusStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.revisionNumber = reader.uint64();
-          break;
-        case 3:
-          message.revisionHeight = reader.uint64();
-          break;
-        case 4:
-          message.latestHeight = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConsensusStateRequest {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      revisionNumber: isSet(object.revisionNumber) ? BigInt(object.revisionNumber.toString()) : BigInt(0),
-      revisionHeight: isSet(object.revisionHeight) ? BigInt(object.revisionHeight.toString()) : BigInt(0),
-      latestHeight: isSet(object.latestHeight) ? Boolean(object.latestHeight) : false
-    };
-  },
-  toJSON(message: QueryConsensusStateRequest): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.revisionNumber !== undefined && (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());
-    message.revisionHeight !== undefined && (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());
-    message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConsensusStateRequest>): QueryConsensusStateRequest {
-    const message = createBaseQueryConsensusStateRequest();
-    message.clientId = object.clientId ?? "";
-    message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? BigInt(object.revisionNumber.toString()) : BigInt(0);
-    message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? BigInt(object.revisionHeight.toString()) : BigInt(0);
-    message.latestHeight = object.latestHeight ?? false;
-    return message;
-  },
-  fromSDK(object: QueryConsensusStateRequestSDKType): QueryConsensusStateRequest {
-    return {
-      clientId: object?.client_id,
-      revisionNumber: object?.revision_number,
-      revisionHeight: object?.revision_height,
-      latestHeight: object?.latest_height
-    };
-  },
-  toSDK(message: QueryConsensusStateRequest): QueryConsensusStateRequestSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.revision_number = message.revisionNumber;
-    obj.revision_height = message.revisionHeight;
-    obj.latest_height = message.latestHeight;
-    return obj;
-  },
-  fromAmino(object: QueryConsensusStateRequestAmino): QueryConsensusStateRequest {
-    return {
-      clientId: object.client_id,
-      revisionNumber: BigInt(object.revision_number),
-      revisionHeight: BigInt(object.revision_height),
-      latestHeight: object.latest_height
-    };
-  },
-  toAmino(message: QueryConsensusStateRequest): QueryConsensusStateRequestAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.revision_number = message.revisionNumber ? message.revisionNumber.toString() : undefined;
-    obj.revision_height = message.revisionHeight ? message.revisionHeight.toString() : undefined;
-    obj.latest_height = message.latestHeight;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConsensusStateRequestAminoMsg): QueryConsensusStateRequest {
-    return QueryConsensusStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConsensusStateRequest): QueryConsensusStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConsensusStateRequest",
-      value: QueryConsensusStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConsensusStateRequestProtoMsg): QueryConsensusStateRequest {
-    return QueryConsensusStateRequest.decode(message.value);
-  },
-  toProto(message: QueryConsensusStateRequest): Uint8Array {
-    return QueryConsensusStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConsensusStateRequest): QueryConsensusStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryConsensusStateRequest",
-      value: QueryConsensusStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConsensusStateResponse(): QueryConsensusStateResponse {
-  return {
-    consensusState: Any.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryConsensusStateResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStateResponse",
-  aminoType: "cosmos-sdk/QueryConsensusStateResponse",
-  encode(message: QueryConsensusStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConsensusStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConsensusStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConsensusStateResponse {
-    return {
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryConsensusStateResponse): unknown {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConsensusStateResponse>): QueryConsensusStateResponse {
-    const message = createBaseQueryConsensusStateResponse();
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConsensusStateResponseSDKType): QueryConsensusStateResponse {
-    return {
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryConsensusStateResponse): QueryConsensusStateResponseSDKType {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConsensusStateResponseAmino): QueryConsensusStateResponse {
-    return {
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryConsensusStateResponse): QueryConsensusStateResponseAmino {
-    const obj: any = {};
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConsensusStateResponseAminoMsg): QueryConsensusStateResponse {
-    return QueryConsensusStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConsensusStateResponse): QueryConsensusStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConsensusStateResponse",
-      value: QueryConsensusStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConsensusStateResponseProtoMsg): QueryConsensusStateResponse {
-    return QueryConsensusStateResponse.decode(message.value);
-  },
-  toProto(message: QueryConsensusStateResponse): Uint8Array {
-    return QueryConsensusStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConsensusStateResponse): QueryConsensusStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryConsensusStateResponse",
-      value: QueryConsensusStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConsensusStatesRequest(): QueryConsensusStatesRequest {
-  return {
-    clientId: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryConsensusStatesRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStatesRequest",
-  aminoType: "cosmos-sdk/QueryConsensusStatesRequest",
-  encode(message: QueryConsensusStatesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConsensusStatesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConsensusStatesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConsensusStatesRequest {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryConsensusStatesRequest): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConsensusStatesRequest>): QueryConsensusStatesRequest {
-    const message = createBaseQueryConsensusStatesRequest();
-    message.clientId = object.clientId ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConsensusStatesRequestSDKType): QueryConsensusStatesRequest {
-    return {
-      clientId: object?.client_id,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryConsensusStatesRequest): QueryConsensusStatesRequestSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConsensusStatesRequestAmino): QueryConsensusStatesRequest {
-    return {
-      clientId: object.client_id,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryConsensusStatesRequest): QueryConsensusStatesRequestAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConsensusStatesRequestAminoMsg): QueryConsensusStatesRequest {
-    return QueryConsensusStatesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConsensusStatesRequest): QueryConsensusStatesRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConsensusStatesRequest",
-      value: QueryConsensusStatesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConsensusStatesRequestProtoMsg): QueryConsensusStatesRequest {
-    return QueryConsensusStatesRequest.decode(message.value);
-  },
-  toProto(message: QueryConsensusStatesRequest): Uint8Array {
-    return QueryConsensusStatesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConsensusStatesRequest): QueryConsensusStatesRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryConsensusStatesRequest",
-      value: QueryConsensusStatesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConsensusStatesResponse(): QueryConsensusStatesResponse {
-  return {
-    consensusStates: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryConsensusStatesResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryConsensusStatesResponse",
-  aminoType: "cosmos-sdk/QueryConsensusStatesResponse",
-  encode(message: QueryConsensusStatesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.consensusStates) {
-      ConsensusStateWithHeight.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConsensusStatesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConsensusStatesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consensusStates.push(ConsensusStateWithHeight.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConsensusStatesResponse {
-    return {
-      consensusStates: Array.isArray(object?.consensusStates) ? object.consensusStates.map((e: any) => ConsensusStateWithHeight.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryConsensusStatesResponse): unknown {
-    const obj: any = {};
-    if (message.consensusStates) {
-      obj.consensusStates = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toJSON(e) : undefined);
-    } else {
-      obj.consensusStates = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConsensusStatesResponse>): QueryConsensusStatesResponse {
-    const message = createBaseQueryConsensusStatesResponse();
-    message.consensusStates = object.consensusStates?.map(e => ConsensusStateWithHeight.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConsensusStatesResponseSDKType): QueryConsensusStatesResponse {
-    return {
-      consensusStates: Array.isArray(object?.consensus_states) ? object.consensus_states.map((e: any) => ConsensusStateWithHeight.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryConsensusStatesResponse): QueryConsensusStatesResponseSDKType {
-    const obj: any = {};
-    if (message.consensusStates) {
-      obj.consensus_states = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toSDK(e) : undefined);
-    } else {
-      obj.consensus_states = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConsensusStatesResponseAmino): QueryConsensusStatesResponse {
-    return {
-      consensusStates: Array.isArray(object?.consensus_states) ? object.consensus_states.map((e: any) => ConsensusStateWithHeight.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryConsensusStatesResponse): QueryConsensusStatesResponseAmino {
-    const obj: any = {};
-    if (message.consensusStates) {
-      obj.consensus_states = message.consensusStates.map(e => e ? ConsensusStateWithHeight.toAmino(e) : undefined);
-    } else {
-      obj.consensus_states = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConsensusStatesResponseAminoMsg): QueryConsensusStatesResponse {
-    return QueryConsensusStatesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConsensusStatesResponse): QueryConsensusStatesResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConsensusStatesResponse",
-      value: QueryConsensusStatesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConsensusStatesResponseProtoMsg): QueryConsensusStatesResponse {
-    return QueryConsensusStatesResponse.decode(message.value);
-  },
-  toProto(message: QueryConsensusStatesResponse): Uint8Array {
-    return QueryConsensusStatesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConsensusStatesResponse): QueryConsensusStatesResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryConsensusStatesResponse",
-      value: QueryConsensusStatesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientStatusRequest(): QueryClientStatusRequest {
-  return {
-    clientId: ""
-  };
-}
-export const QueryClientStatusRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatusRequest",
-  aminoType: "cosmos-sdk/QueryClientStatusRequest",
-  encode(message: QueryClientStatusRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStatusRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStatusRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStatusRequest {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : ""
-    };
-  },
-  toJSON(message: QueryClientStatusRequest): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStatusRequest>): QueryClientStatusRequest {
-    const message = createBaseQueryClientStatusRequest();
-    message.clientId = object.clientId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClientStatusRequestSDKType): QueryClientStatusRequest {
-    return {
-      clientId: object?.client_id
-    };
-  },
-  toSDK(message: QueryClientStatusRequest): QueryClientStatusRequestSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAmino(object: QueryClientStatusRequestAmino): QueryClientStatusRequest {
-    return {
-      clientId: object.client_id
-    };
-  },
-  toAmino(message: QueryClientStatusRequest): QueryClientStatusRequestAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStatusRequestAminoMsg): QueryClientStatusRequest {
-    return QueryClientStatusRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStatusRequest): QueryClientStatusRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStatusRequest",
-      value: QueryClientStatusRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStatusRequestProtoMsg): QueryClientStatusRequest {
-    return QueryClientStatusRequest.decode(message.value);
-  },
-  toProto(message: QueryClientStatusRequest): Uint8Array {
-    return QueryClientStatusRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStatusRequest): QueryClientStatusRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStatusRequest",
-      value: QueryClientStatusRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientStatusResponse(): QueryClientStatusResponse {
-  return {
-    status: ""
-  };
-}
-export const QueryClientStatusResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryClientStatusResponse",
-  aminoType: "cosmos-sdk/QueryClientStatusResponse",
-  encode(message: QueryClientStatusResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.status !== "") {
-      writer.uint32(10).string(message.status);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientStatusResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientStatusResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.status = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientStatusResponse {
-    return {
-      status: isSet(object.status) ? String(object.status) : ""
-    };
-  },
-  toJSON(message: QueryClientStatusResponse): unknown {
-    const obj: any = {};
-    message.status !== undefined && (obj.status = message.status);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientStatusResponse>): QueryClientStatusResponse {
-    const message = createBaseQueryClientStatusResponse();
-    message.status = object.status ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClientStatusResponseSDKType): QueryClientStatusResponse {
-    return {
-      status: object?.status
-    };
-  },
-  toSDK(message: QueryClientStatusResponse): QueryClientStatusResponseSDKType {
-    const obj: any = {};
-    obj.status = message.status;
-    return obj;
-  },
-  fromAmino(object: QueryClientStatusResponseAmino): QueryClientStatusResponse {
-    return {
-      status: object.status
-    };
-  },
-  toAmino(message: QueryClientStatusResponse): QueryClientStatusResponseAmino {
-    const obj: any = {};
-    obj.status = message.status;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientStatusResponseAminoMsg): QueryClientStatusResponse {
-    return QueryClientStatusResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientStatusResponse): QueryClientStatusResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientStatusResponse",
-      value: QueryClientStatusResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientStatusResponseProtoMsg): QueryClientStatusResponse {
-    return QueryClientStatusResponse.decode(message.value);
-  },
-  toProto(message: QueryClientStatusResponse): Uint8Array {
-    return QueryClientStatusResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientStatusResponse): QueryClientStatusResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientStatusResponse",
-      value: QueryClientStatusResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientParamsRequest(): QueryClientParamsRequest {
-  return {};
-}
-export const QueryClientParamsRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryClientParamsRequest",
-  aminoType: "cosmos-sdk/QueryClientParamsRequest",
-  encode(_: QueryClientParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryClientParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryClientParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryClientParamsRequest>): QueryClientParamsRequest {
-    const message = createBaseQueryClientParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryClientParamsRequestSDKType): QueryClientParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryClientParamsRequest): QueryClientParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryClientParamsRequestAmino): QueryClientParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryClientParamsRequest): QueryClientParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientParamsRequestAminoMsg): QueryClientParamsRequest {
-    return QueryClientParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientParamsRequest): QueryClientParamsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientParamsRequest",
-      value: QueryClientParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientParamsRequestProtoMsg): QueryClientParamsRequest {
-    return QueryClientParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryClientParamsRequest): Uint8Array {
-    return QueryClientParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientParamsRequest): QueryClientParamsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientParamsRequest",
-      value: QueryClientParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientParamsResponse(): QueryClientParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryClientParamsResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryClientParamsResponse",
-  aminoType: "cosmos-sdk/QueryClientParamsResponse",
-  encode(message: QueryClientParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryClientParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientParamsResponse>): QueryClientParamsResponse {
-    const message = createBaseQueryClientParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClientParamsResponseSDKType): QueryClientParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryClientParamsResponse): QueryClientParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClientParamsResponseAmino): QueryClientParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryClientParamsResponse): QueryClientParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientParamsResponseAminoMsg): QueryClientParamsResponse {
-    return QueryClientParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientParamsResponse): QueryClientParamsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientParamsResponse",
-      value: QueryClientParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientParamsResponseProtoMsg): QueryClientParamsResponse {
-    return QueryClientParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryClientParamsResponse): Uint8Array {
-    return QueryClientParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientParamsResponse): QueryClientParamsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryClientParamsResponse",
-      value: QueryClientParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedClientStateRequest(): QueryUpgradedClientStateRequest {
-  return {};
-}
-export const QueryUpgradedClientStateRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateRequest",
-  aminoType: "cosmos-sdk/QueryUpgradedClientStateRequest",
-  encode(_: QueryUpgradedClientStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedClientStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedClientStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryUpgradedClientStateRequest {
-    return {};
-  },
-  toJSON(_: QueryUpgradedClientStateRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryUpgradedClientStateRequest>): QueryUpgradedClientStateRequest {
-    const message = createBaseQueryUpgradedClientStateRequest();
-    return message;
-  },
-  fromSDK(_: QueryUpgradedClientStateRequestSDKType): QueryUpgradedClientStateRequest {
-    return {};
-  },
-  toSDK(_: QueryUpgradedClientStateRequest): QueryUpgradedClientStateRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryUpgradedClientStateRequestAmino): QueryUpgradedClientStateRequest {
-    return {};
-  },
-  toAmino(_: QueryUpgradedClientStateRequest): QueryUpgradedClientStateRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedClientStateRequestAminoMsg): QueryUpgradedClientStateRequest {
-    return QueryUpgradedClientStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedClientStateRequest): QueryUpgradedClientStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedClientStateRequest",
-      value: QueryUpgradedClientStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedClientStateRequestProtoMsg): QueryUpgradedClientStateRequest {
-    return QueryUpgradedClientStateRequest.decode(message.value);
-  },
-  toProto(message: QueryUpgradedClientStateRequest): Uint8Array {
-    return QueryUpgradedClientStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedClientStateRequest): QueryUpgradedClientStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateRequest",
-      value: QueryUpgradedClientStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedClientStateResponse(): QueryUpgradedClientStateResponse {
-  return {
-    upgradedClientState: Any.fromPartial({})
-  };
-}
-export const QueryUpgradedClientStateResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateResponse",
-  aminoType: "cosmos-sdk/QueryUpgradedClientStateResponse",
-  encode(message: QueryUpgradedClientStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.upgradedClientState !== undefined) {
-      Any.encode(message.upgradedClientState, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedClientStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedClientStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.upgradedClientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUpgradedClientStateResponse {
-    return {
-      upgradedClientState: isSet(object.upgradedClientState) ? Any.fromJSON(object.upgradedClientState) : undefined
-    };
-  },
-  toJSON(message: QueryUpgradedClientStateResponse): unknown {
-    const obj: any = {};
-    message.upgradedClientState !== undefined && (obj.upgradedClientState = message.upgradedClientState ? Any.toJSON(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUpgradedClientStateResponse>): QueryUpgradedClientStateResponse {
-    const message = createBaseQueryUpgradedClientStateResponse();
-    message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryUpgradedClientStateResponseSDKType): QueryUpgradedClientStateResponse {
-    return {
-      upgradedClientState: object.upgraded_client_state ? Any.fromSDK(object.upgraded_client_state) : undefined
-    };
-  },
-  toSDK(message: QueryUpgradedClientStateResponse): QueryUpgradedClientStateResponseSDKType {
-    const obj: any = {};
-    message.upgradedClientState !== undefined && (obj.upgraded_client_state = message.upgradedClientState ? Any.toSDK(message.upgradedClientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryUpgradedClientStateResponseAmino): QueryUpgradedClientStateResponse {
-    return {
-      upgradedClientState: object?.upgraded_client_state ? Any.fromAmino(object.upgraded_client_state) : undefined
-    };
-  },
-  toAmino(message: QueryUpgradedClientStateResponse): QueryUpgradedClientStateResponseAmino {
-    const obj: any = {};
-    obj.upgraded_client_state = message.upgradedClientState ? Any.toAmino(message.upgradedClientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedClientStateResponseAminoMsg): QueryUpgradedClientStateResponse {
-    return QueryUpgradedClientStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedClientStateResponse): QueryUpgradedClientStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedClientStateResponse",
-      value: QueryUpgradedClientStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedClientStateResponseProtoMsg): QueryUpgradedClientStateResponse {
-    return QueryUpgradedClientStateResponse.decode(message.value);
-  },
-  toProto(message: QueryUpgradedClientStateResponse): Uint8Array {
-    return QueryUpgradedClientStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedClientStateResponse): QueryUpgradedClientStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateResponse",
-      value: QueryUpgradedClientStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedConsensusStateRequest(): QueryUpgradedConsensusStateRequest {
-  return {};
-}
-export const QueryUpgradedConsensusStateRequest = {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateRequest",
-  aminoType: "cosmos-sdk/QueryUpgradedConsensusStateRequest",
-  encode(_: QueryUpgradedConsensusStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedConsensusStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryUpgradedConsensusStateRequest {
-    return {};
-  },
-  toJSON(_: QueryUpgradedConsensusStateRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryUpgradedConsensusStateRequest>): QueryUpgradedConsensusStateRequest {
-    const message = createBaseQueryUpgradedConsensusStateRequest();
-    return message;
-  },
-  fromSDK(_: QueryUpgradedConsensusStateRequestSDKType): QueryUpgradedConsensusStateRequest {
-    return {};
-  },
-  toSDK(_: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryUpgradedConsensusStateRequestAmino): QueryUpgradedConsensusStateRequest {
-    return {};
-  },
-  toAmino(_: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedConsensusStateRequestAminoMsg): QueryUpgradedConsensusStateRequest {
-    return QueryUpgradedConsensusStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedConsensusStateRequest",
-      value: QueryUpgradedConsensusStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedConsensusStateRequestProtoMsg): QueryUpgradedConsensusStateRequest {
-    return QueryUpgradedConsensusStateRequest.decode(message.value);
-  },
-  toProto(message: QueryUpgradedConsensusStateRequest): Uint8Array {
-    return QueryUpgradedConsensusStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedConsensusStateRequest): QueryUpgradedConsensusStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateRequest",
-      value: QueryUpgradedConsensusStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUpgradedConsensusStateResponse(): QueryUpgradedConsensusStateResponse {
-  return {
-    upgradedConsensusState: Any.fromPartial({})
-  };
-}
-export const QueryUpgradedConsensusStateResponse = {
-  typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateResponse",
-  aminoType: "cosmos-sdk/QueryUpgradedConsensusStateResponse",
-  encode(message: QueryUpgradedConsensusStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.upgradedConsensusState !== undefined) {
-      Any.encode(message.upgradedConsensusState, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUpgradedConsensusStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.upgradedConsensusState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: isSet(object.upgradedConsensusState) ? Any.fromJSON(object.upgradedConsensusState) : undefined
-    };
-  },
-  toJSON(message: QueryUpgradedConsensusStateResponse): unknown {
-    const obj: any = {};
-    message.upgradedConsensusState !== undefined && (obj.upgradedConsensusState = message.upgradedConsensusState ? Any.toJSON(message.upgradedConsensusState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUpgradedConsensusStateResponse>): QueryUpgradedConsensusStateResponse {
-    const message = createBaseQueryUpgradedConsensusStateResponse();
-    message.upgradedConsensusState = object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null ? Any.fromPartial(object.upgradedConsensusState) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryUpgradedConsensusStateResponseSDKType): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: object.upgraded_consensus_state ? Any.fromSDK(object.upgraded_consensus_state) : undefined
-    };
-  },
-  toSDK(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseSDKType {
-    const obj: any = {};
-    message.upgradedConsensusState !== undefined && (obj.upgraded_consensus_state = message.upgradedConsensusState ? Any.toSDK(message.upgradedConsensusState) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryUpgradedConsensusStateResponseAmino): QueryUpgradedConsensusStateResponse {
-    return {
-      upgradedConsensusState: object?.upgraded_consensus_state ? Any.fromAmino(object.upgraded_consensus_state) : undefined
-    };
-  },
-  toAmino(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseAmino {
-    const obj: any = {};
-    obj.upgraded_consensus_state = message.upgradedConsensusState ? Any.toAmino(message.upgradedConsensusState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryUpgradedConsensusStateResponseAminoMsg): QueryUpgradedConsensusStateResponse {
-    return QueryUpgradedConsensusStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryUpgradedConsensusStateResponse",
-      value: QueryUpgradedConsensusStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUpgradedConsensusStateResponseProtoMsg): QueryUpgradedConsensusStateResponse {
-    return QueryUpgradedConsensusStateResponse.decode(message.value);
-  },
-  toProto(message: QueryUpgradedConsensusStateResponse): Uint8Array {
-    return QueryUpgradedConsensusStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUpgradedConsensusStateResponse): QueryUpgradedConsensusStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateResponse",
-      value: QueryUpgradedConsensusStateResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/tx.amino.ts b/examples/injective/src/codegen/ibc/core/client/v1/tx.amino.ts
deleted file mode 100644
index a3cd3860..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/tx.amino.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { MsgCreateClient, MsgUpdateClient, MsgUpgradeClient, MsgSubmitMisbehaviour } from "./tx";
-export const AminoConverter = {
-  "/ibc.core.client.v1.MsgCreateClient": {
-    aminoType: "cosmos-sdk/MsgCreateClient",
-    toAmino: MsgCreateClient.toAmino,
-    fromAmino: MsgCreateClient.fromAmino
-  },
-  "/ibc.core.client.v1.MsgUpdateClient": {
-    aminoType: "cosmos-sdk/MsgUpdateClient",
-    toAmino: MsgUpdateClient.toAmino,
-    fromAmino: MsgUpdateClient.fromAmino
-  },
-  "/ibc.core.client.v1.MsgUpgradeClient": {
-    aminoType: "cosmos-sdk/MsgUpgradeClient",
-    toAmino: MsgUpgradeClient.toAmino,
-    fromAmino: MsgUpgradeClient.fromAmino
-  },
-  "/ibc.core.client.v1.MsgSubmitMisbehaviour": {
-    aminoType: "cosmos-sdk/MsgSubmitMisbehaviour",
-    toAmino: MsgSubmitMisbehaviour.toAmino,
-    fromAmino: MsgSubmitMisbehaviour.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/tx.registry.ts b/examples/injective/src/codegen/ibc/core/client/v1/tx.registry.ts
deleted file mode 100644
index ae7f9dd2..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/tx.registry.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateClient, MsgUpdateClient, MsgUpgradeClient, MsgSubmitMisbehaviour } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/ibc.core.client.v1.MsgCreateClient", MsgCreateClient], ["/ibc.core.client.v1.MsgUpdateClient", MsgUpdateClient], ["/ibc.core.client.v1.MsgUpgradeClient", MsgUpgradeClient], ["/ibc.core.client.v1.MsgSubmitMisbehaviour", MsgSubmitMisbehaviour]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createClient(value: MsgCreateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-        value: MsgCreateClient.encode(value).finish()
-      };
-    },
-    updateClient(value: MsgUpdateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-        value: MsgUpdateClient.encode(value).finish()
-      };
-    },
-    upgradeClient(value: MsgUpgradeClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-        value: MsgUpgradeClient.encode(value).finish()
-      };
-    },
-    submitMisbehaviour(value: MsgSubmitMisbehaviour) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-        value: MsgSubmitMisbehaviour.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createClient(value: MsgCreateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-        value
-      };
-    },
-    updateClient(value: MsgUpdateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-        value
-      };
-    },
-    upgradeClient(value: MsgUpgradeClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-        value
-      };
-    },
-    submitMisbehaviour(value: MsgSubmitMisbehaviour) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createClient(value: MsgCreateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-        value: MsgCreateClient.toJSON(value)
-      };
-    },
-    updateClient(value: MsgUpdateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-        value: MsgUpdateClient.toJSON(value)
-      };
-    },
-    upgradeClient(value: MsgUpgradeClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-        value: MsgUpgradeClient.toJSON(value)
-      };
-    },
-    submitMisbehaviour(value: MsgSubmitMisbehaviour) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-        value: MsgSubmitMisbehaviour.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createClient(value: any) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-        value: MsgCreateClient.fromJSON(value)
-      };
-    },
-    updateClient(value: any) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-        value: MsgUpdateClient.fromJSON(value)
-      };
-    },
-    upgradeClient(value: any) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-        value: MsgUpgradeClient.fromJSON(value)
-      };
-    },
-    submitMisbehaviour(value: any) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-        value: MsgSubmitMisbehaviour.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createClient(value: MsgCreateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-        value: MsgCreateClient.fromPartial(value)
-      };
-    },
-    updateClient(value: MsgUpdateClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-        value: MsgUpdateClient.fromPartial(value)
-      };
-    },
-    upgradeClient(value: MsgUpgradeClient) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-        value: MsgUpgradeClient.fromPartial(value)
-      };
-    },
-    submitMisbehaviour(value: MsgSubmitMisbehaviour) {
-      return {
-        typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-        value: MsgSubmitMisbehaviour.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/ibc/core/client/v1/tx.rpc.msg.ts
deleted file mode 100644
index 29890ac8..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { MsgCreateClient, MsgCreateClientResponse, MsgUpdateClient, MsgUpdateClientResponse, MsgUpgradeClient, MsgUpgradeClientResponse, MsgSubmitMisbehaviour, MsgSubmitMisbehaviourResponse } from "./tx";
-/** Msg defines the ibc/client Msg service. */
-export interface Msg {
-  /** CreateClient defines a rpc handler method for MsgCreateClient. */
-  createClient(request: MsgCreateClient): Promise<MsgCreateClientResponse>;
-  /** UpdateClient defines a rpc handler method for MsgUpdateClient. */
-  updateClient(request: MsgUpdateClient): Promise<MsgUpdateClientResponse>;
-  /** UpgradeClient defines a rpc handler method for MsgUpgradeClient. */
-  upgradeClient(request: MsgUpgradeClient): Promise<MsgUpgradeClientResponse>;
-  /** SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. */
-  submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise<MsgSubmitMisbehaviourResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createClient = this.createClient.bind(this);
-    this.updateClient = this.updateClient.bind(this);
-    this.upgradeClient = this.upgradeClient.bind(this);
-    this.submitMisbehaviour = this.submitMisbehaviour.bind(this);
-  }
-  createClient(request: MsgCreateClient): Promise<MsgCreateClientResponse> {
-    const data = MsgCreateClient.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Msg", "CreateClient", data);
-    return promise.then(data => MsgCreateClientResponse.decode(new BinaryReader(data)));
-  }
-  updateClient(request: MsgUpdateClient): Promise<MsgUpdateClientResponse> {
-    const data = MsgUpdateClient.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpdateClient", data);
-    return promise.then(data => MsgUpdateClientResponse.decode(new BinaryReader(data)));
-  }
-  upgradeClient(request: MsgUpgradeClient): Promise<MsgUpgradeClientResponse> {
-    const data = MsgUpgradeClient.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpgradeClient", data);
-    return promise.then(data => MsgUpgradeClientResponse.decode(new BinaryReader(data)));
-  }
-  submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise<MsgSubmitMisbehaviourResponse> {
-    const data = MsgSubmitMisbehaviour.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.client.v1.Msg", "SubmitMisbehaviour", data);
-    return promise.then(data => MsgSubmitMisbehaviourResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/client/v1/tx.ts b/examples/injective/src/codegen/ibc/core/client/v1/tx.ts
deleted file mode 100644
index 2b7bb6ac..00000000
--- a/examples/injective/src/codegen/ibc/core/client/v1/tx.ts
+++ /dev/null
@@ -1,1036 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/** MsgCreateClient defines a message to create an IBC client */
-export interface MsgCreateClient {
-  /** light client state */
-  clientState: Any | undefined;
-  /**
-   * consensus state associated with the client that corresponds to a given
-   * height.
-   */
-  consensusState: Any | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgCreateClientProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgCreateClient";
-  value: Uint8Array;
-}
-/** MsgCreateClient defines a message to create an IBC client */
-export interface MsgCreateClientAmino {
-  /** light client state */
-  client_state?: AnyAmino | undefined;
-  /**
-   * consensus state associated with the client that corresponds to a given
-   * height.
-   */
-  consensus_state?: AnyAmino | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgCreateClientAminoMsg {
-  type: "cosmos-sdk/MsgCreateClient";
-  value: MsgCreateClientAmino;
-}
-/** MsgCreateClient defines a message to create an IBC client */
-export interface MsgCreateClientSDKType {
-  client_state: AnySDKType | undefined;
-  consensus_state: AnySDKType | undefined;
-  signer: string;
-}
-/** MsgCreateClientResponse defines the Msg/CreateClient response type. */
-export interface MsgCreateClientResponse {}
-export interface MsgCreateClientResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgCreateClientResponse";
-  value: Uint8Array;
-}
-/** MsgCreateClientResponse defines the Msg/CreateClient response type. */
-export interface MsgCreateClientResponseAmino {}
-export interface MsgCreateClientResponseAminoMsg {
-  type: "cosmos-sdk/MsgCreateClientResponse";
-  value: MsgCreateClientResponseAmino;
-}
-/** MsgCreateClientResponse defines the Msg/CreateClient response type. */
-export interface MsgCreateClientResponseSDKType {}
-/**
- * MsgUpdateClient defines an sdk.Msg to update a IBC client state using
- * the given header.
- */
-export interface MsgUpdateClient {
-  /** client unique identifier */
-  clientId: string;
-  /** header to update the light client */
-  header: Any | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgUpdateClientProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgUpdateClient";
-  value: Uint8Array;
-}
-/**
- * MsgUpdateClient defines an sdk.Msg to update a IBC client state using
- * the given header.
- */
-export interface MsgUpdateClientAmino {
-  /** client unique identifier */
-  client_id: string;
-  /** header to update the light client */
-  header?: AnyAmino | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgUpdateClientAminoMsg {
-  type: "cosmos-sdk/MsgUpdateClient";
-  value: MsgUpdateClientAmino;
-}
-/**
- * MsgUpdateClient defines an sdk.Msg to update a IBC client state using
- * the given header.
- */
-export interface MsgUpdateClientSDKType {
-  client_id: string;
-  header: AnySDKType | undefined;
-  signer: string;
-}
-/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */
-export interface MsgUpdateClientResponse {}
-export interface MsgUpdateClientResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgUpdateClientResponse";
-  value: Uint8Array;
-}
-/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */
-export interface MsgUpdateClientResponseAmino {}
-export interface MsgUpdateClientResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpdateClientResponse";
-  value: MsgUpdateClientResponseAmino;
-}
-/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */
-export interface MsgUpdateClientResponseSDKType {}
-/**
- * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client
- * state
- */
-export interface MsgUpgradeClient {
-  /** client unique identifier */
-  clientId: string;
-  /** upgraded client state */
-  clientState: Any | undefined;
-  /**
-   * upgraded consensus state, only contains enough information to serve as a
-   * basis of trust in update logic
-   */
-  consensusState: Any | undefined;
-  /** proof that old chain committed to new client */
-  proofUpgradeClient: Uint8Array;
-  /** proof that old chain committed to new consensus state */
-  proofUpgradeConsensusState: Uint8Array;
-  /** signer address */
-  signer: string;
-}
-export interface MsgUpgradeClientProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgUpgradeClient";
-  value: Uint8Array;
-}
-/**
- * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client
- * state
- */
-export interface MsgUpgradeClientAmino {
-  /** client unique identifier */
-  client_id: string;
-  /** upgraded client state */
-  client_state?: AnyAmino | undefined;
-  /**
-   * upgraded consensus state, only contains enough information to serve as a
-   * basis of trust in update logic
-   */
-  consensus_state?: AnyAmino | undefined;
-  /** proof that old chain committed to new client */
-  proof_upgrade_client: Uint8Array;
-  /** proof that old chain committed to new consensus state */
-  proof_upgrade_consensus_state: Uint8Array;
-  /** signer address */
-  signer: string;
-}
-export interface MsgUpgradeClientAminoMsg {
-  type: "cosmos-sdk/MsgUpgradeClient";
-  value: MsgUpgradeClientAmino;
-}
-/**
- * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client
- * state
- */
-export interface MsgUpgradeClientSDKType {
-  client_id: string;
-  client_state: AnySDKType | undefined;
-  consensus_state: AnySDKType | undefined;
-  proof_upgrade_client: Uint8Array;
-  proof_upgrade_consensus_state: Uint8Array;
-  signer: string;
-}
-/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */
-export interface MsgUpgradeClientResponse {}
-export interface MsgUpgradeClientResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgUpgradeClientResponse";
-  value: Uint8Array;
-}
-/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */
-export interface MsgUpgradeClientResponseAmino {}
-export interface MsgUpgradeClientResponseAminoMsg {
-  type: "cosmos-sdk/MsgUpgradeClientResponse";
-  value: MsgUpgradeClientResponseAmino;
-}
-/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */
-export interface MsgUpgradeClientResponseSDKType {}
-/**
- * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for
- * light client misbehaviour.
- */
-export interface MsgSubmitMisbehaviour {
-  /** client unique identifier */
-  clientId: string;
-  /** misbehaviour used for freezing the light client */
-  misbehaviour: Any | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgSubmitMisbehaviourProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour";
-  value: Uint8Array;
-}
-/**
- * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for
- * light client misbehaviour.
- */
-export interface MsgSubmitMisbehaviourAmino {
-  /** client unique identifier */
-  client_id: string;
-  /** misbehaviour used for freezing the light client */
-  misbehaviour?: AnyAmino | undefined;
-  /** signer address */
-  signer: string;
-}
-export interface MsgSubmitMisbehaviourAminoMsg {
-  type: "cosmos-sdk/MsgSubmitMisbehaviour";
-  value: MsgSubmitMisbehaviourAmino;
-}
-/**
- * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for
- * light client misbehaviour.
- */
-export interface MsgSubmitMisbehaviourSDKType {
-  client_id: string;
-  misbehaviour: AnySDKType | undefined;
-  signer: string;
-}
-/**
- * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response
- * type.
- */
-export interface MsgSubmitMisbehaviourResponse {}
-export interface MsgSubmitMisbehaviourResponseProtoMsg {
-  typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviourResponse";
-  value: Uint8Array;
-}
-/**
- * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response
- * type.
- */
-export interface MsgSubmitMisbehaviourResponseAmino {}
-export interface MsgSubmitMisbehaviourResponseAminoMsg {
-  type: "cosmos-sdk/MsgSubmitMisbehaviourResponse";
-  value: MsgSubmitMisbehaviourResponseAmino;
-}
-/**
- * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response
- * type.
- */
-export interface MsgSubmitMisbehaviourResponseSDKType {}
-function createBaseMsgCreateClient(): MsgCreateClient {
-  return {
-    clientState: Any.fromPartial({}),
-    consensusState: Any.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgCreateClient = {
-  typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-  aminoType: "cosmos-sdk/MsgCreateClient",
-  encode(message: MsgCreateClient, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(26).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateClient {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateClient();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateClient {
-    return {
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined,
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgCreateClient): unknown {
-    const obj: any = {};
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateClient>): MsgCreateClient {
-    const message = createBaseMsgCreateClient();
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateClientSDKType): MsgCreateClient {
-    return {
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined,
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgCreateClient): MsgCreateClientSDKType {
-    const obj: any = {};
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgCreateClientAmino): MsgCreateClient {
-    return {
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined,
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgCreateClient): MsgCreateClientAmino {
-    const obj: any = {};
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateClientAminoMsg): MsgCreateClient {
-    return MsgCreateClient.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateClient): MsgCreateClientAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateClient",
-      value: MsgCreateClient.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateClientProtoMsg): MsgCreateClient {
-    return MsgCreateClient.decode(message.value);
-  },
-  toProto(message: MsgCreateClient): Uint8Array {
-    return MsgCreateClient.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateClient): MsgCreateClientProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgCreateClient",
-      value: MsgCreateClient.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateClientResponse(): MsgCreateClientResponse {
-  return {};
-}
-export const MsgCreateClientResponse = {
-  typeUrl: "/ibc.core.client.v1.MsgCreateClientResponse",
-  aminoType: "cosmos-sdk/MsgCreateClientResponse",
-  encode(_: MsgCreateClientResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateClientResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateClientResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreateClientResponse {
-    return {};
-  },
-  toJSON(_: MsgCreateClientResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreateClientResponse>): MsgCreateClientResponse {
-    const message = createBaseMsgCreateClientResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreateClientResponseSDKType): MsgCreateClientResponse {
-    return {};
-  },
-  toSDK(_: MsgCreateClientResponse): MsgCreateClientResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreateClientResponseAmino): MsgCreateClientResponse {
-    return {};
-  },
-  toAmino(_: MsgCreateClientResponse): MsgCreateClientResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateClientResponseAminoMsg): MsgCreateClientResponse {
-    return MsgCreateClientResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateClientResponse): MsgCreateClientResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgCreateClientResponse",
-      value: MsgCreateClientResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateClientResponseProtoMsg): MsgCreateClientResponse {
-    return MsgCreateClientResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateClientResponse): Uint8Array {
-    return MsgCreateClientResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateClientResponse): MsgCreateClientResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgCreateClientResponse",
-      value: MsgCreateClientResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateClient(): MsgUpdateClient {
-  return {
-    clientId: "",
-    header: Any.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgUpdateClient = {
-  typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-  aminoType: "cosmos-sdk/MsgUpdateClient",
-  encode(message: MsgUpdateClient, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.header !== undefined) {
-      Any.encode(message.header, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(26).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateClient {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateClient();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.header = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpdateClient {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      header: isSet(object.header) ? Any.fromJSON(object.header) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgUpdateClient): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.header !== undefined && (obj.header = message.header ? Any.toJSON(message.header) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpdateClient>): MsgUpdateClient {
-    const message = createBaseMsgUpdateClient();
-    message.clientId = object.clientId ?? "";
-    message.header = object.header !== undefined && object.header !== null ? Any.fromPartial(object.header) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpdateClientSDKType): MsgUpdateClient {
-    return {
-      clientId: object?.client_id,
-      header: object.header ? Any.fromSDK(object.header) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgUpdateClient): MsgUpdateClientSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.header !== undefined && (obj.header = message.header ? Any.toSDK(message.header) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgUpdateClientAmino): MsgUpdateClient {
-    return {
-      clientId: object.client_id,
-      header: object?.header ? Any.fromAmino(object.header) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgUpdateClient): MsgUpdateClientAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.header = message.header ? Any.toAmino(message.header) : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateClientAminoMsg): MsgUpdateClient {
-    return MsgUpdateClient.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateClient): MsgUpdateClientAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateClient",
-      value: MsgUpdateClient.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateClientProtoMsg): MsgUpdateClient {
-    return MsgUpdateClient.decode(message.value);
-  },
-  toProto(message: MsgUpdateClient): Uint8Array {
-    return MsgUpdateClient.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateClient): MsgUpdateClientProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgUpdateClient",
-      value: MsgUpdateClient.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpdateClientResponse(): MsgUpdateClientResponse {
-  return {};
-}
-export const MsgUpdateClientResponse = {
-  typeUrl: "/ibc.core.client.v1.MsgUpdateClientResponse",
-  aminoType: "cosmos-sdk/MsgUpdateClientResponse",
-  encode(_: MsgUpdateClientResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateClientResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpdateClientResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpdateClientResponse {
-    return {};
-  },
-  toJSON(_: MsgUpdateClientResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpdateClientResponse>): MsgUpdateClientResponse {
-    const message = createBaseMsgUpdateClientResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpdateClientResponseSDKType): MsgUpdateClientResponse {
-    return {};
-  },
-  toSDK(_: MsgUpdateClientResponse): MsgUpdateClientResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpdateClientResponseAmino): MsgUpdateClientResponse {
-    return {};
-  },
-  toAmino(_: MsgUpdateClientResponse): MsgUpdateClientResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpdateClientResponseAminoMsg): MsgUpdateClientResponse {
-    return MsgUpdateClientResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpdateClientResponse): MsgUpdateClientResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpdateClientResponse",
-      value: MsgUpdateClientResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpdateClientResponseProtoMsg): MsgUpdateClientResponse {
-    return MsgUpdateClientResponse.decode(message.value);
-  },
-  toProto(message: MsgUpdateClientResponse): Uint8Array {
-    return MsgUpdateClientResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpdateClientResponse): MsgUpdateClientResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgUpdateClientResponse",
-      value: MsgUpdateClientResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpgradeClient(): MsgUpgradeClient {
-  return {
-    clientId: "",
-    clientState: Any.fromPartial({}),
-    consensusState: Any.fromPartial({}),
-    proofUpgradeClient: new Uint8Array(),
-    proofUpgradeConsensusState: new Uint8Array(),
-    signer: ""
-  };
-}
-export const MsgUpgradeClient = {
-  typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-  aminoType: "cosmos-sdk/MsgUpgradeClient",
-  encode(message: MsgUpgradeClient, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.proofUpgradeClient.length !== 0) {
-      writer.uint32(34).bytes(message.proofUpgradeClient);
-    }
-    if (message.proofUpgradeConsensusState.length !== 0) {
-      writer.uint32(42).bytes(message.proofUpgradeConsensusState);
-    }
-    if (message.signer !== "") {
-      writer.uint32(50).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpgradeClient {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpgradeClient();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.proofUpgradeClient = reader.bytes();
-          break;
-        case 5:
-          message.proofUpgradeConsensusState = reader.bytes();
-          break;
-        case 6:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUpgradeClient {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined,
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined,
-      proofUpgradeClient: isSet(object.proofUpgradeClient) ? bytesFromBase64(object.proofUpgradeClient) : new Uint8Array(),
-      proofUpgradeConsensusState: isSet(object.proofUpgradeConsensusState) ? bytesFromBase64(object.proofUpgradeConsensusState) : new Uint8Array(),
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgUpgradeClient): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    message.proofUpgradeClient !== undefined && (obj.proofUpgradeClient = base64FromBytes(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));
-    message.proofUpgradeConsensusState !== undefined && (obj.proofUpgradeConsensusState = base64FromBytes(message.proofUpgradeConsensusState !== undefined ? message.proofUpgradeConsensusState : new Uint8Array()));
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUpgradeClient>): MsgUpgradeClient {
-    const message = createBaseMsgUpgradeClient();
-    message.clientId = object.clientId ?? "";
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array();
-    message.proofUpgradeConsensusState = object.proofUpgradeConsensusState ?? new Uint8Array();
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgUpgradeClientSDKType): MsgUpgradeClient {
-    return {
-      clientId: object?.client_id,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined,
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined,
-      proofUpgradeClient: object?.proof_upgrade_client,
-      proofUpgradeConsensusState: object?.proof_upgrade_consensus_state,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgUpgradeClient): MsgUpgradeClientSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    obj.proof_upgrade_client = message.proofUpgradeClient;
-    obj.proof_upgrade_consensus_state = message.proofUpgradeConsensusState;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgUpgradeClientAmino): MsgUpgradeClient {
-    return {
-      clientId: object.client_id,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined,
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined,
-      proofUpgradeClient: object.proof_upgrade_client,
-      proofUpgradeConsensusState: object.proof_upgrade_consensus_state,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgUpgradeClient): MsgUpgradeClientAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    obj.proof_upgrade_client = message.proofUpgradeClient;
-    obj.proof_upgrade_consensus_state = message.proofUpgradeConsensusState;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpgradeClientAminoMsg): MsgUpgradeClient {
-    return MsgUpgradeClient.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpgradeClient): MsgUpgradeClientAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpgradeClient",
-      value: MsgUpgradeClient.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpgradeClientProtoMsg): MsgUpgradeClient {
-    return MsgUpgradeClient.decode(message.value);
-  },
-  toProto(message: MsgUpgradeClient): Uint8Array {
-    return MsgUpgradeClient.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpgradeClient): MsgUpgradeClientProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgUpgradeClient",
-      value: MsgUpgradeClient.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUpgradeClientResponse(): MsgUpgradeClientResponse {
-  return {};
-}
-export const MsgUpgradeClientResponse = {
-  typeUrl: "/ibc.core.client.v1.MsgUpgradeClientResponse",
-  aminoType: "cosmos-sdk/MsgUpgradeClientResponse",
-  encode(_: MsgUpgradeClientResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUpgradeClientResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUpgradeClientResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgUpgradeClientResponse {
-    return {};
-  },
-  toJSON(_: MsgUpgradeClientResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgUpgradeClientResponse>): MsgUpgradeClientResponse {
-    const message = createBaseMsgUpgradeClientResponse();
-    return message;
-  },
-  fromSDK(_: MsgUpgradeClientResponseSDKType): MsgUpgradeClientResponse {
-    return {};
-  },
-  toSDK(_: MsgUpgradeClientResponse): MsgUpgradeClientResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgUpgradeClientResponseAmino): MsgUpgradeClientResponse {
-    return {};
-  },
-  toAmino(_: MsgUpgradeClientResponse): MsgUpgradeClientResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgUpgradeClientResponseAminoMsg): MsgUpgradeClientResponse {
-    return MsgUpgradeClientResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUpgradeClientResponse): MsgUpgradeClientResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgUpgradeClientResponse",
-      value: MsgUpgradeClientResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUpgradeClientResponseProtoMsg): MsgUpgradeClientResponse {
-    return MsgUpgradeClientResponse.decode(message.value);
-  },
-  toProto(message: MsgUpgradeClientResponse): Uint8Array {
-    return MsgUpgradeClientResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUpgradeClientResponse): MsgUpgradeClientResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgUpgradeClientResponse",
-      value: MsgUpgradeClientResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitMisbehaviour(): MsgSubmitMisbehaviour {
-  return {
-    clientId: "",
-    misbehaviour: Any.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgSubmitMisbehaviour = {
-  typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-  aminoType: "cosmos-sdk/MsgSubmitMisbehaviour",
-  encode(message: MsgSubmitMisbehaviour, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.misbehaviour !== undefined) {
-      Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(26).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitMisbehaviour {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitMisbehaviour();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.misbehaviour = Any.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSubmitMisbehaviour {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      misbehaviour: isSet(object.misbehaviour) ? Any.fromJSON(object.misbehaviour) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgSubmitMisbehaviour): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.misbehaviour !== undefined && (obj.misbehaviour = message.misbehaviour ? Any.toJSON(message.misbehaviour) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSubmitMisbehaviour>): MsgSubmitMisbehaviour {
-    const message = createBaseMsgSubmitMisbehaviour();
-    message.clientId = object.clientId ?? "";
-    message.misbehaviour = object.misbehaviour !== undefined && object.misbehaviour !== null ? Any.fromPartial(object.misbehaviour) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSubmitMisbehaviourSDKType): MsgSubmitMisbehaviour {
-    return {
-      clientId: object?.client_id,
-      misbehaviour: object.misbehaviour ? Any.fromSDK(object.misbehaviour) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgSubmitMisbehaviour): MsgSubmitMisbehaviourSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.misbehaviour !== undefined && (obj.misbehaviour = message.misbehaviour ? Any.toSDK(message.misbehaviour) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgSubmitMisbehaviourAmino): MsgSubmitMisbehaviour {
-    return {
-      clientId: object.client_id,
-      misbehaviour: object?.misbehaviour ? Any.fromAmino(object.misbehaviour) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgSubmitMisbehaviour): MsgSubmitMisbehaviourAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.misbehaviour = message.misbehaviour ? Any.toAmino(message.misbehaviour) : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitMisbehaviourAminoMsg): MsgSubmitMisbehaviour {
-    return MsgSubmitMisbehaviour.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitMisbehaviour): MsgSubmitMisbehaviourAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitMisbehaviour",
-      value: MsgSubmitMisbehaviour.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitMisbehaviourProtoMsg): MsgSubmitMisbehaviour {
-    return MsgSubmitMisbehaviour.decode(message.value);
-  },
-  toProto(message: MsgSubmitMisbehaviour): Uint8Array {
-    return MsgSubmitMisbehaviour.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitMisbehaviour): MsgSubmitMisbehaviourProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour",
-      value: MsgSubmitMisbehaviour.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSubmitMisbehaviourResponse(): MsgSubmitMisbehaviourResponse {
-  return {};
-}
-export const MsgSubmitMisbehaviourResponse = {
-  typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviourResponse",
-  aminoType: "cosmos-sdk/MsgSubmitMisbehaviourResponse",
-  encode(_: MsgSubmitMisbehaviourResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSubmitMisbehaviourResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSubmitMisbehaviourResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSubmitMisbehaviourResponse {
-    return {};
-  },
-  toJSON(_: MsgSubmitMisbehaviourResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSubmitMisbehaviourResponse>): MsgSubmitMisbehaviourResponse {
-    const message = createBaseMsgSubmitMisbehaviourResponse();
-    return message;
-  },
-  fromSDK(_: MsgSubmitMisbehaviourResponseSDKType): MsgSubmitMisbehaviourResponse {
-    return {};
-  },
-  toSDK(_: MsgSubmitMisbehaviourResponse): MsgSubmitMisbehaviourResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSubmitMisbehaviourResponseAmino): MsgSubmitMisbehaviourResponse {
-    return {};
-  },
-  toAmino(_: MsgSubmitMisbehaviourResponse): MsgSubmitMisbehaviourResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSubmitMisbehaviourResponseAminoMsg): MsgSubmitMisbehaviourResponse {
-    return MsgSubmitMisbehaviourResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSubmitMisbehaviourResponse): MsgSubmitMisbehaviourResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgSubmitMisbehaviourResponse",
-      value: MsgSubmitMisbehaviourResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSubmitMisbehaviourResponseProtoMsg): MsgSubmitMisbehaviourResponse {
-    return MsgSubmitMisbehaviourResponse.decode(message.value);
-  },
-  toProto(message: MsgSubmitMisbehaviourResponse): Uint8Array {
-    return MsgSubmitMisbehaviourResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSubmitMisbehaviourResponse): MsgSubmitMisbehaviourResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviourResponse",
-      value: MsgSubmitMisbehaviourResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/commitment/v1/commitment.ts b/examples/injective/src/codegen/ibc/core/commitment/v1/commitment.ts
deleted file mode 100644
index 5f1c2158..00000000
--- a/examples/injective/src/codegen/ibc/core/commitment/v1/commitment.ts
+++ /dev/null
@@ -1,510 +0,0 @@
-import { CommitmentProof, CommitmentProofAmino, CommitmentProofSDKType } from "../../../../confio/proofs";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../../../helpers";
-/**
- * MerkleRoot defines a merkle root hash.
- * In the Cosmos SDK, the AppHash of a block header becomes the root.
- */
-export interface MerkleRoot {
-  hash: Uint8Array;
-}
-export interface MerkleRootProtoMsg {
-  typeUrl: "/ibc.core.commitment.v1.MerkleRoot";
-  value: Uint8Array;
-}
-/**
- * MerkleRoot defines a merkle root hash.
- * In the Cosmos SDK, the AppHash of a block header becomes the root.
- */
-export interface MerkleRootAmino {
-  hash: Uint8Array;
-}
-export interface MerkleRootAminoMsg {
-  type: "cosmos-sdk/MerkleRoot";
-  value: MerkleRootAmino;
-}
-/**
- * MerkleRoot defines a merkle root hash.
- * In the Cosmos SDK, the AppHash of a block header becomes the root.
- */
-export interface MerkleRootSDKType {
-  hash: Uint8Array;
-}
-/**
- * MerklePrefix is merkle path prefixed to the key.
- * The constructed key from the Path and the key will be append(Path.KeyPath,
- * append(Path.KeyPrefix, key...))
- */
-export interface MerklePrefix {
-  keyPrefix: Uint8Array;
-}
-export interface MerklePrefixProtoMsg {
-  typeUrl: "/ibc.core.commitment.v1.MerklePrefix";
-  value: Uint8Array;
-}
-/**
- * MerklePrefix is merkle path prefixed to the key.
- * The constructed key from the Path and the key will be append(Path.KeyPath,
- * append(Path.KeyPrefix, key...))
- */
-export interface MerklePrefixAmino {
-  key_prefix: Uint8Array;
-}
-export interface MerklePrefixAminoMsg {
-  type: "cosmos-sdk/MerklePrefix";
-  value: MerklePrefixAmino;
-}
-/**
- * MerklePrefix is merkle path prefixed to the key.
- * The constructed key from the Path and the key will be append(Path.KeyPath,
- * append(Path.KeyPrefix, key...))
- */
-export interface MerklePrefixSDKType {
-  key_prefix: Uint8Array;
-}
-/**
- * MerklePath is the path used to verify commitment proofs, which can be an
- * arbitrary structured object (defined by a commitment type).
- * MerklePath is represented from root-to-leaf
- */
-export interface MerklePath {
-  keyPath: string[];
-}
-export interface MerklePathProtoMsg {
-  typeUrl: "/ibc.core.commitment.v1.MerklePath";
-  value: Uint8Array;
-}
-/**
- * MerklePath is the path used to verify commitment proofs, which can be an
- * arbitrary structured object (defined by a commitment type).
- * MerklePath is represented from root-to-leaf
- */
-export interface MerklePathAmino {
-  key_path: string[];
-}
-export interface MerklePathAminoMsg {
-  type: "cosmos-sdk/MerklePath";
-  value: MerklePathAmino;
-}
-/**
- * MerklePath is the path used to verify commitment proofs, which can be an
- * arbitrary structured object (defined by a commitment type).
- * MerklePath is represented from root-to-leaf
- */
-export interface MerklePathSDKType {
-  key_path: string[];
-}
-/**
- * MerkleProof is a wrapper type over a chain of CommitmentProofs.
- * It demonstrates membership or non-membership for an element or set of
- * elements, verifiable in conjunction with a known commitment root. Proofs
- * should be succinct.
- * MerkleProofs are ordered from leaf-to-root
- */
-export interface MerkleProof {
-  proofs: CommitmentProof[];
-}
-export interface MerkleProofProtoMsg {
-  typeUrl: "/ibc.core.commitment.v1.MerkleProof";
-  value: Uint8Array;
-}
-/**
- * MerkleProof is a wrapper type over a chain of CommitmentProofs.
- * It demonstrates membership or non-membership for an element or set of
- * elements, verifiable in conjunction with a known commitment root. Proofs
- * should be succinct.
- * MerkleProofs are ordered from leaf-to-root
- */
-export interface MerkleProofAmino {
-  proofs: CommitmentProofAmino[];
-}
-export interface MerkleProofAminoMsg {
-  type: "cosmos-sdk/MerkleProof";
-  value: MerkleProofAmino;
-}
-/**
- * MerkleProof is a wrapper type over a chain of CommitmentProofs.
- * It demonstrates membership or non-membership for an element or set of
- * elements, verifiable in conjunction with a known commitment root. Proofs
- * should be succinct.
- * MerkleProofs are ordered from leaf-to-root
- */
-export interface MerkleProofSDKType {
-  proofs: CommitmentProofSDKType[];
-}
-function createBaseMerkleRoot(): MerkleRoot {
-  return {
-    hash: new Uint8Array()
-  };
-}
-export const MerkleRoot = {
-  typeUrl: "/ibc.core.commitment.v1.MerkleRoot",
-  aminoType: "cosmos-sdk/MerkleRoot",
-  encode(message: MerkleRoot, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash.length !== 0) {
-      writer.uint32(10).bytes(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MerkleRoot {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMerkleRoot();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MerkleRoot {
-    return {
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array()
-    };
-  },
-  toJSON(message: MerkleRoot): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MerkleRoot>): MerkleRoot {
-    const message = createBaseMerkleRoot();
-    message.hash = object.hash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MerkleRootSDKType): MerkleRoot {
-    return {
-      hash: object?.hash
-    };
-  },
-  toSDK(message: MerkleRoot): MerkleRootSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: MerkleRootAmino): MerkleRoot {
-    return {
-      hash: object.hash
-    };
-  },
-  toAmino(message: MerkleRoot): MerkleRootAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: MerkleRootAminoMsg): MerkleRoot {
-    return MerkleRoot.fromAmino(object.value);
-  },
-  toAminoMsg(message: MerkleRoot): MerkleRootAminoMsg {
-    return {
-      type: "cosmos-sdk/MerkleRoot",
-      value: MerkleRoot.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MerkleRootProtoMsg): MerkleRoot {
-    return MerkleRoot.decode(message.value);
-  },
-  toProto(message: MerkleRoot): Uint8Array {
-    return MerkleRoot.encode(message).finish();
-  },
-  toProtoMsg(message: MerkleRoot): MerkleRootProtoMsg {
-    return {
-      typeUrl: "/ibc.core.commitment.v1.MerkleRoot",
-      value: MerkleRoot.encode(message).finish()
-    };
-  }
-};
-function createBaseMerklePrefix(): MerklePrefix {
-  return {
-    keyPrefix: new Uint8Array()
-  };
-}
-export const MerklePrefix = {
-  typeUrl: "/ibc.core.commitment.v1.MerklePrefix",
-  aminoType: "cosmos-sdk/MerklePrefix",
-  encode(message: MerklePrefix, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.keyPrefix.length !== 0) {
-      writer.uint32(10).bytes(message.keyPrefix);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MerklePrefix {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMerklePrefix();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.keyPrefix = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MerklePrefix {
-    return {
-      keyPrefix: isSet(object.keyPrefix) ? bytesFromBase64(object.keyPrefix) : new Uint8Array()
-    };
-  },
-  toJSON(message: MerklePrefix): unknown {
-    const obj: any = {};
-    message.keyPrefix !== undefined && (obj.keyPrefix = base64FromBytes(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MerklePrefix>): MerklePrefix {
-    const message = createBaseMerklePrefix();
-    message.keyPrefix = object.keyPrefix ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: MerklePrefixSDKType): MerklePrefix {
-    return {
-      keyPrefix: object?.key_prefix
-    };
-  },
-  toSDK(message: MerklePrefix): MerklePrefixSDKType {
-    const obj: any = {};
-    obj.key_prefix = message.keyPrefix;
-    return obj;
-  },
-  fromAmino(object: MerklePrefixAmino): MerklePrefix {
-    return {
-      keyPrefix: object.key_prefix
-    };
-  },
-  toAmino(message: MerklePrefix): MerklePrefixAmino {
-    const obj: any = {};
-    obj.key_prefix = message.keyPrefix;
-    return obj;
-  },
-  fromAminoMsg(object: MerklePrefixAminoMsg): MerklePrefix {
-    return MerklePrefix.fromAmino(object.value);
-  },
-  toAminoMsg(message: MerklePrefix): MerklePrefixAminoMsg {
-    return {
-      type: "cosmos-sdk/MerklePrefix",
-      value: MerklePrefix.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MerklePrefixProtoMsg): MerklePrefix {
-    return MerklePrefix.decode(message.value);
-  },
-  toProto(message: MerklePrefix): Uint8Array {
-    return MerklePrefix.encode(message).finish();
-  },
-  toProtoMsg(message: MerklePrefix): MerklePrefixProtoMsg {
-    return {
-      typeUrl: "/ibc.core.commitment.v1.MerklePrefix",
-      value: MerklePrefix.encode(message).finish()
-    };
-  }
-};
-function createBaseMerklePath(): MerklePath {
-  return {
-    keyPath: []
-  };
-}
-export const MerklePath = {
-  typeUrl: "/ibc.core.commitment.v1.MerklePath",
-  aminoType: "cosmos-sdk/MerklePath",
-  encode(message: MerklePath, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.keyPath) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MerklePath {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMerklePath();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.keyPath.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MerklePath {
-    return {
-      keyPath: Array.isArray(object?.keyPath) ? object.keyPath.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: MerklePath): unknown {
-    const obj: any = {};
-    if (message.keyPath) {
-      obj.keyPath = message.keyPath.map(e => e);
-    } else {
-      obj.keyPath = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MerklePath>): MerklePath {
-    const message = createBaseMerklePath();
-    message.keyPath = object.keyPath?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: MerklePathSDKType): MerklePath {
-    return {
-      keyPath: Array.isArray(object?.key_path) ? object.key_path.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: MerklePath): MerklePathSDKType {
-    const obj: any = {};
-    if (message.keyPath) {
-      obj.key_path = message.keyPath.map(e => e);
-    } else {
-      obj.key_path = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MerklePathAmino): MerklePath {
-    return {
-      keyPath: Array.isArray(object?.key_path) ? object.key_path.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: MerklePath): MerklePathAmino {
-    const obj: any = {};
-    if (message.keyPath) {
-      obj.key_path = message.keyPath.map(e => e);
-    } else {
-      obj.key_path = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MerklePathAminoMsg): MerklePath {
-    return MerklePath.fromAmino(object.value);
-  },
-  toAminoMsg(message: MerklePath): MerklePathAminoMsg {
-    return {
-      type: "cosmos-sdk/MerklePath",
-      value: MerklePath.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MerklePathProtoMsg): MerklePath {
-    return MerklePath.decode(message.value);
-  },
-  toProto(message: MerklePath): Uint8Array {
-    return MerklePath.encode(message).finish();
-  },
-  toProtoMsg(message: MerklePath): MerklePathProtoMsg {
-    return {
-      typeUrl: "/ibc.core.commitment.v1.MerklePath",
-      value: MerklePath.encode(message).finish()
-    };
-  }
-};
-function createBaseMerkleProof(): MerkleProof {
-  return {
-    proofs: []
-  };
-}
-export const MerkleProof = {
-  typeUrl: "/ibc.core.commitment.v1.MerkleProof",
-  aminoType: "cosmos-sdk/MerkleProof",
-  encode(message: MerkleProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.proofs) {
-      CommitmentProof.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MerkleProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMerkleProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.proofs.push(CommitmentProof.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MerkleProof {
-    return {
-      proofs: Array.isArray(object?.proofs) ? object.proofs.map((e: any) => CommitmentProof.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MerkleProof): unknown {
-    const obj: any = {};
-    if (message.proofs) {
-      obj.proofs = message.proofs.map(e => e ? CommitmentProof.toJSON(e) : undefined);
-    } else {
-      obj.proofs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MerkleProof>): MerkleProof {
-    const message = createBaseMerkleProof();
-    message.proofs = object.proofs?.map(e => CommitmentProof.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MerkleProofSDKType): MerkleProof {
-    return {
-      proofs: Array.isArray(object?.proofs) ? object.proofs.map((e: any) => CommitmentProof.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MerkleProof): MerkleProofSDKType {
-    const obj: any = {};
-    if (message.proofs) {
-      obj.proofs = message.proofs.map(e => e ? CommitmentProof.toSDK(e) : undefined);
-    } else {
-      obj.proofs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MerkleProofAmino): MerkleProof {
-    return {
-      proofs: Array.isArray(object?.proofs) ? object.proofs.map((e: any) => CommitmentProof.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MerkleProof): MerkleProofAmino {
-    const obj: any = {};
-    if (message.proofs) {
-      obj.proofs = message.proofs.map(e => e ? CommitmentProof.toAmino(e) : undefined);
-    } else {
-      obj.proofs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MerkleProofAminoMsg): MerkleProof {
-    return MerkleProof.fromAmino(object.value);
-  },
-  toAminoMsg(message: MerkleProof): MerkleProofAminoMsg {
-    return {
-      type: "cosmos-sdk/MerkleProof",
-      value: MerkleProof.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MerkleProofProtoMsg): MerkleProof {
-    return MerkleProof.decode(message.value);
-  },
-  toProto(message: MerkleProof): Uint8Array {
-    return MerkleProof.encode(message).finish();
-  },
-  toProtoMsg(message: MerkleProof): MerkleProofProtoMsg {
-    return {
-      typeUrl: "/ibc.core.commitment.v1.MerkleProof",
-      value: MerkleProof.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/connection.ts b/examples/injective/src/codegen/ibc/core/connection/v1/connection.ts
deleted file mode 100644
index 036b1457..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/connection.ts
+++ /dev/null
@@ -1,1208 +0,0 @@
-import { MerklePrefix, MerklePrefixAmino, MerklePrefixSDKType } from "../../commitment/v1/commitment";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * State defines if a connection is in one of the following states:
- * INIT, TRYOPEN, OPEN or UNINITIALIZED.
- */
-export enum State {
-  /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */
-  STATE_UNINITIALIZED_UNSPECIFIED = 0,
-  /** STATE_INIT - A connection end has just started the opening handshake. */
-  STATE_INIT = 1,
-  /**
-   * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty
-   * chain.
-   */
-  STATE_TRYOPEN = 2,
-  /** STATE_OPEN - A connection end has completed the handshake. */
-  STATE_OPEN = 3,
-  UNRECOGNIZED = -1,
-}
-export const StateSDKType = State;
-export const StateAmino = State;
-export function stateFromJSON(object: any): State {
-  switch (object) {
-    case 0:
-    case "STATE_UNINITIALIZED_UNSPECIFIED":
-      return State.STATE_UNINITIALIZED_UNSPECIFIED;
-    case 1:
-    case "STATE_INIT":
-      return State.STATE_INIT;
-    case 2:
-    case "STATE_TRYOPEN":
-      return State.STATE_TRYOPEN;
-    case 3:
-    case "STATE_OPEN":
-      return State.STATE_OPEN;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return State.UNRECOGNIZED;
-  }
-}
-export function stateToJSON(object: State): string {
-  switch (object) {
-    case State.STATE_UNINITIALIZED_UNSPECIFIED:
-      return "STATE_UNINITIALIZED_UNSPECIFIED";
-    case State.STATE_INIT:
-      return "STATE_INIT";
-    case State.STATE_TRYOPEN:
-      return "STATE_TRYOPEN";
-    case State.STATE_OPEN:
-      return "STATE_OPEN";
-    case State.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * ConnectionEnd defines a stateful object on a chain connected to another
- * separate one.
- * NOTE: there must only be 2 defined ConnectionEnds to establish
- * a connection between two chains.
- */
-export interface ConnectionEnd {
-  /** client associated with this connection. */
-  clientId: string;
-  /**
-   * IBC version which can be utilised to determine encodings or protocols for
-   * channels or packets utilising this connection.
-   */
-  versions: Version[];
-  /** current state of the connection end. */
-  state: State;
-  /** counterparty chain associated with this connection. */
-  counterparty: Counterparty | undefined;
-  /**
-   * delay period that must pass before a consensus state can be used for
-   * packet-verification NOTE: delay period logic is only implemented by some
-   * clients.
-   */
-  delayPeriod: bigint;
-}
-export interface ConnectionEndProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.ConnectionEnd";
-  value: Uint8Array;
-}
-/**
- * ConnectionEnd defines a stateful object on a chain connected to another
- * separate one.
- * NOTE: there must only be 2 defined ConnectionEnds to establish
- * a connection between two chains.
- */
-export interface ConnectionEndAmino {
-  /** client associated with this connection. */
-  client_id: string;
-  /**
-   * IBC version which can be utilised to determine encodings or protocols for
-   * channels or packets utilising this connection.
-   */
-  versions: VersionAmino[];
-  /** current state of the connection end. */
-  state: State;
-  /** counterparty chain associated with this connection. */
-  counterparty?: CounterpartyAmino | undefined;
-  /**
-   * delay period that must pass before a consensus state can be used for
-   * packet-verification NOTE: delay period logic is only implemented by some
-   * clients.
-   */
-  delay_period: string;
-}
-export interface ConnectionEndAminoMsg {
-  type: "cosmos-sdk/ConnectionEnd";
-  value: ConnectionEndAmino;
-}
-/**
- * ConnectionEnd defines a stateful object on a chain connected to another
- * separate one.
- * NOTE: there must only be 2 defined ConnectionEnds to establish
- * a connection between two chains.
- */
-export interface ConnectionEndSDKType {
-  client_id: string;
-  versions: VersionSDKType[];
-  state: State;
-  counterparty: CounterpartySDKType | undefined;
-  delay_period: bigint;
-}
-/**
- * IdentifiedConnection defines a connection with additional connection
- * identifier field.
- */
-export interface IdentifiedConnection {
-  /** connection identifier. */
-  id: string;
-  /** client associated with this connection. */
-  clientId: string;
-  /**
-   * IBC version which can be utilised to determine encodings or protocols for
-   * channels or packets utilising this connection
-   */
-  versions: Version[];
-  /** current state of the connection end. */
-  state: State;
-  /** counterparty chain associated with this connection. */
-  counterparty: Counterparty | undefined;
-  /** delay period associated with this connection. */
-  delayPeriod: bigint;
-}
-export interface IdentifiedConnectionProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.IdentifiedConnection";
-  value: Uint8Array;
-}
-/**
- * IdentifiedConnection defines a connection with additional connection
- * identifier field.
- */
-export interface IdentifiedConnectionAmino {
-  /** connection identifier. */
-  id: string;
-  /** client associated with this connection. */
-  client_id: string;
-  /**
-   * IBC version which can be utilised to determine encodings or protocols for
-   * channels or packets utilising this connection
-   */
-  versions: VersionAmino[];
-  /** current state of the connection end. */
-  state: State;
-  /** counterparty chain associated with this connection. */
-  counterparty?: CounterpartyAmino | undefined;
-  /** delay period associated with this connection. */
-  delay_period: string;
-}
-export interface IdentifiedConnectionAminoMsg {
-  type: "cosmos-sdk/IdentifiedConnection";
-  value: IdentifiedConnectionAmino;
-}
-/**
- * IdentifiedConnection defines a connection with additional connection
- * identifier field.
- */
-export interface IdentifiedConnectionSDKType {
-  id: string;
-  client_id: string;
-  versions: VersionSDKType[];
-  state: State;
-  counterparty: CounterpartySDKType | undefined;
-  delay_period: bigint;
-}
-/** Counterparty defines the counterparty chain associated with a connection end. */
-export interface Counterparty {
-  /**
-   * identifies the client on the counterparty chain associated with a given
-   * connection.
-   */
-  clientId: string;
-  /**
-   * identifies the connection end on the counterparty chain associated with a
-   * given connection.
-   */
-  connectionId: string;
-  /** commitment merkle prefix of the counterparty chain. */
-  prefix: MerklePrefix | undefined;
-}
-export interface CounterpartyProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.Counterparty";
-  value: Uint8Array;
-}
-/** Counterparty defines the counterparty chain associated with a connection end. */
-export interface CounterpartyAmino {
-  /**
-   * identifies the client on the counterparty chain associated with a given
-   * connection.
-   */
-  client_id: string;
-  /**
-   * identifies the connection end on the counterparty chain associated with a
-   * given connection.
-   */
-  connection_id: string;
-  /** commitment merkle prefix of the counterparty chain. */
-  prefix?: MerklePrefixAmino | undefined;
-}
-export interface CounterpartyAminoMsg {
-  type: "cosmos-sdk/Counterparty";
-  value: CounterpartyAmino;
-}
-/** Counterparty defines the counterparty chain associated with a connection end. */
-export interface CounterpartySDKType {
-  client_id: string;
-  connection_id: string;
-  prefix: MerklePrefixSDKType | undefined;
-}
-/** ClientPaths define all the connection paths for a client state. */
-export interface ClientPaths {
-  /** list of connection paths */
-  paths: string[];
-}
-export interface ClientPathsProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.ClientPaths";
-  value: Uint8Array;
-}
-/** ClientPaths define all the connection paths for a client state. */
-export interface ClientPathsAmino {
-  /** list of connection paths */
-  paths: string[];
-}
-export interface ClientPathsAminoMsg {
-  type: "cosmos-sdk/ClientPaths";
-  value: ClientPathsAmino;
-}
-/** ClientPaths define all the connection paths for a client state. */
-export interface ClientPathsSDKType {
-  paths: string[];
-}
-/** ConnectionPaths define all the connection paths for a given client state. */
-export interface ConnectionPaths {
-  /** client state unique identifier */
-  clientId: string;
-  /** list of connection paths */
-  paths: string[];
-}
-export interface ConnectionPathsProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.ConnectionPaths";
-  value: Uint8Array;
-}
-/** ConnectionPaths define all the connection paths for a given client state. */
-export interface ConnectionPathsAmino {
-  /** client state unique identifier */
-  client_id: string;
-  /** list of connection paths */
-  paths: string[];
-}
-export interface ConnectionPathsAminoMsg {
-  type: "cosmos-sdk/ConnectionPaths";
-  value: ConnectionPathsAmino;
-}
-/** ConnectionPaths define all the connection paths for a given client state. */
-export interface ConnectionPathsSDKType {
-  client_id: string;
-  paths: string[];
-}
-/**
- * Version defines the versioning scheme used to negotiate the IBC verison in
- * the connection handshake.
- */
-export interface Version {
-  /** unique version identifier */
-  identifier: string;
-  /** list of features compatible with the specified identifier */
-  features: string[];
-}
-export interface VersionProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.Version";
-  value: Uint8Array;
-}
-/**
- * Version defines the versioning scheme used to negotiate the IBC verison in
- * the connection handshake.
- */
-export interface VersionAmino {
-  /** unique version identifier */
-  identifier: string;
-  /** list of features compatible with the specified identifier */
-  features: string[];
-}
-export interface VersionAminoMsg {
-  type: "cosmos-sdk/Version";
-  value: VersionAmino;
-}
-/**
- * Version defines the versioning scheme used to negotiate the IBC verison in
- * the connection handshake.
- */
-export interface VersionSDKType {
-  identifier: string;
-  features: string[];
-}
-/** Params defines the set of Connection parameters. */
-export interface Params {
-  /**
-   * maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the
-   * largest amount of time that the chain might reasonably take to produce the next block under normal operating
-   * conditions. A safe choice is 3-5x the expected time per block.
-   */
-  maxExpectedTimePerBlock: bigint;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.Params";
-  value: Uint8Array;
-}
-/** Params defines the set of Connection parameters. */
-export interface ParamsAmino {
-  /**
-   * maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the
-   * largest amount of time that the chain might reasonably take to produce the next block under normal operating
-   * conditions. A safe choice is 3-5x the expected time per block.
-   */
-  max_expected_time_per_block: string;
-}
-export interface ParamsAminoMsg {
-  type: "cosmos-sdk/Params";
-  value: ParamsAmino;
-}
-/** Params defines the set of Connection parameters. */
-export interface ParamsSDKType {
-  max_expected_time_per_block: bigint;
-}
-function createBaseConnectionEnd(): ConnectionEnd {
-  return {
-    clientId: "",
-    versions: [],
-    state: 0,
-    counterparty: Counterparty.fromPartial({}),
-    delayPeriod: BigInt(0)
-  };
-}
-export const ConnectionEnd = {
-  typeUrl: "/ibc.core.connection.v1.ConnectionEnd",
-  aminoType: "cosmos-sdk/ConnectionEnd",
-  encode(message: ConnectionEnd, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    for (const v of message.versions) {
-      Version.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.state !== 0) {
-      writer.uint32(24).int32(message.state);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.delayPeriod !== BigInt(0)) {
-      writer.uint32(40).uint64(message.delayPeriod);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectionEnd {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectionEnd();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.versions.push(Version.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.state = (reader.int32() as any);
-          break;
-        case 4:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.delayPeriod = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectionEnd {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromJSON(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      delayPeriod: isSet(object.delayPeriod) ? BigInt(object.delayPeriod.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ConnectionEnd): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toJSON(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectionEnd>): ConnectionEnd {
-    const message = createBaseConnectionEnd();
-    message.clientId = object.clientId ?? "";
-    message.versions = object.versions?.map(e => Version.fromPartial(e)) || [];
-    message.state = object.state ?? 0;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? BigInt(object.delayPeriod.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ConnectionEndSDKType): ConnectionEnd {
-    return {
-      clientId: object?.client_id,
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromSDK(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      delayPeriod: object?.delay_period
-    };
-  },
-  toSDK(message: ConnectionEnd): ConnectionEndSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toSDK(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    obj.delay_period = message.delayPeriod;
-    return obj;
-  },
-  fromAmino(object: ConnectionEndAmino): ConnectionEnd {
-    return {
-      clientId: object.client_id,
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromAmino(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      delayPeriod: BigInt(object.delay_period)
-    };
-  },
-  toAmino(message: ConnectionEnd): ConnectionEndAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toAmino(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    obj.state = message.state;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    obj.delay_period = message.delayPeriod ? message.delayPeriod.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConnectionEndAminoMsg): ConnectionEnd {
-    return ConnectionEnd.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectionEnd): ConnectionEndAminoMsg {
-    return {
-      type: "cosmos-sdk/ConnectionEnd",
-      value: ConnectionEnd.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectionEndProtoMsg): ConnectionEnd {
-    return ConnectionEnd.decode(message.value);
-  },
-  toProto(message: ConnectionEnd): Uint8Array {
-    return ConnectionEnd.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectionEnd): ConnectionEndProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.ConnectionEnd",
-      value: ConnectionEnd.encode(message).finish()
-    };
-  }
-};
-function createBaseIdentifiedConnection(): IdentifiedConnection {
-  return {
-    id: "",
-    clientId: "",
-    versions: [],
-    state: 0,
-    counterparty: Counterparty.fromPartial({}),
-    delayPeriod: BigInt(0)
-  };
-}
-export const IdentifiedConnection = {
-  typeUrl: "/ibc.core.connection.v1.IdentifiedConnection",
-  aminoType: "cosmos-sdk/IdentifiedConnection",
-  encode(message: IdentifiedConnection, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== "") {
-      writer.uint32(10).string(message.id);
-    }
-    if (message.clientId !== "") {
-      writer.uint32(18).string(message.clientId);
-    }
-    for (const v of message.versions) {
-      Version.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.state !== 0) {
-      writer.uint32(32).int32(message.state);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.delayPeriod !== BigInt(0)) {
-      writer.uint32(48).uint64(message.delayPeriod);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IdentifiedConnection {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIdentifiedConnection();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.string();
-          break;
-        case 2:
-          message.clientId = reader.string();
-          break;
-        case 3:
-          message.versions.push(Version.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.state = (reader.int32() as any);
-          break;
-        case 5:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.delayPeriod = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IdentifiedConnection {
-    return {
-      id: isSet(object.id) ? String(object.id) : "",
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromJSON(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      delayPeriod: isSet(object.delayPeriod) ? BigInt(object.delayPeriod.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: IdentifiedConnection): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = message.id);
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toJSON(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IdentifiedConnection>): IdentifiedConnection {
-    const message = createBaseIdentifiedConnection();
-    message.id = object.id ?? "";
-    message.clientId = object.clientId ?? "";
-    message.versions = object.versions?.map(e => Version.fromPartial(e)) || [];
-    message.state = object.state ?? 0;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? BigInt(object.delayPeriod.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: IdentifiedConnectionSDKType): IdentifiedConnection {
-    return {
-      id: object?.id,
-      clientId: object?.client_id,
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromSDK(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      delayPeriod: object?.delay_period
-    };
-  },
-  toSDK(message: IdentifiedConnection): IdentifiedConnectionSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.client_id = message.clientId;
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toSDK(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    message.state !== undefined && (obj.state = stateToJSON(message.state));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    obj.delay_period = message.delayPeriod;
-    return obj;
-  },
-  fromAmino(object: IdentifiedConnectionAmino): IdentifiedConnection {
-    return {
-      id: object.id,
-      clientId: object.client_id,
-      versions: Array.isArray(object?.versions) ? object.versions.map((e: any) => Version.fromAmino(e)) : [],
-      state: isSet(object.state) ? stateFromJSON(object.state) : -1,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      delayPeriod: BigInt(object.delay_period)
-    };
-  },
-  toAmino(message: IdentifiedConnection): IdentifiedConnectionAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.client_id = message.clientId;
-    if (message.versions) {
-      obj.versions = message.versions.map(e => e ? Version.toAmino(e) : undefined);
-    } else {
-      obj.versions = [];
-    }
-    obj.state = message.state;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    obj.delay_period = message.delayPeriod ? message.delayPeriod.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: IdentifiedConnectionAminoMsg): IdentifiedConnection {
-    return IdentifiedConnection.fromAmino(object.value);
-  },
-  toAminoMsg(message: IdentifiedConnection): IdentifiedConnectionAminoMsg {
-    return {
-      type: "cosmos-sdk/IdentifiedConnection",
-      value: IdentifiedConnection.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IdentifiedConnectionProtoMsg): IdentifiedConnection {
-    return IdentifiedConnection.decode(message.value);
-  },
-  toProto(message: IdentifiedConnection): Uint8Array {
-    return IdentifiedConnection.encode(message).finish();
-  },
-  toProtoMsg(message: IdentifiedConnection): IdentifiedConnectionProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.IdentifiedConnection",
-      value: IdentifiedConnection.encode(message).finish()
-    };
-  }
-};
-function createBaseCounterparty(): Counterparty {
-  return {
-    clientId: "",
-    connectionId: "",
-    prefix: MerklePrefix.fromPartial({})
-  };
-}
-export const Counterparty = {
-  typeUrl: "/ibc.core.connection.v1.Counterparty",
-  aminoType: "cosmos-sdk/Counterparty",
-  encode(message: Counterparty, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.connectionId !== "") {
-      writer.uint32(18).string(message.connectionId);
-    }
-    if (message.prefix !== undefined) {
-      MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Counterparty {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCounterparty();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.connectionId = reader.string();
-          break;
-        case 3:
-          message.prefix = MerklePrefix.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Counterparty {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : "",
-      prefix: isSet(object.prefix) ? MerklePrefix.fromJSON(object.prefix) : undefined
-    };
-  },
-  toJSON(message: Counterparty): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    message.prefix !== undefined && (obj.prefix = message.prefix ? MerklePrefix.toJSON(message.prefix) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Counterparty>): Counterparty {
-    const message = createBaseCounterparty();
-    message.clientId = object.clientId ?? "";
-    message.connectionId = object.connectionId ?? "";
-    message.prefix = object.prefix !== undefined && object.prefix !== null ? MerklePrefix.fromPartial(object.prefix) : undefined;
-    return message;
-  },
-  fromSDK(object: CounterpartySDKType): Counterparty {
-    return {
-      clientId: object?.client_id,
-      connectionId: object?.connection_id,
-      prefix: object.prefix ? MerklePrefix.fromSDK(object.prefix) : undefined
-    };
-  },
-  toSDK(message: Counterparty): CounterpartySDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.connection_id = message.connectionId;
-    message.prefix !== undefined && (obj.prefix = message.prefix ? MerklePrefix.toSDK(message.prefix) : undefined);
-    return obj;
-  },
-  fromAmino(object: CounterpartyAmino): Counterparty {
-    return {
-      clientId: object.client_id,
-      connectionId: object.connection_id,
-      prefix: object?.prefix ? MerklePrefix.fromAmino(object.prefix) : undefined
-    };
-  },
-  toAmino(message: Counterparty): CounterpartyAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.connection_id = message.connectionId;
-    obj.prefix = message.prefix ? MerklePrefix.toAmino(message.prefix) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: CounterpartyAminoMsg): Counterparty {
-    return Counterparty.fromAmino(object.value);
-  },
-  toAminoMsg(message: Counterparty): CounterpartyAminoMsg {
-    return {
-      type: "cosmos-sdk/Counterparty",
-      value: Counterparty.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: CounterpartyProtoMsg): Counterparty {
-    return Counterparty.decode(message.value);
-  },
-  toProto(message: Counterparty): Uint8Array {
-    return Counterparty.encode(message).finish();
-  },
-  toProtoMsg(message: Counterparty): CounterpartyProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.Counterparty",
-      value: Counterparty.encode(message).finish()
-    };
-  }
-};
-function createBaseClientPaths(): ClientPaths {
-  return {
-    paths: []
-  };
-}
-export const ClientPaths = {
-  typeUrl: "/ibc.core.connection.v1.ClientPaths",
-  aminoType: "cosmos-sdk/ClientPaths",
-  encode(message: ClientPaths, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.paths) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientPaths {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientPaths();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.paths.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientPaths {
-    return {
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ClientPaths): unknown {
-    const obj: any = {};
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientPaths>): ClientPaths {
-    const message = createBaseClientPaths();
-    message.paths = object.paths?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ClientPathsSDKType): ClientPaths {
-    return {
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ClientPaths): ClientPathsSDKType {
-    const obj: any = {};
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ClientPathsAmino): ClientPaths {
-    return {
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ClientPaths): ClientPathsAmino {
-    const obj: any = {};
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ClientPathsAminoMsg): ClientPaths {
-    return ClientPaths.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientPaths): ClientPathsAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientPaths",
-      value: ClientPaths.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientPathsProtoMsg): ClientPaths {
-    return ClientPaths.decode(message.value);
-  },
-  toProto(message: ClientPaths): Uint8Array {
-    return ClientPaths.encode(message).finish();
-  },
-  toProtoMsg(message: ClientPaths): ClientPathsProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.ClientPaths",
-      value: ClientPaths.encode(message).finish()
-    };
-  }
-};
-function createBaseConnectionPaths(): ConnectionPaths {
-  return {
-    clientId: "",
-    paths: []
-  };
-}
-export const ConnectionPaths = {
-  typeUrl: "/ibc.core.connection.v1.ConnectionPaths",
-  aminoType: "cosmos-sdk/ConnectionPaths",
-  encode(message: ConnectionPaths, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    for (const v of message.paths) {
-      writer.uint32(18).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectionPaths {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectionPaths();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.paths.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectionPaths {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ConnectionPaths): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectionPaths>): ConnectionPaths {
-    const message = createBaseConnectionPaths();
-    message.clientId = object.clientId ?? "";
-    message.paths = object.paths?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ConnectionPathsSDKType): ConnectionPaths {
-    return {
-      clientId: object?.client_id,
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ConnectionPaths): ConnectionPathsSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ConnectionPathsAmino): ConnectionPaths {
-    return {
-      clientId: object.client_id,
-      paths: Array.isArray(object?.paths) ? object.paths.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ConnectionPaths): ConnectionPathsAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    if (message.paths) {
-      obj.paths = message.paths.map(e => e);
-    } else {
-      obj.paths = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ConnectionPathsAminoMsg): ConnectionPaths {
-    return ConnectionPaths.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectionPaths): ConnectionPathsAminoMsg {
-    return {
-      type: "cosmos-sdk/ConnectionPaths",
-      value: ConnectionPaths.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectionPathsProtoMsg): ConnectionPaths {
-    return ConnectionPaths.decode(message.value);
-  },
-  toProto(message: ConnectionPaths): Uint8Array {
-    return ConnectionPaths.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectionPaths): ConnectionPathsProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.ConnectionPaths",
-      value: ConnectionPaths.encode(message).finish()
-    };
-  }
-};
-function createBaseVersion(): Version {
-  return {
-    identifier: "",
-    features: []
-  };
-}
-export const Version = {
-  typeUrl: "/ibc.core.connection.v1.Version",
-  aminoType: "cosmos-sdk/Version",
-  encode(message: Version, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.identifier !== "") {
-      writer.uint32(10).string(message.identifier);
-    }
-    for (const v of message.features) {
-      writer.uint32(18).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Version {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVersion();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.identifier = reader.string();
-          break;
-        case 2:
-          message.features.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Version {
-    return {
-      identifier: isSet(object.identifier) ? String(object.identifier) : "",
-      features: Array.isArray(object?.features) ? object.features.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: Version): unknown {
-    const obj: any = {};
-    message.identifier !== undefined && (obj.identifier = message.identifier);
-    if (message.features) {
-      obj.features = message.features.map(e => e);
-    } else {
-      obj.features = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Version>): Version {
-    const message = createBaseVersion();
-    message.identifier = object.identifier ?? "";
-    message.features = object.features?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: VersionSDKType): Version {
-    return {
-      identifier: object?.identifier,
-      features: Array.isArray(object?.features) ? object.features.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Version): VersionSDKType {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    if (message.features) {
-      obj.features = message.features.map(e => e);
-    } else {
-      obj.features = [];
-    }
-    return obj;
-  },
-  fromAmino(object: VersionAmino): Version {
-    return {
-      identifier: object.identifier,
-      features: Array.isArray(object?.features) ? object.features.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Version): VersionAmino {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    if (message.features) {
-      obj.features = message.features.map(e => e);
-    } else {
-      obj.features = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: VersionAminoMsg): Version {
-    return Version.fromAmino(object.value);
-  },
-  toAminoMsg(message: Version): VersionAminoMsg {
-    return {
-      type: "cosmos-sdk/Version",
-      value: Version.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: VersionProtoMsg): Version {
-    return Version.decode(message.value);
-  },
-  toProto(message: Version): Uint8Array {
-    return Version.encode(message).finish();
-  },
-  toProtoMsg(message: Version): VersionProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.Version",
-      value: Version.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    maxExpectedTimePerBlock: BigInt(0)
-  };
-}
-export const Params = {
-  typeUrl: "/ibc.core.connection.v1.Params",
-  aminoType: "cosmos-sdk/Params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxExpectedTimePerBlock !== BigInt(0)) {
-      writer.uint32(8).uint64(message.maxExpectedTimePerBlock);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxExpectedTimePerBlock = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      maxExpectedTimePerBlock: isSet(object.maxExpectedTimePerBlock) ? BigInt(object.maxExpectedTimePerBlock.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.maxExpectedTimePerBlock !== undefined && (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.maxExpectedTimePerBlock = object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null ? BigInt(object.maxExpectedTimePerBlock.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      maxExpectedTimePerBlock: object?.max_expected_time_per_block
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.max_expected_time_per_block = message.maxExpectedTimePerBlock;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      maxExpectedTimePerBlock: BigInt(object.max_expected_time_per_block)
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.max_expected_time_per_block = message.maxExpectedTimePerBlock ? message.maxExpectedTimePerBlock.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "cosmos-sdk/Params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/genesis.ts b/examples/injective/src/codegen/ibc/core/connection/v1/genesis.ts
deleted file mode 100644
index d7d4c564..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/genesis.ts
+++ /dev/null
@@ -1,188 +0,0 @@
-import { IdentifiedConnection, IdentifiedConnectionAmino, IdentifiedConnectionSDKType, ConnectionPaths, ConnectionPathsAmino, ConnectionPathsSDKType, Params, ParamsAmino, ParamsSDKType } from "./connection";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** GenesisState defines the ibc connection submodule's genesis state. */
-export interface GenesisState {
-  connections: IdentifiedConnection[];
-  clientConnectionPaths: ConnectionPaths[];
-  /** the sequence for the next generated connection identifier */
-  nextConnectionSequence: bigint;
-  params: Params | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the ibc connection submodule's genesis state. */
-export interface GenesisStateAmino {
-  connections: IdentifiedConnectionAmino[];
-  client_connection_paths: ConnectionPathsAmino[];
-  /** the sequence for the next generated connection identifier */
-  next_connection_sequence: string;
-  params?: ParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the ibc connection submodule's genesis state. */
-export interface GenesisStateSDKType {
-  connections: IdentifiedConnectionSDKType[];
-  client_connection_paths: ConnectionPathsSDKType[];
-  next_connection_sequence: bigint;
-  params: ParamsSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    connections: [],
-    clientConnectionPaths: [],
-    nextConnectionSequence: BigInt(0),
-    params: Params.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/ibc.core.connection.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.connections) {
-      IdentifiedConnection.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.clientConnectionPaths) {
-      ConnectionPaths.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.nextConnectionSequence !== BigInt(0)) {
-      writer.uint32(24).uint64(message.nextConnectionSequence);
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connections.push(IdentifiedConnection.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.clientConnectionPaths.push(ConnectionPaths.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.nextConnectionSequence = reader.uint64();
-          break;
-        case 4:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromJSON(e)) : [],
-      clientConnectionPaths: Array.isArray(object?.clientConnectionPaths) ? object.clientConnectionPaths.map((e: any) => ConnectionPaths.fromJSON(e)) : [],
-      nextConnectionSequence: isSet(object.nextConnectionSequence) ? BigInt(object.nextConnectionSequence.toString()) : BigInt(0),
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toJSON(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    if (message.clientConnectionPaths) {
-      obj.clientConnectionPaths = message.clientConnectionPaths.map(e => e ? ConnectionPaths.toJSON(e) : undefined);
-    } else {
-      obj.clientConnectionPaths = [];
-    }
-    message.nextConnectionSequence !== undefined && (obj.nextConnectionSequence = (message.nextConnectionSequence || BigInt(0)).toString());
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.connections = object.connections?.map(e => IdentifiedConnection.fromPartial(e)) || [];
-    message.clientConnectionPaths = object.clientConnectionPaths?.map(e => ConnectionPaths.fromPartial(e)) || [];
-    message.nextConnectionSequence = object.nextConnectionSequence !== undefined && object.nextConnectionSequence !== null ? BigInt(object.nextConnectionSequence.toString()) : BigInt(0);
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromSDK(e)) : [],
-      clientConnectionPaths: Array.isArray(object?.client_connection_paths) ? object.client_connection_paths.map((e: any) => ConnectionPaths.fromSDK(e)) : [],
-      nextConnectionSequence: object?.next_connection_sequence,
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toSDK(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    if (message.clientConnectionPaths) {
-      obj.client_connection_paths = message.clientConnectionPaths.map(e => e ? ConnectionPaths.toSDK(e) : undefined);
-    } else {
-      obj.client_connection_paths = [];
-    }
-    obj.next_connection_sequence = message.nextConnectionSequence;
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromAmino(e)) : [],
-      clientConnectionPaths: Array.isArray(object?.client_connection_paths) ? object.client_connection_paths.map((e: any) => ConnectionPaths.fromAmino(e)) : [],
-      nextConnectionSequence: BigInt(object.next_connection_sequence),
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toAmino(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    if (message.clientConnectionPaths) {
-      obj.client_connection_paths = message.clientConnectionPaths.map(e => e ? ConnectionPaths.toAmino(e) : undefined);
-    } else {
-      obj.client_connection_paths = [];
-    }
-    obj.next_connection_sequence = message.nextConnectionSequence ? message.nextConnectionSequence.toString() : undefined;
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/query.rpc.Query.ts b/examples/injective/src/codegen/ibc/core/connection/v1/query.rpc.Query.ts
deleted file mode 100644
index b5537ac0..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,232 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { QueryConnectionRequest, QueryConnectionResponse, QueryConnectionsRequest, QueryConnectionsResponse, QueryClientConnectionsRequest, QueryClientConnectionsResponse, QueryConnectionClientStateRequest, QueryConnectionClientStateResponse, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponse } from "./query";
-/** Query provides defines the gRPC querier service */
-export interface Query {
-  /** Connection queries an IBC connection end. */
-  connection(request: QueryConnectionRequest): Promise<QueryConnectionResponse>;
-  /** Connections queries all the IBC connections of a chain. */
-  connections(request?: QueryConnectionsRequest): Promise<QueryConnectionsResponse>;
-  /**
-   * ClientConnections queries the connection paths associated with a client
-   * state.
-   */
-  clientConnections(request: QueryClientConnectionsRequest): Promise<QueryClientConnectionsResponse>;
-  /**
-   * ConnectionClientState queries the client state associated with the
-   * connection.
-   */
-  connectionClientState(request: QueryConnectionClientStateRequest): Promise<QueryConnectionClientStateResponse>;
-  /**
-   * ConnectionConsensusState queries the consensus state associated with the
-   * connection.
-   */
-  connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise<QueryConnectionConsensusStateResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.connection = this.connection.bind(this);
-    this.connections = this.connections.bind(this);
-    this.clientConnections = this.clientConnections.bind(this);
-    this.connectionClientState = this.connectionClientState.bind(this);
-    this.connectionConsensusState = this.connectionConsensusState.bind(this);
-  }
-  connection(request: QueryConnectionRequest): Promise<QueryConnectionResponse> {
-    const data = QueryConnectionRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connection", data);
-    return promise.then(data => QueryConnectionResponse.decode(new BinaryReader(data)));
-  }
-  connections(request: QueryConnectionsRequest = {
-    pagination: undefined
-  }): Promise<QueryConnectionsResponse> {
-    const data = QueryConnectionsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connections", data);
-    return promise.then(data => QueryConnectionsResponse.decode(new BinaryReader(data)));
-  }
-  clientConnections(request: QueryClientConnectionsRequest): Promise<QueryClientConnectionsResponse> {
-    const data = QueryClientConnectionsRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Query", "ClientConnections", data);
-    return promise.then(data => QueryClientConnectionsResponse.decode(new BinaryReader(data)));
-  }
-  connectionClientState(request: QueryConnectionClientStateRequest): Promise<QueryConnectionClientStateResponse> {
-    const data = QueryConnectionClientStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionClientState", data);
-    return promise.then(data => QueryConnectionClientStateResponse.decode(new BinaryReader(data)));
-  }
-  connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise<QueryConnectionConsensusStateResponse> {
-    const data = QueryConnectionConsensusStateRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionConsensusState", data);
-    return promise.then(data => QueryConnectionConsensusStateResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    connection(request: QueryConnectionRequest): Promise<QueryConnectionResponse> {
-      return queryService.connection(request);
-    },
-    connections(request?: QueryConnectionsRequest): Promise<QueryConnectionsResponse> {
-      return queryService.connections(request);
-    },
-    clientConnections(request: QueryClientConnectionsRequest): Promise<QueryClientConnectionsResponse> {
-      return queryService.clientConnections(request);
-    },
-    connectionClientState(request: QueryConnectionClientStateRequest): Promise<QueryConnectionClientStateResponse> {
-      return queryService.connectionClientState(request);
-    },
-    connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise<QueryConnectionConsensusStateResponse> {
-      return queryService.connectionConsensusState(request);
-    }
-  };
-};
-export interface UseConnectionQuery<TData> extends ReactQueryParams<QueryConnectionResponse, TData> {
-  request: QueryConnectionRequest;
-}
-export interface UseConnectionsQuery<TData> extends ReactQueryParams<QueryConnectionsResponse, TData> {
-  request?: QueryConnectionsRequest;
-}
-export interface UseClientConnectionsQuery<TData> extends ReactQueryParams<QueryClientConnectionsResponse, TData> {
-  request: QueryClientConnectionsRequest;
-}
-export interface UseConnectionClientStateQuery<TData> extends ReactQueryParams<QueryConnectionClientStateResponse, TData> {
-  request: QueryConnectionClientStateRequest;
-}
-export interface UseConnectionConsensusStateQuery<TData> extends ReactQueryParams<QueryConnectionConsensusStateResponse, TData> {
-  request: QueryConnectionConsensusStateRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useConnection = <TData = QueryConnectionResponse,>({
-    request,
-    options
-  }: UseConnectionQuery<TData>) => {
-    return useQuery<QueryConnectionResponse, Error, TData>(["connectionQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connection(request);
-    }, options);
-  };
-  const useConnections = <TData = QueryConnectionsResponse,>({
-    request,
-    options
-  }: UseConnectionsQuery<TData>) => {
-    return useQuery<QueryConnectionsResponse, Error, TData>(["connectionsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connections(request);
-    }, options);
-  };
-  const useClientConnections = <TData = QueryClientConnectionsResponse,>({
-    request,
-    options
-  }: UseClientConnectionsQuery<TData>) => {
-    return useQuery<QueryClientConnectionsResponse, Error, TData>(["clientConnectionsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.clientConnections(request);
-    }, options);
-  };
-  const useConnectionClientState = <TData = QueryConnectionClientStateResponse,>({
-    request,
-    options
-  }: UseConnectionClientStateQuery<TData>) => {
-    return useQuery<QueryConnectionClientStateResponse, Error, TData>(["connectionClientStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connectionClientState(request);
-    }, options);
-  };
-  const useConnectionConsensusState = <TData = QueryConnectionConsensusStateResponse,>({
-    request,
-    options
-  }: UseConnectionConsensusStateQuery<TData>) => {
-    return useQuery<QueryConnectionConsensusStateResponse, Error, TData>(["connectionConsensusStateQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connectionConsensusState(request);
-    }, options);
-  };
-  return {
-    /** Connection queries an IBC connection end. */useConnection,
-    /** Connections queries all the IBC connections of a chain. */useConnections,
-    /**
-     * ClientConnections queries the connection paths associated with a client
-     * state.
-     */
-    useClientConnections,
-    /**
-     * ConnectionClientState queries the client state associated with the
-     * connection.
-     */
-    useConnectionClientState,
-    /**
-     * ConnectionConsensusState queries the consensus state associated with the
-     * connection.
-     */
-    useConnectionConsensusState
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryConnectionStore {
-    store = new QueryStore<QueryConnectionRequest, QueryConnectionResponse>(queryService?.connection);
-    connection(request: QueryConnectionRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConnectionsStore {
-    store = new QueryStore<QueryConnectionsRequest, QueryConnectionsResponse>(queryService?.connections);
-    connections(request: QueryConnectionsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClientConnectionsStore {
-    store = new QueryStore<QueryClientConnectionsRequest, QueryClientConnectionsResponse>(queryService?.clientConnections);
-    clientConnections(request: QueryClientConnectionsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConnectionClientStateStore {
-    store = new QueryStore<QueryConnectionClientStateRequest, QueryConnectionClientStateResponse>(queryService?.connectionClientState);
-    connectionClientState(request: QueryConnectionClientStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConnectionConsensusStateStore {
-    store = new QueryStore<QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponse>(queryService?.connectionConsensusState);
-    connectionConsensusState(request: QueryConnectionConsensusStateRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Connection queries an IBC connection end. */QueryConnectionStore,
-    /** Connections queries all the IBC connections of a chain. */QueryConnectionsStore,
-    /**
-     * ClientConnections queries the connection paths associated with a client
-     * state.
-     */
-    QueryClientConnectionsStore,
-    /**
-     * ConnectionClientState queries the client state associated with the
-     * connection.
-     */
-    QueryConnectionClientStateStore,
-    /**
-     * ConnectionConsensusState queries the consensus state associated with the
-     * connection.
-     */
-    QueryConnectionConsensusStateStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/query.ts b/examples/injective/src/codegen/ibc/core/connection/v1/query.ts
deleted file mode 100644
index 69883342..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/query.ts
+++ /dev/null
@@ -1,1464 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination";
-import { ConnectionEnd, ConnectionEndAmino, ConnectionEndSDKType, IdentifiedConnection, IdentifiedConnectionAmino, IdentifiedConnectionSDKType } from "./connection";
-import { Height, HeightAmino, HeightSDKType, IdentifiedClientState, IdentifiedClientStateAmino, IdentifiedClientStateSDKType } from "../../client/v1/client";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * QueryConnectionRequest is the request type for the Query/Connection RPC
- * method
- */
-export interface QueryConnectionRequest {
-  /** connection unique identifier */
-  connectionId: string;
-}
-export interface QueryConnectionRequestProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionRequest is the request type for the Query/Connection RPC
- * method
- */
-export interface QueryConnectionRequestAmino {
-  /** connection unique identifier */
-  connection_id: string;
-}
-export interface QueryConnectionRequestAminoMsg {
-  type: "cosmos-sdk/QueryConnectionRequest";
-  value: QueryConnectionRequestAmino;
-}
-/**
- * QueryConnectionRequest is the request type for the Query/Connection RPC
- * method
- */
-export interface QueryConnectionRequestSDKType {
-  connection_id: string;
-}
-/**
- * QueryConnectionResponse is the response type for the Query/Connection RPC
- * method. Besides the connection end, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryConnectionResponse {
-  /** connection associated with the request identifier */
-  connection: ConnectionEnd | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryConnectionResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionResponse is the response type for the Query/Connection RPC
- * method. Besides the connection end, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryConnectionResponseAmino {
-  /** connection associated with the request identifier */
-  connection?: ConnectionEndAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryConnectionResponseAminoMsg {
-  type: "cosmos-sdk/QueryConnectionResponse";
-  value: QueryConnectionResponseAmino;
-}
-/**
- * QueryConnectionResponse is the response type for the Query/Connection RPC
- * method. Besides the connection end, it includes a proof and the height from
- * which the proof was retrieved.
- */
-export interface QueryConnectionResponseSDKType {
-  connection: ConnectionEndSDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/Connections RPC
- * method
- */
-export interface QueryConnectionsRequest {
-  pagination: PageRequest | undefined;
-}
-export interface QueryConnectionsRequestProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/Connections RPC
- * method
- */
-export interface QueryConnectionsRequestAmino {
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryConnectionsRequestAminoMsg {
-  type: "cosmos-sdk/QueryConnectionsRequest";
-  value: QueryConnectionsRequestAmino;
-}
-/**
- * QueryConnectionsRequest is the request type for the Query/Connections RPC
- * method
- */
-export interface QueryConnectionsRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/Connections RPC
- * method.
- */
-export interface QueryConnectionsResponse {
-  /** list of stored connections of the chain. */
-  connections: IdentifiedConnection[];
-  /** pagination response */
-  pagination: PageResponse | undefined;
-  /** query block height */
-  height: Height | undefined;
-}
-export interface QueryConnectionsResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/Connections RPC
- * method.
- */
-export interface QueryConnectionsResponseAmino {
-  /** list of stored connections of the chain. */
-  connections: IdentifiedConnectionAmino[];
-  /** pagination response */
-  pagination?: PageResponseAmino | undefined;
-  /** query block height */
-  height?: HeightAmino | undefined;
-}
-export interface QueryConnectionsResponseAminoMsg {
-  type: "cosmos-sdk/QueryConnectionsResponse";
-  value: QueryConnectionsResponseAmino;
-}
-/**
- * QueryConnectionsResponse is the response type for the Query/Connections RPC
- * method.
- */
-export interface QueryConnectionsResponseSDKType {
-  connections: IdentifiedConnectionSDKType[];
-  pagination: PageResponseSDKType | undefined;
-  height: HeightSDKType | undefined;
-}
-/**
- * QueryClientConnectionsRequest is the request type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsRequest {
-  /** client identifier associated with a connection */
-  clientId: string;
-}
-export interface QueryClientConnectionsRequestProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryClientConnectionsRequest is the request type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsRequestAmino {
-  /** client identifier associated with a connection */
-  client_id: string;
-}
-export interface QueryClientConnectionsRequestAminoMsg {
-  type: "cosmos-sdk/QueryClientConnectionsRequest";
-  value: QueryClientConnectionsRequestAmino;
-}
-/**
- * QueryClientConnectionsRequest is the request type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsRequestSDKType {
-  client_id: string;
-}
-/**
- * QueryClientConnectionsResponse is the response type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsResponse {
-  /** slice of all the connection paths associated with a client. */
-  connectionPaths: string[];
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was generated */
-  proofHeight: Height | undefined;
-}
-export interface QueryClientConnectionsResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryClientConnectionsResponse is the response type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsResponseAmino {
-  /** slice of all the connection paths associated with a client. */
-  connection_paths: string[];
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was generated */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryClientConnectionsResponseAminoMsg {
-  type: "cosmos-sdk/QueryClientConnectionsResponse";
-  value: QueryClientConnectionsResponseAmino;
-}
-/**
- * QueryClientConnectionsResponse is the response type for the
- * Query/ClientConnections RPC method
- */
-export interface QueryClientConnectionsResponseSDKType {
-  connection_paths: string[];
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryConnectionClientStateRequest is the request type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateRequest {
-  /** connection identifier */
-  connectionId: string;
-}
-export interface QueryConnectionClientStateRequestProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionClientStateRequest is the request type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateRequestAmino {
-  /** connection identifier */
-  connection_id: string;
-}
-export interface QueryConnectionClientStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryConnectionClientStateRequest";
-  value: QueryConnectionClientStateRequestAmino;
-}
-/**
- * QueryConnectionClientStateRequest is the request type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateRequestSDKType {
-  connection_id: string;
-}
-/**
- * QueryConnectionClientStateResponse is the response type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateResponse {
-  /** client state associated with the channel */
-  identifiedClientState: IdentifiedClientState | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryConnectionClientStateResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionClientStateResponse is the response type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateResponseAmino {
-  /** client state associated with the channel */
-  identified_client_state?: IdentifiedClientStateAmino | undefined;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryConnectionClientStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryConnectionClientStateResponse";
-  value: QueryConnectionClientStateResponseAmino;
-}
-/**
- * QueryConnectionClientStateResponse is the response type for the
- * Query/ConnectionClientState RPC method
- */
-export interface QueryConnectionClientStateResponseSDKType {
-  identified_client_state: IdentifiedClientStateSDKType | undefined;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-/**
- * QueryConnectionConsensusStateRequest is the request type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateRequest {
-  /** connection identifier */
-  connectionId: string;
-  revisionNumber: bigint;
-  revisionHeight: bigint;
-}
-export interface QueryConnectionConsensusStateRequestProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateRequest";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionConsensusStateRequest is the request type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateRequestAmino {
-  /** connection identifier */
-  connection_id: string;
-  revision_number: string;
-  revision_height: string;
-}
-export interface QueryConnectionConsensusStateRequestAminoMsg {
-  type: "cosmos-sdk/QueryConnectionConsensusStateRequest";
-  value: QueryConnectionConsensusStateRequestAmino;
-}
-/**
- * QueryConnectionConsensusStateRequest is the request type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateRequestSDKType {
-  connection_id: string;
-  revision_number: bigint;
-  revision_height: bigint;
-}
-/**
- * QueryConnectionConsensusStateResponse is the response type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateResponse {
-  /** consensus state associated with the channel */
-  consensusState: Any | undefined;
-  /** client ID associated with the consensus state */
-  clientId: string;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proofHeight: Height | undefined;
-}
-export interface QueryConnectionConsensusStateResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateResponse";
-  value: Uint8Array;
-}
-/**
- * QueryConnectionConsensusStateResponse is the response type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateResponseAmino {
-  /** consensus state associated with the channel */
-  consensus_state?: AnyAmino | undefined;
-  /** client ID associated with the consensus state */
-  client_id: string;
-  /** merkle proof of existence */
-  proof: Uint8Array;
-  /** height at which the proof was retrieved */
-  proof_height?: HeightAmino | undefined;
-}
-export interface QueryConnectionConsensusStateResponseAminoMsg {
-  type: "cosmos-sdk/QueryConnectionConsensusStateResponse";
-  value: QueryConnectionConsensusStateResponseAmino;
-}
-/**
- * QueryConnectionConsensusStateResponse is the response type for the
- * Query/ConnectionConsensusState RPC method
- */
-export interface QueryConnectionConsensusStateResponseSDKType {
-  consensus_state: AnySDKType | undefined;
-  client_id: string;
-  proof: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-}
-function createBaseQueryConnectionRequest(): QueryConnectionRequest {
-  return {
-    connectionId: ""
-  };
-}
-export const QueryConnectionRequest = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionRequest",
-  aminoType: "cosmos-sdk/QueryConnectionRequest",
-  encode(message: QueryConnectionRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connectionId !== "") {
-      writer.uint32(10).string(message.connectionId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionRequest {
-    return {
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : ""
-    };
-  },
-  toJSON(message: QueryConnectionRequest): unknown {
-    const obj: any = {};
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionRequest>): QueryConnectionRequest {
-    const message = createBaseQueryConnectionRequest();
-    message.connectionId = object.connectionId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryConnectionRequestSDKType): QueryConnectionRequest {
-    return {
-      connectionId: object?.connection_id
-    };
-  },
-  toSDK(message: QueryConnectionRequest): QueryConnectionRequestSDKType {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    return obj;
-  },
-  fromAmino(object: QueryConnectionRequestAmino): QueryConnectionRequest {
-    return {
-      connectionId: object.connection_id
-    };
-  },
-  toAmino(message: QueryConnectionRequest): QueryConnectionRequestAmino {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionRequestAminoMsg): QueryConnectionRequest {
-    return QueryConnectionRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionRequest): QueryConnectionRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionRequest",
-      value: QueryConnectionRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionRequestProtoMsg): QueryConnectionRequest {
-    return QueryConnectionRequest.decode(message.value);
-  },
-  toProto(message: QueryConnectionRequest): Uint8Array {
-    return QueryConnectionRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionRequest): QueryConnectionRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionRequest",
-      value: QueryConnectionRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionResponse(): QueryConnectionResponse {
-  return {
-    connection: ConnectionEnd.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryConnectionResponse = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionResponse",
-  aminoType: "cosmos-sdk/QueryConnectionResponse",
-  encode(message: QueryConnectionResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connection !== undefined) {
-      ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connection = ConnectionEnd.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionResponse {
-    return {
-      connection: isSet(object.connection) ? ConnectionEnd.fromJSON(object.connection) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionResponse): unknown {
-    const obj: any = {};
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toJSON(message.connection) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionResponse>): QueryConnectionResponse {
-    const message = createBaseQueryConnectionResponse();
-    message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionResponseSDKType): QueryConnectionResponse {
-    return {
-      connection: object.connection ? ConnectionEnd.fromSDK(object.connection) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionResponse): QueryConnectionResponseSDKType {
-    const obj: any = {};
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toSDK(message.connection) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionResponseAmino): QueryConnectionResponse {
-    return {
-      connection: object?.connection ? ConnectionEnd.fromAmino(object.connection) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionResponse): QueryConnectionResponseAmino {
-    const obj: any = {};
-    obj.connection = message.connection ? ConnectionEnd.toAmino(message.connection) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionResponseAminoMsg): QueryConnectionResponse {
-    return QueryConnectionResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionResponse): QueryConnectionResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionResponse",
-      value: QueryConnectionResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionResponseProtoMsg): QueryConnectionResponse {
-    return QueryConnectionResponse.decode(message.value);
-  },
-  toProto(message: QueryConnectionResponse): Uint8Array {
-    return QueryConnectionResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionResponse): QueryConnectionResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionResponse",
-      value: QueryConnectionResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionsRequest(): QueryConnectionsRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryConnectionsRequest = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionsRequest",
-  aminoType: "cosmos-sdk/QueryConnectionsRequest",
-  encode(message: QueryConnectionsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionsRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionsRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionsRequest>): QueryConnectionsRequest {
-    const message = createBaseQueryConnectionsRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionsRequestSDKType): QueryConnectionsRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionsRequest): QueryConnectionsRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionsRequestAmino): QueryConnectionsRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionsRequest): QueryConnectionsRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionsRequestAminoMsg): QueryConnectionsRequest {
-    return QueryConnectionsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionsRequest): QueryConnectionsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionsRequest",
-      value: QueryConnectionsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionsRequestProtoMsg): QueryConnectionsRequest {
-    return QueryConnectionsRequest.decode(message.value);
-  },
-  toProto(message: QueryConnectionsRequest): Uint8Array {
-    return QueryConnectionsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionsRequest): QueryConnectionsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionsRequest",
-      value: QueryConnectionsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionsResponse(): QueryConnectionsResponse {
-  return {
-    connections: [],
-    pagination: PageResponse.fromPartial({}),
-    height: Height.fromPartial({})
-  };
-}
-export const QueryConnectionsResponse = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionsResponse",
-  aminoType: "cosmos-sdk/QueryConnectionsResponse",
-  encode(message: QueryConnectionsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.connections) {
-      IdentifiedConnection.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connections.push(IdentifiedConnection.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionsResponse {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionsResponse): unknown {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toJSON(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionsResponse>): QueryConnectionsResponse {
-    const message = createBaseQueryConnectionsResponse();
-    message.connections = object.connections?.map(e => IdentifiedConnection.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionsResponseSDKType): QueryConnectionsResponse {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionsResponse): QueryConnectionsResponseSDKType {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toSDK(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionsResponseAmino): QueryConnectionsResponse {
-    return {
-      connections: Array.isArray(object?.connections) ? object.connections.map((e: any) => IdentifiedConnection.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionsResponse): QueryConnectionsResponseAmino {
-    const obj: any = {};
-    if (message.connections) {
-      obj.connections = message.connections.map(e => e ? IdentifiedConnection.toAmino(e) : undefined);
-    } else {
-      obj.connections = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionsResponseAminoMsg): QueryConnectionsResponse {
-    return QueryConnectionsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionsResponse): QueryConnectionsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionsResponse",
-      value: QueryConnectionsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionsResponseProtoMsg): QueryConnectionsResponse {
-    return QueryConnectionsResponse.decode(message.value);
-  },
-  toProto(message: QueryConnectionsResponse): Uint8Array {
-    return QueryConnectionsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionsResponse): QueryConnectionsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionsResponse",
-      value: QueryConnectionsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientConnectionsRequest(): QueryClientConnectionsRequest {
-  return {
-    clientId: ""
-  };
-}
-export const QueryClientConnectionsRequest = {
-  typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsRequest",
-  aminoType: "cosmos-sdk/QueryClientConnectionsRequest",
-  encode(message: QueryClientConnectionsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientConnectionsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientConnectionsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientConnectionsRequest {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : ""
-    };
-  },
-  toJSON(message: QueryClientConnectionsRequest): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientConnectionsRequest>): QueryClientConnectionsRequest {
-    const message = createBaseQueryClientConnectionsRequest();
-    message.clientId = object.clientId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClientConnectionsRequestSDKType): QueryClientConnectionsRequest {
-    return {
-      clientId: object?.client_id
-    };
-  },
-  toSDK(message: QueryClientConnectionsRequest): QueryClientConnectionsRequestSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAmino(object: QueryClientConnectionsRequestAmino): QueryClientConnectionsRequest {
-    return {
-      clientId: object.client_id
-    };
-  },
-  toAmino(message: QueryClientConnectionsRequest): QueryClientConnectionsRequestAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientConnectionsRequestAminoMsg): QueryClientConnectionsRequest {
-    return QueryClientConnectionsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientConnectionsRequest): QueryClientConnectionsRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientConnectionsRequest",
-      value: QueryClientConnectionsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientConnectionsRequestProtoMsg): QueryClientConnectionsRequest {
-    return QueryClientConnectionsRequest.decode(message.value);
-  },
-  toProto(message: QueryClientConnectionsRequest): Uint8Array {
-    return QueryClientConnectionsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientConnectionsRequest): QueryClientConnectionsRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsRequest",
-      value: QueryClientConnectionsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClientConnectionsResponse(): QueryClientConnectionsResponse {
-  return {
-    connectionPaths: [],
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryClientConnectionsResponse = {
-  typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsResponse",
-  aminoType: "cosmos-sdk/QueryClientConnectionsResponse",
-  encode(message: QueryClientConnectionsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.connectionPaths) {
-      writer.uint32(10).string(v!);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClientConnectionsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClientConnectionsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionPaths.push(reader.string());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClientConnectionsResponse {
-    return {
-      connectionPaths: Array.isArray(object?.connectionPaths) ? object.connectionPaths.map((e: any) => String(e)) : [],
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryClientConnectionsResponse): unknown {
-    const obj: any = {};
-    if (message.connectionPaths) {
-      obj.connectionPaths = message.connectionPaths.map(e => e);
-    } else {
-      obj.connectionPaths = [];
-    }
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClientConnectionsResponse>): QueryClientConnectionsResponse {
-    const message = createBaseQueryClientConnectionsResponse();
-    message.connectionPaths = object.connectionPaths?.map(e => e) || [];
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClientConnectionsResponseSDKType): QueryClientConnectionsResponse {
-    return {
-      connectionPaths: Array.isArray(object?.connection_paths) ? object.connection_paths.map((e: any) => e) : [],
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryClientConnectionsResponse): QueryClientConnectionsResponseSDKType {
-    const obj: any = {};
-    if (message.connectionPaths) {
-      obj.connection_paths = message.connectionPaths.map(e => e);
-    } else {
-      obj.connection_paths = [];
-    }
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClientConnectionsResponseAmino): QueryClientConnectionsResponse {
-    return {
-      connectionPaths: Array.isArray(object?.connection_paths) ? object.connection_paths.map((e: any) => e) : [],
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryClientConnectionsResponse): QueryClientConnectionsResponseAmino {
-    const obj: any = {};
-    if (message.connectionPaths) {
-      obj.connection_paths = message.connectionPaths.map(e => e);
-    } else {
-      obj.connection_paths = [];
-    }
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryClientConnectionsResponseAminoMsg): QueryClientConnectionsResponse {
-    return QueryClientConnectionsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClientConnectionsResponse): QueryClientConnectionsResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryClientConnectionsResponse",
-      value: QueryClientConnectionsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClientConnectionsResponseProtoMsg): QueryClientConnectionsResponse {
-    return QueryClientConnectionsResponse.decode(message.value);
-  },
-  toProto(message: QueryClientConnectionsResponse): Uint8Array {
-    return QueryClientConnectionsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClientConnectionsResponse): QueryClientConnectionsResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsResponse",
-      value: QueryClientConnectionsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionClientStateRequest(): QueryConnectionClientStateRequest {
-  return {
-    connectionId: ""
-  };
-}
-export const QueryConnectionClientStateRequest = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateRequest",
-  aminoType: "cosmos-sdk/QueryConnectionClientStateRequest",
-  encode(message: QueryConnectionClientStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connectionId !== "") {
-      writer.uint32(10).string(message.connectionId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionClientStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionClientStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionId = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionClientStateRequest {
-    return {
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : ""
-    };
-  },
-  toJSON(message: QueryConnectionClientStateRequest): unknown {
-    const obj: any = {};
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionClientStateRequest>): QueryConnectionClientStateRequest {
-    const message = createBaseQueryConnectionClientStateRequest();
-    message.connectionId = object.connectionId ?? "";
-    return message;
-  },
-  fromSDK(object: QueryConnectionClientStateRequestSDKType): QueryConnectionClientStateRequest {
-    return {
-      connectionId: object?.connection_id
-    };
-  },
-  toSDK(message: QueryConnectionClientStateRequest): QueryConnectionClientStateRequestSDKType {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    return obj;
-  },
-  fromAmino(object: QueryConnectionClientStateRequestAmino): QueryConnectionClientStateRequest {
-    return {
-      connectionId: object.connection_id
-    };
-  },
-  toAmino(message: QueryConnectionClientStateRequest): QueryConnectionClientStateRequestAmino {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionClientStateRequestAminoMsg): QueryConnectionClientStateRequest {
-    return QueryConnectionClientStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionClientStateRequest): QueryConnectionClientStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionClientStateRequest",
-      value: QueryConnectionClientStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionClientStateRequestProtoMsg): QueryConnectionClientStateRequest {
-    return QueryConnectionClientStateRequest.decode(message.value);
-  },
-  toProto(message: QueryConnectionClientStateRequest): Uint8Array {
-    return QueryConnectionClientStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionClientStateRequest): QueryConnectionClientStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateRequest",
-      value: QueryConnectionClientStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionClientStateResponse(): QueryConnectionClientStateResponse {
-  return {
-    identifiedClientState: IdentifiedClientState.fromPartial({}),
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryConnectionClientStateResponse = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateResponse",
-  aminoType: "cosmos-sdk/QueryConnectionClientStateResponse",
-  encode(message: QueryConnectionClientStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.identifiedClientState !== undefined) {
-      IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(18).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionClientStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionClientStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.identifiedClientState = IdentifiedClientState.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.proof = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionClientStateResponse {
-    return {
-      identifiedClientState: isSet(object.identifiedClientState) ? IdentifiedClientState.fromJSON(object.identifiedClientState) : undefined,
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionClientStateResponse): unknown {
-    const obj: any = {};
-    message.identifiedClientState !== undefined && (obj.identifiedClientState = message.identifiedClientState ? IdentifiedClientState.toJSON(message.identifiedClientState) : undefined);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionClientStateResponse>): QueryConnectionClientStateResponse {
-    const message = createBaseQueryConnectionClientStateResponse();
-    message.identifiedClientState = object.identifiedClientState !== undefined && object.identifiedClientState !== null ? IdentifiedClientState.fromPartial(object.identifiedClientState) : undefined;
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionClientStateResponseSDKType): QueryConnectionClientStateResponse {
-    return {
-      identifiedClientState: object.identified_client_state ? IdentifiedClientState.fromSDK(object.identified_client_state) : undefined,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionClientStateResponse): QueryConnectionClientStateResponseSDKType {
-    const obj: any = {};
-    message.identifiedClientState !== undefined && (obj.identified_client_state = message.identifiedClientState ? IdentifiedClientState.toSDK(message.identifiedClientState) : undefined);
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionClientStateResponseAmino): QueryConnectionClientStateResponse {
-    return {
-      identifiedClientState: object?.identified_client_state ? IdentifiedClientState.fromAmino(object.identified_client_state) : undefined,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionClientStateResponse): QueryConnectionClientStateResponseAmino {
-    const obj: any = {};
-    obj.identified_client_state = message.identifiedClientState ? IdentifiedClientState.toAmino(message.identifiedClientState) : undefined;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionClientStateResponseAminoMsg): QueryConnectionClientStateResponse {
-    return QueryConnectionClientStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionClientStateResponse): QueryConnectionClientStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionClientStateResponse",
-      value: QueryConnectionClientStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionClientStateResponseProtoMsg): QueryConnectionClientStateResponse {
-    return QueryConnectionClientStateResponse.decode(message.value);
-  },
-  toProto(message: QueryConnectionClientStateResponse): Uint8Array {
-    return QueryConnectionClientStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionClientStateResponse): QueryConnectionClientStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateResponse",
-      value: QueryConnectionClientStateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionConsensusStateRequest(): QueryConnectionConsensusStateRequest {
-  return {
-    connectionId: "",
-    revisionNumber: BigInt(0),
-    revisionHeight: BigInt(0)
-  };
-}
-export const QueryConnectionConsensusStateRequest = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateRequest",
-  aminoType: "cosmos-sdk/QueryConnectionConsensusStateRequest",
-  encode(message: QueryConnectionConsensusStateRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connectionId !== "") {
-      writer.uint32(10).string(message.connectionId);
-    }
-    if (message.revisionNumber !== BigInt(0)) {
-      writer.uint32(16).uint64(message.revisionNumber);
-    }
-    if (message.revisionHeight !== BigInt(0)) {
-      writer.uint32(24).uint64(message.revisionHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionConsensusStateRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionConsensusStateRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionId = reader.string();
-          break;
-        case 2:
-          message.revisionNumber = reader.uint64();
-          break;
-        case 3:
-          message.revisionHeight = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionConsensusStateRequest {
-    return {
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : "",
-      revisionNumber: isSet(object.revisionNumber) ? BigInt(object.revisionNumber.toString()) : BigInt(0),
-      revisionHeight: isSet(object.revisionHeight) ? BigInt(object.revisionHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryConnectionConsensusStateRequest): unknown {
-    const obj: any = {};
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    message.revisionNumber !== undefined && (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());
-    message.revisionHeight !== undefined && (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionConsensusStateRequest>): QueryConnectionConsensusStateRequest {
-    const message = createBaseQueryConnectionConsensusStateRequest();
-    message.connectionId = object.connectionId ?? "";
-    message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? BigInt(object.revisionNumber.toString()) : BigInt(0);
-    message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? BigInt(object.revisionHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryConnectionConsensusStateRequestSDKType): QueryConnectionConsensusStateRequest {
-    return {
-      connectionId: object?.connection_id,
-      revisionNumber: object?.revision_number,
-      revisionHeight: object?.revision_height
-    };
-  },
-  toSDK(message: QueryConnectionConsensusStateRequest): QueryConnectionConsensusStateRequestSDKType {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.revision_number = message.revisionNumber;
-    obj.revision_height = message.revisionHeight;
-    return obj;
-  },
-  fromAmino(object: QueryConnectionConsensusStateRequestAmino): QueryConnectionConsensusStateRequest {
-    return {
-      connectionId: object.connection_id,
-      revisionNumber: BigInt(object.revision_number),
-      revisionHeight: BigInt(object.revision_height)
-    };
-  },
-  toAmino(message: QueryConnectionConsensusStateRequest): QueryConnectionConsensusStateRequestAmino {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.revision_number = message.revisionNumber ? message.revisionNumber.toString() : undefined;
-    obj.revision_height = message.revisionHeight ? message.revisionHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionConsensusStateRequestAminoMsg): QueryConnectionConsensusStateRequest {
-    return QueryConnectionConsensusStateRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionConsensusStateRequest): QueryConnectionConsensusStateRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionConsensusStateRequest",
-      value: QueryConnectionConsensusStateRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionConsensusStateRequestProtoMsg): QueryConnectionConsensusStateRequest {
-    return QueryConnectionConsensusStateRequest.decode(message.value);
-  },
-  toProto(message: QueryConnectionConsensusStateRequest): Uint8Array {
-    return QueryConnectionConsensusStateRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionConsensusStateRequest): QueryConnectionConsensusStateRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateRequest",
-      value: QueryConnectionConsensusStateRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryConnectionConsensusStateResponse(): QueryConnectionConsensusStateResponse {
-  return {
-    consensusState: Any.fromPartial({}),
-    clientId: "",
-    proof: new Uint8Array(),
-    proofHeight: Height.fromPartial({})
-  };
-}
-export const QueryConnectionConsensusStateResponse = {
-  typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateResponse",
-  aminoType: "cosmos-sdk/QueryConnectionConsensusStateResponse",
-  encode(message: QueryConnectionConsensusStateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.clientId !== "") {
-      writer.uint32(18).string(message.clientId);
-    }
-    if (message.proof.length !== 0) {
-      writer.uint32(26).bytes(message.proof);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryConnectionConsensusStateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryConnectionConsensusStateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.clientId = reader.string();
-          break;
-        case 3:
-          message.proof = reader.bytes();
-          break;
-        case 4:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryConnectionConsensusStateResponse {
-    return {
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined,
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      proof: isSet(object.proof) ? bytesFromBase64(object.proof) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined
-    };
-  },
-  toJSON(message: QueryConnectionConsensusStateResponse): unknown {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.proof !== undefined && (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryConnectionConsensusStateResponse>): QueryConnectionConsensusStateResponse {
-    const message = createBaseQueryConnectionConsensusStateResponse();
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    message.clientId = object.clientId ?? "";
-    message.proof = object.proof ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryConnectionConsensusStateResponseSDKType): QueryConnectionConsensusStateResponse {
-    return {
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined,
-      clientId: object?.client_id,
-      proof: object?.proof,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined
-    };
-  },
-  toSDK(message: QueryConnectionConsensusStateResponse): QueryConnectionConsensusStateResponseSDKType {
-    const obj: any = {};
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    obj.client_id = message.clientId;
-    obj.proof = message.proof;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConnectionConsensusStateResponseAmino): QueryConnectionConsensusStateResponse {
-    return {
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined,
-      clientId: object.client_id,
-      proof: object.proof,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined
-    };
-  },
-  toAmino(message: QueryConnectionConsensusStateResponse): QueryConnectionConsensusStateResponseAmino {
-    const obj: any = {};
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    obj.client_id = message.clientId;
-    obj.proof = message.proof;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryConnectionConsensusStateResponseAminoMsg): QueryConnectionConsensusStateResponse {
-    return QueryConnectionConsensusStateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryConnectionConsensusStateResponse): QueryConnectionConsensusStateResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryConnectionConsensusStateResponse",
-      value: QueryConnectionConsensusStateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConnectionConsensusStateResponseProtoMsg): QueryConnectionConsensusStateResponse {
-    return QueryConnectionConsensusStateResponse.decode(message.value);
-  },
-  toProto(message: QueryConnectionConsensusStateResponse): Uint8Array {
-    return QueryConnectionConsensusStateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryConnectionConsensusStateResponse): QueryConnectionConsensusStateResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateResponse",
-      value: QueryConnectionConsensusStateResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/tx.amino.ts b/examples/injective/src/codegen/ibc/core/connection/v1/tx.amino.ts
deleted file mode 100644
index 1ad57704..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/tx.amino.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { MsgConnectionOpenInit, MsgConnectionOpenTry, MsgConnectionOpenAck, MsgConnectionOpenConfirm } from "./tx";
-export const AminoConverter = {
-  "/ibc.core.connection.v1.MsgConnectionOpenInit": {
-    aminoType: "cosmos-sdk/MsgConnectionOpenInit",
-    toAmino: MsgConnectionOpenInit.toAmino,
-    fromAmino: MsgConnectionOpenInit.fromAmino
-  },
-  "/ibc.core.connection.v1.MsgConnectionOpenTry": {
-    aminoType: "cosmos-sdk/MsgConnectionOpenTry",
-    toAmino: MsgConnectionOpenTry.toAmino,
-    fromAmino: MsgConnectionOpenTry.fromAmino
-  },
-  "/ibc.core.connection.v1.MsgConnectionOpenAck": {
-    aminoType: "cosmos-sdk/MsgConnectionOpenAck",
-    toAmino: MsgConnectionOpenAck.toAmino,
-    fromAmino: MsgConnectionOpenAck.fromAmino
-  },
-  "/ibc.core.connection.v1.MsgConnectionOpenConfirm": {
-    aminoType: "cosmos-sdk/MsgConnectionOpenConfirm",
-    toAmino: MsgConnectionOpenConfirm.toAmino,
-    fromAmino: MsgConnectionOpenConfirm.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/tx.registry.ts b/examples/injective/src/codegen/ibc/core/connection/v1/tx.registry.ts
deleted file mode 100644
index ba0d4890..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/tx.registry.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgConnectionOpenInit, MsgConnectionOpenTry, MsgConnectionOpenAck, MsgConnectionOpenConfirm } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/ibc.core.connection.v1.MsgConnectionOpenInit", MsgConnectionOpenInit], ["/ibc.core.connection.v1.MsgConnectionOpenTry", MsgConnectionOpenTry], ["/ibc.core.connection.v1.MsgConnectionOpenAck", MsgConnectionOpenAck], ["/ibc.core.connection.v1.MsgConnectionOpenConfirm", MsgConnectionOpenConfirm]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    connectionOpenInit(value: MsgConnectionOpenInit) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-        value: MsgConnectionOpenInit.encode(value).finish()
-      };
-    },
-    connectionOpenTry(value: MsgConnectionOpenTry) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-        value: MsgConnectionOpenTry.encode(value).finish()
-      };
-    },
-    connectionOpenAck(value: MsgConnectionOpenAck) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-        value: MsgConnectionOpenAck.encode(value).finish()
-      };
-    },
-    connectionOpenConfirm(value: MsgConnectionOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-        value: MsgConnectionOpenConfirm.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    connectionOpenInit(value: MsgConnectionOpenInit) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-        value
-      };
-    },
-    connectionOpenTry(value: MsgConnectionOpenTry) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-        value
-      };
-    },
-    connectionOpenAck(value: MsgConnectionOpenAck) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-        value
-      };
-    },
-    connectionOpenConfirm(value: MsgConnectionOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-        value
-      };
-    }
-  },
-  toJSON: {
-    connectionOpenInit(value: MsgConnectionOpenInit) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-        value: MsgConnectionOpenInit.toJSON(value)
-      };
-    },
-    connectionOpenTry(value: MsgConnectionOpenTry) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-        value: MsgConnectionOpenTry.toJSON(value)
-      };
-    },
-    connectionOpenAck(value: MsgConnectionOpenAck) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-        value: MsgConnectionOpenAck.toJSON(value)
-      };
-    },
-    connectionOpenConfirm(value: MsgConnectionOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-        value: MsgConnectionOpenConfirm.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    connectionOpenInit(value: any) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-        value: MsgConnectionOpenInit.fromJSON(value)
-      };
-    },
-    connectionOpenTry(value: any) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-        value: MsgConnectionOpenTry.fromJSON(value)
-      };
-    },
-    connectionOpenAck(value: any) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-        value: MsgConnectionOpenAck.fromJSON(value)
-      };
-    },
-    connectionOpenConfirm(value: any) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-        value: MsgConnectionOpenConfirm.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    connectionOpenInit(value: MsgConnectionOpenInit) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-        value: MsgConnectionOpenInit.fromPartial(value)
-      };
-    },
-    connectionOpenTry(value: MsgConnectionOpenTry) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-        value: MsgConnectionOpenTry.fromPartial(value)
-      };
-    },
-    connectionOpenAck(value: MsgConnectionOpenAck) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-        value: MsgConnectionOpenAck.fromPartial(value)
-      };
-    },
-    connectionOpenConfirm(value: MsgConnectionOpenConfirm) {
-      return {
-        typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-        value: MsgConnectionOpenConfirm.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/tx.rpc.msg.ts b/examples/injective/src/codegen/ibc/core/connection/v1/tx.rpc.msg.ts
deleted file mode 100644
index d5a21279..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { MsgConnectionOpenInit, MsgConnectionOpenInitResponse, MsgConnectionOpenTry, MsgConnectionOpenTryResponse, MsgConnectionOpenAck, MsgConnectionOpenAckResponse, MsgConnectionOpenConfirm, MsgConnectionOpenConfirmResponse } from "./tx";
-/** Msg defines the ibc/connection Msg service. */
-export interface Msg {
-  /** ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. */
-  connectionOpenInit(request: MsgConnectionOpenInit): Promise<MsgConnectionOpenInitResponse>;
-  /** ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. */
-  connectionOpenTry(request: MsgConnectionOpenTry): Promise<MsgConnectionOpenTryResponse>;
-  /** ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. */
-  connectionOpenAck(request: MsgConnectionOpenAck): Promise<MsgConnectionOpenAckResponse>;
-  /**
-   * ConnectionOpenConfirm defines a rpc handler method for
-   * MsgConnectionOpenConfirm.
-   */
-  connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise<MsgConnectionOpenConfirmResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.connectionOpenInit = this.connectionOpenInit.bind(this);
-    this.connectionOpenTry = this.connectionOpenTry.bind(this);
-    this.connectionOpenAck = this.connectionOpenAck.bind(this);
-    this.connectionOpenConfirm = this.connectionOpenConfirm.bind(this);
-  }
-  connectionOpenInit(request: MsgConnectionOpenInit): Promise<MsgConnectionOpenInitResponse> {
-    const data = MsgConnectionOpenInit.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenInit", data);
-    return promise.then(data => MsgConnectionOpenInitResponse.decode(new BinaryReader(data)));
-  }
-  connectionOpenTry(request: MsgConnectionOpenTry): Promise<MsgConnectionOpenTryResponse> {
-    const data = MsgConnectionOpenTry.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenTry", data);
-    return promise.then(data => MsgConnectionOpenTryResponse.decode(new BinaryReader(data)));
-  }
-  connectionOpenAck(request: MsgConnectionOpenAck): Promise<MsgConnectionOpenAckResponse> {
-    const data = MsgConnectionOpenAck.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenAck", data);
-    return promise.then(data => MsgConnectionOpenAckResponse.decode(new BinaryReader(data)));
-  }
-  connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise<MsgConnectionOpenConfirmResponse> {
-    const data = MsgConnectionOpenConfirm.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenConfirm", data);
-    return promise.then(data => MsgConnectionOpenConfirmResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/connection/v1/tx.ts b/examples/injective/src/codegen/ibc/core/connection/v1/tx.ts
deleted file mode 100644
index e1927ddf..00000000
--- a/examples/injective/src/codegen/ibc/core/connection/v1/tx.ts
+++ /dev/null
@@ -1,1332 +0,0 @@
-import { Counterparty, CounterpartyAmino, CounterpartySDKType, Version, VersionAmino, VersionSDKType } from "./connection";
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { Height, HeightAmino, HeightSDKType } from "../../client/v1/client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * MsgConnectionOpenInit defines the msg sent by an account on Chain A to
- * initialize a connection with Chain B.
- */
-export interface MsgConnectionOpenInit {
-  clientId: string;
-  counterparty: Counterparty | undefined;
-  version: Version | undefined;
-  delayPeriod: bigint;
-  signer: string;
-}
-export interface MsgConnectionOpenInitProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenInit defines the msg sent by an account on Chain A to
- * initialize a connection with Chain B.
- */
-export interface MsgConnectionOpenInitAmino {
-  client_id: string;
-  counterparty?: CounterpartyAmino | undefined;
-  version?: VersionAmino | undefined;
-  delay_period: string;
-  signer: string;
-}
-export interface MsgConnectionOpenInitAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenInit";
-  value: MsgConnectionOpenInitAmino;
-}
-/**
- * MsgConnectionOpenInit defines the msg sent by an account on Chain A to
- * initialize a connection with Chain B.
- */
-export interface MsgConnectionOpenInitSDKType {
-  client_id: string;
-  counterparty: CounterpartySDKType | undefined;
-  version: VersionSDKType | undefined;
-  delay_period: bigint;
-  signer: string;
-}
-/**
- * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response
- * type.
- */
-export interface MsgConnectionOpenInitResponse {}
-export interface MsgConnectionOpenInitResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInitResponse";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response
- * type.
- */
-export interface MsgConnectionOpenInitResponseAmino {}
-export interface MsgConnectionOpenInitResponseAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenInitResponse";
-  value: MsgConnectionOpenInitResponseAmino;
-}
-/**
- * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response
- * type.
- */
-export interface MsgConnectionOpenInitResponseSDKType {}
-/**
- * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a
- * connection on Chain B.
- */
-export interface MsgConnectionOpenTry {
-  clientId: string;
-  /**
-   * in the case of crossing hello's, when both chains call OpenInit, we need
-   * the connection identifier of the previous connection in state INIT
-   */
-  previousConnectionId: string;
-  clientState: Any | undefined;
-  counterparty: Counterparty | undefined;
-  delayPeriod: bigint;
-  counterpartyVersions: Version[];
-  proofHeight: Height | undefined;
-  /**
-   * proof of the initialization the connection on Chain A: `UNITIALIZED ->
-   * INIT`
-   */
-  proofInit: Uint8Array;
-  /** proof of client state included in message */
-  proofClient: Uint8Array;
-  /** proof of client consensus state */
-  proofConsensus: Uint8Array;
-  consensusHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenTryProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a
- * connection on Chain B.
- */
-export interface MsgConnectionOpenTryAmino {
-  client_id: string;
-  /**
-   * in the case of crossing hello's, when both chains call OpenInit, we need
-   * the connection identifier of the previous connection in state INIT
-   */
-  previous_connection_id: string;
-  client_state?: AnyAmino | undefined;
-  counterparty?: CounterpartyAmino | undefined;
-  delay_period: string;
-  counterparty_versions: VersionAmino[];
-  proof_height?: HeightAmino | undefined;
-  /**
-   * proof of the initialization the connection on Chain A: `UNITIALIZED ->
-   * INIT`
-   */
-  proof_init: Uint8Array;
-  /** proof of client state included in message */
-  proof_client: Uint8Array;
-  /** proof of client consensus state */
-  proof_consensus: Uint8Array;
-  consensus_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenTryAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenTry";
-  value: MsgConnectionOpenTryAmino;
-}
-/**
- * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a
- * connection on Chain B.
- */
-export interface MsgConnectionOpenTrySDKType {
-  client_id: string;
-  previous_connection_id: string;
-  client_state: AnySDKType | undefined;
-  counterparty: CounterpartySDKType | undefined;
-  delay_period: bigint;
-  counterparty_versions: VersionSDKType[];
-  proof_height: HeightSDKType | undefined;
-  proof_init: Uint8Array;
-  proof_client: Uint8Array;
-  proof_consensus: Uint8Array;
-  consensus_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */
-export interface MsgConnectionOpenTryResponse {}
-export interface MsgConnectionOpenTryResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTryResponse";
-  value: Uint8Array;
-}
-/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */
-export interface MsgConnectionOpenTryResponseAmino {}
-export interface MsgConnectionOpenTryResponseAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenTryResponse";
-  value: MsgConnectionOpenTryResponseAmino;
-}
-/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */
-export interface MsgConnectionOpenTryResponseSDKType {}
-/**
- * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to
- * acknowledge the change of connection state to TRYOPEN on Chain B.
- */
-export interface MsgConnectionOpenAck {
-  connectionId: string;
-  counterpartyConnectionId: string;
-  version: Version | undefined;
-  clientState: Any | undefined;
-  proofHeight: Height | undefined;
-  /**
-   * proof of the initialization the connection on Chain B: `UNITIALIZED ->
-   * TRYOPEN`
-   */
-  proofTry: Uint8Array;
-  /** proof of client state included in message */
-  proofClient: Uint8Array;
-  /** proof of client consensus state */
-  proofConsensus: Uint8Array;
-  consensusHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenAckProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to
- * acknowledge the change of connection state to TRYOPEN on Chain B.
- */
-export interface MsgConnectionOpenAckAmino {
-  connection_id: string;
-  counterparty_connection_id: string;
-  version?: VersionAmino | undefined;
-  client_state?: AnyAmino | undefined;
-  proof_height?: HeightAmino | undefined;
-  /**
-   * proof of the initialization the connection on Chain B: `UNITIALIZED ->
-   * TRYOPEN`
-   */
-  proof_try: Uint8Array;
-  /** proof of client state included in message */
-  proof_client: Uint8Array;
-  /** proof of client consensus state */
-  proof_consensus: Uint8Array;
-  consensus_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenAckAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenAck";
-  value: MsgConnectionOpenAckAmino;
-}
-/**
- * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to
- * acknowledge the change of connection state to TRYOPEN on Chain B.
- */
-export interface MsgConnectionOpenAckSDKType {
-  connection_id: string;
-  counterparty_connection_id: string;
-  version: VersionSDKType | undefined;
-  client_state: AnySDKType | undefined;
-  proof_height: HeightSDKType | undefined;
-  proof_try: Uint8Array;
-  proof_client: Uint8Array;
-  proof_consensus: Uint8Array;
-  consensus_height: HeightSDKType | undefined;
-  signer: string;
-}
-/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */
-export interface MsgConnectionOpenAckResponse {}
-export interface MsgConnectionOpenAckResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAckResponse";
-  value: Uint8Array;
-}
-/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */
-export interface MsgConnectionOpenAckResponseAmino {}
-export interface MsgConnectionOpenAckResponseAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenAckResponse";
-  value: MsgConnectionOpenAckResponseAmino;
-}
-/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */
-export interface MsgConnectionOpenAckResponseSDKType {}
-/**
- * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of connection state to OPEN on Chain A.
- */
-export interface MsgConnectionOpenConfirm {
-  connectionId: string;
-  /** proof for the change of the connection state on Chain A: `INIT -> OPEN` */
-  proofAck: Uint8Array;
-  proofHeight: Height | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenConfirmProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of connection state to OPEN on Chain A.
- */
-export interface MsgConnectionOpenConfirmAmino {
-  connection_id: string;
-  /** proof for the change of the connection state on Chain A: `INIT -> OPEN` */
-  proof_ack: Uint8Array;
-  proof_height?: HeightAmino | undefined;
-  signer: string;
-}
-export interface MsgConnectionOpenConfirmAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenConfirm";
-  value: MsgConnectionOpenConfirmAmino;
-}
-/**
- * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to
- * acknowledge the change of connection state to OPEN on Chain A.
- */
-export interface MsgConnectionOpenConfirmSDKType {
-  connection_id: string;
-  proof_ack: Uint8Array;
-  proof_height: HeightSDKType | undefined;
-  signer: string;
-}
-/**
- * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm
- * response type.
- */
-export interface MsgConnectionOpenConfirmResponse {}
-export interface MsgConnectionOpenConfirmResponseProtoMsg {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse";
-  value: Uint8Array;
-}
-/**
- * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm
- * response type.
- */
-export interface MsgConnectionOpenConfirmResponseAmino {}
-export interface MsgConnectionOpenConfirmResponseAminoMsg {
-  type: "cosmos-sdk/MsgConnectionOpenConfirmResponse";
-  value: MsgConnectionOpenConfirmResponseAmino;
-}
-/**
- * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm
- * response type.
- */
-export interface MsgConnectionOpenConfirmResponseSDKType {}
-function createBaseMsgConnectionOpenInit(): MsgConnectionOpenInit {
-  return {
-    clientId: "",
-    counterparty: Counterparty.fromPartial({}),
-    version: Version.fromPartial({}),
-    delayPeriod: BigInt(0),
-    signer: ""
-  };
-}
-export const MsgConnectionOpenInit = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-  aminoType: "cosmos-sdk/MsgConnectionOpenInit",
-  encode(message: MsgConnectionOpenInit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.version !== undefined) {
-      Version.encode(message.version, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.delayPeriod !== BigInt(0)) {
-      writer.uint32(32).uint64(message.delayPeriod);
-    }
-    if (message.signer !== "") {
-      writer.uint32(42).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenInit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenInit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.version = Version.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.delayPeriod = reader.uint64();
-          break;
-        case 5:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgConnectionOpenInit {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      version: isSet(object.version) ? Version.fromJSON(object.version) : undefined,
-      delayPeriod: isSet(object.delayPeriod) ? BigInt(object.delayPeriod.toString()) : BigInt(0),
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgConnectionOpenInit): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    message.version !== undefined && (obj.version = message.version ? Version.toJSON(message.version) : undefined);
-    message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgConnectionOpenInit>): MsgConnectionOpenInit {
-    const message = createBaseMsgConnectionOpenInit();
-    message.clientId = object.clientId ?? "";
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.version = object.version !== undefined && object.version !== null ? Version.fromPartial(object.version) : undefined;
-    message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? BigInt(object.delayPeriod.toString()) : BigInt(0);
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgConnectionOpenInitSDKType): MsgConnectionOpenInit {
-    return {
-      clientId: object?.client_id,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      version: object.version ? Version.fromSDK(object.version) : undefined,
-      delayPeriod: object?.delay_period,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgConnectionOpenInit): MsgConnectionOpenInitSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    message.version !== undefined && (obj.version = message.version ? Version.toSDK(message.version) : undefined);
-    obj.delay_period = message.delayPeriod;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgConnectionOpenInitAmino): MsgConnectionOpenInit {
-    return {
-      clientId: object.client_id,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      version: object?.version ? Version.fromAmino(object.version) : undefined,
-      delayPeriod: BigInt(object.delay_period),
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgConnectionOpenInit): MsgConnectionOpenInitAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    obj.version = message.version ? Version.toAmino(message.version) : undefined;
-    obj.delay_period = message.delayPeriod ? message.delayPeriod.toString() : undefined;
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenInitAminoMsg): MsgConnectionOpenInit {
-    return MsgConnectionOpenInit.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenInit): MsgConnectionOpenInitAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenInit",
-      value: MsgConnectionOpenInit.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenInitProtoMsg): MsgConnectionOpenInit {
-    return MsgConnectionOpenInit.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenInit): Uint8Array {
-    return MsgConnectionOpenInit.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenInit): MsgConnectionOpenInitProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit",
-      value: MsgConnectionOpenInit.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenInitResponse(): MsgConnectionOpenInitResponse {
-  return {};
-}
-export const MsgConnectionOpenInitResponse = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInitResponse",
-  aminoType: "cosmos-sdk/MsgConnectionOpenInitResponse",
-  encode(_: MsgConnectionOpenInitResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenInitResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenInitResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgConnectionOpenInitResponse {
-    return {};
-  },
-  toJSON(_: MsgConnectionOpenInitResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgConnectionOpenInitResponse>): MsgConnectionOpenInitResponse {
-    const message = createBaseMsgConnectionOpenInitResponse();
-    return message;
-  },
-  fromSDK(_: MsgConnectionOpenInitResponseSDKType): MsgConnectionOpenInitResponse {
-    return {};
-  },
-  toSDK(_: MsgConnectionOpenInitResponse): MsgConnectionOpenInitResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgConnectionOpenInitResponseAmino): MsgConnectionOpenInitResponse {
-    return {};
-  },
-  toAmino(_: MsgConnectionOpenInitResponse): MsgConnectionOpenInitResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenInitResponseAminoMsg): MsgConnectionOpenInitResponse {
-    return MsgConnectionOpenInitResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenInitResponse): MsgConnectionOpenInitResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenInitResponse",
-      value: MsgConnectionOpenInitResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenInitResponseProtoMsg): MsgConnectionOpenInitResponse {
-    return MsgConnectionOpenInitResponse.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenInitResponse): Uint8Array {
-    return MsgConnectionOpenInitResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenInitResponse): MsgConnectionOpenInitResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInitResponse",
-      value: MsgConnectionOpenInitResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenTry(): MsgConnectionOpenTry {
-  return {
-    clientId: "",
-    previousConnectionId: "",
-    clientState: Any.fromPartial({}),
-    counterparty: Counterparty.fromPartial({}),
-    delayPeriod: BigInt(0),
-    counterpartyVersions: [],
-    proofHeight: Height.fromPartial({}),
-    proofInit: new Uint8Array(),
-    proofClient: new Uint8Array(),
-    proofConsensus: new Uint8Array(),
-    consensusHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgConnectionOpenTry = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-  aminoType: "cosmos-sdk/MsgConnectionOpenTry",
-  encode(message: MsgConnectionOpenTry, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.previousConnectionId !== "") {
-      writer.uint32(18).string(message.previousConnectionId);
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.delayPeriod !== BigInt(0)) {
-      writer.uint32(40).uint64(message.delayPeriod);
-    }
-    for (const v of message.counterpartyVersions) {
-      Version.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.proofInit.length !== 0) {
-      writer.uint32(66).bytes(message.proofInit);
-    }
-    if (message.proofClient.length !== 0) {
-      writer.uint32(74).bytes(message.proofClient);
-    }
-    if (message.proofConsensus.length !== 0) {
-      writer.uint32(82).bytes(message.proofConsensus);
-    }
-    if (message.consensusHeight !== undefined) {
-      Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(98).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenTry {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenTry();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.previousConnectionId = reader.string();
-          break;
-        case 3:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.delayPeriod = reader.uint64();
-          break;
-        case 6:
-          message.counterpartyVersions.push(Version.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.proofInit = reader.bytes();
-          break;
-        case 9:
-          message.proofClient = reader.bytes();
-          break;
-        case 10:
-          message.proofConsensus = reader.bytes();
-          break;
-        case 11:
-          message.consensusHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 12:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgConnectionOpenTry {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      previousConnectionId: isSet(object.previousConnectionId) ? String(object.previousConnectionId) : "",
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      delayPeriod: isSet(object.delayPeriod) ? BigInt(object.delayPeriod.toString()) : BigInt(0),
-      counterpartyVersions: Array.isArray(object?.counterpartyVersions) ? object.counterpartyVersions.map((e: any) => Version.fromJSON(e)) : [],
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      proofInit: isSet(object.proofInit) ? bytesFromBase64(object.proofInit) : new Uint8Array(),
-      proofClient: isSet(object.proofClient) ? bytesFromBase64(object.proofClient) : new Uint8Array(),
-      proofConsensus: isSet(object.proofConsensus) ? bytesFromBase64(object.proofConsensus) : new Uint8Array(),
-      consensusHeight: isSet(object.consensusHeight) ? Height.fromJSON(object.consensusHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgConnectionOpenTry): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());
-    if (message.counterpartyVersions) {
-      obj.counterpartyVersions = message.counterpartyVersions.map(e => e ? Version.toJSON(e) : undefined);
-    } else {
-      obj.counterpartyVersions = [];
-    }
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.proofInit !== undefined && (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));
-    message.proofClient !== undefined && (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));
-    message.proofConsensus !== undefined && (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));
-    message.consensusHeight !== undefined && (obj.consensusHeight = message.consensusHeight ? Height.toJSON(message.consensusHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgConnectionOpenTry>): MsgConnectionOpenTry {
-    const message = createBaseMsgConnectionOpenTry();
-    message.clientId = object.clientId ?? "";
-    message.previousConnectionId = object.previousConnectionId ?? "";
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? BigInt(object.delayPeriod.toString()) : BigInt(0);
-    message.counterpartyVersions = object.counterpartyVersions?.map(e => Version.fromPartial(e)) || [];
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.proofInit = object.proofInit ?? new Uint8Array();
-    message.proofClient = object.proofClient ?? new Uint8Array();
-    message.proofConsensus = object.proofConsensus ?? new Uint8Array();
-    message.consensusHeight = object.consensusHeight !== undefined && object.consensusHeight !== null ? Height.fromPartial(object.consensusHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgConnectionOpenTrySDKType): MsgConnectionOpenTry {
-    return {
-      clientId: object?.client_id,
-      previousConnectionId: object?.previous_connection_id,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      delayPeriod: object?.delay_period,
-      counterpartyVersions: Array.isArray(object?.counterparty_versions) ? object.counterparty_versions.map((e: any) => Version.fromSDK(e)) : [],
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      proofInit: object?.proof_init,
-      proofClient: object?.proof_client,
-      proofConsensus: object?.proof_consensus,
-      consensusHeight: object.consensus_height ? Height.fromSDK(object.consensus_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgConnectionOpenTry): MsgConnectionOpenTrySDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.previous_connection_id = message.previousConnectionId;
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    obj.delay_period = message.delayPeriod;
-    if (message.counterpartyVersions) {
-      obj.counterparty_versions = message.counterpartyVersions.map(e => e ? Version.toSDK(e) : undefined);
-    } else {
-      obj.counterparty_versions = [];
-    }
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.proof_init = message.proofInit;
-    obj.proof_client = message.proofClient;
-    obj.proof_consensus = message.proofConsensus;
-    message.consensusHeight !== undefined && (obj.consensus_height = message.consensusHeight ? Height.toSDK(message.consensusHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgConnectionOpenTryAmino): MsgConnectionOpenTry {
-    return {
-      clientId: object.client_id,
-      previousConnectionId: object.previous_connection_id,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      delayPeriod: BigInt(object.delay_period),
-      counterpartyVersions: Array.isArray(object?.counterparty_versions) ? object.counterparty_versions.map((e: any) => Version.fromAmino(e)) : [],
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      proofInit: object.proof_init,
-      proofClient: object.proof_client,
-      proofConsensus: object.proof_consensus,
-      consensusHeight: object?.consensus_height ? Height.fromAmino(object.consensus_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgConnectionOpenTry): MsgConnectionOpenTryAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.previous_connection_id = message.previousConnectionId;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    obj.delay_period = message.delayPeriod ? message.delayPeriod.toString() : undefined;
-    if (message.counterpartyVersions) {
-      obj.counterparty_versions = message.counterpartyVersions.map(e => e ? Version.toAmino(e) : undefined);
-    } else {
-      obj.counterparty_versions = [];
-    }
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.proof_init = message.proofInit;
-    obj.proof_client = message.proofClient;
-    obj.proof_consensus = message.proofConsensus;
-    obj.consensus_height = message.consensusHeight ? Height.toAmino(message.consensusHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenTryAminoMsg): MsgConnectionOpenTry {
-    return MsgConnectionOpenTry.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenTry): MsgConnectionOpenTryAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenTry",
-      value: MsgConnectionOpenTry.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenTryProtoMsg): MsgConnectionOpenTry {
-    return MsgConnectionOpenTry.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenTry): Uint8Array {
-    return MsgConnectionOpenTry.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenTry): MsgConnectionOpenTryProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry",
-      value: MsgConnectionOpenTry.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenTryResponse(): MsgConnectionOpenTryResponse {
-  return {};
-}
-export const MsgConnectionOpenTryResponse = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTryResponse",
-  aminoType: "cosmos-sdk/MsgConnectionOpenTryResponse",
-  encode(_: MsgConnectionOpenTryResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenTryResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenTryResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgConnectionOpenTryResponse {
-    return {};
-  },
-  toJSON(_: MsgConnectionOpenTryResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgConnectionOpenTryResponse>): MsgConnectionOpenTryResponse {
-    const message = createBaseMsgConnectionOpenTryResponse();
-    return message;
-  },
-  fromSDK(_: MsgConnectionOpenTryResponseSDKType): MsgConnectionOpenTryResponse {
-    return {};
-  },
-  toSDK(_: MsgConnectionOpenTryResponse): MsgConnectionOpenTryResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgConnectionOpenTryResponseAmino): MsgConnectionOpenTryResponse {
-    return {};
-  },
-  toAmino(_: MsgConnectionOpenTryResponse): MsgConnectionOpenTryResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenTryResponseAminoMsg): MsgConnectionOpenTryResponse {
-    return MsgConnectionOpenTryResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenTryResponse): MsgConnectionOpenTryResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenTryResponse",
-      value: MsgConnectionOpenTryResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenTryResponseProtoMsg): MsgConnectionOpenTryResponse {
-    return MsgConnectionOpenTryResponse.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenTryResponse): Uint8Array {
-    return MsgConnectionOpenTryResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenTryResponse): MsgConnectionOpenTryResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTryResponse",
-      value: MsgConnectionOpenTryResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenAck(): MsgConnectionOpenAck {
-  return {
-    connectionId: "",
-    counterpartyConnectionId: "",
-    version: Version.fromPartial({}),
-    clientState: Any.fromPartial({}),
-    proofHeight: Height.fromPartial({}),
-    proofTry: new Uint8Array(),
-    proofClient: new Uint8Array(),
-    proofConsensus: new Uint8Array(),
-    consensusHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgConnectionOpenAck = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-  aminoType: "cosmos-sdk/MsgConnectionOpenAck",
-  encode(message: MsgConnectionOpenAck, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connectionId !== "") {
-      writer.uint32(10).string(message.connectionId);
-    }
-    if (message.counterpartyConnectionId !== "") {
-      writer.uint32(18).string(message.counterpartyConnectionId);
-    }
-    if (message.version !== undefined) {
-      Version.encode(message.version, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.proofTry.length !== 0) {
-      writer.uint32(50).bytes(message.proofTry);
-    }
-    if (message.proofClient.length !== 0) {
-      writer.uint32(58).bytes(message.proofClient);
-    }
-    if (message.proofConsensus.length !== 0) {
-      writer.uint32(66).bytes(message.proofConsensus);
-    }
-    if (message.consensusHeight !== undefined) {
-      Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(82).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenAck {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenAck();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionId = reader.string();
-          break;
-        case 2:
-          message.counterpartyConnectionId = reader.string();
-          break;
-        case 3:
-          message.version = Version.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.proofTry = reader.bytes();
-          break;
-        case 7:
-          message.proofClient = reader.bytes();
-          break;
-        case 8:
-          message.proofConsensus = reader.bytes();
-          break;
-        case 9:
-          message.consensusHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 10:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgConnectionOpenAck {
-    return {
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : "",
-      counterpartyConnectionId: isSet(object.counterpartyConnectionId) ? String(object.counterpartyConnectionId) : "",
-      version: isSet(object.version) ? Version.fromJSON(object.version) : undefined,
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined,
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      proofTry: isSet(object.proofTry) ? bytesFromBase64(object.proofTry) : new Uint8Array(),
-      proofClient: isSet(object.proofClient) ? bytesFromBase64(object.proofClient) : new Uint8Array(),
-      proofConsensus: isSet(object.proofConsensus) ? bytesFromBase64(object.proofConsensus) : new Uint8Array(),
-      consensusHeight: isSet(object.consensusHeight) ? Height.fromJSON(object.consensusHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgConnectionOpenAck): unknown {
-    const obj: any = {};
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    message.counterpartyConnectionId !== undefined && (obj.counterpartyConnectionId = message.counterpartyConnectionId);
-    message.version !== undefined && (obj.version = message.version ? Version.toJSON(message.version) : undefined);
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.proofTry !== undefined && (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));
-    message.proofClient !== undefined && (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));
-    message.proofConsensus !== undefined && (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));
-    message.consensusHeight !== undefined && (obj.consensusHeight = message.consensusHeight ? Height.toJSON(message.consensusHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgConnectionOpenAck>): MsgConnectionOpenAck {
-    const message = createBaseMsgConnectionOpenAck();
-    message.connectionId = object.connectionId ?? "";
-    message.counterpartyConnectionId = object.counterpartyConnectionId ?? "";
-    message.version = object.version !== undefined && object.version !== null ? Version.fromPartial(object.version) : undefined;
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.proofTry = object.proofTry ?? new Uint8Array();
-    message.proofClient = object.proofClient ?? new Uint8Array();
-    message.proofConsensus = object.proofConsensus ?? new Uint8Array();
-    message.consensusHeight = object.consensusHeight !== undefined && object.consensusHeight !== null ? Height.fromPartial(object.consensusHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgConnectionOpenAckSDKType): MsgConnectionOpenAck {
-    return {
-      connectionId: object?.connection_id,
-      counterpartyConnectionId: object?.counterparty_connection_id,
-      version: object.version ? Version.fromSDK(object.version) : undefined,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      proofTry: object?.proof_try,
-      proofClient: object?.proof_client,
-      proofConsensus: object?.proof_consensus,
-      consensusHeight: object.consensus_height ? Height.fromSDK(object.consensus_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgConnectionOpenAck): MsgConnectionOpenAckSDKType {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.counterparty_connection_id = message.counterpartyConnectionId;
-    message.version !== undefined && (obj.version = message.version ? Version.toSDK(message.version) : undefined);
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.proof_try = message.proofTry;
-    obj.proof_client = message.proofClient;
-    obj.proof_consensus = message.proofConsensus;
-    message.consensusHeight !== undefined && (obj.consensus_height = message.consensusHeight ? Height.toSDK(message.consensusHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgConnectionOpenAckAmino): MsgConnectionOpenAck {
-    return {
-      connectionId: object.connection_id,
-      counterpartyConnectionId: object.counterparty_connection_id,
-      version: object?.version ? Version.fromAmino(object.version) : undefined,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      proofTry: object.proof_try,
-      proofClient: object.proof_client,
-      proofConsensus: object.proof_consensus,
-      consensusHeight: object?.consensus_height ? Height.fromAmino(object.consensus_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgConnectionOpenAck): MsgConnectionOpenAckAmino {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.counterparty_connection_id = message.counterpartyConnectionId;
-    obj.version = message.version ? Version.toAmino(message.version) : undefined;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.proof_try = message.proofTry;
-    obj.proof_client = message.proofClient;
-    obj.proof_consensus = message.proofConsensus;
-    obj.consensus_height = message.consensusHeight ? Height.toAmino(message.consensusHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenAckAminoMsg): MsgConnectionOpenAck {
-    return MsgConnectionOpenAck.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenAck): MsgConnectionOpenAckAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenAck",
-      value: MsgConnectionOpenAck.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenAckProtoMsg): MsgConnectionOpenAck {
-    return MsgConnectionOpenAck.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenAck): Uint8Array {
-    return MsgConnectionOpenAck.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenAck): MsgConnectionOpenAckProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck",
-      value: MsgConnectionOpenAck.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenAckResponse(): MsgConnectionOpenAckResponse {
-  return {};
-}
-export const MsgConnectionOpenAckResponse = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAckResponse",
-  aminoType: "cosmos-sdk/MsgConnectionOpenAckResponse",
-  encode(_: MsgConnectionOpenAckResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenAckResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenAckResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgConnectionOpenAckResponse {
-    return {};
-  },
-  toJSON(_: MsgConnectionOpenAckResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgConnectionOpenAckResponse>): MsgConnectionOpenAckResponse {
-    const message = createBaseMsgConnectionOpenAckResponse();
-    return message;
-  },
-  fromSDK(_: MsgConnectionOpenAckResponseSDKType): MsgConnectionOpenAckResponse {
-    return {};
-  },
-  toSDK(_: MsgConnectionOpenAckResponse): MsgConnectionOpenAckResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgConnectionOpenAckResponseAmino): MsgConnectionOpenAckResponse {
-    return {};
-  },
-  toAmino(_: MsgConnectionOpenAckResponse): MsgConnectionOpenAckResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenAckResponseAminoMsg): MsgConnectionOpenAckResponse {
-    return MsgConnectionOpenAckResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenAckResponse): MsgConnectionOpenAckResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenAckResponse",
-      value: MsgConnectionOpenAckResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenAckResponseProtoMsg): MsgConnectionOpenAckResponse {
-    return MsgConnectionOpenAckResponse.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenAckResponse): Uint8Array {
-    return MsgConnectionOpenAckResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenAckResponse): MsgConnectionOpenAckResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAckResponse",
-      value: MsgConnectionOpenAckResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenConfirm(): MsgConnectionOpenConfirm {
-  return {
-    connectionId: "",
-    proofAck: new Uint8Array(),
-    proofHeight: Height.fromPartial({}),
-    signer: ""
-  };
-}
-export const MsgConnectionOpenConfirm = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-  aminoType: "cosmos-sdk/MsgConnectionOpenConfirm",
-  encode(message: MsgConnectionOpenConfirm, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.connectionId !== "") {
-      writer.uint32(10).string(message.connectionId);
-    }
-    if (message.proofAck.length !== 0) {
-      writer.uint32(18).bytes(message.proofAck);
-    }
-    if (message.proofHeight !== undefined) {
-      Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.signer !== "") {
-      writer.uint32(34).string(message.signer);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenConfirm {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenConfirm();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.connectionId = reader.string();
-          break;
-        case 2:
-          message.proofAck = reader.bytes();
-          break;
-        case 3:
-          message.proofHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.signer = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgConnectionOpenConfirm {
-    return {
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : "",
-      proofAck: isSet(object.proofAck) ? bytesFromBase64(object.proofAck) : new Uint8Array(),
-      proofHeight: isSet(object.proofHeight) ? Height.fromJSON(object.proofHeight) : undefined,
-      signer: isSet(object.signer) ? String(object.signer) : ""
-    };
-  },
-  toJSON(message: MsgConnectionOpenConfirm): unknown {
-    const obj: any = {};
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    message.proofAck !== undefined && (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));
-    message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? Height.toJSON(message.proofHeight) : undefined);
-    message.signer !== undefined && (obj.signer = message.signer);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgConnectionOpenConfirm>): MsgConnectionOpenConfirm {
-    const message = createBaseMsgConnectionOpenConfirm();
-    message.connectionId = object.connectionId ?? "";
-    message.proofAck = object.proofAck ?? new Uint8Array();
-    message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined;
-    message.signer = object.signer ?? "";
-    return message;
-  },
-  fromSDK(object: MsgConnectionOpenConfirmSDKType): MsgConnectionOpenConfirm {
-    return {
-      connectionId: object?.connection_id,
-      proofAck: object?.proof_ack,
-      proofHeight: object.proof_height ? Height.fromSDK(object.proof_height) : undefined,
-      signer: object?.signer
-    };
-  },
-  toSDK(message: MsgConnectionOpenConfirm): MsgConnectionOpenConfirmSDKType {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.proof_ack = message.proofAck;
-    message.proofHeight !== undefined && (obj.proof_height = message.proofHeight ? Height.toSDK(message.proofHeight) : undefined);
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAmino(object: MsgConnectionOpenConfirmAmino): MsgConnectionOpenConfirm {
-    return {
-      connectionId: object.connection_id,
-      proofAck: object.proof_ack,
-      proofHeight: object?.proof_height ? Height.fromAmino(object.proof_height) : undefined,
-      signer: object.signer
-    };
-  },
-  toAmino(message: MsgConnectionOpenConfirm): MsgConnectionOpenConfirmAmino {
-    const obj: any = {};
-    obj.connection_id = message.connectionId;
-    obj.proof_ack = message.proofAck;
-    obj.proof_height = message.proofHeight ? Height.toAmino(message.proofHeight) : {};
-    obj.signer = message.signer;
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenConfirmAminoMsg): MsgConnectionOpenConfirm {
-    return MsgConnectionOpenConfirm.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenConfirm): MsgConnectionOpenConfirmAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenConfirm",
-      value: MsgConnectionOpenConfirm.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenConfirmProtoMsg): MsgConnectionOpenConfirm {
-    return MsgConnectionOpenConfirm.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenConfirm): Uint8Array {
-    return MsgConnectionOpenConfirm.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenConfirm): MsgConnectionOpenConfirmProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm",
-      value: MsgConnectionOpenConfirm.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgConnectionOpenConfirmResponse(): MsgConnectionOpenConfirmResponse {
-  return {};
-}
-export const MsgConnectionOpenConfirmResponse = {
-  typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse",
-  aminoType: "cosmos-sdk/MsgConnectionOpenConfirmResponse",
-  encode(_: MsgConnectionOpenConfirmResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgConnectionOpenConfirmResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgConnectionOpenConfirmResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgConnectionOpenConfirmResponse {
-    return {};
-  },
-  toJSON(_: MsgConnectionOpenConfirmResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgConnectionOpenConfirmResponse>): MsgConnectionOpenConfirmResponse {
-    const message = createBaseMsgConnectionOpenConfirmResponse();
-    return message;
-  },
-  fromSDK(_: MsgConnectionOpenConfirmResponseSDKType): MsgConnectionOpenConfirmResponse {
-    return {};
-  },
-  toSDK(_: MsgConnectionOpenConfirmResponse): MsgConnectionOpenConfirmResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgConnectionOpenConfirmResponseAmino): MsgConnectionOpenConfirmResponse {
-    return {};
-  },
-  toAmino(_: MsgConnectionOpenConfirmResponse): MsgConnectionOpenConfirmResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgConnectionOpenConfirmResponseAminoMsg): MsgConnectionOpenConfirmResponse {
-    return MsgConnectionOpenConfirmResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgConnectionOpenConfirmResponse): MsgConnectionOpenConfirmResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/MsgConnectionOpenConfirmResponse",
-      value: MsgConnectionOpenConfirmResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgConnectionOpenConfirmResponseProtoMsg): MsgConnectionOpenConfirmResponse {
-    return MsgConnectionOpenConfirmResponse.decode(message.value);
-  },
-  toProto(message: MsgConnectionOpenConfirmResponse): Uint8Array {
-    return MsgConnectionOpenConfirmResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgConnectionOpenConfirmResponse): MsgConnectionOpenConfirmResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse",
-      value: MsgConnectionOpenConfirmResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/port/v1/query.rpc.Query.ts b/examples/injective/src/codegen/ibc/core/port/v1/query.rpc.Query.ts
deleted file mode 100644
index 5b149c43..00000000
--- a/examples/injective/src/codegen/ibc/core/port/v1/query.rpc.Query.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../../mobx";
-import { QueryAppVersionRequest, QueryAppVersionResponse } from "./query";
-/** Query defines the gRPC querier service */
-export interface Query {
-  /** AppVersion queries an IBC Port and determines the appropriate application version to be used */
-  appVersion(request: QueryAppVersionRequest): Promise<QueryAppVersionResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.appVersion = this.appVersion.bind(this);
-  }
-  appVersion(request: QueryAppVersionRequest): Promise<QueryAppVersionResponse> {
-    const data = QueryAppVersionRequest.encode(request).finish();
-    const promise = this.rpc.request("ibc.core.port.v1.Query", "AppVersion", data);
-    return promise.then(data => QueryAppVersionResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    appVersion(request: QueryAppVersionRequest): Promise<QueryAppVersionResponse> {
-      return queryService.appVersion(request);
-    }
-  };
-};
-export interface UseAppVersionQuery<TData> extends ReactQueryParams<QueryAppVersionResponse, TData> {
-  request: QueryAppVersionRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useAppVersion = <TData = QueryAppVersionResponse,>({
-    request,
-    options
-  }: UseAppVersionQuery<TData>) => {
-    return useQuery<QueryAppVersionResponse, Error, TData>(["appVersionQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.appVersion(request);
-    }, options);
-  };
-  return {
-    /** AppVersion queries an IBC Port and determines the appropriate application version to be used */useAppVersion
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryAppVersionStore {
-    store = new QueryStore<QueryAppVersionRequest, QueryAppVersionResponse>(queryService?.appVersion);
-    appVersion(request: QueryAppVersionRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** AppVersion queries an IBC Port and determines the appropriate application version to be used */QueryAppVersionStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/port/v1/query.ts b/examples/injective/src/codegen/ibc/core/port/v1/query.ts
deleted file mode 100644
index 07d660b9..00000000
--- a/examples/injective/src/codegen/ibc/core/port/v1/query.ts
+++ /dev/null
@@ -1,318 +0,0 @@
-import { Order, Counterparty, CounterpartyAmino, CounterpartySDKType, orderFromJSON, orderToJSON } from "../../channel/v1/channel";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */
-export interface QueryAppVersionRequest {
-  /** port unique identifier */
-  portId: string;
-  /** connection unique identifier */
-  connectionId: string;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty: Counterparty | undefined;
-  /** proposed version */
-  proposedVersion: string;
-}
-export interface QueryAppVersionRequestProtoMsg {
-  typeUrl: "/ibc.core.port.v1.QueryAppVersionRequest";
-  value: Uint8Array;
-}
-/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */
-export interface QueryAppVersionRequestAmino {
-  /** port unique identifier */
-  port_id: string;
-  /** connection unique identifier */
-  connection_id: string;
-  /** whether the channel is ordered or unordered */
-  ordering: Order;
-  /** counterparty channel end */
-  counterparty?: CounterpartyAmino | undefined;
-  /** proposed version */
-  proposed_version: string;
-}
-export interface QueryAppVersionRequestAminoMsg {
-  type: "cosmos-sdk/QueryAppVersionRequest";
-  value: QueryAppVersionRequestAmino;
-}
-/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */
-export interface QueryAppVersionRequestSDKType {
-  port_id: string;
-  connection_id: string;
-  ordering: Order;
-  counterparty: CounterpartySDKType | undefined;
-  proposed_version: string;
-}
-/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */
-export interface QueryAppVersionResponse {
-  /** port id associated with the request identifiers */
-  portId: string;
-  /** supported app version */
-  version: string;
-}
-export interface QueryAppVersionResponseProtoMsg {
-  typeUrl: "/ibc.core.port.v1.QueryAppVersionResponse";
-  value: Uint8Array;
-}
-/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */
-export interface QueryAppVersionResponseAmino {
-  /** port id associated with the request identifiers */
-  port_id: string;
-  /** supported app version */
-  version: string;
-}
-export interface QueryAppVersionResponseAminoMsg {
-  type: "cosmos-sdk/QueryAppVersionResponse";
-  value: QueryAppVersionResponseAmino;
-}
-/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */
-export interface QueryAppVersionResponseSDKType {
-  port_id: string;
-  version: string;
-}
-function createBaseQueryAppVersionRequest(): QueryAppVersionRequest {
-  return {
-    portId: "",
-    connectionId: "",
-    ordering: 0,
-    counterparty: Counterparty.fromPartial({}),
-    proposedVersion: ""
-  };
-}
-export const QueryAppVersionRequest = {
-  typeUrl: "/ibc.core.port.v1.QueryAppVersionRequest",
-  aminoType: "cosmos-sdk/QueryAppVersionRequest",
-  encode(message: QueryAppVersionRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.connectionId !== "") {
-      writer.uint32(18).string(message.connectionId);
-    }
-    if (message.ordering !== 0) {
-      writer.uint32(24).int32(message.ordering);
-    }
-    if (message.counterparty !== undefined) {
-      Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.proposedVersion !== "") {
-      writer.uint32(42).string(message.proposedVersion);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAppVersionRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAppVersionRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.connectionId = reader.string();
-          break;
-        case 3:
-          message.ordering = (reader.int32() as any);
-          break;
-        case 4:
-          message.counterparty = Counterparty.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.proposedVersion = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAppVersionRequest {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      connectionId: isSet(object.connectionId) ? String(object.connectionId) : "",
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: isSet(object.counterparty) ? Counterparty.fromJSON(object.counterparty) : undefined,
-      proposedVersion: isSet(object.proposedVersion) ? String(object.proposedVersion) : ""
-    };
-  },
-  toJSON(message: QueryAppVersionRequest): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.connectionId !== undefined && (obj.connectionId = message.connectionId);
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toJSON(message.counterparty) : undefined);
-    message.proposedVersion !== undefined && (obj.proposedVersion = message.proposedVersion);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAppVersionRequest>): QueryAppVersionRequest {
-    const message = createBaseQueryAppVersionRequest();
-    message.portId = object.portId ?? "";
-    message.connectionId = object.connectionId ?? "";
-    message.ordering = object.ordering ?? 0;
-    message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined;
-    message.proposedVersion = object.proposedVersion ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAppVersionRequestSDKType): QueryAppVersionRequest {
-    return {
-      portId: object?.port_id,
-      connectionId: object?.connection_id,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object.counterparty ? Counterparty.fromSDK(object.counterparty) : undefined,
-      proposedVersion: object?.proposed_version
-    };
-  },
-  toSDK(message: QueryAppVersionRequest): QueryAppVersionRequestSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.connection_id = message.connectionId;
-    message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));
-    message.counterparty !== undefined && (obj.counterparty = message.counterparty ? Counterparty.toSDK(message.counterparty) : undefined);
-    obj.proposed_version = message.proposedVersion;
-    return obj;
-  },
-  fromAmino(object: QueryAppVersionRequestAmino): QueryAppVersionRequest {
-    return {
-      portId: object.port_id,
-      connectionId: object.connection_id,
-      ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : -1,
-      counterparty: object?.counterparty ? Counterparty.fromAmino(object.counterparty) : undefined,
-      proposedVersion: object.proposed_version
-    };
-  },
-  toAmino(message: QueryAppVersionRequest): QueryAppVersionRequestAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.connection_id = message.connectionId;
-    obj.ordering = message.ordering;
-    obj.counterparty = message.counterparty ? Counterparty.toAmino(message.counterparty) : undefined;
-    obj.proposed_version = message.proposedVersion;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAppVersionRequestAminoMsg): QueryAppVersionRequest {
-    return QueryAppVersionRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAppVersionRequest): QueryAppVersionRequestAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAppVersionRequest",
-      value: QueryAppVersionRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAppVersionRequestProtoMsg): QueryAppVersionRequest {
-    return QueryAppVersionRequest.decode(message.value);
-  },
-  toProto(message: QueryAppVersionRequest): Uint8Array {
-    return QueryAppVersionRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAppVersionRequest): QueryAppVersionRequestProtoMsg {
-    return {
-      typeUrl: "/ibc.core.port.v1.QueryAppVersionRequest",
-      value: QueryAppVersionRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryAppVersionResponse(): QueryAppVersionResponse {
-  return {
-    portId: "",
-    version: ""
-  };
-}
-export const QueryAppVersionResponse = {
-  typeUrl: "/ibc.core.port.v1.QueryAppVersionResponse",
-  aminoType: "cosmos-sdk/QueryAppVersionResponse",
-  encode(message: QueryAppVersionResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.portId !== "") {
-      writer.uint32(10).string(message.portId);
-    }
-    if (message.version !== "") {
-      writer.uint32(18).string(message.version);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryAppVersionResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryAppVersionResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.portId = reader.string();
-          break;
-        case 2:
-          message.version = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryAppVersionResponse {
-    return {
-      portId: isSet(object.portId) ? String(object.portId) : "",
-      version: isSet(object.version) ? String(object.version) : ""
-    };
-  },
-  toJSON(message: QueryAppVersionResponse): unknown {
-    const obj: any = {};
-    message.portId !== undefined && (obj.portId = message.portId);
-    message.version !== undefined && (obj.version = message.version);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryAppVersionResponse>): QueryAppVersionResponse {
-    const message = createBaseQueryAppVersionResponse();
-    message.portId = object.portId ?? "";
-    message.version = object.version ?? "";
-    return message;
-  },
-  fromSDK(object: QueryAppVersionResponseSDKType): QueryAppVersionResponse {
-    return {
-      portId: object?.port_id,
-      version: object?.version
-    };
-  },
-  toSDK(message: QueryAppVersionResponse): QueryAppVersionResponseSDKType {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.version = message.version;
-    return obj;
-  },
-  fromAmino(object: QueryAppVersionResponseAmino): QueryAppVersionResponse {
-    return {
-      portId: object.port_id,
-      version: object.version
-    };
-  },
-  toAmino(message: QueryAppVersionResponse): QueryAppVersionResponseAmino {
-    const obj: any = {};
-    obj.port_id = message.portId;
-    obj.version = message.version;
-    return obj;
-  },
-  fromAminoMsg(object: QueryAppVersionResponseAminoMsg): QueryAppVersionResponse {
-    return QueryAppVersionResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryAppVersionResponse): QueryAppVersionResponseAminoMsg {
-    return {
-      type: "cosmos-sdk/QueryAppVersionResponse",
-      value: QueryAppVersionResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryAppVersionResponseProtoMsg): QueryAppVersionResponse {
-    return QueryAppVersionResponse.decode(message.value);
-  },
-  toProto(message: QueryAppVersionResponse): Uint8Array {
-    return QueryAppVersionResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryAppVersionResponse): QueryAppVersionResponseProtoMsg {
-    return {
-      typeUrl: "/ibc.core.port.v1.QueryAppVersionResponse",
-      value: QueryAppVersionResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/core/types/v1/genesis.ts b/examples/injective/src/codegen/ibc/core/types/v1/genesis.ts
deleted file mode 100644
index 7d84bc65..00000000
--- a/examples/injective/src/codegen/ibc/core/types/v1/genesis.ts
+++ /dev/null
@@ -1,160 +0,0 @@
-//@ts-nocheck
-import { GenesisState as GenesisState1 } from "../../client/v1/genesis";
-import { GenesisStateAmino as GenesisState1Amino } from "../../client/v1/genesis";
-import { GenesisStateSDKType as GenesisState1SDKType } from "../../client/v1/genesis";
-import { GenesisState as GenesisState2 } from "../../connection/v1/genesis";
-import { GenesisStateAmino as GenesisState2Amino } from "../../connection/v1/genesis";
-import { GenesisStateSDKType as GenesisState2SDKType } from "../../connection/v1/genesis";
-import { GenesisState as GenesisState3 } from "../../channel/v1/genesis";
-import { GenesisStateAmino as GenesisState3Amino } from "../../channel/v1/genesis";
-import { GenesisStateSDKType as GenesisState3SDKType } from "../../channel/v1/genesis";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** GenesisState defines the ibc module's genesis state. */
-export interface GenesisState {
-  /** ICS002 - Clients genesis state */
-  clientGenesis: GenesisState1 | undefined;
-  /** ICS003 - Connections genesis state */
-  connectionGenesis: GenesisState2 | undefined;
-  /** ICS004 - Channel genesis state */
-  channelGenesis: GenesisState3 | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/ibc.core.types.v1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the ibc module's genesis state. */
-export interface GenesisStateAmino {
-  /** ICS002 - Clients genesis state */
-  client_genesis?: GenesisState1Amino | undefined;
-  /** ICS003 - Connections genesis state */
-  connection_genesis?: GenesisState2Amino | undefined;
-  /** ICS004 - Channel genesis state */
-  channel_genesis?: GenesisState3Amino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "cosmos-sdk/GenesisState";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the ibc module's genesis state. */
-export interface GenesisStateSDKType {
-  client_genesis: GenesisState1SDKType | undefined;
-  connection_genesis: GenesisState2SDKType | undefined;
-  channel_genesis: GenesisState3SDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    clientGenesis: GenesisState1.fromPartial({}),
-    connectionGenesis: GenesisState2.fromPartial({}),
-    channelGenesis: GenesisState3.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/ibc.core.types.v1.GenesisState",
-  aminoType: "cosmos-sdk/GenesisState",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientGenesis !== undefined) {
-      GenesisState1.encode(message.clientGenesis, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.connectionGenesis !== undefined) {
-      GenesisState2.encode(message.connectionGenesis, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.channelGenesis !== undefined) {
-      GenesisState3.encode(message.channelGenesis, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientGenesis = GenesisState1.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.connectionGenesis = GenesisState2.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.channelGenesis = GenesisState3.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      clientGenesis: isSet(object.clientGenesis) ? GenesisState1.fromJSON(object.clientGenesis) : undefined,
-      connectionGenesis: isSet(object.connectionGenesis) ? GenesisState2.fromJSON(object.connectionGenesis) : undefined,
-      channelGenesis: isSet(object.channelGenesis) ? GenesisState3.fromJSON(object.channelGenesis) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.clientGenesis !== undefined && (obj.clientGenesis = message.clientGenesis ? GenesisState1.toJSON(message.clientGenesis) : undefined);
-    message.connectionGenesis !== undefined && (obj.connectionGenesis = message.connectionGenesis ? GenesisState2.toJSON(message.connectionGenesis) : undefined);
-    message.channelGenesis !== undefined && (obj.channelGenesis = message.channelGenesis ? GenesisState3.toJSON(message.channelGenesis) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.clientGenesis = object.clientGenesis !== undefined && object.clientGenesis !== null ? GenesisState1.fromPartial(object.clientGenesis) : undefined;
-    message.connectionGenesis = object.connectionGenesis !== undefined && object.connectionGenesis !== null ? GenesisState2.fromPartial(object.connectionGenesis) : undefined;
-    message.channelGenesis = object.channelGenesis !== undefined && object.channelGenesis !== null ? GenesisState3.fromPartial(object.channelGenesis) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      clientGenesis: object.client_genesis ? GenesisState1.fromSDK(object.client_genesis) : undefined,
-      connectionGenesis: object.connection_genesis ? GenesisState2.fromSDK(object.connection_genesis) : undefined,
-      channelGenesis: object.channel_genesis ? GenesisState3.fromSDK(object.channel_genesis) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.clientGenesis !== undefined && (obj.client_genesis = message.clientGenesis ? GenesisState1.toSDK(message.clientGenesis) : undefined);
-    message.connectionGenesis !== undefined && (obj.connection_genesis = message.connectionGenesis ? GenesisState2.toSDK(message.connectionGenesis) : undefined);
-    message.channelGenesis !== undefined && (obj.channel_genesis = message.channelGenesis ? GenesisState3.toSDK(message.channelGenesis) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      clientGenesis: object?.client_genesis ? GenesisState1.fromAmino(object.client_genesis) : undefined,
-      connectionGenesis: object?.connection_genesis ? GenesisState2.fromAmino(object.connection_genesis) : undefined,
-      channelGenesis: object?.channel_genesis ? GenesisState3.fromAmino(object.channel_genesis) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.client_genesis = message.clientGenesis ? GenesisState1.toAmino(message.clientGenesis) : undefined;
-    obj.connection_genesis = message.connectionGenesis ? GenesisState2.toAmino(message.connectionGenesis) : undefined;
-    obj.channel_genesis = message.channelGenesis ? GenesisState3.toAmino(message.channelGenesis) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "cosmos-sdk/GenesisState",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/ibc.core.types.v1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/lightclients/localhost/v1/localhost.ts b/examples/injective/src/codegen/ibc/lightclients/localhost/v1/localhost.ts
deleted file mode 100644
index 475d76a3..00000000
--- a/examples/injective/src/codegen/ibc/lightclients/localhost/v1/localhost.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-import { Height, HeightAmino, HeightSDKType } from "../../../core/client/v1/client";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * ClientState defines a loopback (localhost) client. It requires (read-only)
- * access to keys outside the client prefix.
- */
-export interface ClientState {
-  /** self chain ID */
-  chainId: string;
-  /** self latest block height */
-  height: Height | undefined;
-}
-export interface ClientStateProtoMsg {
-  typeUrl: "/ibc.lightclients.localhost.v1.ClientState";
-  value: Uint8Array;
-}
-/**
- * ClientState defines a loopback (localhost) client. It requires (read-only)
- * access to keys outside the client prefix.
- */
-export interface ClientStateAmino {
-  /** self chain ID */
-  chain_id: string;
-  /** self latest block height */
-  height?: HeightAmino | undefined;
-}
-export interface ClientStateAminoMsg {
-  type: "cosmos-sdk/ClientState";
-  value: ClientStateAmino;
-}
-/**
- * ClientState defines a loopback (localhost) client. It requires (read-only)
- * access to keys outside the client prefix.
- */
-export interface ClientStateSDKType {
-  chain_id: string;
-  height: HeightSDKType | undefined;
-}
-function createBaseClientState(): ClientState {
-  return {
-    chainId: "",
-    height: Height.fromPartial({})
-  };
-}
-export const ClientState = {
-  typeUrl: "/ibc.lightclients.localhost.v1.ClientState",
-  aminoType: "cosmos-sdk/ClientState",
-  encode(message: ClientState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.chainId !== "") {
-      writer.uint32(10).string(message.chainId);
-    }
-    if (message.height !== undefined) {
-      Height.encode(message.height, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.chainId = reader.string();
-          break;
-        case 2:
-          message.height = Height.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientState {
-    return {
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      height: isSet(object.height) ? Height.fromJSON(object.height) : undefined
-    };
-  },
-  toJSON(message: ClientState): unknown {
-    const obj: any = {};
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.height !== undefined && (obj.height = message.height ? Height.toJSON(message.height) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientState>): ClientState {
-    const message = createBaseClientState();
-    message.chainId = object.chainId ?? "";
-    message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined;
-    return message;
-  },
-  fromSDK(object: ClientStateSDKType): ClientState {
-    return {
-      chainId: object?.chain_id,
-      height: object.height ? Height.fromSDK(object.height) : undefined
-    };
-  },
-  toSDK(message: ClientState): ClientStateSDKType {
-    const obj: any = {};
-    obj.chain_id = message.chainId;
-    message.height !== undefined && (obj.height = message.height ? Height.toSDK(message.height) : undefined);
-    return obj;
-  },
-  fromAmino(object: ClientStateAmino): ClientState {
-    return {
-      chainId: object.chain_id,
-      height: object?.height ? Height.fromAmino(object.height) : undefined
-    };
-  },
-  toAmino(message: ClientState): ClientStateAmino {
-    const obj: any = {};
-    obj.chain_id = message.chainId;
-    obj.height = message.height ? Height.toAmino(message.height) : {};
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateAminoMsg): ClientState {
-    return ClientState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientState): ClientStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientState",
-      value: ClientState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateProtoMsg): ClientState {
-    return ClientState.decode(message.value);
-  },
-  toProto(message: ClientState): Uint8Array {
-    return ClientState.encode(message).finish();
-  },
-  toProtoMsg(message: ClientState): ClientStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.localhost.v1.ClientState",
-      value: ClientState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/lightclients/solomachine/v1/solomachine.ts b/examples/injective/src/codegen/ibc/lightclients/solomachine/v1/solomachine.ts
deleted file mode 100644
index d1cb09b3..00000000
--- a/examples/injective/src/codegen/ibc/lightclients/solomachine/v1/solomachine.ts
+++ /dev/null
@@ -1,2448 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { ConnectionEnd, ConnectionEndAmino, ConnectionEndSDKType } from "../../../core/connection/v1/connection";
-import { Channel, ChannelAmino, ChannelSDKType } from "../../../core/channel/v1/channel";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * DataType defines the type of solo machine proof being created. This is done
- * to preserve uniqueness of different data sign byte encodings.
- */
-export enum DataType {
-  /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */
-  DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0,
-  /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */
-  DATA_TYPE_CLIENT_STATE = 1,
-  /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */
-  DATA_TYPE_CONSENSUS_STATE = 2,
-  /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */
-  DATA_TYPE_CONNECTION_STATE = 3,
-  /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */
-  DATA_TYPE_CHANNEL_STATE = 4,
-  /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */
-  DATA_TYPE_PACKET_COMMITMENT = 5,
-  /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */
-  DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6,
-  /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */
-  DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7,
-  /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */
-  DATA_TYPE_NEXT_SEQUENCE_RECV = 8,
-  /** DATA_TYPE_HEADER - Data type for header verification */
-  DATA_TYPE_HEADER = 9,
-  UNRECOGNIZED = -1,
-}
-export const DataTypeSDKType = DataType;
-export const DataTypeAmino = DataType;
-export function dataTypeFromJSON(object: any): DataType {
-  switch (object) {
-    case 0:
-    case "DATA_TYPE_UNINITIALIZED_UNSPECIFIED":
-      return DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED;
-    case 1:
-    case "DATA_TYPE_CLIENT_STATE":
-      return DataType.DATA_TYPE_CLIENT_STATE;
-    case 2:
-    case "DATA_TYPE_CONSENSUS_STATE":
-      return DataType.DATA_TYPE_CONSENSUS_STATE;
-    case 3:
-    case "DATA_TYPE_CONNECTION_STATE":
-      return DataType.DATA_TYPE_CONNECTION_STATE;
-    case 4:
-    case "DATA_TYPE_CHANNEL_STATE":
-      return DataType.DATA_TYPE_CHANNEL_STATE;
-    case 5:
-    case "DATA_TYPE_PACKET_COMMITMENT":
-      return DataType.DATA_TYPE_PACKET_COMMITMENT;
-    case 6:
-    case "DATA_TYPE_PACKET_ACKNOWLEDGEMENT":
-      return DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT;
-    case 7:
-    case "DATA_TYPE_PACKET_RECEIPT_ABSENCE":
-      return DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE;
-    case 8:
-    case "DATA_TYPE_NEXT_SEQUENCE_RECV":
-      return DataType.DATA_TYPE_NEXT_SEQUENCE_RECV;
-    case 9:
-    case "DATA_TYPE_HEADER":
-      return DataType.DATA_TYPE_HEADER;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return DataType.UNRECOGNIZED;
-  }
-}
-export function dataTypeToJSON(object: DataType): string {
-  switch (object) {
-    case DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED:
-      return "DATA_TYPE_UNINITIALIZED_UNSPECIFIED";
-    case DataType.DATA_TYPE_CLIENT_STATE:
-      return "DATA_TYPE_CLIENT_STATE";
-    case DataType.DATA_TYPE_CONSENSUS_STATE:
-      return "DATA_TYPE_CONSENSUS_STATE";
-    case DataType.DATA_TYPE_CONNECTION_STATE:
-      return "DATA_TYPE_CONNECTION_STATE";
-    case DataType.DATA_TYPE_CHANNEL_STATE:
-      return "DATA_TYPE_CHANNEL_STATE";
-    case DataType.DATA_TYPE_PACKET_COMMITMENT:
-      return "DATA_TYPE_PACKET_COMMITMENT";
-    case DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT:
-      return "DATA_TYPE_PACKET_ACKNOWLEDGEMENT";
-    case DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE:
-      return "DATA_TYPE_PACKET_RECEIPT_ABSENCE";
-    case DataType.DATA_TYPE_NEXT_SEQUENCE_RECV:
-      return "DATA_TYPE_NEXT_SEQUENCE_RECV";
-    case DataType.DATA_TYPE_HEADER:
-      return "DATA_TYPE_HEADER";
-    case DataType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientState {
-  /** latest sequence of the client state */
-  sequence: bigint;
-  /** frozen sequence of the solo machine */
-  frozenSequence: bigint;
-  consensusState: ConsensusState | undefined;
-  /**
-   * when set to true, will allow governance to update a solo machine client.
-   * The client will be unfrozen if it is frozen.
-   */
-  allowUpdateAfterProposal: boolean;
-}
-export interface ClientStateProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ClientState";
-  value: Uint8Array;
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientStateAmino {
-  /** latest sequence of the client state */
-  sequence: string;
-  /** frozen sequence of the solo machine */
-  frozen_sequence: string;
-  consensus_state?: ConsensusStateAmino | undefined;
-  /**
-   * when set to true, will allow governance to update a solo machine client.
-   * The client will be unfrozen if it is frozen.
-   */
-  allow_update_after_proposal: boolean;
-}
-export interface ClientStateAminoMsg {
-  type: "cosmos-sdk/ClientState";
-  value: ClientStateAmino;
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientStateSDKType {
-  sequence: bigint;
-  frozen_sequence: bigint;
-  consensus_state: ConsensusStateSDKType | undefined;
-  allow_update_after_proposal: boolean;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusState {
-  /** public key of the solo machine */
-  publicKey: Any | undefined;
-  /**
-   * diversifier allows the same public key to be re-used across different solo
-   * machine clients (potentially on different chains) without being considered
-   * misbehaviour.
-   */
-  diversifier: string;
-  timestamp: bigint;
-}
-export interface ConsensusStateProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusState";
-  value: Uint8Array;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusStateAmino {
-  /** public key of the solo machine */
-  public_key?: AnyAmino | undefined;
-  /**
-   * diversifier allows the same public key to be re-used across different solo
-   * machine clients (potentially on different chains) without being considered
-   * misbehaviour.
-   */
-  diversifier: string;
-  timestamp: string;
-}
-export interface ConsensusStateAminoMsg {
-  type: "cosmos-sdk/ConsensusState";
-  value: ConsensusStateAmino;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusStateSDKType {
-  public_key: AnySDKType | undefined;
-  diversifier: string;
-  timestamp: bigint;
-}
-/** Header defines a solo machine consensus header */
-export interface Header {
-  /** sequence to update solo machine public key at */
-  sequence: bigint;
-  timestamp: bigint;
-  signature: Uint8Array;
-  newPublicKey: Any | undefined;
-  newDiversifier: string;
-}
-export interface HeaderProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.Header";
-  value: Uint8Array;
-}
-/** Header defines a solo machine consensus header */
-export interface HeaderAmino {
-  /** sequence to update solo machine public key at */
-  sequence: string;
-  timestamp: string;
-  signature: Uint8Array;
-  new_public_key?: AnyAmino | undefined;
-  new_diversifier: string;
-}
-export interface HeaderAminoMsg {
-  type: "cosmos-sdk/Header";
-  value: HeaderAmino;
-}
-/** Header defines a solo machine consensus header */
-export interface HeaderSDKType {
-  sequence: bigint;
-  timestamp: bigint;
-  signature: Uint8Array;
-  new_public_key: AnySDKType | undefined;
-  new_diversifier: string;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface Misbehaviour {
-  clientId: string;
-  sequence: bigint;
-  signatureOne: SignatureAndData | undefined;
-  signatureTwo: SignatureAndData | undefined;
-}
-export interface MisbehaviourProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.Misbehaviour";
-  value: Uint8Array;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface MisbehaviourAmino {
-  client_id: string;
-  sequence: string;
-  signature_one?: SignatureAndDataAmino | undefined;
-  signature_two?: SignatureAndDataAmino | undefined;
-}
-export interface MisbehaviourAminoMsg {
-  type: "cosmos-sdk/Misbehaviour";
-  value: MisbehaviourAmino;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface MisbehaviourSDKType {
-  client_id: string;
-  sequence: bigint;
-  signature_one: SignatureAndDataSDKType | undefined;
-  signature_two: SignatureAndDataSDKType | undefined;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndData {
-  signature: Uint8Array;
-  dataType: DataType;
-  data: Uint8Array;
-  timestamp: bigint;
-}
-export interface SignatureAndDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.SignatureAndData";
-  value: Uint8Array;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndDataAmino {
-  signature: Uint8Array;
-  data_type: DataType;
-  data: Uint8Array;
-  timestamp: string;
-}
-export interface SignatureAndDataAminoMsg {
-  type: "cosmos-sdk/SignatureAndData";
-  value: SignatureAndDataAmino;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndDataSDKType {
-  signature: Uint8Array;
-  data_type: DataType;
-  data: Uint8Array;
-  timestamp: bigint;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureData {
-  signatureData: Uint8Array;
-  timestamp: bigint;
-}
-export interface TimestampedSignatureDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.TimestampedSignatureData";
-  value: Uint8Array;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureDataAmino {
-  signature_data: Uint8Array;
-  timestamp: string;
-}
-export interface TimestampedSignatureDataAminoMsg {
-  type: "cosmos-sdk/TimestampedSignatureData";
-  value: TimestampedSignatureDataAmino;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureDataSDKType {
-  signature_data: Uint8Array;
-  timestamp: bigint;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytes {
-  sequence: bigint;
-  timestamp: bigint;
-  diversifier: string;
-  /** type of the data used */
-  dataType: DataType;
-  /** marshaled data */
-  data: Uint8Array;
-}
-export interface SignBytesProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.SignBytes";
-  value: Uint8Array;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytesAmino {
-  sequence: string;
-  timestamp: string;
-  diversifier: string;
-  /** type of the data used */
-  data_type: DataType;
-  /** marshaled data */
-  data: Uint8Array;
-}
-export interface SignBytesAminoMsg {
-  type: "cosmos-sdk/SignBytes";
-  value: SignBytesAmino;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytesSDKType {
-  sequence: bigint;
-  timestamp: bigint;
-  diversifier: string;
-  data_type: DataType;
-  data: Uint8Array;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderData {
-  /** header public key */
-  newPubKey: Any | undefined;
-  /** header diversifier */
-  newDiversifier: string;
-}
-export interface HeaderDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.HeaderData";
-  value: Uint8Array;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderDataAmino {
-  /** header public key */
-  new_pub_key?: AnyAmino | undefined;
-  /** header diversifier */
-  new_diversifier: string;
-}
-export interface HeaderDataAminoMsg {
-  type: "cosmos-sdk/HeaderData";
-  value: HeaderDataAmino;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderDataSDKType {
-  new_pub_key: AnySDKType | undefined;
-  new_diversifier: string;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateData {
-  path: Uint8Array;
-  clientState: Any | undefined;
-}
-export interface ClientStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ClientStateData";
-  value: Uint8Array;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateDataAmino {
-  path: Uint8Array;
-  client_state?: AnyAmino | undefined;
-}
-export interface ClientStateDataAminoMsg {
-  type: "cosmos-sdk/ClientStateData";
-  value: ClientStateDataAmino;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateDataSDKType {
-  path: Uint8Array;
-  client_state: AnySDKType | undefined;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateData {
-  path: Uint8Array;
-  consensusState: Any | undefined;
-}
-export interface ConsensusStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusStateData";
-  value: Uint8Array;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateDataAmino {
-  path: Uint8Array;
-  consensus_state?: AnyAmino | undefined;
-}
-export interface ConsensusStateDataAminoMsg {
-  type: "cosmos-sdk/ConsensusStateData";
-  value: ConsensusStateDataAmino;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateDataSDKType {
-  path: Uint8Array;
-  consensus_state: AnySDKType | undefined;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateData {
-  path: Uint8Array;
-  connection: ConnectionEnd | undefined;
-}
-export interface ConnectionStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConnectionStateData";
-  value: Uint8Array;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateDataAmino {
-  path: Uint8Array;
-  connection?: ConnectionEndAmino | undefined;
-}
-export interface ConnectionStateDataAminoMsg {
-  type: "cosmos-sdk/ConnectionStateData";
-  value: ConnectionStateDataAmino;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateDataSDKType {
-  path: Uint8Array;
-  connection: ConnectionEndSDKType | undefined;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateData {
-  path: Uint8Array;
-  channel: Channel | undefined;
-}
-export interface ChannelStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ChannelStateData";
-  value: Uint8Array;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateDataAmino {
-  path: Uint8Array;
-  channel?: ChannelAmino | undefined;
-}
-export interface ChannelStateDataAminoMsg {
-  type: "cosmos-sdk/ChannelStateData";
-  value: ChannelStateDataAmino;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateDataSDKType {
-  path: Uint8Array;
-  channel: ChannelSDKType | undefined;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentData {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-export interface PacketCommitmentDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketCommitmentData";
-  value: Uint8Array;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentDataAmino {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-export interface PacketCommitmentDataAminoMsg {
-  type: "cosmos-sdk/PacketCommitmentData";
-  value: PacketCommitmentDataAmino;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentDataSDKType {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementData {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-export interface PacketAcknowledgementDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketAcknowledgementData";
-  value: Uint8Array;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementDataAmino {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-export interface PacketAcknowledgementDataAminoMsg {
-  type: "cosmos-sdk/PacketAcknowledgementData";
-  value: PacketAcknowledgementDataAmino;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementDataSDKType {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceData {
-  path: Uint8Array;
-}
-export interface PacketReceiptAbsenceDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketReceiptAbsenceData";
-  value: Uint8Array;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceDataAmino {
-  path: Uint8Array;
-}
-export interface PacketReceiptAbsenceDataAminoMsg {
-  type: "cosmos-sdk/PacketReceiptAbsenceData";
-  value: PacketReceiptAbsenceDataAmino;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceDataSDKType {
-  path: Uint8Array;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvData {
-  path: Uint8Array;
-  nextSeqRecv: bigint;
-}
-export interface NextSequenceRecvDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v1.NextSequenceRecvData";
-  value: Uint8Array;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvDataAmino {
-  path: Uint8Array;
-  next_seq_recv: string;
-}
-export interface NextSequenceRecvDataAminoMsg {
-  type: "cosmos-sdk/NextSequenceRecvData";
-  value: NextSequenceRecvDataAmino;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvDataSDKType {
-  path: Uint8Array;
-  next_seq_recv: bigint;
-}
-function createBaseClientState(): ClientState {
-  return {
-    sequence: BigInt(0),
-    frozenSequence: BigInt(0),
-    consensusState: ConsensusState.fromPartial({}),
-    allowUpdateAfterProposal: false
-  };
-}
-export const ClientState = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ClientState",
-  aminoType: "cosmos-sdk/ClientState",
-  encode(message: ClientState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.frozenSequence !== BigInt(0)) {
-      writer.uint32(16).uint64(message.frozenSequence);
-    }
-    if (message.consensusState !== undefined) {
-      ConsensusState.encode(message.consensusState, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.allowUpdateAfterProposal === true) {
-      writer.uint32(32).bool(message.allowUpdateAfterProposal);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.frozenSequence = reader.uint64();
-          break;
-        case 3:
-          message.consensusState = ConsensusState.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.allowUpdateAfterProposal = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientState {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      frozenSequence: isSet(object.frozenSequence) ? BigInt(object.frozenSequence.toString()) : BigInt(0),
-      consensusState: isSet(object.consensusState) ? ConsensusState.fromJSON(object.consensusState) : undefined,
-      allowUpdateAfterProposal: isSet(object.allowUpdateAfterProposal) ? Boolean(object.allowUpdateAfterProposal) : false
-    };
-  },
-  toJSON(message: ClientState): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.frozenSequence !== undefined && (obj.frozenSequence = (message.frozenSequence || BigInt(0)).toString());
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? ConsensusState.toJSON(message.consensusState) : undefined);
-    message.allowUpdateAfterProposal !== undefined && (obj.allowUpdateAfterProposal = message.allowUpdateAfterProposal);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientState>): ClientState {
-    const message = createBaseClientState();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.frozenSequence = object.frozenSequence !== undefined && object.frozenSequence !== null ? BigInt(object.frozenSequence.toString()) : BigInt(0);
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? ConsensusState.fromPartial(object.consensusState) : undefined;
-    message.allowUpdateAfterProposal = object.allowUpdateAfterProposal ?? false;
-    return message;
-  },
-  fromSDK(object: ClientStateSDKType): ClientState {
-    return {
-      sequence: object?.sequence,
-      frozenSequence: object?.frozen_sequence,
-      consensusState: object.consensus_state ? ConsensusState.fromSDK(object.consensus_state) : undefined,
-      allowUpdateAfterProposal: object?.allow_update_after_proposal
-    };
-  },
-  toSDK(message: ClientState): ClientStateSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.frozen_sequence = message.frozenSequence;
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? ConsensusState.toSDK(message.consensusState) : undefined);
-    obj.allow_update_after_proposal = message.allowUpdateAfterProposal;
-    return obj;
-  },
-  fromAmino(object: ClientStateAmino): ClientState {
-    return {
-      sequence: BigInt(object.sequence),
-      frozenSequence: BigInt(object.frozen_sequence),
-      consensusState: object?.consensus_state ? ConsensusState.fromAmino(object.consensus_state) : undefined,
-      allowUpdateAfterProposal: object.allow_update_after_proposal
-    };
-  },
-  toAmino(message: ClientState): ClientStateAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.frozen_sequence = message.frozenSequence ? message.frozenSequence.toString() : undefined;
-    obj.consensus_state = message.consensusState ? ConsensusState.toAmino(message.consensusState) : undefined;
-    obj.allow_update_after_proposal = message.allowUpdateAfterProposal;
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateAminoMsg): ClientState {
-    return ClientState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientState): ClientStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientState",
-      value: ClientState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateProtoMsg): ClientState {
-    return ClientState.decode(message.value);
-  },
-  toProto(message: ClientState): Uint8Array {
-    return ClientState.encode(message).finish();
-  },
-  toProtoMsg(message: ClientState): ClientStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ClientState",
-      value: ClientState.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusState(): ConsensusState {
-  return {
-    publicKey: Any.fromPartial({}),
-    diversifier: "",
-    timestamp: BigInt(0)
-  };
-}
-export const ConsensusState = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusState",
-  aminoType: "cosmos-sdk/ConsensusState",
-  encode(message: ConsensusState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.publicKey !== undefined) {
-      Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.diversifier !== "") {
-      writer.uint32(18).string(message.diversifier);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(24).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.publicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.diversifier = reader.string();
-          break;
-        case 3:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusState {
-    return {
-      publicKey: isSet(object.publicKey) ? Any.fromJSON(object.publicKey) : undefined,
-      diversifier: isSet(object.diversifier) ? String(object.diversifier) : "",
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ConsensusState): unknown {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined);
-    message.diversifier !== undefined && (obj.diversifier = message.diversifier);
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusState>): ConsensusState {
-    const message = createBaseConsensusState();
-    message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
-    message.diversifier = object.diversifier ?? "";
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ConsensusStateSDKType): ConsensusState {
-    return {
-      publicKey: object.public_key ? Any.fromSDK(object.public_key) : undefined,
-      diversifier: object?.diversifier,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: ConsensusState): ConsensusStateSDKType {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.public_key = message.publicKey ? Any.toSDK(message.publicKey) : undefined);
-    obj.diversifier = message.diversifier;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: ConsensusStateAmino): ConsensusState {
-    return {
-      publicKey: object?.public_key ? Any.fromAmino(object.public_key) : undefined,
-      diversifier: object.diversifier,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: ConsensusState): ConsensusStateAmino {
-    const obj: any = {};
-    obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
-    obj.diversifier = message.diversifier;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateAminoMsg): ConsensusState {
-    return ConsensusState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusState): ConsensusStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusState",
-      value: ConsensusState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateProtoMsg): ConsensusState {
-    return ConsensusState.decode(message.value);
-  },
-  toProto(message: ConsensusState): Uint8Array {
-    return ConsensusState.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusState): ConsensusStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusState",
-      value: ConsensusState.encode(message).finish()
-    };
-  }
-};
-function createBaseHeader(): Header {
-  return {
-    sequence: BigInt(0),
-    timestamp: BigInt(0),
-    signature: new Uint8Array(),
-    newPublicKey: Any.fromPartial({}),
-    newDiversifier: ""
-  };
-}
-export const Header = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.Header",
-  aminoType: "cosmos-sdk/Header",
-  encode(message: Header, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(26).bytes(message.signature);
-    }
-    if (message.newPublicKey !== undefined) {
-      Any.encode(message.newPublicKey, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.newDiversifier !== "") {
-      writer.uint32(42).string(message.newDiversifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Header {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        case 3:
-          message.signature = reader.bytes();
-          break;
-        case 4:
-          message.newPublicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.newDiversifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Header {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0),
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(),
-      newPublicKey: isSet(object.newPublicKey) ? Any.fromJSON(object.newPublicKey) : undefined,
-      newDiversifier: isSet(object.newDiversifier) ? String(object.newDiversifier) : ""
-    };
-  },
-  toJSON(message: Header): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    message.newPublicKey !== undefined && (obj.newPublicKey = message.newPublicKey ? Any.toJSON(message.newPublicKey) : undefined);
-    message.newDiversifier !== undefined && (obj.newDiversifier = message.newDiversifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Header>): Header {
-    const message = createBaseHeader();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    message.signature = object.signature ?? new Uint8Array();
-    message.newPublicKey = object.newPublicKey !== undefined && object.newPublicKey !== null ? Any.fromPartial(object.newPublicKey) : undefined;
-    message.newDiversifier = object.newDiversifier ?? "";
-    return message;
-  },
-  fromSDK(object: HeaderSDKType): Header {
-    return {
-      sequence: object?.sequence,
-      timestamp: object?.timestamp,
-      signature: object?.signature,
-      newPublicKey: object.new_public_key ? Any.fromSDK(object.new_public_key) : undefined,
-      newDiversifier: object?.new_diversifier
-    };
-  },
-  toSDK(message: Header): HeaderSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.timestamp = message.timestamp;
-    obj.signature = message.signature;
-    message.newPublicKey !== undefined && (obj.new_public_key = message.newPublicKey ? Any.toSDK(message.newPublicKey) : undefined);
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAmino(object: HeaderAmino): Header {
-    return {
-      sequence: BigInt(object.sequence),
-      timestamp: BigInt(object.timestamp),
-      signature: object.signature,
-      newPublicKey: object?.new_public_key ? Any.fromAmino(object.new_public_key) : undefined,
-      newDiversifier: object.new_diversifier
-    };
-  },
-  toAmino(message: Header): HeaderAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    obj.signature = message.signature;
-    obj.new_public_key = message.newPublicKey ? Any.toAmino(message.newPublicKey) : undefined;
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderAminoMsg): Header {
-    return Header.fromAmino(object.value);
-  },
-  toAminoMsg(message: Header): HeaderAminoMsg {
-    return {
-      type: "cosmos-sdk/Header",
-      value: Header.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeaderProtoMsg): Header {
-    return Header.decode(message.value);
-  },
-  toProto(message: Header): Uint8Array {
-    return Header.encode(message).finish();
-  },
-  toProtoMsg(message: Header): HeaderProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.Header",
-      value: Header.encode(message).finish()
-    };
-  }
-};
-function createBaseMisbehaviour(): Misbehaviour {
-  return {
-    clientId: "",
-    sequence: BigInt(0),
-    signatureOne: SignatureAndData.fromPartial({}),
-    signatureTwo: SignatureAndData.fromPartial({})
-  };
-}
-export const Misbehaviour = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.Misbehaviour",
-  aminoType: "cosmos-sdk/Misbehaviour",
-  encode(message: Misbehaviour, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(16).uint64(message.sequence);
-    }
-    if (message.signatureOne !== undefined) {
-      SignatureAndData.encode(message.signatureOne, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.signatureTwo !== undefined) {
-      SignatureAndData.encode(message.signatureTwo, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Misbehaviour {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMisbehaviour();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.sequence = reader.uint64();
-          break;
-        case 3:
-          message.signatureOne = SignatureAndData.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.signatureTwo = SignatureAndData.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Misbehaviour {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      signatureOne: isSet(object.signatureOne) ? SignatureAndData.fromJSON(object.signatureOne) : undefined,
-      signatureTwo: isSet(object.signatureTwo) ? SignatureAndData.fromJSON(object.signatureTwo) : undefined
-    };
-  },
-  toJSON(message: Misbehaviour): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.signatureOne !== undefined && (obj.signatureOne = message.signatureOne ? SignatureAndData.toJSON(message.signatureOne) : undefined);
-    message.signatureTwo !== undefined && (obj.signatureTwo = message.signatureTwo ? SignatureAndData.toJSON(message.signatureTwo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Misbehaviour>): Misbehaviour {
-    const message = createBaseMisbehaviour();
-    message.clientId = object.clientId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.signatureOne = object.signatureOne !== undefined && object.signatureOne !== null ? SignatureAndData.fromPartial(object.signatureOne) : undefined;
-    message.signatureTwo = object.signatureTwo !== undefined && object.signatureTwo !== null ? SignatureAndData.fromPartial(object.signatureTwo) : undefined;
-    return message;
-  },
-  fromSDK(object: MisbehaviourSDKType): Misbehaviour {
-    return {
-      clientId: object?.client_id,
-      sequence: object?.sequence,
-      signatureOne: object.signature_one ? SignatureAndData.fromSDK(object.signature_one) : undefined,
-      signatureTwo: object.signature_two ? SignatureAndData.fromSDK(object.signature_two) : undefined
-    };
-  },
-  toSDK(message: Misbehaviour): MisbehaviourSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.sequence = message.sequence;
-    message.signatureOne !== undefined && (obj.signature_one = message.signatureOne ? SignatureAndData.toSDK(message.signatureOne) : undefined);
-    message.signatureTwo !== undefined && (obj.signature_two = message.signatureTwo ? SignatureAndData.toSDK(message.signatureTwo) : undefined);
-    return obj;
-  },
-  fromAmino(object: MisbehaviourAmino): Misbehaviour {
-    return {
-      clientId: object.client_id,
-      sequence: BigInt(object.sequence),
-      signatureOne: object?.signature_one ? SignatureAndData.fromAmino(object.signature_one) : undefined,
-      signatureTwo: object?.signature_two ? SignatureAndData.fromAmino(object.signature_two) : undefined
-    };
-  },
-  toAmino(message: Misbehaviour): MisbehaviourAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.signature_one = message.signatureOne ? SignatureAndData.toAmino(message.signatureOne) : undefined;
-    obj.signature_two = message.signatureTwo ? SignatureAndData.toAmino(message.signatureTwo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MisbehaviourAminoMsg): Misbehaviour {
-    return Misbehaviour.fromAmino(object.value);
-  },
-  toAminoMsg(message: Misbehaviour): MisbehaviourAminoMsg {
-    return {
-      type: "cosmos-sdk/Misbehaviour",
-      value: Misbehaviour.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MisbehaviourProtoMsg): Misbehaviour {
-    return Misbehaviour.decode(message.value);
-  },
-  toProto(message: Misbehaviour): Uint8Array {
-    return Misbehaviour.encode(message).finish();
-  },
-  toProtoMsg(message: Misbehaviour): MisbehaviourProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.Misbehaviour",
-      value: Misbehaviour.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureAndData(): SignatureAndData {
-  return {
-    signature: new Uint8Array(),
-    dataType: 0,
-    data: new Uint8Array(),
-    timestamp: BigInt(0)
-  };
-}
-export const SignatureAndData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.SignatureAndData",
-  aminoType: "cosmos-sdk/SignatureAndData",
-  encode(message: SignatureAndData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signature.length !== 0) {
-      writer.uint32(10).bytes(message.signature);
-    }
-    if (message.dataType !== 0) {
-      writer.uint32(16).int32(message.dataType);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(26).bytes(message.data);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(32).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureAndData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureAndData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signature = reader.bytes();
-          break;
-        case 2:
-          message.dataType = (reader.int32() as any);
-          break;
-        case 3:
-          message.data = reader.bytes();
-          break;
-        case 4:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureAndData {
-    return {
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(),
-      dataType: isSet(object.dataType) ? dataTypeFromJSON(object.dataType) : -1,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SignatureAndData): unknown {
-    const obj: any = {};
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    message.dataType !== undefined && (obj.dataType = dataTypeToJSON(message.dataType));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureAndData>): SignatureAndData {
-    const message = createBaseSignatureAndData();
-    message.signature = object.signature ?? new Uint8Array();
-    message.dataType = object.dataType ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SignatureAndDataSDKType): SignatureAndData {
-    return {
-      signature: object?.signature,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object?.data,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: SignatureAndData): SignatureAndDataSDKType {
-    const obj: any = {};
-    obj.signature = message.signature;
-    message.dataType !== undefined && (obj.data_type = dataTypeToJSON(message.dataType));
-    obj.data = message.data;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: SignatureAndDataAmino): SignatureAndData {
-    return {
-      signature: object.signature,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object.data,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: SignatureAndData): SignatureAndDataAmino {
-    const obj: any = {};
-    obj.signature = message.signature;
-    obj.data_type = message.dataType;
-    obj.data = message.data;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignatureAndDataAminoMsg): SignatureAndData {
-    return SignatureAndData.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureAndData): SignatureAndDataAminoMsg {
-    return {
-      type: "cosmos-sdk/SignatureAndData",
-      value: SignatureAndData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureAndDataProtoMsg): SignatureAndData {
-    return SignatureAndData.decode(message.value);
-  },
-  toProto(message: SignatureAndData): Uint8Array {
-    return SignatureAndData.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureAndData): SignatureAndDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.SignatureAndData",
-      value: SignatureAndData.encode(message).finish()
-    };
-  }
-};
-function createBaseTimestampedSignatureData(): TimestampedSignatureData {
-  return {
-    signatureData: new Uint8Array(),
-    timestamp: BigInt(0)
-  };
-}
-export const TimestampedSignatureData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.TimestampedSignatureData",
-  aminoType: "cosmos-sdk/TimestampedSignatureData",
-  encode(message: TimestampedSignatureData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signatureData.length !== 0) {
-      writer.uint32(10).bytes(message.signatureData);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TimestampedSignatureData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTimestampedSignatureData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signatureData = reader.bytes();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TimestampedSignatureData {
-    return {
-      signatureData: isSet(object.signatureData) ? bytesFromBase64(object.signatureData) : new Uint8Array(),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: TimestampedSignatureData): unknown {
-    const obj: any = {};
-    message.signatureData !== undefined && (obj.signatureData = base64FromBytes(message.signatureData !== undefined ? message.signatureData : new Uint8Array()));
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TimestampedSignatureData>): TimestampedSignatureData {
-    const message = createBaseTimestampedSignatureData();
-    message.signatureData = object.signatureData ?? new Uint8Array();
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: TimestampedSignatureDataSDKType): TimestampedSignatureData {
-    return {
-      signatureData: object?.signature_data,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: TimestampedSignatureData): TimestampedSignatureDataSDKType {
-    const obj: any = {};
-    obj.signature_data = message.signatureData;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: TimestampedSignatureDataAmino): TimestampedSignatureData {
-    return {
-      signatureData: object.signature_data,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: TimestampedSignatureData): TimestampedSignatureDataAmino {
-    const obj: any = {};
-    obj.signature_data = message.signatureData;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: TimestampedSignatureDataAminoMsg): TimestampedSignatureData {
-    return TimestampedSignatureData.fromAmino(object.value);
-  },
-  toAminoMsg(message: TimestampedSignatureData): TimestampedSignatureDataAminoMsg {
-    return {
-      type: "cosmos-sdk/TimestampedSignatureData",
-      value: TimestampedSignatureData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TimestampedSignatureDataProtoMsg): TimestampedSignatureData {
-    return TimestampedSignatureData.decode(message.value);
-  },
-  toProto(message: TimestampedSignatureData): Uint8Array {
-    return TimestampedSignatureData.encode(message).finish();
-  },
-  toProtoMsg(message: TimestampedSignatureData): TimestampedSignatureDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.TimestampedSignatureData",
-      value: TimestampedSignatureData.encode(message).finish()
-    };
-  }
-};
-function createBaseSignBytes(): SignBytes {
-  return {
-    sequence: BigInt(0),
-    timestamp: BigInt(0),
-    diversifier: "",
-    dataType: 0,
-    data: new Uint8Array()
-  };
-}
-export const SignBytes = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.SignBytes",
-  aminoType: "cosmos-sdk/SignBytes",
-  encode(message: SignBytes, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    if (message.diversifier !== "") {
-      writer.uint32(26).string(message.diversifier);
-    }
-    if (message.dataType !== 0) {
-      writer.uint32(32).int32(message.dataType);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(42).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignBytes {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignBytes();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        case 3:
-          message.diversifier = reader.string();
-          break;
-        case 4:
-          message.dataType = (reader.int32() as any);
-          break;
-        case 5:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignBytes {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0),
-      diversifier: isSet(object.diversifier) ? String(object.diversifier) : "",
-      dataType: isSet(object.dataType) ? dataTypeFromJSON(object.dataType) : -1,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: SignBytes): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    message.diversifier !== undefined && (obj.diversifier = message.diversifier);
-    message.dataType !== undefined && (obj.dataType = dataTypeToJSON(message.dataType));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignBytes>): SignBytes {
-    const message = createBaseSignBytes();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    message.diversifier = object.diversifier ?? "";
-    message.dataType = object.dataType ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SignBytesSDKType): SignBytes {
-    return {
-      sequence: object?.sequence,
-      timestamp: object?.timestamp,
-      diversifier: object?.diversifier,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object?.data
-    };
-  },
-  toSDK(message: SignBytes): SignBytesSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.timestamp = message.timestamp;
-    obj.diversifier = message.diversifier;
-    message.dataType !== undefined && (obj.data_type = dataTypeToJSON(message.dataType));
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: SignBytesAmino): SignBytes {
-    return {
-      sequence: BigInt(object.sequence),
-      timestamp: BigInt(object.timestamp),
-      diversifier: object.diversifier,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object.data
-    };
-  },
-  toAmino(message: SignBytes): SignBytesAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    obj.diversifier = message.diversifier;
-    obj.data_type = message.dataType;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: SignBytesAminoMsg): SignBytes {
-    return SignBytes.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignBytes): SignBytesAminoMsg {
-    return {
-      type: "cosmos-sdk/SignBytes",
-      value: SignBytes.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignBytesProtoMsg): SignBytes {
-    return SignBytes.decode(message.value);
-  },
-  toProto(message: SignBytes): Uint8Array {
-    return SignBytes.encode(message).finish();
-  },
-  toProtoMsg(message: SignBytes): SignBytesProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.SignBytes",
-      value: SignBytes.encode(message).finish()
-    };
-  }
-};
-function createBaseHeaderData(): HeaderData {
-  return {
-    newPubKey: Any.fromPartial({}),
-    newDiversifier: ""
-  };
-}
-export const HeaderData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.HeaderData",
-  aminoType: "cosmos-sdk/HeaderData",
-  encode(message: HeaderData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.newPubKey !== undefined) {
-      Any.encode(message.newPubKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.newDiversifier !== "") {
-      writer.uint32(18).string(message.newDiversifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): HeaderData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeaderData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.newPubKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.newDiversifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): HeaderData {
-    return {
-      newPubKey: isSet(object.newPubKey) ? Any.fromJSON(object.newPubKey) : undefined,
-      newDiversifier: isSet(object.newDiversifier) ? String(object.newDiversifier) : ""
-    };
-  },
-  toJSON(message: HeaderData): unknown {
-    const obj: any = {};
-    message.newPubKey !== undefined && (obj.newPubKey = message.newPubKey ? Any.toJSON(message.newPubKey) : undefined);
-    message.newDiversifier !== undefined && (obj.newDiversifier = message.newDiversifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<HeaderData>): HeaderData {
-    const message = createBaseHeaderData();
-    message.newPubKey = object.newPubKey !== undefined && object.newPubKey !== null ? Any.fromPartial(object.newPubKey) : undefined;
-    message.newDiversifier = object.newDiversifier ?? "";
-    return message;
-  },
-  fromSDK(object: HeaderDataSDKType): HeaderData {
-    return {
-      newPubKey: object.new_pub_key ? Any.fromSDK(object.new_pub_key) : undefined,
-      newDiversifier: object?.new_diversifier
-    };
-  },
-  toSDK(message: HeaderData): HeaderDataSDKType {
-    const obj: any = {};
-    message.newPubKey !== undefined && (obj.new_pub_key = message.newPubKey ? Any.toSDK(message.newPubKey) : undefined);
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAmino(object: HeaderDataAmino): HeaderData {
-    return {
-      newPubKey: object?.new_pub_key ? Any.fromAmino(object.new_pub_key) : undefined,
-      newDiversifier: object.new_diversifier
-    };
-  },
-  toAmino(message: HeaderData): HeaderDataAmino {
-    const obj: any = {};
-    obj.new_pub_key = message.newPubKey ? Any.toAmino(message.newPubKey) : undefined;
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderDataAminoMsg): HeaderData {
-    return HeaderData.fromAmino(object.value);
-  },
-  toAminoMsg(message: HeaderData): HeaderDataAminoMsg {
-    return {
-      type: "cosmos-sdk/HeaderData",
-      value: HeaderData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeaderDataProtoMsg): HeaderData {
-    return HeaderData.decode(message.value);
-  },
-  toProto(message: HeaderData): Uint8Array {
-    return HeaderData.encode(message).finish();
-  },
-  toProtoMsg(message: HeaderData): HeaderDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.HeaderData",
-      value: HeaderData.encode(message).finish()
-    };
-  }
-};
-function createBaseClientStateData(): ClientStateData {
-  return {
-    path: new Uint8Array(),
-    clientState: Any.fromPartial({})
-  };
-}
-export const ClientStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ClientStateData",
-  aminoType: "cosmos-sdk/ClientStateData",
-  encode(message: ClientStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined
-    };
-  },
-  toJSON(message: ClientStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientStateData>): ClientStateData {
-    const message = createBaseClientStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    return message;
-  },
-  fromSDK(object: ClientStateDataSDKType): ClientStateData {
-    return {
-      path: object?.path,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined
-    };
-  },
-  toSDK(message: ClientStateData): ClientStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: ClientStateDataAmino): ClientStateData {
-    return {
-      path: object.path,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined
-    };
-  },
-  toAmino(message: ClientStateData): ClientStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateDataAminoMsg): ClientStateData {
-    return ClientStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientStateData): ClientStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientStateData",
-      value: ClientStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateDataProtoMsg): ClientStateData {
-    return ClientStateData.decode(message.value);
-  },
-  toProto(message: ClientStateData): Uint8Array {
-    return ClientStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ClientStateData): ClientStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ClientStateData",
-      value: ClientStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusStateData(): ConsensusStateData {
-  return {
-    path: new Uint8Array(),
-    consensusState: Any.fromPartial({})
-  };
-}
-export const ConsensusStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusStateData",
-  aminoType: "cosmos-sdk/ConsensusStateData",
-  encode(message: ConsensusStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined
-    };
-  },
-  toJSON(message: ConsensusStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusStateData>): ConsensusStateData {
-    const message = createBaseConsensusStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    return message;
-  },
-  fromSDK(object: ConsensusStateDataSDKType): ConsensusStateData {
-    return {
-      path: object?.path,
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined
-    };
-  },
-  toSDK(message: ConsensusStateData): ConsensusStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConsensusStateDataAmino): ConsensusStateData {
-    return {
-      path: object.path,
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined
-    };
-  },
-  toAmino(message: ConsensusStateData): ConsensusStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateDataAminoMsg): ConsensusStateData {
-    return ConsensusStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusStateData): ConsensusStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusStateData",
-      value: ConsensusStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateDataProtoMsg): ConsensusStateData {
-    return ConsensusStateData.decode(message.value);
-  },
-  toProto(message: ConsensusStateData): Uint8Array {
-    return ConsensusStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusStateData): ConsensusStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ConsensusStateData",
-      value: ConsensusStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseConnectionStateData(): ConnectionStateData {
-  return {
-    path: new Uint8Array(),
-    connection: ConnectionEnd.fromPartial({})
-  };
-}
-export const ConnectionStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ConnectionStateData",
-  aminoType: "cosmos-sdk/ConnectionStateData",
-  encode(message: ConnectionStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.connection !== undefined) {
-      ConnectionEnd.encode(message.connection, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectionStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectionStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.connection = ConnectionEnd.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectionStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      connection: isSet(object.connection) ? ConnectionEnd.fromJSON(object.connection) : undefined
-    };
-  },
-  toJSON(message: ConnectionStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toJSON(message.connection) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectionStateData>): ConnectionStateData {
-    const message = createBaseConnectionStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined;
-    return message;
-  },
-  fromSDK(object: ConnectionStateDataSDKType): ConnectionStateData {
-    return {
-      path: object?.path,
-      connection: object.connection ? ConnectionEnd.fromSDK(object.connection) : undefined
-    };
-  },
-  toSDK(message: ConnectionStateData): ConnectionStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toSDK(message.connection) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConnectionStateDataAmino): ConnectionStateData {
-    return {
-      path: object.path,
-      connection: object?.connection ? ConnectionEnd.fromAmino(object.connection) : undefined
-    };
-  },
-  toAmino(message: ConnectionStateData): ConnectionStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.connection = message.connection ? ConnectionEnd.toAmino(message.connection) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConnectionStateDataAminoMsg): ConnectionStateData {
-    return ConnectionStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectionStateData): ConnectionStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ConnectionStateData",
-      value: ConnectionStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectionStateDataProtoMsg): ConnectionStateData {
-    return ConnectionStateData.decode(message.value);
-  },
-  toProto(message: ConnectionStateData): Uint8Array {
-    return ConnectionStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectionStateData): ConnectionStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ConnectionStateData",
-      value: ConnectionStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseChannelStateData(): ChannelStateData {
-  return {
-    path: new Uint8Array(),
-    channel: Channel.fromPartial({})
-  };
-}
-export const ChannelStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.ChannelStateData",
-  aminoType: "cosmos-sdk/ChannelStateData",
-  encode(message: ChannelStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.channel !== undefined) {
-      Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ChannelStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseChannelStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.channel = Channel.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ChannelStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      channel: isSet(object.channel) ? Channel.fromJSON(object.channel) : undefined
-    };
-  },
-  toJSON(message: ChannelStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toJSON(message.channel) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ChannelStateData>): ChannelStateData {
-    const message = createBaseChannelStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined;
-    return message;
-  },
-  fromSDK(object: ChannelStateDataSDKType): ChannelStateData {
-    return {
-      path: object?.path,
-      channel: object.channel ? Channel.fromSDK(object.channel) : undefined
-    };
-  },
-  toSDK(message: ChannelStateData): ChannelStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toSDK(message.channel) : undefined);
-    return obj;
-  },
-  fromAmino(object: ChannelStateDataAmino): ChannelStateData {
-    return {
-      path: object.path,
-      channel: object?.channel ? Channel.fromAmino(object.channel) : undefined
-    };
-  },
-  toAmino(message: ChannelStateData): ChannelStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.channel = message.channel ? Channel.toAmino(message.channel) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ChannelStateDataAminoMsg): ChannelStateData {
-    return ChannelStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ChannelStateData): ChannelStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ChannelStateData",
-      value: ChannelStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ChannelStateDataProtoMsg): ChannelStateData {
-    return ChannelStateData.decode(message.value);
-  },
-  toProto(message: ChannelStateData): Uint8Array {
-    return ChannelStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ChannelStateData): ChannelStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.ChannelStateData",
-      value: ChannelStateData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketCommitmentData(): PacketCommitmentData {
-  return {
-    path: new Uint8Array(),
-    commitment: new Uint8Array()
-  };
-}
-export const PacketCommitmentData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketCommitmentData",
-  aminoType: "cosmos-sdk/PacketCommitmentData",
-  encode(message: PacketCommitmentData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.commitment.length !== 0) {
-      writer.uint32(18).bytes(message.commitment);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketCommitmentData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketCommitmentData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.commitment = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketCommitmentData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      commitment: isSet(object.commitment) ? bytesFromBase64(object.commitment) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketCommitmentData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.commitment !== undefined && (obj.commitment = base64FromBytes(message.commitment !== undefined ? message.commitment : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketCommitmentData>): PacketCommitmentData {
-    const message = createBasePacketCommitmentData();
-    message.path = object.path ?? new Uint8Array();
-    message.commitment = object.commitment ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketCommitmentDataSDKType): PacketCommitmentData {
-    return {
-      path: object?.path,
-      commitment: object?.commitment
-    };
-  },
-  toSDK(message: PacketCommitmentData): PacketCommitmentDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.commitment = message.commitment;
-    return obj;
-  },
-  fromAmino(object: PacketCommitmentDataAmino): PacketCommitmentData {
-    return {
-      path: object.path,
-      commitment: object.commitment
-    };
-  },
-  toAmino(message: PacketCommitmentData): PacketCommitmentDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.commitment = message.commitment;
-    return obj;
-  },
-  fromAminoMsg(object: PacketCommitmentDataAminoMsg): PacketCommitmentData {
-    return PacketCommitmentData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketCommitmentData): PacketCommitmentDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketCommitmentData",
-      value: PacketCommitmentData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketCommitmentDataProtoMsg): PacketCommitmentData {
-    return PacketCommitmentData.decode(message.value);
-  },
-  toProto(message: PacketCommitmentData): Uint8Array {
-    return PacketCommitmentData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketCommitmentData): PacketCommitmentDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.PacketCommitmentData",
-      value: PacketCommitmentData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketAcknowledgementData(): PacketAcknowledgementData {
-  return {
-    path: new Uint8Array(),
-    acknowledgement: new Uint8Array()
-  };
-}
-export const PacketAcknowledgementData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketAcknowledgementData",
-  aminoType: "cosmos-sdk/PacketAcknowledgementData",
-  encode(message: PacketAcknowledgementData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.acknowledgement.length !== 0) {
-      writer.uint32(18).bytes(message.acknowledgement);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketAcknowledgementData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketAcknowledgementData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.acknowledgement = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketAcknowledgementData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      acknowledgement: isSet(object.acknowledgement) ? bytesFromBase64(object.acknowledgement) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketAcknowledgementData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.acknowledgement !== undefined && (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketAcknowledgementData>): PacketAcknowledgementData {
-    const message = createBasePacketAcknowledgementData();
-    message.path = object.path ?? new Uint8Array();
-    message.acknowledgement = object.acknowledgement ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketAcknowledgementDataSDKType): PacketAcknowledgementData {
-    return {
-      path: object?.path,
-      acknowledgement: object?.acknowledgement
-    };
-  },
-  toSDK(message: PacketAcknowledgementData): PacketAcknowledgementDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.acknowledgement = message.acknowledgement;
-    return obj;
-  },
-  fromAmino(object: PacketAcknowledgementDataAmino): PacketAcknowledgementData {
-    return {
-      path: object.path,
-      acknowledgement: object.acknowledgement
-    };
-  },
-  toAmino(message: PacketAcknowledgementData): PacketAcknowledgementDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.acknowledgement = message.acknowledgement;
-    return obj;
-  },
-  fromAminoMsg(object: PacketAcknowledgementDataAminoMsg): PacketAcknowledgementData {
-    return PacketAcknowledgementData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketAcknowledgementData): PacketAcknowledgementDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketAcknowledgementData",
-      value: PacketAcknowledgementData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketAcknowledgementDataProtoMsg): PacketAcknowledgementData {
-    return PacketAcknowledgementData.decode(message.value);
-  },
-  toProto(message: PacketAcknowledgementData): Uint8Array {
-    return PacketAcknowledgementData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketAcknowledgementData): PacketAcknowledgementDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.PacketAcknowledgementData",
-      value: PacketAcknowledgementData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketReceiptAbsenceData(): PacketReceiptAbsenceData {
-  return {
-    path: new Uint8Array()
-  };
-}
-export const PacketReceiptAbsenceData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.PacketReceiptAbsenceData",
-  aminoType: "cosmos-sdk/PacketReceiptAbsenceData",
-  encode(message: PacketReceiptAbsenceData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketReceiptAbsenceData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketReceiptAbsenceData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketReceiptAbsenceData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketReceiptAbsenceData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketReceiptAbsenceData>): PacketReceiptAbsenceData {
-    const message = createBasePacketReceiptAbsenceData();
-    message.path = object.path ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketReceiptAbsenceDataSDKType): PacketReceiptAbsenceData {
-    return {
-      path: object?.path
-    };
-  },
-  toSDK(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    return obj;
-  },
-  fromAmino(object: PacketReceiptAbsenceDataAmino): PacketReceiptAbsenceData {
-    return {
-      path: object.path
-    };
-  },
-  toAmino(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    return obj;
-  },
-  fromAminoMsg(object: PacketReceiptAbsenceDataAminoMsg): PacketReceiptAbsenceData {
-    return PacketReceiptAbsenceData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketReceiptAbsenceData",
-      value: PacketReceiptAbsenceData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketReceiptAbsenceDataProtoMsg): PacketReceiptAbsenceData {
-    return PacketReceiptAbsenceData.decode(message.value);
-  },
-  toProto(message: PacketReceiptAbsenceData): Uint8Array {
-    return PacketReceiptAbsenceData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.PacketReceiptAbsenceData",
-      value: PacketReceiptAbsenceData.encode(message).finish()
-    };
-  }
-};
-function createBaseNextSequenceRecvData(): NextSequenceRecvData {
-  return {
-    path: new Uint8Array(),
-    nextSeqRecv: BigInt(0)
-  };
-}
-export const NextSequenceRecvData = {
-  typeUrl: "/ibc.lightclients.solomachine.v1.NextSequenceRecvData",
-  aminoType: "cosmos-sdk/NextSequenceRecvData",
-  encode(message: NextSequenceRecvData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.nextSeqRecv !== BigInt(0)) {
-      writer.uint32(16).uint64(message.nextSeqRecv);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NextSequenceRecvData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNextSequenceRecvData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.nextSeqRecv = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NextSequenceRecvData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      nextSeqRecv: isSet(object.nextSeqRecv) ? BigInt(object.nextSeqRecv.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: NextSequenceRecvData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.nextSeqRecv !== undefined && (obj.nextSeqRecv = (message.nextSeqRecv || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NextSequenceRecvData>): NextSequenceRecvData {
-    const message = createBaseNextSequenceRecvData();
-    message.path = object.path ?? new Uint8Array();
-    message.nextSeqRecv = object.nextSeqRecv !== undefined && object.nextSeqRecv !== null ? BigInt(object.nextSeqRecv.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: NextSequenceRecvDataSDKType): NextSequenceRecvData {
-    return {
-      path: object?.path,
-      nextSeqRecv: object?.next_seq_recv
-    };
-  },
-  toSDK(message: NextSequenceRecvData): NextSequenceRecvDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.next_seq_recv = message.nextSeqRecv;
-    return obj;
-  },
-  fromAmino(object: NextSequenceRecvDataAmino): NextSequenceRecvData {
-    return {
-      path: object.path,
-      nextSeqRecv: BigInt(object.next_seq_recv)
-    };
-  },
-  toAmino(message: NextSequenceRecvData): NextSequenceRecvDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.next_seq_recv = message.nextSeqRecv ? message.nextSeqRecv.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: NextSequenceRecvDataAminoMsg): NextSequenceRecvData {
-    return NextSequenceRecvData.fromAmino(object.value);
-  },
-  toAminoMsg(message: NextSequenceRecvData): NextSequenceRecvDataAminoMsg {
-    return {
-      type: "cosmos-sdk/NextSequenceRecvData",
-      value: NextSequenceRecvData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: NextSequenceRecvDataProtoMsg): NextSequenceRecvData {
-    return NextSequenceRecvData.decode(message.value);
-  },
-  toProto(message: NextSequenceRecvData): Uint8Array {
-    return NextSequenceRecvData.encode(message).finish();
-  },
-  toProtoMsg(message: NextSequenceRecvData): NextSequenceRecvDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v1.NextSequenceRecvData",
-      value: NextSequenceRecvData.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/lightclients/solomachine/v2/solomachine.ts b/examples/injective/src/codegen/ibc/lightclients/solomachine/v2/solomachine.ts
deleted file mode 100644
index 38f13431..00000000
--- a/examples/injective/src/codegen/ibc/lightclients/solomachine/v2/solomachine.ts
+++ /dev/null
@@ -1,2448 +0,0 @@
-import { Any, AnyAmino, AnySDKType } from "../../../../google/protobuf/any";
-import { ConnectionEnd, ConnectionEndAmino, ConnectionEndSDKType } from "../../../core/connection/v1/connection";
-import { Channel, ChannelAmino, ChannelSDKType } from "../../../core/channel/v1/channel";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * DataType defines the type of solo machine proof being created. This is done
- * to preserve uniqueness of different data sign byte encodings.
- */
-export enum DataType {
-  /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */
-  DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0,
-  /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */
-  DATA_TYPE_CLIENT_STATE = 1,
-  /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */
-  DATA_TYPE_CONSENSUS_STATE = 2,
-  /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */
-  DATA_TYPE_CONNECTION_STATE = 3,
-  /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */
-  DATA_TYPE_CHANNEL_STATE = 4,
-  /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */
-  DATA_TYPE_PACKET_COMMITMENT = 5,
-  /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */
-  DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6,
-  /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */
-  DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7,
-  /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */
-  DATA_TYPE_NEXT_SEQUENCE_RECV = 8,
-  /** DATA_TYPE_HEADER - Data type for header verification */
-  DATA_TYPE_HEADER = 9,
-  UNRECOGNIZED = -1,
-}
-export const DataTypeSDKType = DataType;
-export const DataTypeAmino = DataType;
-export function dataTypeFromJSON(object: any): DataType {
-  switch (object) {
-    case 0:
-    case "DATA_TYPE_UNINITIALIZED_UNSPECIFIED":
-      return DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED;
-    case 1:
-    case "DATA_TYPE_CLIENT_STATE":
-      return DataType.DATA_TYPE_CLIENT_STATE;
-    case 2:
-    case "DATA_TYPE_CONSENSUS_STATE":
-      return DataType.DATA_TYPE_CONSENSUS_STATE;
-    case 3:
-    case "DATA_TYPE_CONNECTION_STATE":
-      return DataType.DATA_TYPE_CONNECTION_STATE;
-    case 4:
-    case "DATA_TYPE_CHANNEL_STATE":
-      return DataType.DATA_TYPE_CHANNEL_STATE;
-    case 5:
-    case "DATA_TYPE_PACKET_COMMITMENT":
-      return DataType.DATA_TYPE_PACKET_COMMITMENT;
-    case 6:
-    case "DATA_TYPE_PACKET_ACKNOWLEDGEMENT":
-      return DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT;
-    case 7:
-    case "DATA_TYPE_PACKET_RECEIPT_ABSENCE":
-      return DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE;
-    case 8:
-    case "DATA_TYPE_NEXT_SEQUENCE_RECV":
-      return DataType.DATA_TYPE_NEXT_SEQUENCE_RECV;
-    case 9:
-    case "DATA_TYPE_HEADER":
-      return DataType.DATA_TYPE_HEADER;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return DataType.UNRECOGNIZED;
-  }
-}
-export function dataTypeToJSON(object: DataType): string {
-  switch (object) {
-    case DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED:
-      return "DATA_TYPE_UNINITIALIZED_UNSPECIFIED";
-    case DataType.DATA_TYPE_CLIENT_STATE:
-      return "DATA_TYPE_CLIENT_STATE";
-    case DataType.DATA_TYPE_CONSENSUS_STATE:
-      return "DATA_TYPE_CONSENSUS_STATE";
-    case DataType.DATA_TYPE_CONNECTION_STATE:
-      return "DATA_TYPE_CONNECTION_STATE";
-    case DataType.DATA_TYPE_CHANNEL_STATE:
-      return "DATA_TYPE_CHANNEL_STATE";
-    case DataType.DATA_TYPE_PACKET_COMMITMENT:
-      return "DATA_TYPE_PACKET_COMMITMENT";
-    case DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT:
-      return "DATA_TYPE_PACKET_ACKNOWLEDGEMENT";
-    case DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE:
-      return "DATA_TYPE_PACKET_RECEIPT_ABSENCE";
-    case DataType.DATA_TYPE_NEXT_SEQUENCE_RECV:
-      return "DATA_TYPE_NEXT_SEQUENCE_RECV";
-    case DataType.DATA_TYPE_HEADER:
-      return "DATA_TYPE_HEADER";
-    case DataType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientState {
-  /** latest sequence of the client state */
-  sequence: bigint;
-  /** frozen sequence of the solo machine */
-  isFrozen: boolean;
-  consensusState: ConsensusState | undefined;
-  /**
-   * when set to true, will allow governance to update a solo machine client.
-   * The client will be unfrozen if it is frozen.
-   */
-  allowUpdateAfterProposal: boolean;
-}
-export interface ClientStateProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ClientState";
-  value: Uint8Array;
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientStateAmino {
-  /** latest sequence of the client state */
-  sequence: string;
-  /** frozen sequence of the solo machine */
-  is_frozen: boolean;
-  consensus_state?: ConsensusStateAmino | undefined;
-  /**
-   * when set to true, will allow governance to update a solo machine client.
-   * The client will be unfrozen if it is frozen.
-   */
-  allow_update_after_proposal: boolean;
-}
-export interface ClientStateAminoMsg {
-  type: "cosmos-sdk/ClientState";
-  value: ClientStateAmino;
-}
-/**
- * ClientState defines a solo machine client that tracks the current consensus
- * state and if the client is frozen.
- */
-export interface ClientStateSDKType {
-  sequence: bigint;
-  is_frozen: boolean;
-  consensus_state: ConsensusStateSDKType | undefined;
-  allow_update_after_proposal: boolean;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusState {
-  /** public key of the solo machine */
-  publicKey: Any | undefined;
-  /**
-   * diversifier allows the same public key to be re-used across different solo
-   * machine clients (potentially on different chains) without being considered
-   * misbehaviour.
-   */
-  diversifier: string;
-  timestamp: bigint;
-}
-export interface ConsensusStateProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusState";
-  value: Uint8Array;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusStateAmino {
-  /** public key of the solo machine */
-  public_key?: AnyAmino | undefined;
-  /**
-   * diversifier allows the same public key to be re-used across different solo
-   * machine clients (potentially on different chains) without being considered
-   * misbehaviour.
-   */
-  diversifier: string;
-  timestamp: string;
-}
-export interface ConsensusStateAminoMsg {
-  type: "cosmos-sdk/ConsensusState";
-  value: ConsensusStateAmino;
-}
-/**
- * ConsensusState defines a solo machine consensus state. The sequence of a
- * consensus state is contained in the "height" key used in storing the
- * consensus state.
- */
-export interface ConsensusStateSDKType {
-  public_key: AnySDKType | undefined;
-  diversifier: string;
-  timestamp: bigint;
-}
-/** Header defines a solo machine consensus header */
-export interface Header {
-  /** sequence to update solo machine public key at */
-  sequence: bigint;
-  timestamp: bigint;
-  signature: Uint8Array;
-  newPublicKey: Any | undefined;
-  newDiversifier: string;
-}
-export interface HeaderProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.Header";
-  value: Uint8Array;
-}
-/** Header defines a solo machine consensus header */
-export interface HeaderAmino {
-  /** sequence to update solo machine public key at */
-  sequence: string;
-  timestamp: string;
-  signature: Uint8Array;
-  new_public_key?: AnyAmino | undefined;
-  new_diversifier: string;
-}
-export interface HeaderAminoMsg {
-  type: "cosmos-sdk/Header";
-  value: HeaderAmino;
-}
-/** Header defines a solo machine consensus header */
-export interface HeaderSDKType {
-  sequence: bigint;
-  timestamp: bigint;
-  signature: Uint8Array;
-  new_public_key: AnySDKType | undefined;
-  new_diversifier: string;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface Misbehaviour {
-  clientId: string;
-  sequence: bigint;
-  signatureOne: SignatureAndData | undefined;
-  signatureTwo: SignatureAndData | undefined;
-}
-export interface MisbehaviourProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.Misbehaviour";
-  value: Uint8Array;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface MisbehaviourAmino {
-  client_id: string;
-  sequence: string;
-  signature_one?: SignatureAndDataAmino | undefined;
-  signature_two?: SignatureAndDataAmino | undefined;
-}
-export interface MisbehaviourAminoMsg {
-  type: "cosmos-sdk/Misbehaviour";
-  value: MisbehaviourAmino;
-}
-/**
- * Misbehaviour defines misbehaviour for a solo machine which consists
- * of a sequence and two signatures over different messages at that sequence.
- */
-export interface MisbehaviourSDKType {
-  client_id: string;
-  sequence: bigint;
-  signature_one: SignatureAndDataSDKType | undefined;
-  signature_two: SignatureAndDataSDKType | undefined;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndData {
-  signature: Uint8Array;
-  dataType: DataType;
-  data: Uint8Array;
-  timestamp: bigint;
-}
-export interface SignatureAndDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.SignatureAndData";
-  value: Uint8Array;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndDataAmino {
-  signature: Uint8Array;
-  data_type: DataType;
-  data: Uint8Array;
-  timestamp: string;
-}
-export interface SignatureAndDataAminoMsg {
-  type: "cosmos-sdk/SignatureAndData";
-  value: SignatureAndDataAmino;
-}
-/**
- * SignatureAndData contains a signature and the data signed over to create that
- * signature.
- */
-export interface SignatureAndDataSDKType {
-  signature: Uint8Array;
-  data_type: DataType;
-  data: Uint8Array;
-  timestamp: bigint;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureData {
-  signatureData: Uint8Array;
-  timestamp: bigint;
-}
-export interface TimestampedSignatureDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.TimestampedSignatureData";
-  value: Uint8Array;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureDataAmino {
-  signature_data: Uint8Array;
-  timestamp: string;
-}
-export interface TimestampedSignatureDataAminoMsg {
-  type: "cosmos-sdk/TimestampedSignatureData";
-  value: TimestampedSignatureDataAmino;
-}
-/**
- * TimestampedSignatureData contains the signature data and the timestamp of the
- * signature.
- */
-export interface TimestampedSignatureDataSDKType {
-  signature_data: Uint8Array;
-  timestamp: bigint;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytes {
-  sequence: bigint;
-  timestamp: bigint;
-  diversifier: string;
-  /** type of the data used */
-  dataType: DataType;
-  /** marshaled data */
-  data: Uint8Array;
-}
-export interface SignBytesProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.SignBytes";
-  value: Uint8Array;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytesAmino {
-  sequence: string;
-  timestamp: string;
-  diversifier: string;
-  /** type of the data used */
-  data_type: DataType;
-  /** marshaled data */
-  data: Uint8Array;
-}
-export interface SignBytesAminoMsg {
-  type: "cosmos-sdk/SignBytes";
-  value: SignBytesAmino;
-}
-/** SignBytes defines the signed bytes used for signature verification. */
-export interface SignBytesSDKType {
-  sequence: bigint;
-  timestamp: bigint;
-  diversifier: string;
-  data_type: DataType;
-  data: Uint8Array;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderData {
-  /** header public key */
-  newPubKey: Any | undefined;
-  /** header diversifier */
-  newDiversifier: string;
-}
-export interface HeaderDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.HeaderData";
-  value: Uint8Array;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderDataAmino {
-  /** header public key */
-  new_pub_key?: AnyAmino | undefined;
-  /** header diversifier */
-  new_diversifier: string;
-}
-export interface HeaderDataAminoMsg {
-  type: "cosmos-sdk/HeaderData";
-  value: HeaderDataAmino;
-}
-/** HeaderData returns the SignBytes data for update verification. */
-export interface HeaderDataSDKType {
-  new_pub_key: AnySDKType | undefined;
-  new_diversifier: string;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateData {
-  path: Uint8Array;
-  clientState: Any | undefined;
-}
-export interface ClientStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ClientStateData";
-  value: Uint8Array;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateDataAmino {
-  path: Uint8Array;
-  client_state?: AnyAmino | undefined;
-}
-export interface ClientStateDataAminoMsg {
-  type: "cosmos-sdk/ClientStateData";
-  value: ClientStateDataAmino;
-}
-/** ClientStateData returns the SignBytes data for client state verification. */
-export interface ClientStateDataSDKType {
-  path: Uint8Array;
-  client_state: AnySDKType | undefined;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateData {
-  path: Uint8Array;
-  consensusState: Any | undefined;
-}
-export interface ConsensusStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusStateData";
-  value: Uint8Array;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateDataAmino {
-  path: Uint8Array;
-  consensus_state?: AnyAmino | undefined;
-}
-export interface ConsensusStateDataAminoMsg {
-  type: "cosmos-sdk/ConsensusStateData";
-  value: ConsensusStateDataAmino;
-}
-/**
- * ConsensusStateData returns the SignBytes data for consensus state
- * verification.
- */
-export interface ConsensusStateDataSDKType {
-  path: Uint8Array;
-  consensus_state: AnySDKType | undefined;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateData {
-  path: Uint8Array;
-  connection: ConnectionEnd | undefined;
-}
-export interface ConnectionStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConnectionStateData";
-  value: Uint8Array;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateDataAmino {
-  path: Uint8Array;
-  connection?: ConnectionEndAmino | undefined;
-}
-export interface ConnectionStateDataAminoMsg {
-  type: "cosmos-sdk/ConnectionStateData";
-  value: ConnectionStateDataAmino;
-}
-/**
- * ConnectionStateData returns the SignBytes data for connection state
- * verification.
- */
-export interface ConnectionStateDataSDKType {
-  path: Uint8Array;
-  connection: ConnectionEndSDKType | undefined;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateData {
-  path: Uint8Array;
-  channel: Channel | undefined;
-}
-export interface ChannelStateDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ChannelStateData";
-  value: Uint8Array;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateDataAmino {
-  path: Uint8Array;
-  channel?: ChannelAmino | undefined;
-}
-export interface ChannelStateDataAminoMsg {
-  type: "cosmos-sdk/ChannelStateData";
-  value: ChannelStateDataAmino;
-}
-/**
- * ChannelStateData returns the SignBytes data for channel state
- * verification.
- */
-export interface ChannelStateDataSDKType {
-  path: Uint8Array;
-  channel: ChannelSDKType | undefined;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentData {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-export interface PacketCommitmentDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketCommitmentData";
-  value: Uint8Array;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentDataAmino {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-export interface PacketCommitmentDataAminoMsg {
-  type: "cosmos-sdk/PacketCommitmentData";
-  value: PacketCommitmentDataAmino;
-}
-/**
- * PacketCommitmentData returns the SignBytes data for packet commitment
- * verification.
- */
-export interface PacketCommitmentDataSDKType {
-  path: Uint8Array;
-  commitment: Uint8Array;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementData {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-export interface PacketAcknowledgementDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketAcknowledgementData";
-  value: Uint8Array;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementDataAmino {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-export interface PacketAcknowledgementDataAminoMsg {
-  type: "cosmos-sdk/PacketAcknowledgementData";
-  value: PacketAcknowledgementDataAmino;
-}
-/**
- * PacketAcknowledgementData returns the SignBytes data for acknowledgement
- * verification.
- */
-export interface PacketAcknowledgementDataSDKType {
-  path: Uint8Array;
-  acknowledgement: Uint8Array;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceData {
-  path: Uint8Array;
-}
-export interface PacketReceiptAbsenceDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketReceiptAbsenceData";
-  value: Uint8Array;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceDataAmino {
-  path: Uint8Array;
-}
-export interface PacketReceiptAbsenceDataAminoMsg {
-  type: "cosmos-sdk/PacketReceiptAbsenceData";
-  value: PacketReceiptAbsenceDataAmino;
-}
-/**
- * PacketReceiptAbsenceData returns the SignBytes data for
- * packet receipt absence verification.
- */
-export interface PacketReceiptAbsenceDataSDKType {
-  path: Uint8Array;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvData {
-  path: Uint8Array;
-  nextSeqRecv: bigint;
-}
-export interface NextSequenceRecvDataProtoMsg {
-  typeUrl: "/ibc.lightclients.solomachine.v2.NextSequenceRecvData";
-  value: Uint8Array;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvDataAmino {
-  path: Uint8Array;
-  next_seq_recv: string;
-}
-export interface NextSequenceRecvDataAminoMsg {
-  type: "cosmos-sdk/NextSequenceRecvData";
-  value: NextSequenceRecvDataAmino;
-}
-/**
- * NextSequenceRecvData returns the SignBytes data for verification of the next
- * sequence to be received.
- */
-export interface NextSequenceRecvDataSDKType {
-  path: Uint8Array;
-  next_seq_recv: bigint;
-}
-function createBaseClientState(): ClientState {
-  return {
-    sequence: BigInt(0),
-    isFrozen: false,
-    consensusState: ConsensusState.fromPartial({}),
-    allowUpdateAfterProposal: false
-  };
-}
-export const ClientState = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ClientState",
-  aminoType: "cosmos-sdk/ClientState",
-  encode(message: ClientState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.isFrozen === true) {
-      writer.uint32(16).bool(message.isFrozen);
-    }
-    if (message.consensusState !== undefined) {
-      ConsensusState.encode(message.consensusState, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.allowUpdateAfterProposal === true) {
-      writer.uint32(32).bool(message.allowUpdateAfterProposal);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.isFrozen = reader.bool();
-          break;
-        case 3:
-          message.consensusState = ConsensusState.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.allowUpdateAfterProposal = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientState {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      isFrozen: isSet(object.isFrozen) ? Boolean(object.isFrozen) : false,
-      consensusState: isSet(object.consensusState) ? ConsensusState.fromJSON(object.consensusState) : undefined,
-      allowUpdateAfterProposal: isSet(object.allowUpdateAfterProposal) ? Boolean(object.allowUpdateAfterProposal) : false
-    };
-  },
-  toJSON(message: ClientState): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.isFrozen !== undefined && (obj.isFrozen = message.isFrozen);
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? ConsensusState.toJSON(message.consensusState) : undefined);
-    message.allowUpdateAfterProposal !== undefined && (obj.allowUpdateAfterProposal = message.allowUpdateAfterProposal);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientState>): ClientState {
-    const message = createBaseClientState();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.isFrozen = object.isFrozen ?? false;
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? ConsensusState.fromPartial(object.consensusState) : undefined;
-    message.allowUpdateAfterProposal = object.allowUpdateAfterProposal ?? false;
-    return message;
-  },
-  fromSDK(object: ClientStateSDKType): ClientState {
-    return {
-      sequence: object?.sequence,
-      isFrozen: object?.is_frozen,
-      consensusState: object.consensus_state ? ConsensusState.fromSDK(object.consensus_state) : undefined,
-      allowUpdateAfterProposal: object?.allow_update_after_proposal
-    };
-  },
-  toSDK(message: ClientState): ClientStateSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.is_frozen = message.isFrozen;
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? ConsensusState.toSDK(message.consensusState) : undefined);
-    obj.allow_update_after_proposal = message.allowUpdateAfterProposal;
-    return obj;
-  },
-  fromAmino(object: ClientStateAmino): ClientState {
-    return {
-      sequence: BigInt(object.sequence),
-      isFrozen: object.is_frozen,
-      consensusState: object?.consensus_state ? ConsensusState.fromAmino(object.consensus_state) : undefined,
-      allowUpdateAfterProposal: object.allow_update_after_proposal
-    };
-  },
-  toAmino(message: ClientState): ClientStateAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.is_frozen = message.isFrozen;
-    obj.consensus_state = message.consensusState ? ConsensusState.toAmino(message.consensusState) : undefined;
-    obj.allow_update_after_proposal = message.allowUpdateAfterProposal;
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateAminoMsg): ClientState {
-    return ClientState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientState): ClientStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientState",
-      value: ClientState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateProtoMsg): ClientState {
-    return ClientState.decode(message.value);
-  },
-  toProto(message: ClientState): Uint8Array {
-    return ClientState.encode(message).finish();
-  },
-  toProtoMsg(message: ClientState): ClientStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ClientState",
-      value: ClientState.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusState(): ConsensusState {
-  return {
-    publicKey: Any.fromPartial({}),
-    diversifier: "",
-    timestamp: BigInt(0)
-  };
-}
-export const ConsensusState = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusState",
-  aminoType: "cosmos-sdk/ConsensusState",
-  encode(message: ConsensusState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.publicKey !== undefined) {
-      Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.diversifier !== "") {
-      writer.uint32(18).string(message.diversifier);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(24).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.publicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.diversifier = reader.string();
-          break;
-        case 3:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusState {
-    return {
-      publicKey: isSet(object.publicKey) ? Any.fromJSON(object.publicKey) : undefined,
-      diversifier: isSet(object.diversifier) ? String(object.diversifier) : "",
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ConsensusState): unknown {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined);
-    message.diversifier !== undefined && (obj.diversifier = message.diversifier);
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusState>): ConsensusState {
-    const message = createBaseConsensusState();
-    message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
-    message.diversifier = object.diversifier ?? "";
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ConsensusStateSDKType): ConsensusState {
-    return {
-      publicKey: object.public_key ? Any.fromSDK(object.public_key) : undefined,
-      diversifier: object?.diversifier,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: ConsensusState): ConsensusStateSDKType {
-    const obj: any = {};
-    message.publicKey !== undefined && (obj.public_key = message.publicKey ? Any.toSDK(message.publicKey) : undefined);
-    obj.diversifier = message.diversifier;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: ConsensusStateAmino): ConsensusState {
-    return {
-      publicKey: object?.public_key ? Any.fromAmino(object.public_key) : undefined,
-      diversifier: object.diversifier,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: ConsensusState): ConsensusStateAmino {
-    const obj: any = {};
-    obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
-    obj.diversifier = message.diversifier;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateAminoMsg): ConsensusState {
-    return ConsensusState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusState): ConsensusStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusState",
-      value: ConsensusState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateProtoMsg): ConsensusState {
-    return ConsensusState.decode(message.value);
-  },
-  toProto(message: ConsensusState): Uint8Array {
-    return ConsensusState.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusState): ConsensusStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusState",
-      value: ConsensusState.encode(message).finish()
-    };
-  }
-};
-function createBaseHeader(): Header {
-  return {
-    sequence: BigInt(0),
-    timestamp: BigInt(0),
-    signature: new Uint8Array(),
-    newPublicKey: Any.fromPartial({}),
-    newDiversifier: ""
-  };
-}
-export const Header = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.Header",
-  aminoType: "cosmos-sdk/Header",
-  encode(message: Header, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(26).bytes(message.signature);
-    }
-    if (message.newPublicKey !== undefined) {
-      Any.encode(message.newPublicKey, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.newDiversifier !== "") {
-      writer.uint32(42).string(message.newDiversifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Header {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        case 3:
-          message.signature = reader.bytes();
-          break;
-        case 4:
-          message.newPublicKey = Any.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.newDiversifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Header {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0),
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(),
-      newPublicKey: isSet(object.newPublicKey) ? Any.fromJSON(object.newPublicKey) : undefined,
-      newDiversifier: isSet(object.newDiversifier) ? String(object.newDiversifier) : ""
-    };
-  },
-  toJSON(message: Header): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    message.newPublicKey !== undefined && (obj.newPublicKey = message.newPublicKey ? Any.toJSON(message.newPublicKey) : undefined);
-    message.newDiversifier !== undefined && (obj.newDiversifier = message.newDiversifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Header>): Header {
-    const message = createBaseHeader();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    message.signature = object.signature ?? new Uint8Array();
-    message.newPublicKey = object.newPublicKey !== undefined && object.newPublicKey !== null ? Any.fromPartial(object.newPublicKey) : undefined;
-    message.newDiversifier = object.newDiversifier ?? "";
-    return message;
-  },
-  fromSDK(object: HeaderSDKType): Header {
-    return {
-      sequence: object?.sequence,
-      timestamp: object?.timestamp,
-      signature: object?.signature,
-      newPublicKey: object.new_public_key ? Any.fromSDK(object.new_public_key) : undefined,
-      newDiversifier: object?.new_diversifier
-    };
-  },
-  toSDK(message: Header): HeaderSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.timestamp = message.timestamp;
-    obj.signature = message.signature;
-    message.newPublicKey !== undefined && (obj.new_public_key = message.newPublicKey ? Any.toSDK(message.newPublicKey) : undefined);
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAmino(object: HeaderAmino): Header {
-    return {
-      sequence: BigInt(object.sequence),
-      timestamp: BigInt(object.timestamp),
-      signature: object.signature,
-      newPublicKey: object?.new_public_key ? Any.fromAmino(object.new_public_key) : undefined,
-      newDiversifier: object.new_diversifier
-    };
-  },
-  toAmino(message: Header): HeaderAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    obj.signature = message.signature;
-    obj.new_public_key = message.newPublicKey ? Any.toAmino(message.newPublicKey) : undefined;
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderAminoMsg): Header {
-    return Header.fromAmino(object.value);
-  },
-  toAminoMsg(message: Header): HeaderAminoMsg {
-    return {
-      type: "cosmos-sdk/Header",
-      value: Header.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeaderProtoMsg): Header {
-    return Header.decode(message.value);
-  },
-  toProto(message: Header): Uint8Array {
-    return Header.encode(message).finish();
-  },
-  toProtoMsg(message: Header): HeaderProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.Header",
-      value: Header.encode(message).finish()
-    };
-  }
-};
-function createBaseMisbehaviour(): Misbehaviour {
-  return {
-    clientId: "",
-    sequence: BigInt(0),
-    signatureOne: SignatureAndData.fromPartial({}),
-    signatureTwo: SignatureAndData.fromPartial({})
-  };
-}
-export const Misbehaviour = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.Misbehaviour",
-  aminoType: "cosmos-sdk/Misbehaviour",
-  encode(message: Misbehaviour, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(16).uint64(message.sequence);
-    }
-    if (message.signatureOne !== undefined) {
-      SignatureAndData.encode(message.signatureOne, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.signatureTwo !== undefined) {
-      SignatureAndData.encode(message.signatureTwo, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Misbehaviour {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMisbehaviour();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.sequence = reader.uint64();
-          break;
-        case 3:
-          message.signatureOne = SignatureAndData.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.signatureTwo = SignatureAndData.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Misbehaviour {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      signatureOne: isSet(object.signatureOne) ? SignatureAndData.fromJSON(object.signatureOne) : undefined,
-      signatureTwo: isSet(object.signatureTwo) ? SignatureAndData.fromJSON(object.signatureTwo) : undefined
-    };
-  },
-  toJSON(message: Misbehaviour): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.signatureOne !== undefined && (obj.signatureOne = message.signatureOne ? SignatureAndData.toJSON(message.signatureOne) : undefined);
-    message.signatureTwo !== undefined && (obj.signatureTwo = message.signatureTwo ? SignatureAndData.toJSON(message.signatureTwo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Misbehaviour>): Misbehaviour {
-    const message = createBaseMisbehaviour();
-    message.clientId = object.clientId ?? "";
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.signatureOne = object.signatureOne !== undefined && object.signatureOne !== null ? SignatureAndData.fromPartial(object.signatureOne) : undefined;
-    message.signatureTwo = object.signatureTwo !== undefined && object.signatureTwo !== null ? SignatureAndData.fromPartial(object.signatureTwo) : undefined;
-    return message;
-  },
-  fromSDK(object: MisbehaviourSDKType): Misbehaviour {
-    return {
-      clientId: object?.client_id,
-      sequence: object?.sequence,
-      signatureOne: object.signature_one ? SignatureAndData.fromSDK(object.signature_one) : undefined,
-      signatureTwo: object.signature_two ? SignatureAndData.fromSDK(object.signature_two) : undefined
-    };
-  },
-  toSDK(message: Misbehaviour): MisbehaviourSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.sequence = message.sequence;
-    message.signatureOne !== undefined && (obj.signature_one = message.signatureOne ? SignatureAndData.toSDK(message.signatureOne) : undefined);
-    message.signatureTwo !== undefined && (obj.signature_two = message.signatureTwo ? SignatureAndData.toSDK(message.signatureTwo) : undefined);
-    return obj;
-  },
-  fromAmino(object: MisbehaviourAmino): Misbehaviour {
-    return {
-      clientId: object.client_id,
-      sequence: BigInt(object.sequence),
-      signatureOne: object?.signature_one ? SignatureAndData.fromAmino(object.signature_one) : undefined,
-      signatureTwo: object?.signature_two ? SignatureAndData.fromAmino(object.signature_two) : undefined
-    };
-  },
-  toAmino(message: Misbehaviour): MisbehaviourAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.signature_one = message.signatureOne ? SignatureAndData.toAmino(message.signatureOne) : undefined;
-    obj.signature_two = message.signatureTwo ? SignatureAndData.toAmino(message.signatureTwo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MisbehaviourAminoMsg): Misbehaviour {
-    return Misbehaviour.fromAmino(object.value);
-  },
-  toAminoMsg(message: Misbehaviour): MisbehaviourAminoMsg {
-    return {
-      type: "cosmos-sdk/Misbehaviour",
-      value: Misbehaviour.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MisbehaviourProtoMsg): Misbehaviour {
-    return Misbehaviour.decode(message.value);
-  },
-  toProto(message: Misbehaviour): Uint8Array {
-    return Misbehaviour.encode(message).finish();
-  },
-  toProtoMsg(message: Misbehaviour): MisbehaviourProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.Misbehaviour",
-      value: Misbehaviour.encode(message).finish()
-    };
-  }
-};
-function createBaseSignatureAndData(): SignatureAndData {
-  return {
-    signature: new Uint8Array(),
-    dataType: 0,
-    data: new Uint8Array(),
-    timestamp: BigInt(0)
-  };
-}
-export const SignatureAndData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.SignatureAndData",
-  aminoType: "cosmos-sdk/SignatureAndData",
-  encode(message: SignatureAndData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signature.length !== 0) {
-      writer.uint32(10).bytes(message.signature);
-    }
-    if (message.dataType !== 0) {
-      writer.uint32(16).int32(message.dataType);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(26).bytes(message.data);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(32).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignatureAndData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignatureAndData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signature = reader.bytes();
-          break;
-        case 2:
-          message.dataType = (reader.int32() as any);
-          break;
-        case 3:
-          message.data = reader.bytes();
-          break;
-        case 4:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignatureAndData {
-    return {
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(),
-      dataType: isSet(object.dataType) ? dataTypeFromJSON(object.dataType) : -1,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SignatureAndData): unknown {
-    const obj: any = {};
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    message.dataType !== undefined && (obj.dataType = dataTypeToJSON(message.dataType));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignatureAndData>): SignatureAndData {
-    const message = createBaseSignatureAndData();
-    message.signature = object.signature ?? new Uint8Array();
-    message.dataType = object.dataType ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SignatureAndDataSDKType): SignatureAndData {
-    return {
-      signature: object?.signature,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object?.data,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: SignatureAndData): SignatureAndDataSDKType {
-    const obj: any = {};
-    obj.signature = message.signature;
-    message.dataType !== undefined && (obj.data_type = dataTypeToJSON(message.dataType));
-    obj.data = message.data;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: SignatureAndDataAmino): SignatureAndData {
-    return {
-      signature: object.signature,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object.data,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: SignatureAndData): SignatureAndDataAmino {
-    const obj: any = {};
-    obj.signature = message.signature;
-    obj.data_type = message.dataType;
-    obj.data = message.data;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignatureAndDataAminoMsg): SignatureAndData {
-    return SignatureAndData.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignatureAndData): SignatureAndDataAminoMsg {
-    return {
-      type: "cosmos-sdk/SignatureAndData",
-      value: SignatureAndData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignatureAndDataProtoMsg): SignatureAndData {
-    return SignatureAndData.decode(message.value);
-  },
-  toProto(message: SignatureAndData): Uint8Array {
-    return SignatureAndData.encode(message).finish();
-  },
-  toProtoMsg(message: SignatureAndData): SignatureAndDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.SignatureAndData",
-      value: SignatureAndData.encode(message).finish()
-    };
-  }
-};
-function createBaseTimestampedSignatureData(): TimestampedSignatureData {
-  return {
-    signatureData: new Uint8Array(),
-    timestamp: BigInt(0)
-  };
-}
-export const TimestampedSignatureData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.TimestampedSignatureData",
-  aminoType: "cosmos-sdk/TimestampedSignatureData",
-  encode(message: TimestampedSignatureData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signatureData.length !== 0) {
-      writer.uint32(10).bytes(message.signatureData);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TimestampedSignatureData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTimestampedSignatureData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signatureData = reader.bytes();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TimestampedSignatureData {
-    return {
-      signatureData: isSet(object.signatureData) ? bytesFromBase64(object.signatureData) : new Uint8Array(),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: TimestampedSignatureData): unknown {
-    const obj: any = {};
-    message.signatureData !== undefined && (obj.signatureData = base64FromBytes(message.signatureData !== undefined ? message.signatureData : new Uint8Array()));
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TimestampedSignatureData>): TimestampedSignatureData {
-    const message = createBaseTimestampedSignatureData();
-    message.signatureData = object.signatureData ?? new Uint8Array();
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: TimestampedSignatureDataSDKType): TimestampedSignatureData {
-    return {
-      signatureData: object?.signature_data,
-      timestamp: object?.timestamp
-    };
-  },
-  toSDK(message: TimestampedSignatureData): TimestampedSignatureDataSDKType {
-    const obj: any = {};
-    obj.signature_data = message.signatureData;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAmino(object: TimestampedSignatureDataAmino): TimestampedSignatureData {
-    return {
-      signatureData: object.signature_data,
-      timestamp: BigInt(object.timestamp)
-    };
-  },
-  toAmino(message: TimestampedSignatureData): TimestampedSignatureDataAmino {
-    const obj: any = {};
-    obj.signature_data = message.signatureData;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: TimestampedSignatureDataAminoMsg): TimestampedSignatureData {
-    return TimestampedSignatureData.fromAmino(object.value);
-  },
-  toAminoMsg(message: TimestampedSignatureData): TimestampedSignatureDataAminoMsg {
-    return {
-      type: "cosmos-sdk/TimestampedSignatureData",
-      value: TimestampedSignatureData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TimestampedSignatureDataProtoMsg): TimestampedSignatureData {
-    return TimestampedSignatureData.decode(message.value);
-  },
-  toProto(message: TimestampedSignatureData): Uint8Array {
-    return TimestampedSignatureData.encode(message).finish();
-  },
-  toProtoMsg(message: TimestampedSignatureData): TimestampedSignatureDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.TimestampedSignatureData",
-      value: TimestampedSignatureData.encode(message).finish()
-    };
-  }
-};
-function createBaseSignBytes(): SignBytes {
-  return {
-    sequence: BigInt(0),
-    timestamp: BigInt(0),
-    diversifier: "",
-    dataType: 0,
-    data: new Uint8Array()
-  };
-}
-export const SignBytes = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.SignBytes",
-  aminoType: "cosmos-sdk/SignBytes",
-  encode(message: SignBytes, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sequence !== BigInt(0)) {
-      writer.uint32(8).uint64(message.sequence);
-    }
-    if (message.timestamp !== BigInt(0)) {
-      writer.uint32(16).uint64(message.timestamp);
-    }
-    if (message.diversifier !== "") {
-      writer.uint32(26).string(message.diversifier);
-    }
-    if (message.dataType !== 0) {
-      writer.uint32(32).int32(message.dataType);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(42).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignBytes {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignBytes();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sequence = reader.uint64();
-          break;
-        case 2:
-          message.timestamp = reader.uint64();
-          break;
-        case 3:
-          message.diversifier = reader.string();
-          break;
-        case 4:
-          message.dataType = (reader.int32() as any);
-          break;
-        case 5:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignBytes {
-    return {
-      sequence: isSet(object.sequence) ? BigInt(object.sequence.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? BigInt(object.timestamp.toString()) : BigInt(0),
-      diversifier: isSet(object.diversifier) ? String(object.diversifier) : "",
-      dataType: isSet(object.dataType) ? dataTypeFromJSON(object.dataType) : -1,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: SignBytes): unknown {
-    const obj: any = {};
-    message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = (message.timestamp || BigInt(0)).toString());
-    message.diversifier !== undefined && (obj.diversifier = message.diversifier);
-    message.dataType !== undefined && (obj.dataType = dataTypeToJSON(message.dataType));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignBytes>): SignBytes {
-    const message = createBaseSignBytes();
-    message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
-    message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
-    message.diversifier = object.diversifier ?? "";
-    message.dataType = object.dataType ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SignBytesSDKType): SignBytes {
-    return {
-      sequence: object?.sequence,
-      timestamp: object?.timestamp,
-      diversifier: object?.diversifier,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object?.data
-    };
-  },
-  toSDK(message: SignBytes): SignBytesSDKType {
-    const obj: any = {};
-    obj.sequence = message.sequence;
-    obj.timestamp = message.timestamp;
-    obj.diversifier = message.diversifier;
-    message.dataType !== undefined && (obj.data_type = dataTypeToJSON(message.dataType));
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: SignBytesAmino): SignBytes {
-    return {
-      sequence: BigInt(object.sequence),
-      timestamp: BigInt(object.timestamp),
-      diversifier: object.diversifier,
-      dataType: isSet(object.data_type) ? dataTypeFromJSON(object.data_type) : -1,
-      data: object.data
-    };
-  },
-  toAmino(message: SignBytes): SignBytesAmino {
-    const obj: any = {};
-    obj.sequence = message.sequence ? message.sequence.toString() : undefined;
-    obj.timestamp = message.timestamp ? message.timestamp.toString() : undefined;
-    obj.diversifier = message.diversifier;
-    obj.data_type = message.dataType;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: SignBytesAminoMsg): SignBytes {
-    return SignBytes.fromAmino(object.value);
-  },
-  toAminoMsg(message: SignBytes): SignBytesAminoMsg {
-    return {
-      type: "cosmos-sdk/SignBytes",
-      value: SignBytes.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SignBytesProtoMsg): SignBytes {
-    return SignBytes.decode(message.value);
-  },
-  toProto(message: SignBytes): Uint8Array {
-    return SignBytes.encode(message).finish();
-  },
-  toProtoMsg(message: SignBytes): SignBytesProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.SignBytes",
-      value: SignBytes.encode(message).finish()
-    };
-  }
-};
-function createBaseHeaderData(): HeaderData {
-  return {
-    newPubKey: Any.fromPartial({}),
-    newDiversifier: ""
-  };
-}
-export const HeaderData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.HeaderData",
-  aminoType: "cosmos-sdk/HeaderData",
-  encode(message: HeaderData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.newPubKey !== undefined) {
-      Any.encode(message.newPubKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.newDiversifier !== "") {
-      writer.uint32(18).string(message.newDiversifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): HeaderData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeaderData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.newPubKey = Any.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.newDiversifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): HeaderData {
-    return {
-      newPubKey: isSet(object.newPubKey) ? Any.fromJSON(object.newPubKey) : undefined,
-      newDiversifier: isSet(object.newDiversifier) ? String(object.newDiversifier) : ""
-    };
-  },
-  toJSON(message: HeaderData): unknown {
-    const obj: any = {};
-    message.newPubKey !== undefined && (obj.newPubKey = message.newPubKey ? Any.toJSON(message.newPubKey) : undefined);
-    message.newDiversifier !== undefined && (obj.newDiversifier = message.newDiversifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<HeaderData>): HeaderData {
-    const message = createBaseHeaderData();
-    message.newPubKey = object.newPubKey !== undefined && object.newPubKey !== null ? Any.fromPartial(object.newPubKey) : undefined;
-    message.newDiversifier = object.newDiversifier ?? "";
-    return message;
-  },
-  fromSDK(object: HeaderDataSDKType): HeaderData {
-    return {
-      newPubKey: object.new_pub_key ? Any.fromSDK(object.new_pub_key) : undefined,
-      newDiversifier: object?.new_diversifier
-    };
-  },
-  toSDK(message: HeaderData): HeaderDataSDKType {
-    const obj: any = {};
-    message.newPubKey !== undefined && (obj.new_pub_key = message.newPubKey ? Any.toSDK(message.newPubKey) : undefined);
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAmino(object: HeaderDataAmino): HeaderData {
-    return {
-      newPubKey: object?.new_pub_key ? Any.fromAmino(object.new_pub_key) : undefined,
-      newDiversifier: object.new_diversifier
-    };
-  },
-  toAmino(message: HeaderData): HeaderDataAmino {
-    const obj: any = {};
-    obj.new_pub_key = message.newPubKey ? Any.toAmino(message.newPubKey) : undefined;
-    obj.new_diversifier = message.newDiversifier;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderDataAminoMsg): HeaderData {
-    return HeaderData.fromAmino(object.value);
-  },
-  toAminoMsg(message: HeaderData): HeaderDataAminoMsg {
-    return {
-      type: "cosmos-sdk/HeaderData",
-      value: HeaderData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeaderDataProtoMsg): HeaderData {
-    return HeaderData.decode(message.value);
-  },
-  toProto(message: HeaderData): Uint8Array {
-    return HeaderData.encode(message).finish();
-  },
-  toProtoMsg(message: HeaderData): HeaderDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.HeaderData",
-      value: HeaderData.encode(message).finish()
-    };
-  }
-};
-function createBaseClientStateData(): ClientStateData {
-  return {
-    path: new Uint8Array(),
-    clientState: Any.fromPartial({})
-  };
-}
-export const ClientStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ClientStateData",
-  aminoType: "cosmos-sdk/ClientStateData",
-  encode(message: ClientStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.clientState !== undefined) {
-      Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.clientState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      clientState: isSet(object.clientState) ? Any.fromJSON(object.clientState) : undefined
-    };
-  },
-  toJSON(message: ClientStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.clientState !== undefined && (obj.clientState = message.clientState ? Any.toJSON(message.clientState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientStateData>): ClientStateData {
-    const message = createBaseClientStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
-    return message;
-  },
-  fromSDK(object: ClientStateDataSDKType): ClientStateData {
-    return {
-      path: object?.path,
-      clientState: object.client_state ? Any.fromSDK(object.client_state) : undefined
-    };
-  },
-  toSDK(message: ClientStateData): ClientStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.clientState !== undefined && (obj.client_state = message.clientState ? Any.toSDK(message.clientState) : undefined);
-    return obj;
-  },
-  fromAmino(object: ClientStateDataAmino): ClientStateData {
-    return {
-      path: object.path,
-      clientState: object?.client_state ? Any.fromAmino(object.client_state) : undefined
-    };
-  },
-  toAmino(message: ClientStateData): ClientStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateDataAminoMsg): ClientStateData {
-    return ClientStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientStateData): ClientStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientStateData",
-      value: ClientStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateDataProtoMsg): ClientStateData {
-    return ClientStateData.decode(message.value);
-  },
-  toProto(message: ClientStateData): Uint8Array {
-    return ClientStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ClientStateData): ClientStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ClientStateData",
-      value: ClientStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusStateData(): ConsensusStateData {
-  return {
-    path: new Uint8Array(),
-    consensusState: Any.fromPartial({})
-  };
-}
-export const ConsensusStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusStateData",
-  aminoType: "cosmos-sdk/ConsensusStateData",
-  encode(message: ConsensusStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.consensusState !== undefined) {
-      Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.consensusState = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      consensusState: isSet(object.consensusState) ? Any.fromJSON(object.consensusState) : undefined
-    };
-  },
-  toJSON(message: ConsensusStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.consensusState !== undefined && (obj.consensusState = message.consensusState ? Any.toJSON(message.consensusState) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusStateData>): ConsensusStateData {
-    const message = createBaseConsensusStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
-    return message;
-  },
-  fromSDK(object: ConsensusStateDataSDKType): ConsensusStateData {
-    return {
-      path: object?.path,
-      consensusState: object.consensus_state ? Any.fromSDK(object.consensus_state) : undefined
-    };
-  },
-  toSDK(message: ConsensusStateData): ConsensusStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.consensusState !== undefined && (obj.consensus_state = message.consensusState ? Any.toSDK(message.consensusState) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConsensusStateDataAmino): ConsensusStateData {
-    return {
-      path: object.path,
-      consensusState: object?.consensus_state ? Any.fromAmino(object.consensus_state) : undefined
-    };
-  },
-  toAmino(message: ConsensusStateData): ConsensusStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateDataAminoMsg): ConsensusStateData {
-    return ConsensusStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusStateData): ConsensusStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusStateData",
-      value: ConsensusStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateDataProtoMsg): ConsensusStateData {
-    return ConsensusStateData.decode(message.value);
-  },
-  toProto(message: ConsensusStateData): Uint8Array {
-    return ConsensusStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusStateData): ConsensusStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusStateData",
-      value: ConsensusStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseConnectionStateData(): ConnectionStateData {
-  return {
-    path: new Uint8Array(),
-    connection: ConnectionEnd.fromPartial({})
-  };
-}
-export const ConnectionStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ConnectionStateData",
-  aminoType: "cosmos-sdk/ConnectionStateData",
-  encode(message: ConnectionStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.connection !== undefined) {
-      ConnectionEnd.encode(message.connection, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectionStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectionStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.connection = ConnectionEnd.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectionStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      connection: isSet(object.connection) ? ConnectionEnd.fromJSON(object.connection) : undefined
-    };
-  },
-  toJSON(message: ConnectionStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toJSON(message.connection) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectionStateData>): ConnectionStateData {
-    const message = createBaseConnectionStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined;
-    return message;
-  },
-  fromSDK(object: ConnectionStateDataSDKType): ConnectionStateData {
-    return {
-      path: object?.path,
-      connection: object.connection ? ConnectionEnd.fromSDK(object.connection) : undefined
-    };
-  },
-  toSDK(message: ConnectionStateData): ConnectionStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.connection !== undefined && (obj.connection = message.connection ? ConnectionEnd.toSDK(message.connection) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConnectionStateDataAmino): ConnectionStateData {
-    return {
-      path: object.path,
-      connection: object?.connection ? ConnectionEnd.fromAmino(object.connection) : undefined
-    };
-  },
-  toAmino(message: ConnectionStateData): ConnectionStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.connection = message.connection ? ConnectionEnd.toAmino(message.connection) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConnectionStateDataAminoMsg): ConnectionStateData {
-    return ConnectionStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectionStateData): ConnectionStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ConnectionStateData",
-      value: ConnectionStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectionStateDataProtoMsg): ConnectionStateData {
-    return ConnectionStateData.decode(message.value);
-  },
-  toProto(message: ConnectionStateData): Uint8Array {
-    return ConnectionStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectionStateData): ConnectionStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ConnectionStateData",
-      value: ConnectionStateData.encode(message).finish()
-    };
-  }
-};
-function createBaseChannelStateData(): ChannelStateData {
-  return {
-    path: new Uint8Array(),
-    channel: Channel.fromPartial({})
-  };
-}
-export const ChannelStateData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.ChannelStateData",
-  aminoType: "cosmos-sdk/ChannelStateData",
-  encode(message: ChannelStateData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.channel !== undefined) {
-      Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ChannelStateData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseChannelStateData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.channel = Channel.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ChannelStateData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      channel: isSet(object.channel) ? Channel.fromJSON(object.channel) : undefined
-    };
-  },
-  toJSON(message: ChannelStateData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toJSON(message.channel) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ChannelStateData>): ChannelStateData {
-    const message = createBaseChannelStateData();
-    message.path = object.path ?? new Uint8Array();
-    message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined;
-    return message;
-  },
-  fromSDK(object: ChannelStateDataSDKType): ChannelStateData {
-    return {
-      path: object?.path,
-      channel: object.channel ? Channel.fromSDK(object.channel) : undefined
-    };
-  },
-  toSDK(message: ChannelStateData): ChannelStateDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    message.channel !== undefined && (obj.channel = message.channel ? Channel.toSDK(message.channel) : undefined);
-    return obj;
-  },
-  fromAmino(object: ChannelStateDataAmino): ChannelStateData {
-    return {
-      path: object.path,
-      channel: object?.channel ? Channel.fromAmino(object.channel) : undefined
-    };
-  },
-  toAmino(message: ChannelStateData): ChannelStateDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.channel = message.channel ? Channel.toAmino(message.channel) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ChannelStateDataAminoMsg): ChannelStateData {
-    return ChannelStateData.fromAmino(object.value);
-  },
-  toAminoMsg(message: ChannelStateData): ChannelStateDataAminoMsg {
-    return {
-      type: "cosmos-sdk/ChannelStateData",
-      value: ChannelStateData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ChannelStateDataProtoMsg): ChannelStateData {
-    return ChannelStateData.decode(message.value);
-  },
-  toProto(message: ChannelStateData): Uint8Array {
-    return ChannelStateData.encode(message).finish();
-  },
-  toProtoMsg(message: ChannelStateData): ChannelStateDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.ChannelStateData",
-      value: ChannelStateData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketCommitmentData(): PacketCommitmentData {
-  return {
-    path: new Uint8Array(),
-    commitment: new Uint8Array()
-  };
-}
-export const PacketCommitmentData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketCommitmentData",
-  aminoType: "cosmos-sdk/PacketCommitmentData",
-  encode(message: PacketCommitmentData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.commitment.length !== 0) {
-      writer.uint32(18).bytes(message.commitment);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketCommitmentData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketCommitmentData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.commitment = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketCommitmentData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      commitment: isSet(object.commitment) ? bytesFromBase64(object.commitment) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketCommitmentData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.commitment !== undefined && (obj.commitment = base64FromBytes(message.commitment !== undefined ? message.commitment : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketCommitmentData>): PacketCommitmentData {
-    const message = createBasePacketCommitmentData();
-    message.path = object.path ?? new Uint8Array();
-    message.commitment = object.commitment ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketCommitmentDataSDKType): PacketCommitmentData {
-    return {
-      path: object?.path,
-      commitment: object?.commitment
-    };
-  },
-  toSDK(message: PacketCommitmentData): PacketCommitmentDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.commitment = message.commitment;
-    return obj;
-  },
-  fromAmino(object: PacketCommitmentDataAmino): PacketCommitmentData {
-    return {
-      path: object.path,
-      commitment: object.commitment
-    };
-  },
-  toAmino(message: PacketCommitmentData): PacketCommitmentDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.commitment = message.commitment;
-    return obj;
-  },
-  fromAminoMsg(object: PacketCommitmentDataAminoMsg): PacketCommitmentData {
-    return PacketCommitmentData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketCommitmentData): PacketCommitmentDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketCommitmentData",
-      value: PacketCommitmentData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketCommitmentDataProtoMsg): PacketCommitmentData {
-    return PacketCommitmentData.decode(message.value);
-  },
-  toProto(message: PacketCommitmentData): Uint8Array {
-    return PacketCommitmentData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketCommitmentData): PacketCommitmentDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.PacketCommitmentData",
-      value: PacketCommitmentData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketAcknowledgementData(): PacketAcknowledgementData {
-  return {
-    path: new Uint8Array(),
-    acknowledgement: new Uint8Array()
-  };
-}
-export const PacketAcknowledgementData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketAcknowledgementData",
-  aminoType: "cosmos-sdk/PacketAcknowledgementData",
-  encode(message: PacketAcknowledgementData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.acknowledgement.length !== 0) {
-      writer.uint32(18).bytes(message.acknowledgement);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketAcknowledgementData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketAcknowledgementData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.acknowledgement = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketAcknowledgementData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      acknowledgement: isSet(object.acknowledgement) ? bytesFromBase64(object.acknowledgement) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketAcknowledgementData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.acknowledgement !== undefined && (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketAcknowledgementData>): PacketAcknowledgementData {
-    const message = createBasePacketAcknowledgementData();
-    message.path = object.path ?? new Uint8Array();
-    message.acknowledgement = object.acknowledgement ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketAcknowledgementDataSDKType): PacketAcknowledgementData {
-    return {
-      path: object?.path,
-      acknowledgement: object?.acknowledgement
-    };
-  },
-  toSDK(message: PacketAcknowledgementData): PacketAcknowledgementDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.acknowledgement = message.acknowledgement;
-    return obj;
-  },
-  fromAmino(object: PacketAcknowledgementDataAmino): PacketAcknowledgementData {
-    return {
-      path: object.path,
-      acknowledgement: object.acknowledgement
-    };
-  },
-  toAmino(message: PacketAcknowledgementData): PacketAcknowledgementDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.acknowledgement = message.acknowledgement;
-    return obj;
-  },
-  fromAminoMsg(object: PacketAcknowledgementDataAminoMsg): PacketAcknowledgementData {
-    return PacketAcknowledgementData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketAcknowledgementData): PacketAcknowledgementDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketAcknowledgementData",
-      value: PacketAcknowledgementData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketAcknowledgementDataProtoMsg): PacketAcknowledgementData {
-    return PacketAcknowledgementData.decode(message.value);
-  },
-  toProto(message: PacketAcknowledgementData): Uint8Array {
-    return PacketAcknowledgementData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketAcknowledgementData): PacketAcknowledgementDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.PacketAcknowledgementData",
-      value: PacketAcknowledgementData.encode(message).finish()
-    };
-  }
-};
-function createBasePacketReceiptAbsenceData(): PacketReceiptAbsenceData {
-  return {
-    path: new Uint8Array()
-  };
-}
-export const PacketReceiptAbsenceData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.PacketReceiptAbsenceData",
-  aminoType: "cosmos-sdk/PacketReceiptAbsenceData",
-  encode(message: PacketReceiptAbsenceData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PacketReceiptAbsenceData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePacketReceiptAbsenceData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PacketReceiptAbsenceData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array()
-    };
-  },
-  toJSON(message: PacketReceiptAbsenceData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PacketReceiptAbsenceData>): PacketReceiptAbsenceData {
-    const message = createBasePacketReceiptAbsenceData();
-    message.path = object.path ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PacketReceiptAbsenceDataSDKType): PacketReceiptAbsenceData {
-    return {
-      path: object?.path
-    };
-  },
-  toSDK(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    return obj;
-  },
-  fromAmino(object: PacketReceiptAbsenceDataAmino): PacketReceiptAbsenceData {
-    return {
-      path: object.path
-    };
-  },
-  toAmino(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    return obj;
-  },
-  fromAminoMsg(object: PacketReceiptAbsenceDataAminoMsg): PacketReceiptAbsenceData {
-    return PacketReceiptAbsenceData.fromAmino(object.value);
-  },
-  toAminoMsg(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataAminoMsg {
-    return {
-      type: "cosmos-sdk/PacketReceiptAbsenceData",
-      value: PacketReceiptAbsenceData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PacketReceiptAbsenceDataProtoMsg): PacketReceiptAbsenceData {
-    return PacketReceiptAbsenceData.decode(message.value);
-  },
-  toProto(message: PacketReceiptAbsenceData): Uint8Array {
-    return PacketReceiptAbsenceData.encode(message).finish();
-  },
-  toProtoMsg(message: PacketReceiptAbsenceData): PacketReceiptAbsenceDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.PacketReceiptAbsenceData",
-      value: PacketReceiptAbsenceData.encode(message).finish()
-    };
-  }
-};
-function createBaseNextSequenceRecvData(): NextSequenceRecvData {
-  return {
-    path: new Uint8Array(),
-    nextSeqRecv: BigInt(0)
-  };
-}
-export const NextSequenceRecvData = {
-  typeUrl: "/ibc.lightclients.solomachine.v2.NextSequenceRecvData",
-  aminoType: "cosmos-sdk/NextSequenceRecvData",
-  encode(message: NextSequenceRecvData, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.path.length !== 0) {
-      writer.uint32(10).bytes(message.path);
-    }
-    if (message.nextSeqRecv !== BigInt(0)) {
-      writer.uint32(16).uint64(message.nextSeqRecv);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NextSequenceRecvData {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNextSequenceRecvData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.path = reader.bytes();
-          break;
-        case 2:
-          message.nextSeqRecv = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NextSequenceRecvData {
-    return {
-      path: isSet(object.path) ? bytesFromBase64(object.path) : new Uint8Array(),
-      nextSeqRecv: isSet(object.nextSeqRecv) ? BigInt(object.nextSeqRecv.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: NextSequenceRecvData): unknown {
-    const obj: any = {};
-    message.path !== undefined && (obj.path = base64FromBytes(message.path !== undefined ? message.path : new Uint8Array()));
-    message.nextSeqRecv !== undefined && (obj.nextSeqRecv = (message.nextSeqRecv || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NextSequenceRecvData>): NextSequenceRecvData {
-    const message = createBaseNextSequenceRecvData();
-    message.path = object.path ?? new Uint8Array();
-    message.nextSeqRecv = object.nextSeqRecv !== undefined && object.nextSeqRecv !== null ? BigInt(object.nextSeqRecv.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: NextSequenceRecvDataSDKType): NextSequenceRecvData {
-    return {
-      path: object?.path,
-      nextSeqRecv: object?.next_seq_recv
-    };
-  },
-  toSDK(message: NextSequenceRecvData): NextSequenceRecvDataSDKType {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.next_seq_recv = message.nextSeqRecv;
-    return obj;
-  },
-  fromAmino(object: NextSequenceRecvDataAmino): NextSequenceRecvData {
-    return {
-      path: object.path,
-      nextSeqRecv: BigInt(object.next_seq_recv)
-    };
-  },
-  toAmino(message: NextSequenceRecvData): NextSequenceRecvDataAmino {
-    const obj: any = {};
-    obj.path = message.path;
-    obj.next_seq_recv = message.nextSeqRecv ? message.nextSeqRecv.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: NextSequenceRecvDataAminoMsg): NextSequenceRecvData {
-    return NextSequenceRecvData.fromAmino(object.value);
-  },
-  toAminoMsg(message: NextSequenceRecvData): NextSequenceRecvDataAminoMsg {
-    return {
-      type: "cosmos-sdk/NextSequenceRecvData",
-      value: NextSequenceRecvData.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: NextSequenceRecvDataProtoMsg): NextSequenceRecvData {
-    return NextSequenceRecvData.decode(message.value);
-  },
-  toProto(message: NextSequenceRecvData): Uint8Array {
-    return NextSequenceRecvData.encode(message).finish();
-  },
-  toProtoMsg(message: NextSequenceRecvData): NextSequenceRecvDataProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.solomachine.v2.NextSequenceRecvData",
-      value: NextSequenceRecvData.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/lightclients/tendermint/v1/tendermint.ts b/examples/injective/src/codegen/ibc/lightclients/tendermint/v1/tendermint.ts
deleted file mode 100644
index dd9ba925..00000000
--- a/examples/injective/src/codegen/ibc/lightclients/tendermint/v1/tendermint.ts
+++ /dev/null
@@ -1,1007 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../../../google/protobuf/duration";
-import { Height, HeightAmino, HeightSDKType } from "../../../core/client/v1/client";
-import { ProofSpec, ProofSpecAmino, ProofSpecSDKType } from "../../../../confio/proofs";
-import { Timestamp } from "../../../../google/protobuf/timestamp";
-import { MerkleRoot, MerkleRootAmino, MerkleRootSDKType } from "../../../core/commitment/v1/commitment";
-import { SignedHeader, SignedHeaderAmino, SignedHeaderSDKType } from "../../../../tendermint/types/types";
-import { ValidatorSet, ValidatorSetAmino, ValidatorSetSDKType } from "../../../../tendermint/types/validator";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp, bytesFromBase64, base64FromBytes } from "../../../../helpers";
-/**
- * ClientState from Tendermint tracks the current validator set, latest height,
- * and a possible frozen height.
- */
-export interface ClientState {
-  chainId: string;
-  trustLevel: Fraction | undefined;
-  /**
-   * duration of the period since the LastestTimestamp during which the
-   * submitted headers are valid for upgrade
-   */
-  trustingPeriod: Duration | undefined;
-  /** duration of the staking unbonding period */
-  unbondingPeriod: Duration | undefined;
-  /** defines how much new (untrusted) header's Time can drift into the future. */
-  maxClockDrift: Duration | undefined;
-  /** Block height when the client was frozen due to a misbehaviour */
-  frozenHeight: Height | undefined;
-  /** Latest height the client was updated to */
-  latestHeight: Height | undefined;
-  /** Proof specifications used in verifying counterparty state */
-  proofSpecs: ProofSpec[];
-  /**
-   * Path at which next upgraded client will be committed.
-   * Each element corresponds to the key for a single CommitmentProof in the
-   * chained proof. NOTE: ClientState must stored under
-   * `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored
-   * under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using
-   * the default upgrade module, upgrade_path should be []string{"upgrade",
-   * "upgradedIBCState"}`
-   */
-  upgradePath: string[];
-  /**
-   * This flag, when set to true, will allow governance to recover a client
-   * which has expired
-   */
-  allowUpdateAfterExpiry: boolean;
-  /**
-   * This flag, when set to true, will allow governance to unfreeze a client
-   * whose chain has experienced a misbehaviour event
-   */
-  allowUpdateAfterMisbehaviour: boolean;
-}
-export interface ClientStateProtoMsg {
-  typeUrl: "/ibc.lightclients.tendermint.v1.ClientState";
-  value: Uint8Array;
-}
-/**
- * ClientState from Tendermint tracks the current validator set, latest height,
- * and a possible frozen height.
- */
-export interface ClientStateAmino {
-  chain_id: string;
-  trust_level?: FractionAmino | undefined;
-  /**
-   * duration of the period since the LastestTimestamp during which the
-   * submitted headers are valid for upgrade
-   */
-  trusting_period?: DurationAmino | undefined;
-  /** duration of the staking unbonding period */
-  unbonding_period?: DurationAmino | undefined;
-  /** defines how much new (untrusted) header's Time can drift into the future. */
-  max_clock_drift?: DurationAmino | undefined;
-  /** Block height when the client was frozen due to a misbehaviour */
-  frozen_height?: HeightAmino | undefined;
-  /** Latest height the client was updated to */
-  latest_height?: HeightAmino | undefined;
-  /** Proof specifications used in verifying counterparty state */
-  proof_specs: ProofSpecAmino[];
-  /**
-   * Path at which next upgraded client will be committed.
-   * Each element corresponds to the key for a single CommitmentProof in the
-   * chained proof. NOTE: ClientState must stored under
-   * `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored
-   * under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using
-   * the default upgrade module, upgrade_path should be []string{"upgrade",
-   * "upgradedIBCState"}`
-   */
-  upgrade_path: string[];
-  /**
-   * This flag, when set to true, will allow governance to recover a client
-   * which has expired
-   */
-  allow_update_after_expiry: boolean;
-  /**
-   * This flag, when set to true, will allow governance to unfreeze a client
-   * whose chain has experienced a misbehaviour event
-   */
-  allow_update_after_misbehaviour: boolean;
-}
-export interface ClientStateAminoMsg {
-  type: "cosmos-sdk/ClientState";
-  value: ClientStateAmino;
-}
-/**
- * ClientState from Tendermint tracks the current validator set, latest height,
- * and a possible frozen height.
- */
-export interface ClientStateSDKType {
-  chain_id: string;
-  trust_level: FractionSDKType | undefined;
-  trusting_period: DurationSDKType | undefined;
-  unbonding_period: DurationSDKType | undefined;
-  max_clock_drift: DurationSDKType | undefined;
-  frozen_height: HeightSDKType | undefined;
-  latest_height: HeightSDKType | undefined;
-  proof_specs: ProofSpecSDKType[];
-  upgrade_path: string[];
-  allow_update_after_expiry: boolean;
-  allow_update_after_misbehaviour: boolean;
-}
-/** ConsensusState defines the consensus state from Tendermint. */
-export interface ConsensusState {
-  /**
-   * timestamp that corresponds to the block height in which the ConsensusState
-   * was stored.
-   */
-  timestamp: Date | undefined;
-  /** commitment root (i.e app hash) */
-  root: MerkleRoot | undefined;
-  nextValidatorsHash: Uint8Array;
-}
-export interface ConsensusStateProtoMsg {
-  typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState";
-  value: Uint8Array;
-}
-/** ConsensusState defines the consensus state from Tendermint. */
-export interface ConsensusStateAmino {
-  /**
-   * timestamp that corresponds to the block height in which the ConsensusState
-   * was stored.
-   */
-  timestamp?: Date | undefined;
-  /** commitment root (i.e app hash) */
-  root?: MerkleRootAmino | undefined;
-  next_validators_hash: Uint8Array;
-}
-export interface ConsensusStateAminoMsg {
-  type: "cosmos-sdk/ConsensusState";
-  value: ConsensusStateAmino;
-}
-/** ConsensusState defines the consensus state from Tendermint. */
-export interface ConsensusStateSDKType {
-  timestamp: Date | undefined;
-  root: MerkleRootSDKType | undefined;
-  next_validators_hash: Uint8Array;
-}
-/**
- * Misbehaviour is a wrapper over two conflicting Headers
- * that implements Misbehaviour interface expected by ICS-02
- */
-export interface Misbehaviour {
-  clientId: string;
-  header1: Header | undefined;
-  header2: Header | undefined;
-}
-export interface MisbehaviourProtoMsg {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Misbehaviour";
-  value: Uint8Array;
-}
-/**
- * Misbehaviour is a wrapper over two conflicting Headers
- * that implements Misbehaviour interface expected by ICS-02
- */
-export interface MisbehaviourAmino {
-  client_id: string;
-  header_1?: HeaderAmino | undefined;
-  header_2?: HeaderAmino | undefined;
-}
-export interface MisbehaviourAminoMsg {
-  type: "cosmos-sdk/Misbehaviour";
-  value: MisbehaviourAmino;
-}
-/**
- * Misbehaviour is a wrapper over two conflicting Headers
- * that implements Misbehaviour interface expected by ICS-02
- */
-export interface MisbehaviourSDKType {
-  client_id: string;
-  header_1: HeaderSDKType | undefined;
-  header_2: HeaderSDKType | undefined;
-}
-/**
- * Header defines the Tendermint client consensus Header.
- * It encapsulates all the information necessary to update from a trusted
- * Tendermint ConsensusState. The inclusion of TrustedHeight and
- * TrustedValidators allows this update to process correctly, so long as the
- * ConsensusState for the TrustedHeight exists, this removes race conditions
- * among relayers The SignedHeader and ValidatorSet are the new untrusted update
- * fields for the client. The TrustedHeight is the height of a stored
- * ConsensusState on the client that will be used to verify the new untrusted
- * header. The Trusted ConsensusState must be within the unbonding period of
- * current time in order to correctly verify, and the TrustedValidators must
- * hash to TrustedConsensusState.NextValidatorsHash since that is the last
- * trusted validator set at the TrustedHeight.
- */
-export interface Header {
-  signedHeader: SignedHeader | undefined;
-  validatorSet: ValidatorSet | undefined;
-  trustedHeight: Height | undefined;
-  trustedValidators: ValidatorSet | undefined;
-}
-export interface HeaderProtoMsg {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Header";
-  value: Uint8Array;
-}
-/**
- * Header defines the Tendermint client consensus Header.
- * It encapsulates all the information necessary to update from a trusted
- * Tendermint ConsensusState. The inclusion of TrustedHeight and
- * TrustedValidators allows this update to process correctly, so long as the
- * ConsensusState for the TrustedHeight exists, this removes race conditions
- * among relayers The SignedHeader and ValidatorSet are the new untrusted update
- * fields for the client. The TrustedHeight is the height of a stored
- * ConsensusState on the client that will be used to verify the new untrusted
- * header. The Trusted ConsensusState must be within the unbonding period of
- * current time in order to correctly verify, and the TrustedValidators must
- * hash to TrustedConsensusState.NextValidatorsHash since that is the last
- * trusted validator set at the TrustedHeight.
- */
-export interface HeaderAmino {
-  signed_header?: SignedHeaderAmino | undefined;
-  validator_set?: ValidatorSetAmino | undefined;
-  trusted_height?: HeightAmino | undefined;
-  trusted_validators?: ValidatorSetAmino | undefined;
-}
-export interface HeaderAminoMsg {
-  type: "cosmos-sdk/Header";
-  value: HeaderAmino;
-}
-/**
- * Header defines the Tendermint client consensus Header.
- * It encapsulates all the information necessary to update from a trusted
- * Tendermint ConsensusState. The inclusion of TrustedHeight and
- * TrustedValidators allows this update to process correctly, so long as the
- * ConsensusState for the TrustedHeight exists, this removes race conditions
- * among relayers The SignedHeader and ValidatorSet are the new untrusted update
- * fields for the client. The TrustedHeight is the height of a stored
- * ConsensusState on the client that will be used to verify the new untrusted
- * header. The Trusted ConsensusState must be within the unbonding period of
- * current time in order to correctly verify, and the TrustedValidators must
- * hash to TrustedConsensusState.NextValidatorsHash since that is the last
- * trusted validator set at the TrustedHeight.
- */
-export interface HeaderSDKType {
-  signed_header: SignedHeaderSDKType | undefined;
-  validator_set: ValidatorSetSDKType | undefined;
-  trusted_height: HeightSDKType | undefined;
-  trusted_validators: ValidatorSetSDKType | undefined;
-}
-/**
- * Fraction defines the protobuf message type for tmmath.Fraction that only
- * supports positive values.
- */
-export interface Fraction {
-  numerator: bigint;
-  denominator: bigint;
-}
-export interface FractionProtoMsg {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Fraction";
-  value: Uint8Array;
-}
-/**
- * Fraction defines the protobuf message type for tmmath.Fraction that only
- * supports positive values.
- */
-export interface FractionAmino {
-  numerator: string;
-  denominator: string;
-}
-export interface FractionAminoMsg {
-  type: "cosmos-sdk/Fraction";
-  value: FractionAmino;
-}
-/**
- * Fraction defines the protobuf message type for tmmath.Fraction that only
- * supports positive values.
- */
-export interface FractionSDKType {
-  numerator: bigint;
-  denominator: bigint;
-}
-function createBaseClientState(): ClientState {
-  return {
-    chainId: "",
-    trustLevel: Fraction.fromPartial({}),
-    trustingPeriod: Duration.fromPartial({}),
-    unbondingPeriod: Duration.fromPartial({}),
-    maxClockDrift: Duration.fromPartial({}),
-    frozenHeight: Height.fromPartial({}),
-    latestHeight: Height.fromPartial({}),
-    proofSpecs: [],
-    upgradePath: [],
-    allowUpdateAfterExpiry: false,
-    allowUpdateAfterMisbehaviour: false
-  };
-}
-export const ClientState = {
-  typeUrl: "/ibc.lightclients.tendermint.v1.ClientState",
-  aminoType: "cosmos-sdk/ClientState",
-  encode(message: ClientState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.chainId !== "") {
-      writer.uint32(10).string(message.chainId);
-    }
-    if (message.trustLevel !== undefined) {
-      Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.trustingPeriod !== undefined) {
-      Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.unbondingPeriod !== undefined) {
-      Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.maxClockDrift !== undefined) {
-      Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.frozenHeight !== undefined) {
-      Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.latestHeight !== undefined) {
-      Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();
-    }
-    for (const v of message.proofSpecs) {
-      ProofSpec.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    for (const v of message.upgradePath) {
-      writer.uint32(74).string(v!);
-    }
-    if (message.allowUpdateAfterExpiry === true) {
-      writer.uint32(80).bool(message.allowUpdateAfterExpiry);
-    }
-    if (message.allowUpdateAfterMisbehaviour === true) {
-      writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClientState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClientState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.chainId = reader.string();
-          break;
-        case 2:
-          message.trustLevel = Fraction.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.trustingPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.unbondingPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.maxClockDrift = Duration.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.frozenHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.latestHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.proofSpecs.push(ProofSpec.decode(reader, reader.uint32()));
-          break;
-        case 9:
-          message.upgradePath.push(reader.string());
-          break;
-        case 10:
-          message.allowUpdateAfterExpiry = reader.bool();
-          break;
-        case 11:
-          message.allowUpdateAfterMisbehaviour = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClientState {
-    return {
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      trustLevel: isSet(object.trustLevel) ? Fraction.fromJSON(object.trustLevel) : undefined,
-      trustingPeriod: isSet(object.trustingPeriod) ? Duration.fromJSON(object.trustingPeriod) : undefined,
-      unbondingPeriod: isSet(object.unbondingPeriod) ? Duration.fromJSON(object.unbondingPeriod) : undefined,
-      maxClockDrift: isSet(object.maxClockDrift) ? Duration.fromJSON(object.maxClockDrift) : undefined,
-      frozenHeight: isSet(object.frozenHeight) ? Height.fromJSON(object.frozenHeight) : undefined,
-      latestHeight: isSet(object.latestHeight) ? Height.fromJSON(object.latestHeight) : undefined,
-      proofSpecs: Array.isArray(object?.proofSpecs) ? object.proofSpecs.map((e: any) => ProofSpec.fromJSON(e)) : [],
-      upgradePath: Array.isArray(object?.upgradePath) ? object.upgradePath.map((e: any) => String(e)) : [],
-      allowUpdateAfterExpiry: isSet(object.allowUpdateAfterExpiry) ? Boolean(object.allowUpdateAfterExpiry) : false,
-      allowUpdateAfterMisbehaviour: isSet(object.allowUpdateAfterMisbehaviour) ? Boolean(object.allowUpdateAfterMisbehaviour) : false
-    };
-  },
-  toJSON(message: ClientState): unknown {
-    const obj: any = {};
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.trustLevel !== undefined && (obj.trustLevel = message.trustLevel ? Fraction.toJSON(message.trustLevel) : undefined);
-    message.trustingPeriod !== undefined && (obj.trustingPeriod = message.trustingPeriod ? Duration.toJSON(message.trustingPeriod) : undefined);
-    message.unbondingPeriod !== undefined && (obj.unbondingPeriod = message.unbondingPeriod ? Duration.toJSON(message.unbondingPeriod) : undefined);
-    message.maxClockDrift !== undefined && (obj.maxClockDrift = message.maxClockDrift ? Duration.toJSON(message.maxClockDrift) : undefined);
-    message.frozenHeight !== undefined && (obj.frozenHeight = message.frozenHeight ? Height.toJSON(message.frozenHeight) : undefined);
-    message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight ? Height.toJSON(message.latestHeight) : undefined);
-    if (message.proofSpecs) {
-      obj.proofSpecs = message.proofSpecs.map(e => e ? ProofSpec.toJSON(e) : undefined);
-    } else {
-      obj.proofSpecs = [];
-    }
-    if (message.upgradePath) {
-      obj.upgradePath = message.upgradePath.map(e => e);
-    } else {
-      obj.upgradePath = [];
-    }
-    message.allowUpdateAfterExpiry !== undefined && (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);
-    message.allowUpdateAfterMisbehaviour !== undefined && (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClientState>): ClientState {
-    const message = createBaseClientState();
-    message.chainId = object.chainId ?? "";
-    message.trustLevel = object.trustLevel !== undefined && object.trustLevel !== null ? Fraction.fromPartial(object.trustLevel) : undefined;
-    message.trustingPeriod = object.trustingPeriod !== undefined && object.trustingPeriod !== null ? Duration.fromPartial(object.trustingPeriod) : undefined;
-    message.unbondingPeriod = object.unbondingPeriod !== undefined && object.unbondingPeriod !== null ? Duration.fromPartial(object.unbondingPeriod) : undefined;
-    message.maxClockDrift = object.maxClockDrift !== undefined && object.maxClockDrift !== null ? Duration.fromPartial(object.maxClockDrift) : undefined;
-    message.frozenHeight = object.frozenHeight !== undefined && object.frozenHeight !== null ? Height.fromPartial(object.frozenHeight) : undefined;
-    message.latestHeight = object.latestHeight !== undefined && object.latestHeight !== null ? Height.fromPartial(object.latestHeight) : undefined;
-    message.proofSpecs = object.proofSpecs?.map(e => ProofSpec.fromPartial(e)) || [];
-    message.upgradePath = object.upgradePath?.map(e => e) || [];
-    message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false;
-    message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false;
-    return message;
-  },
-  fromSDK(object: ClientStateSDKType): ClientState {
-    return {
-      chainId: object?.chain_id,
-      trustLevel: object.trust_level ? Fraction.fromSDK(object.trust_level) : undefined,
-      trustingPeriod: object.trusting_period ? Duration.fromSDK(object.trusting_period) : undefined,
-      unbondingPeriod: object.unbonding_period ? Duration.fromSDK(object.unbonding_period) : undefined,
-      maxClockDrift: object.max_clock_drift ? Duration.fromSDK(object.max_clock_drift) : undefined,
-      frozenHeight: object.frozen_height ? Height.fromSDK(object.frozen_height) : undefined,
-      latestHeight: object.latest_height ? Height.fromSDK(object.latest_height) : undefined,
-      proofSpecs: Array.isArray(object?.proof_specs) ? object.proof_specs.map((e: any) => ProofSpec.fromSDK(e)) : [],
-      upgradePath: Array.isArray(object?.upgrade_path) ? object.upgrade_path.map((e: any) => e) : [],
-      allowUpdateAfterExpiry: object?.allow_update_after_expiry,
-      allowUpdateAfterMisbehaviour: object?.allow_update_after_misbehaviour
-    };
-  },
-  toSDK(message: ClientState): ClientStateSDKType {
-    const obj: any = {};
-    obj.chain_id = message.chainId;
-    message.trustLevel !== undefined && (obj.trust_level = message.trustLevel ? Fraction.toSDK(message.trustLevel) : undefined);
-    message.trustingPeriod !== undefined && (obj.trusting_period = message.trustingPeriod ? Duration.toSDK(message.trustingPeriod) : undefined);
-    message.unbondingPeriod !== undefined && (obj.unbonding_period = message.unbondingPeriod ? Duration.toSDK(message.unbondingPeriod) : undefined);
-    message.maxClockDrift !== undefined && (obj.max_clock_drift = message.maxClockDrift ? Duration.toSDK(message.maxClockDrift) : undefined);
-    message.frozenHeight !== undefined && (obj.frozen_height = message.frozenHeight ? Height.toSDK(message.frozenHeight) : undefined);
-    message.latestHeight !== undefined && (obj.latest_height = message.latestHeight ? Height.toSDK(message.latestHeight) : undefined);
-    if (message.proofSpecs) {
-      obj.proof_specs = message.proofSpecs.map(e => e ? ProofSpec.toSDK(e) : undefined);
-    } else {
-      obj.proof_specs = [];
-    }
-    if (message.upgradePath) {
-      obj.upgrade_path = message.upgradePath.map(e => e);
-    } else {
-      obj.upgrade_path = [];
-    }
-    obj.allow_update_after_expiry = message.allowUpdateAfterExpiry;
-    obj.allow_update_after_misbehaviour = message.allowUpdateAfterMisbehaviour;
-    return obj;
-  },
-  fromAmino(object: ClientStateAmino): ClientState {
-    return {
-      chainId: object.chain_id,
-      trustLevel: object?.trust_level ? Fraction.fromAmino(object.trust_level) : undefined,
-      trustingPeriod: object?.trusting_period ? Duration.fromAmino(object.trusting_period) : undefined,
-      unbondingPeriod: object?.unbonding_period ? Duration.fromAmino(object.unbonding_period) : undefined,
-      maxClockDrift: object?.max_clock_drift ? Duration.fromAmino(object.max_clock_drift) : undefined,
-      frozenHeight: object?.frozen_height ? Height.fromAmino(object.frozen_height) : undefined,
-      latestHeight: object?.latest_height ? Height.fromAmino(object.latest_height) : undefined,
-      proofSpecs: Array.isArray(object?.proof_specs) ? object.proof_specs.map((e: any) => ProofSpec.fromAmino(e)) : [],
-      upgradePath: Array.isArray(object?.upgrade_path) ? object.upgrade_path.map((e: any) => e) : [],
-      allowUpdateAfterExpiry: object.allow_update_after_expiry,
-      allowUpdateAfterMisbehaviour: object.allow_update_after_misbehaviour
-    };
-  },
-  toAmino(message: ClientState): ClientStateAmino {
-    const obj: any = {};
-    obj.chain_id = message.chainId;
-    obj.trust_level = message.trustLevel ? Fraction.toAmino(message.trustLevel) : undefined;
-    obj.trusting_period = message.trustingPeriod ? Duration.toAmino(message.trustingPeriod) : undefined;
-    obj.unbonding_period = message.unbondingPeriod ? Duration.toAmino(message.unbondingPeriod) : undefined;
-    obj.max_clock_drift = message.maxClockDrift ? Duration.toAmino(message.maxClockDrift) : undefined;
-    obj.frozen_height = message.frozenHeight ? Height.toAmino(message.frozenHeight) : {};
-    obj.latest_height = message.latestHeight ? Height.toAmino(message.latestHeight) : {};
-    if (message.proofSpecs) {
-      obj.proof_specs = message.proofSpecs.map(e => e ? ProofSpec.toAmino(e) : undefined);
-    } else {
-      obj.proof_specs = [];
-    }
-    if (message.upgradePath) {
-      obj.upgrade_path = message.upgradePath.map(e => e);
-    } else {
-      obj.upgrade_path = [];
-    }
-    obj.allow_update_after_expiry = message.allowUpdateAfterExpiry;
-    obj.allow_update_after_misbehaviour = message.allowUpdateAfterMisbehaviour;
-    return obj;
-  },
-  fromAminoMsg(object: ClientStateAminoMsg): ClientState {
-    return ClientState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClientState): ClientStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ClientState",
-      value: ClientState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClientStateProtoMsg): ClientState {
-    return ClientState.decode(message.value);
-  },
-  toProto(message: ClientState): Uint8Array {
-    return ClientState.encode(message).finish();
-  },
-  toProtoMsg(message: ClientState): ClientStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.tendermint.v1.ClientState",
-      value: ClientState.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusState(): ConsensusState {
-  return {
-    timestamp: new Date(),
-    root: MerkleRoot.fromPartial({}),
-    nextValidatorsHash: new Uint8Array()
-  };
-}
-export const ConsensusState = {
-  typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState",
-  aminoType: "cosmos-sdk/ConsensusState",
-  encode(message: ConsensusState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).ldelim();
-    }
-    if (message.root !== undefined) {
-      MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.nextValidatorsHash.length !== 0) {
-      writer.uint32(26).bytes(message.nextValidatorsHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.root = MerkleRoot.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.nextValidatorsHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusState {
-    return {
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined,
-      root: isSet(object.root) ? MerkleRoot.fromJSON(object.root) : undefined,
-      nextValidatorsHash: isSet(object.nextValidatorsHash) ? bytesFromBase64(object.nextValidatorsHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: ConsensusState): unknown {
-    const obj: any = {};
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    message.root !== undefined && (obj.root = message.root ? MerkleRoot.toJSON(message.root) : undefined);
-    message.nextValidatorsHash !== undefined && (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusState>): ConsensusState {
-    const message = createBaseConsensusState();
-    message.timestamp = object.timestamp ?? undefined;
-    message.root = object.root !== undefined && object.root !== null ? MerkleRoot.fromPartial(object.root) : undefined;
-    message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ConsensusStateSDKType): ConsensusState {
-    return {
-      timestamp: object.timestamp ?? undefined,
-      root: object.root ? MerkleRoot.fromSDK(object.root) : undefined,
-      nextValidatorsHash: object?.next_validators_hash
-    };
-  },
-  toSDK(message: ConsensusState): ConsensusStateSDKType {
-    const obj: any = {};
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    message.root !== undefined && (obj.root = message.root ? MerkleRoot.toSDK(message.root) : undefined);
-    obj.next_validators_hash = message.nextValidatorsHash;
-    return obj;
-  },
-  fromAmino(object: ConsensusStateAmino): ConsensusState {
-    return {
-      timestamp: object.timestamp,
-      root: object?.root ? MerkleRoot.fromAmino(object.root) : undefined,
-      nextValidatorsHash: object.next_validators_hash
-    };
-  },
-  toAmino(message: ConsensusState): ConsensusStateAmino {
-    const obj: any = {};
-    obj.timestamp = message.timestamp;
-    obj.root = message.root ? MerkleRoot.toAmino(message.root) : undefined;
-    obj.next_validators_hash = message.nextValidatorsHash;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusStateAminoMsg): ConsensusState {
-    return ConsensusState.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConsensusState): ConsensusStateAminoMsg {
-    return {
-      type: "cosmos-sdk/ConsensusState",
-      value: ConsensusState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConsensusStateProtoMsg): ConsensusState {
-    return ConsensusState.decode(message.value);
-  },
-  toProto(message: ConsensusState): Uint8Array {
-    return ConsensusState.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusState): ConsensusStateProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState",
-      value: ConsensusState.encode(message).finish()
-    };
-  }
-};
-function createBaseMisbehaviour(): Misbehaviour {
-  return {
-    clientId: "",
-    header1: Header.fromPartial({}),
-    header2: Header.fromPartial({})
-  };
-}
-export const Misbehaviour = {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Misbehaviour",
-  aminoType: "cosmos-sdk/Misbehaviour",
-  encode(message: Misbehaviour, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.clientId !== "") {
-      writer.uint32(10).string(message.clientId);
-    }
-    if (message.header1 !== undefined) {
-      Header.encode(message.header1, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.header2 !== undefined) {
-      Header.encode(message.header2, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Misbehaviour {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMisbehaviour();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.clientId = reader.string();
-          break;
-        case 2:
-          message.header1 = Header.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.header2 = Header.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Misbehaviour {
-    return {
-      clientId: isSet(object.clientId) ? String(object.clientId) : "",
-      header1: isSet(object.header1) ? Header.fromJSON(object.header1) : undefined,
-      header2: isSet(object.header2) ? Header.fromJSON(object.header2) : undefined
-    };
-  },
-  toJSON(message: Misbehaviour): unknown {
-    const obj: any = {};
-    message.clientId !== undefined && (obj.clientId = message.clientId);
-    message.header1 !== undefined && (obj.header1 = message.header1 ? Header.toJSON(message.header1) : undefined);
-    message.header2 !== undefined && (obj.header2 = message.header2 ? Header.toJSON(message.header2) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Misbehaviour>): Misbehaviour {
-    const message = createBaseMisbehaviour();
-    message.clientId = object.clientId ?? "";
-    message.header1 = object.header1 !== undefined && object.header1 !== null ? Header.fromPartial(object.header1) : undefined;
-    message.header2 = object.header2 !== undefined && object.header2 !== null ? Header.fromPartial(object.header2) : undefined;
-    return message;
-  },
-  fromSDK(object: MisbehaviourSDKType): Misbehaviour {
-    return {
-      clientId: object?.client_id,
-      header1: object.header_1 ? Header.fromSDK(object.header_1) : undefined,
-      header2: object.header_2 ? Header.fromSDK(object.header_2) : undefined
-    };
-  },
-  toSDK(message: Misbehaviour): MisbehaviourSDKType {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    message.header1 !== undefined && (obj.header_1 = message.header1 ? Header.toSDK(message.header1) : undefined);
-    message.header2 !== undefined && (obj.header_2 = message.header2 ? Header.toSDK(message.header2) : undefined);
-    return obj;
-  },
-  fromAmino(object: MisbehaviourAmino): Misbehaviour {
-    return {
-      clientId: object.client_id,
-      header1: object?.header_1 ? Header.fromAmino(object.header_1) : undefined,
-      header2: object?.header_2 ? Header.fromAmino(object.header_2) : undefined
-    };
-  },
-  toAmino(message: Misbehaviour): MisbehaviourAmino {
-    const obj: any = {};
-    obj.client_id = message.clientId;
-    obj.header_1 = message.header1 ? Header.toAmino(message.header1) : undefined;
-    obj.header_2 = message.header2 ? Header.toAmino(message.header2) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MisbehaviourAminoMsg): Misbehaviour {
-    return Misbehaviour.fromAmino(object.value);
-  },
-  toAminoMsg(message: Misbehaviour): MisbehaviourAminoMsg {
-    return {
-      type: "cosmos-sdk/Misbehaviour",
-      value: Misbehaviour.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MisbehaviourProtoMsg): Misbehaviour {
-    return Misbehaviour.decode(message.value);
-  },
-  toProto(message: Misbehaviour): Uint8Array {
-    return Misbehaviour.encode(message).finish();
-  },
-  toProtoMsg(message: Misbehaviour): MisbehaviourProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.tendermint.v1.Misbehaviour",
-      value: Misbehaviour.encode(message).finish()
-    };
-  }
-};
-function createBaseHeader(): Header {
-  return {
-    signedHeader: SignedHeader.fromPartial({}),
-    validatorSet: ValidatorSet.fromPartial({}),
-    trustedHeight: Height.fromPartial({}),
-    trustedValidators: ValidatorSet.fromPartial({})
-  };
-}
-export const Header = {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Header",
-  aminoType: "cosmos-sdk/Header",
-  encode(message: Header, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signedHeader !== undefined) {
-      SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.validatorSet !== undefined) {
-      ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.trustedHeight !== undefined) {
-      Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.trustedValidators !== undefined) {
-      ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Header {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signedHeader = SignedHeader.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.validatorSet = ValidatorSet.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.trustedHeight = Height.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.trustedValidators = ValidatorSet.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Header {
-    return {
-      signedHeader: isSet(object.signedHeader) ? SignedHeader.fromJSON(object.signedHeader) : undefined,
-      validatorSet: isSet(object.validatorSet) ? ValidatorSet.fromJSON(object.validatorSet) : undefined,
-      trustedHeight: isSet(object.trustedHeight) ? Height.fromJSON(object.trustedHeight) : undefined,
-      trustedValidators: isSet(object.trustedValidators) ? ValidatorSet.fromJSON(object.trustedValidators) : undefined
-    };
-  },
-  toJSON(message: Header): unknown {
-    const obj: any = {};
-    message.signedHeader !== undefined && (obj.signedHeader = message.signedHeader ? SignedHeader.toJSON(message.signedHeader) : undefined);
-    message.validatorSet !== undefined && (obj.validatorSet = message.validatorSet ? ValidatorSet.toJSON(message.validatorSet) : undefined);
-    message.trustedHeight !== undefined && (obj.trustedHeight = message.trustedHeight ? Height.toJSON(message.trustedHeight) : undefined);
-    message.trustedValidators !== undefined && (obj.trustedValidators = message.trustedValidators ? ValidatorSet.toJSON(message.trustedValidators) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Header>): Header {
-    const message = createBaseHeader();
-    message.signedHeader = object.signedHeader !== undefined && object.signedHeader !== null ? SignedHeader.fromPartial(object.signedHeader) : undefined;
-    message.validatorSet = object.validatorSet !== undefined && object.validatorSet !== null ? ValidatorSet.fromPartial(object.validatorSet) : undefined;
-    message.trustedHeight = object.trustedHeight !== undefined && object.trustedHeight !== null ? Height.fromPartial(object.trustedHeight) : undefined;
-    message.trustedValidators = object.trustedValidators !== undefined && object.trustedValidators !== null ? ValidatorSet.fromPartial(object.trustedValidators) : undefined;
-    return message;
-  },
-  fromSDK(object: HeaderSDKType): Header {
-    return {
-      signedHeader: object.signed_header ? SignedHeader.fromSDK(object.signed_header) : undefined,
-      validatorSet: object.validator_set ? ValidatorSet.fromSDK(object.validator_set) : undefined,
-      trustedHeight: object.trusted_height ? Height.fromSDK(object.trusted_height) : undefined,
-      trustedValidators: object.trusted_validators ? ValidatorSet.fromSDK(object.trusted_validators) : undefined
-    };
-  },
-  toSDK(message: Header): HeaderSDKType {
-    const obj: any = {};
-    message.signedHeader !== undefined && (obj.signed_header = message.signedHeader ? SignedHeader.toSDK(message.signedHeader) : undefined);
-    message.validatorSet !== undefined && (obj.validator_set = message.validatorSet ? ValidatorSet.toSDK(message.validatorSet) : undefined);
-    message.trustedHeight !== undefined && (obj.trusted_height = message.trustedHeight ? Height.toSDK(message.trustedHeight) : undefined);
-    message.trustedValidators !== undefined && (obj.trusted_validators = message.trustedValidators ? ValidatorSet.toSDK(message.trustedValidators) : undefined);
-    return obj;
-  },
-  fromAmino(object: HeaderAmino): Header {
-    return {
-      signedHeader: object?.signed_header ? SignedHeader.fromAmino(object.signed_header) : undefined,
-      validatorSet: object?.validator_set ? ValidatorSet.fromAmino(object.validator_set) : undefined,
-      trustedHeight: object?.trusted_height ? Height.fromAmino(object.trusted_height) : undefined,
-      trustedValidators: object?.trusted_validators ? ValidatorSet.fromAmino(object.trusted_validators) : undefined
-    };
-  },
-  toAmino(message: Header): HeaderAmino {
-    const obj: any = {};
-    obj.signed_header = message.signedHeader ? SignedHeader.toAmino(message.signedHeader) : undefined;
-    obj.validator_set = message.validatorSet ? ValidatorSet.toAmino(message.validatorSet) : undefined;
-    obj.trusted_height = message.trustedHeight ? Height.toAmino(message.trustedHeight) : {};
-    obj.trusted_validators = message.trustedValidators ? ValidatorSet.toAmino(message.trustedValidators) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderAminoMsg): Header {
-    return Header.fromAmino(object.value);
-  },
-  toAminoMsg(message: Header): HeaderAminoMsg {
-    return {
-      type: "cosmos-sdk/Header",
-      value: Header.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: HeaderProtoMsg): Header {
-    return Header.decode(message.value);
-  },
-  toProto(message: Header): Uint8Array {
-    return Header.encode(message).finish();
-  },
-  toProtoMsg(message: Header): HeaderProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.tendermint.v1.Header",
-      value: Header.encode(message).finish()
-    };
-  }
-};
-function createBaseFraction(): Fraction {
-  return {
-    numerator: BigInt(0),
-    denominator: BigInt(0)
-  };
-}
-export const Fraction = {
-  typeUrl: "/ibc.lightclients.tendermint.v1.Fraction",
-  aminoType: "cosmos-sdk/Fraction",
-  encode(message: Fraction, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.numerator !== BigInt(0)) {
-      writer.uint32(8).uint64(message.numerator);
-    }
-    if (message.denominator !== BigInt(0)) {
-      writer.uint32(16).uint64(message.denominator);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Fraction {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFraction();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.numerator = reader.uint64();
-          break;
-        case 2:
-          message.denominator = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Fraction {
-    return {
-      numerator: isSet(object.numerator) ? BigInt(object.numerator.toString()) : BigInt(0),
-      denominator: isSet(object.denominator) ? BigInt(object.denominator.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Fraction): unknown {
-    const obj: any = {};
-    message.numerator !== undefined && (obj.numerator = (message.numerator || BigInt(0)).toString());
-    message.denominator !== undefined && (obj.denominator = (message.denominator || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Fraction>): Fraction {
-    const message = createBaseFraction();
-    message.numerator = object.numerator !== undefined && object.numerator !== null ? BigInt(object.numerator.toString()) : BigInt(0);
-    message.denominator = object.denominator !== undefined && object.denominator !== null ? BigInt(object.denominator.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: FractionSDKType): Fraction {
-    return {
-      numerator: object?.numerator,
-      denominator: object?.denominator
-    };
-  },
-  toSDK(message: Fraction): FractionSDKType {
-    const obj: any = {};
-    obj.numerator = message.numerator;
-    obj.denominator = message.denominator;
-    return obj;
-  },
-  fromAmino(object: FractionAmino): Fraction {
-    return {
-      numerator: BigInt(object.numerator),
-      denominator: BigInt(object.denominator)
-    };
-  },
-  toAmino(message: Fraction): FractionAmino {
-    const obj: any = {};
-    obj.numerator = message.numerator ? message.numerator.toString() : undefined;
-    obj.denominator = message.denominator ? message.denominator.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: FractionAminoMsg): Fraction {
-    return Fraction.fromAmino(object.value);
-  },
-  toAminoMsg(message: Fraction): FractionAminoMsg {
-    return {
-      type: "cosmos-sdk/Fraction",
-      value: Fraction.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: FractionProtoMsg): Fraction {
-    return Fraction.decode(message.value);
-  },
-  toProto(message: Fraction): Uint8Array {
-    return Fraction.encode(message).finish();
-  },
-  toProtoMsg(message: Fraction): FractionProtoMsg {
-    return {
-      typeUrl: "/ibc.lightclients.tendermint.v1.Fraction",
-      value: Fraction.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/rpc.query.ts b/examples/injective/src/codegen/ibc/rpc.query.ts
deleted file mode 100644
index 0d0dbcd9..00000000
--- a/examples/injective/src/codegen/ibc/rpc.query.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import { QueryClient } from "@cosmjs/stargate";
-export const createRPCQueryClient = async ({
-  rpcEndpoint
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-}) => {
-  const tmClient = await Tendermint34Client.connect(rpcEndpoint);
-  const client = new QueryClient(tmClient);
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: (await import("../cosmos/app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      auth: {
-        v1beta1: (await import("../cosmos/auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      authz: {
-        v1beta1: (await import("../cosmos/authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      bank: {
-        v1beta1: (await import("../cosmos/bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      base: {
-        tendermint: {
-          v1beta1: (await import("../cosmos/base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client)
-        }
-      },
-      distribution: {
-        v1beta1: (await import("../cosmos/distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      evidence: {
-        v1beta1: (await import("../cosmos/evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      feegrant: {
-        v1beta1: (await import("../cosmos/feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      gov: {
-        v1: (await import("../cosmos/gov/v1/query.rpc.Query")).createRpcQueryExtension(client),
-        v1beta1: (await import("../cosmos/gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      group: {
-        v1: (await import("../cosmos/group/v1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      mint: {
-        v1beta1: (await import("../cosmos/mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      nft: {
-        v1beta1: (await import("../cosmos/nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      params: {
-        v1beta1: (await import("../cosmos/params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      slashing: {
-        v1beta1: (await import("../cosmos/slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      staking: {
-        v1beta1: (await import("../cosmos/staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      tx: {
-        v1beta1: (await import("../cosmos/tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client)
-      },
-      upgrade: {
-        v1beta1: (await import("../cosmos/upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    },
-    ibc: {
-      applications: {
-        transfer: {
-          v1: (await import("./applications/transfer/v1/query.rpc.Query")).createRpcQueryExtension(client)
-        }
-      },
-      core: {
-        channel: {
-          v1: (await import("./core/channel/v1/query.rpc.Query")).createRpcQueryExtension(client)
-        },
-        client: {
-          v1: (await import("./core/client/v1/query.rpc.Query")).createRpcQueryExtension(client)
-        },
-        connection: {
-          v1: (await import("./core/connection/v1/query.rpc.Query")).createRpcQueryExtension(client)
-        },
-        port: {
-          v1: (await import("./core/port/v1/query.rpc.Query")).createRpcQueryExtension(client)
-        }
-      }
-    }
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ibc/rpc.tx.ts b/examples/injective/src/codegen/ibc/rpc.tx.ts
deleted file mode 100644
index 62cb610c..00000000
--- a/examples/injective/src/codegen/ibc/rpc.tx.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Rpc } from "../helpers";
-export const createRPCMsgClient = async ({
-  rpc
-}: {
-  rpc: Rpc;
-}) => ({
-  cosmos: {
-    authz: {
-      v1beta1: new (await import("../cosmos/authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    bank: {
-      v1beta1: new (await import("../cosmos/bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    crisis: {
-      v1beta1: new (await import("../cosmos/crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    distribution: {
-      v1beta1: new (await import("../cosmos/distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    evidence: {
-      v1beta1: new (await import("../cosmos/evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    feegrant: {
-      v1beta1: new (await import("../cosmos/feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    gov: {
-      v1: new (await import("../cosmos/gov/v1/tx.rpc.msg")).MsgClientImpl(rpc),
-      v1beta1: new (await import("../cosmos/gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    group: {
-      v1: new (await import("../cosmos/group/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    nft: {
-      v1beta1: new (await import("../cosmos/nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    slashing: {
-      v1beta1: new (await import("../cosmos/slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    staking: {
-      v1beta1: new (await import("../cosmos/staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    upgrade: {
-      v1beta1: new (await import("../cosmos/upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    vesting: {
-      v1beta1: new (await import("../cosmos/vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  },
-  ibc: {
-    applications: {
-      transfer: {
-        v1: new (await import("./applications/transfer/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-      }
-    },
-    core: {
-      channel: {
-        v1: new (await import("./core/channel/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-      },
-      client: {
-        v1: new (await import("./core/client/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-      },
-      connection: {
-        v1: new (await import("./core/connection/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-      }
-    }
-  }
-});
\ No newline at end of file
diff --git a/examples/injective/src/codegen/ics23/bundle.ts b/examples/injective/src/codegen/ics23/bundle.ts
deleted file mode 100644
index 30bc1c53..00000000
--- a/examples/injective/src/codegen/ics23/bundle.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as _0 from "../confio/proofs";
-export const ics23 = {
-  ..._0
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/index.ts b/examples/injective/src/codegen/index.ts
deleted file mode 100644
index 3928fce2..00000000
--- a/examples/injective/src/codegen/index.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
-  * This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-  * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-  * and run the transpile command or yarn proto command to regenerate this bundle.
-  */
- 
-export * from "./ics23/bundle";
-export * from "./cosmos_proto/bundle";
-export * from "./cosmos/bundle";
-export * from "./cosmos/client";
-export * from "./cosmwasm/bundle";
-export * from "./cosmwasm/client";
-export * from "./gogoproto/bundle";
-export * from "./google/bundle";
-export * from "./ibc/bundle";
-export * from "./ibc/client";
-export * from "./osmosis/bundle";
-export * from "./osmosis/client";
-export * from "./tendermint/bundle";
-export * from "./hooks";
-export * from "./mobx.stores";
-export * from "./extern";
-export * from "./react-query";
-export * from "./mobx";
-export * from "./varint";
-export * from "./utf8";
-export * from "./binary";
\ No newline at end of file
diff --git a/examples/injective/src/codegen/mobx.stores.ts b/examples/injective/src/codegen/mobx.stores.ts
deleted file mode 100644
index c5252709..00000000
--- a/examples/injective/src/codegen/mobx.stores.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import { ProtobufRpcClient } from "@cosmjs/stargate";
-import * as _CosmosAppV1alpha1Queryrpc from "./cosmos/app/v1alpha1/query.rpc.Query";
-import * as _CosmosAuthV1beta1Queryrpc from "./cosmos/auth/v1beta1/query.rpc.Query";
-import * as _CosmosAuthzV1beta1Queryrpc from "./cosmos/authz/v1beta1/query.rpc.Query";
-import * as _CosmosBankV1beta1Queryrpc from "./cosmos/bank/v1beta1/query.rpc.Query";
-import * as _CosmosBaseTendermintV1beta1Queryrpc from "./cosmos/base/tendermint/v1beta1/query.rpc.Service";
-import * as _CosmosDistributionV1beta1Queryrpc from "./cosmos/distribution/v1beta1/query.rpc.Query";
-import * as _CosmosEvidenceV1beta1Queryrpc from "./cosmos/evidence/v1beta1/query.rpc.Query";
-import * as _CosmosFeegrantV1beta1Queryrpc from "./cosmos/feegrant/v1beta1/query.rpc.Query";
-import * as _CosmosGovV1Queryrpc from "./cosmos/gov/v1/query.rpc.Query";
-import * as _CosmosGovV1beta1Queryrpc from "./cosmos/gov/v1beta1/query.rpc.Query";
-import * as _CosmosGroupV1Queryrpc from "./cosmos/group/v1/query.rpc.Query";
-import * as _CosmosMintV1beta1Queryrpc from "./cosmos/mint/v1beta1/query.rpc.Query";
-import * as _CosmosNftV1beta1Queryrpc from "./cosmos/nft/v1beta1/query.rpc.Query";
-import * as _CosmosParamsV1beta1Queryrpc from "./cosmos/params/v1beta1/query.rpc.Query";
-import * as _CosmosSlashingV1beta1Queryrpc from "./cosmos/slashing/v1beta1/query.rpc.Query";
-import * as _CosmosStakingV1beta1Queryrpc from "./cosmos/staking/v1beta1/query.rpc.Query";
-import * as _CosmosTxV1beta1Servicerpc from "./cosmos/tx/v1beta1/service.rpc.Service";
-import * as _CosmosUpgradeV1beta1Queryrpc from "./cosmos/upgrade/v1beta1/query.rpc.Query";
-import * as _CosmwasmWasmV1Queryrpc from "./cosmwasm/wasm/v1/query.rpc.Query";
-import * as _IbcApplicationsTransferV1Queryrpc from "./ibc/applications/transfer/v1/query.rpc.Query";
-import * as _IbcCoreChannelV1Queryrpc from "./ibc/core/channel/v1/query.rpc.Query";
-import * as _IbcCoreClientV1Queryrpc from "./ibc/core/client/v1/query.rpc.Query";
-import * as _IbcCoreConnectionV1Queryrpc from "./ibc/core/connection/v1/query.rpc.Query";
-import * as _IbcCorePortV1Queryrpc from "./ibc/core/port/v1/query.rpc.Query";
-import * as _OsmosisClaimV1beta1Queryrpc from "./osmosis/claim/v1beta1/query.rpc.Query";
-import * as _OsmosisEpochsQueryrpc from "./osmosis/epochs/query.rpc.Query";
-import * as _OsmosisGammV1beta1Queryrpc from "./osmosis/gamm/v1beta1/query.rpc.Query";
-import * as _OsmosisGammV2Queryrpc from "./osmosis/gamm/v2/query.rpc.Query";
-import * as _OsmosisIbcratelimitV1beta1Queryrpc from "./osmosis/ibc-rate-limit/v1beta1/query.rpc.Query";
-import * as _OsmosisIncentivesQueryrpc from "./osmosis/incentives/query.rpc.Query";
-import * as _OsmosisLockupQueryrpc from "./osmosis/lockup/query.rpc.Query";
-import * as _OsmosisMintV1beta1Queryrpc from "./osmosis/mint/v1beta1/query.rpc.Query";
-import * as _OsmosisPoolincentivesV1beta1Queryrpc from "./osmosis/pool-incentives/v1beta1/query.rpc.Query";
-import * as _OsmosisSuperfluidQueryrpc from "./osmosis/superfluid/query.rpc.Query";
-import * as _OsmosisTokenfactoryV1beta1Queryrpc from "./osmosis/tokenfactory/v1beta1/query.rpc.Query";
-import * as _OsmosisTwapV1beta1Queryrpc from "./osmosis/twap/v1beta1/query.rpc.Query";
-import * as _OsmosisTxfeesV1beta1Queryrpc from "./osmosis/txfees/v1beta1/query.rpc.Query";
-export const createRpcQueryMobxStores = ({
-  rpc
-}: {
-  rpc: ProtobufRpcClient | undefined;
-}) => {
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: _CosmosAppV1alpha1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      auth: {
-        v1beta1: _CosmosAuthV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      authz: {
-        v1beta1: _CosmosAuthzV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      bank: {
-        v1beta1: _CosmosBankV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      base: {
-        tendermint: {
-          v1beta1: _CosmosBaseTendermintV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-        }
-      },
-      distribution: {
-        v1beta1: _CosmosDistributionV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      evidence: {
-        v1beta1: _CosmosEvidenceV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      feegrant: {
-        v1beta1: _CosmosFeegrantV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      gov: {
-        v1: _CosmosGovV1Queryrpc.createRpcQueryMobxStores(rpc),
-        v1beta1: _CosmosGovV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      group: {
-        v1: _CosmosGroupV1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      mint: {
-        v1beta1: _CosmosMintV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      nft: {
-        v1beta1: _CosmosNftV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      params: {
-        v1beta1: _CosmosParamsV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      slashing: {
-        v1beta1: _CosmosSlashingV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      staking: {
-        v1beta1: _CosmosStakingV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      tx: {
-        v1beta1: _CosmosTxV1beta1Servicerpc.createRpcQueryMobxStores(rpc)
-      },
-      upgrade: {
-        v1beta1: _CosmosUpgradeV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      }
-    },
-    cosmwasm: {
-      wasm: {
-        v1: _CosmwasmWasmV1Queryrpc.createRpcQueryMobxStores(rpc)
-      }
-    },
-    ibc: {
-      applications: {
-        transfer: {
-          v1: _IbcApplicationsTransferV1Queryrpc.createRpcQueryMobxStores(rpc)
-        }
-      },
-      core: {
-        channel: {
-          v1: _IbcCoreChannelV1Queryrpc.createRpcQueryMobxStores(rpc)
-        },
-        client: {
-          v1: _IbcCoreClientV1Queryrpc.createRpcQueryMobxStores(rpc)
-        },
-        connection: {
-          v1: _IbcCoreConnectionV1Queryrpc.createRpcQueryMobxStores(rpc)
-        },
-        port: {
-          v1: _IbcCorePortV1Queryrpc.createRpcQueryMobxStores(rpc)
-        }
-      }
-    },
-    osmosis: {
-      claim: {
-        v1beta1: _OsmosisClaimV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      epochs: {
-        v1beta1: _OsmosisEpochsQueryrpc.createRpcQueryMobxStores(rpc)
-      },
-      gamm: {
-        v1beta1: _OsmosisGammV1beta1Queryrpc.createRpcQueryMobxStores(rpc),
-        v2: _OsmosisGammV2Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      ibcratelimit: {
-        v1beta1: _OsmosisIbcratelimitV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      incentives: _OsmosisIncentivesQueryrpc.createRpcQueryMobxStores(rpc),
-      lockup: _OsmosisLockupQueryrpc.createRpcQueryMobxStores(rpc),
-      mint: {
-        v1beta1: _OsmosisMintV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      poolincentives: {
-        v1beta1: _OsmosisPoolincentivesV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      superfluid: _OsmosisSuperfluidQueryrpc.createRpcQueryMobxStores(rpc),
-      tokenfactory: {
-        v1beta1: _OsmosisTokenfactoryV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      twap: {
-        v1beta1: _OsmosisTwapV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      },
-      txfees: {
-        v1beta1: _OsmosisTxfeesV1beta1Queryrpc.createRpcQueryMobxStores(rpc)
-      }
-    }
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/mobx.ts b/examples/injective/src/codegen/mobx.ts
deleted file mode 100644
index 3203ce55..00000000
--- a/examples/injective/src/codegen/mobx.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-
-import {
-  makeAutoObservable,
-  runInAction
-} from 'mobx';
-
-import { QueryStatus } from '@tanstack/react-query';
-
-export interface MobxResponse<T> {
-  data: T | undefined;
-  isSuccess: boolean;
-  isLoading: boolean;
-  refetch: () => Promise<void>;
-}
-
-export class QueryStore<Request, Response> {
-  state?: QueryStatus;
-  request?: Request;
-  response?: Response;
-  fetchFunc?: (request: Request) => Promise<Response>;
-
-  constructor(fetchFunc?: (request: Request) => Promise<Response>) {
-    this.fetchFunc = fetchFunc;
-    makeAutoObservable(this)
-  }
-
-  get isLoading() {
-    return this.state === 'loading';
-  }
-
-  get isSuccess() {
-    return this.state === 'success';
-  }
-
-  refetch = async (): Promise<void> => {
-    runInAction(() => {
-      this.response = void 0;
-      this.state = 'loading';
-    });
-    try {
-      if (!this.fetchFunc)
-        throw new Error(
-          'Query Service not initialized or request function not implemented'
-        );
-      if (!this.request) throw new Error('Request not provided');
-      const response = await this.fetchFunc(this.request);
-      runInAction(() => {
-        this.response = response;
-        this.state = 'success';
-      });
-      console.log(
-        '%cquery.rpc.Query.ts line:572 this.state',
-        'color: #007acc;',
-        this.state,
-        this.response
-      );
-    } catch (e) {
-      console.error(e);
-      runInAction(() => {
-        this.state = 'error';
-      });
-    }
-  }
-
-  getData(request?: Request): MobxResponse<Response> {
-    runInAction(() => {
-      this.request = request;
-    });
-    return {
-      data: this.response,
-      isSuccess: this.isSuccess,
-      isLoading: this.isLoading,
-      refetch: this.refetch,
-    };
-  }
-}
diff --git a/examples/injective/src/codegen/osmosis/bundle.ts b/examples/injective/src/codegen/osmosis/bundle.ts
deleted file mode 100644
index 550f65c8..00000000
--- a/examples/injective/src/codegen/osmosis/bundle.ts
+++ /dev/null
@@ -1,236 +0,0 @@
-import * as _132 from "./claim/v1beta1/claim";
-import * as _133 from "./claim/v1beta1/genesis";
-import * as _134 from "./claim/v1beta1/params";
-import * as _135 from "./claim/v1beta1/query";
-import * as _136 from "./epochs/genesis";
-import * as _137 from "./epochs/query";
-import * as _138 from "./gamm/pool-models/balancer/balancerPool";
-import * as _139 from "./gamm/v1beta1/genesis";
-import * as _140 from "./gamm/v1beta1/query";
-import * as _141 from "./gamm/v1beta1/tx";
-import * as _142 from "./gamm/pool-models/balancer/tx/tx";
-import * as _143 from "./gamm/pool-models/stableswap/stableswap_pool";
-import * as _144 from "./gamm/pool-models/stableswap/tx";
-import * as _145 from "./gamm/v2/query";
-import * as _146 from "./ibc-rate-limit/v1beta1/params";
-import * as _147 from "./ibc-rate-limit/v1beta1/query";
-import * as _148 from "./incentives/gauge";
-import * as _149 from "./incentives/genesis";
-import * as _150 from "./incentives/params";
-import * as _151 from "./incentives/query";
-import * as _152 from "./incentives/tx";
-import * as _153 from "./lockup/genesis";
-import * as _154 from "./lockup/lock";
-import * as _155 from "./lockup/params";
-import * as _156 from "./lockup/query";
-import * as _157 from "./lockup/tx";
-import * as _158 from "./mint/v1beta1/genesis";
-import * as _159 from "./mint/v1beta1/mint";
-import * as _160 from "./mint/v1beta1/query";
-import * as _161 from "./pool-incentives/v1beta1/genesis";
-import * as _162 from "./pool-incentives/v1beta1/gov";
-import * as _163 from "./pool-incentives/v1beta1/incentives";
-import * as _164 from "./pool-incentives/v1beta1/query";
-import * as _165 from "./sumtree/v1beta1/tree";
-import * as _166 from "./superfluid/genesis";
-import * as _167 from "./superfluid/params";
-import * as _168 from "./superfluid/query";
-import * as _169 from "./superfluid/superfluid";
-import * as _170 from "./superfluid/tx";
-import * as _171 from "./tokenfactory/v1beta1/authorityMetadata";
-import * as _172 from "./tokenfactory/v1beta1/genesis";
-import * as _173 from "./tokenfactory/v1beta1/params";
-import * as _174 from "./tokenfactory/v1beta1/query";
-import * as _175 from "./tokenfactory/v1beta1/tx";
-import * as _176 from "./twap/v1beta1/genesis";
-import * as _177 from "./twap/v1beta1/query";
-import * as _178 from "./twap/v1beta1/twap_record";
-import * as _179 from "./txfees/v1beta1/feetoken";
-import * as _180 from "./txfees/v1beta1/genesis";
-import * as _181 from "./txfees/v1beta1/gov";
-import * as _182 from "./txfees/v1beta1/query";
-import * as _275 from "./gamm/pool-models/balancer/tx/tx.amino";
-import * as _276 from "./gamm/pool-models/stableswap/tx.amino";
-import * as _277 from "./gamm/v1beta1/tx.amino";
-import * as _278 from "./incentives/tx.amino";
-import * as _279 from "./lockup/tx.amino";
-import * as _280 from "./superfluid/tx.amino";
-import * as _281 from "./tokenfactory/v1beta1/tx.amino";
-import * as _282 from "./gamm/pool-models/balancer/tx/tx.registry";
-import * as _283 from "./gamm/pool-models/stableswap/tx.registry";
-import * as _284 from "./gamm/v1beta1/tx.registry";
-import * as _285 from "./incentives/tx.registry";
-import * as _286 from "./lockup/tx.registry";
-import * as _287 from "./superfluid/tx.registry";
-import * as _288 from "./tokenfactory/v1beta1/tx.registry";
-import * as _289 from "./claim/v1beta1/query.rpc.Query";
-import * as _290 from "./epochs/query.rpc.Query";
-import * as _291 from "./gamm/v1beta1/query.rpc.Query";
-import * as _292 from "./gamm/v2/query.rpc.Query";
-import * as _293 from "./ibc-rate-limit/v1beta1/query.rpc.Query";
-import * as _294 from "./incentives/query.rpc.Query";
-import * as _295 from "./lockup/query.rpc.Query";
-import * as _296 from "./mint/v1beta1/query.rpc.Query";
-import * as _297 from "./pool-incentives/v1beta1/query.rpc.Query";
-import * as _298 from "./superfluid/query.rpc.Query";
-import * as _299 from "./tokenfactory/v1beta1/query.rpc.Query";
-import * as _300 from "./twap/v1beta1/query.rpc.Query";
-import * as _301 from "./txfees/v1beta1/query.rpc.Query";
-import * as _302 from "./gamm/pool-models/balancer/tx/tx.rpc.msg";
-import * as _303 from "./gamm/pool-models/stableswap/tx.rpc.msg";
-import * as _304 from "./gamm/v1beta1/tx.rpc.msg";
-import * as _305 from "./incentives/tx.rpc.msg";
-import * as _306 from "./lockup/tx.rpc.msg";
-import * as _307 from "./superfluid/tx.rpc.msg";
-import * as _308 from "./tokenfactory/v1beta1/tx.rpc.msg";
-import * as _315 from "./rpc.query";
-import * as _316 from "./rpc.tx";
-export namespace osmosis {
-  export namespace claim {
-    export const v1beta1 = {
-      ..._132,
-      ..._133,
-      ..._134,
-      ..._135,
-      ..._289
-    };
-  }
-  export namespace epochs {
-    export const v1beta1 = {
-      ..._136,
-      ..._137,
-      ..._290
-    };
-  }
-  export namespace gamm {
-    export const v1beta1 = {
-      ..._138,
-      ..._139,
-      ..._140,
-      ..._141,
-      ..._277,
-      ..._284,
-      ..._291,
-      ..._304
-    };
-    export namespace poolmodels {
-      export namespace balancer {
-        export const v1beta1 = {
-          ..._142,
-          ..._275,
-          ..._282,
-          ..._302
-        };
-      }
-      export namespace stableswap {
-        export const v1beta1 = {
-          ..._143,
-          ..._144,
-          ..._276,
-          ..._283,
-          ..._303
-        };
-      }
-    }
-    export const v2 = {
-      ..._145,
-      ..._292
-    };
-  }
-  export namespace ibcratelimit {
-    export const v1beta1 = {
-      ..._146,
-      ..._147,
-      ..._293
-    };
-  }
-  export const incentives = {
-    ..._148,
-    ..._149,
-    ..._150,
-    ..._151,
-    ..._152,
-    ..._278,
-    ..._285,
-    ..._294,
-    ..._305
-  };
-  export const lockup = {
-    ..._153,
-    ..._154,
-    ..._155,
-    ..._156,
-    ..._157,
-    ..._279,
-    ..._286,
-    ..._295,
-    ..._306
-  };
-  export namespace mint {
-    export const v1beta1 = {
-      ..._158,
-      ..._159,
-      ..._160,
-      ..._296
-    };
-  }
-  export namespace poolincentives {
-    export const v1beta1 = {
-      ..._161,
-      ..._162,
-      ..._163,
-      ..._164,
-      ..._297
-    };
-  }
-  export namespace store {
-    export const v1beta1 = {
-      ..._165
-    };
-  }
-  export const superfluid = {
-    ..._166,
-    ..._167,
-    ..._168,
-    ..._169,
-    ..._170,
-    ..._280,
-    ..._287,
-    ..._298,
-    ..._307
-  };
-  export namespace tokenfactory {
-    export const v1beta1 = {
-      ..._171,
-      ..._172,
-      ..._173,
-      ..._174,
-      ..._175,
-      ..._281,
-      ..._288,
-      ..._299,
-      ..._308
-    };
-  }
-  export namespace twap {
-    export const v1beta1 = {
-      ..._176,
-      ..._177,
-      ..._178,
-      ..._300
-    };
-  }
-  export namespace txfees {
-    export const v1beta1 = {
-      ..._179,
-      ..._180,
-      ..._181,
-      ..._182,
-      ..._301
-    };
-  }
-  export const ClientFactory = {
-    ..._315,
-    ..._316
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/claim/v1beta1/claim.ts b/examples/injective/src/codegen/osmosis/claim/v1beta1/claim.ts
deleted file mode 100644
index dd9113dd..00000000
--- a/examples/injective/src/codegen/osmosis/claim/v1beta1/claim.ts
+++ /dev/null
@@ -1,234 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-export enum Action {
-  ActionAddLiquidity = 0,
-  ActionSwap = 1,
-  ActionVote = 2,
-  ActionDelegateStake = 3,
-  UNRECOGNIZED = -1,
-}
-export const ActionSDKType = Action;
-export const ActionAmino = Action;
-export function actionFromJSON(object: any): Action {
-  switch (object) {
-    case 0:
-    case "ActionAddLiquidity":
-      return Action.ActionAddLiquidity;
-    case 1:
-    case "ActionSwap":
-      return Action.ActionSwap;
-    case 2:
-    case "ActionVote":
-      return Action.ActionVote;
-    case 3:
-    case "ActionDelegateStake":
-      return Action.ActionDelegateStake;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return Action.UNRECOGNIZED;
-  }
-}
-export function actionToJSON(object: Action): string {
-  switch (object) {
-    case Action.ActionAddLiquidity:
-      return "ActionAddLiquidity";
-    case Action.ActionSwap:
-      return "ActionSwap";
-    case Action.ActionVote:
-      return "ActionVote";
-    case Action.ActionDelegateStake:
-      return "ActionDelegateStake";
-    case Action.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** A Claim Records is the metadata of claim data per address */
-export interface ClaimRecord {
-  /** address of claim user */
-  address: string;
-  /** total initial claimable amount for the user */
-  initialClaimableAmount: Coin[];
-  /**
-   * true if action is completed
-   * index of bool in array refers to action enum #
-   */
-  actionCompleted: boolean[];
-}
-export interface ClaimRecordProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.ClaimRecord";
-  value: Uint8Array;
-}
-/** A Claim Records is the metadata of claim data per address */
-export interface ClaimRecordAmino {
-  /** address of claim user */
-  address: string;
-  /** total initial claimable amount for the user */
-  initial_claimable_amount: CoinAmino[];
-  /**
-   * true if action is completed
-   * index of bool in array refers to action enum #
-   */
-  action_completed: boolean[];
-}
-export interface ClaimRecordAminoMsg {
-  type: "osmosis/claim/claim-record";
-  value: ClaimRecordAmino;
-}
-/** A Claim Records is the metadata of claim data per address */
-export interface ClaimRecordSDKType {
-  address: string;
-  initial_claimable_amount: CoinSDKType[];
-  action_completed: boolean[];
-}
-function createBaseClaimRecord(): ClaimRecord {
-  return {
-    address: "",
-    initialClaimableAmount: [],
-    actionCompleted: []
-  };
-}
-export const ClaimRecord = {
-  typeUrl: "/osmosis.claim.v1beta1.ClaimRecord",
-  aminoType: "osmosis/claim/claim-record",
-  encode(message: ClaimRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    for (const v of message.initialClaimableAmount) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    writer.uint32(26).fork();
-    for (const v of message.actionCompleted) {
-      writer.bool(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ClaimRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseClaimRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.initialClaimableAmount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.actionCompleted.push(reader.bool());
-            }
-          } else {
-            message.actionCompleted.push(reader.bool());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ClaimRecord {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      initialClaimableAmount: Array.isArray(object?.initialClaimableAmount) ? object.initialClaimableAmount.map((e: any) => Coin.fromJSON(e)) : [],
-      actionCompleted: Array.isArray(object?.actionCompleted) ? object.actionCompleted.map((e: any) => Boolean(e)) : []
-    };
-  },
-  toJSON(message: ClaimRecord): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    if (message.initialClaimableAmount) {
-      obj.initialClaimableAmount = message.initialClaimableAmount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.initialClaimableAmount = [];
-    }
-    if (message.actionCompleted) {
-      obj.actionCompleted = message.actionCompleted.map(e => e);
-    } else {
-      obj.actionCompleted = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ClaimRecord>): ClaimRecord {
-    const message = createBaseClaimRecord();
-    message.address = object.address ?? "";
-    message.initialClaimableAmount = object.initialClaimableAmount?.map(e => Coin.fromPartial(e)) || [];
-    message.actionCompleted = object.actionCompleted?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ClaimRecordSDKType): ClaimRecord {
-    return {
-      address: object?.address,
-      initialClaimableAmount: Array.isArray(object?.initial_claimable_amount) ? object.initial_claimable_amount.map((e: any) => Coin.fromSDK(e)) : [],
-      actionCompleted: Array.isArray(object?.action_completed) ? object.action_completed.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ClaimRecord): ClaimRecordSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.initialClaimableAmount) {
-      obj.initial_claimable_amount = message.initialClaimableAmount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.initial_claimable_amount = [];
-    }
-    if (message.actionCompleted) {
-      obj.action_completed = message.actionCompleted.map(e => e);
-    } else {
-      obj.action_completed = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ClaimRecordAmino): ClaimRecord {
-    return {
-      address: object.address,
-      initialClaimableAmount: Array.isArray(object?.initial_claimable_amount) ? object.initial_claimable_amount.map((e: any) => Coin.fromAmino(e)) : [],
-      actionCompleted: Array.isArray(object?.action_completed) ? object.action_completed.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ClaimRecord): ClaimRecordAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    if (message.initialClaimableAmount) {
-      obj.initial_claimable_amount = message.initialClaimableAmount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.initial_claimable_amount = [];
-    }
-    if (message.actionCompleted) {
-      obj.action_completed = message.actionCompleted.map(e => e);
-    } else {
-      obj.action_completed = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ClaimRecordAminoMsg): ClaimRecord {
-    return ClaimRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: ClaimRecord): ClaimRecordAminoMsg {
-    return {
-      type: "osmosis/claim/claim-record",
-      value: ClaimRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ClaimRecordProtoMsg): ClaimRecord {
-    return ClaimRecord.decode(message.value);
-  },
-  toProto(message: ClaimRecord): Uint8Array {
-    return ClaimRecord.encode(message).finish();
-  },
-  toProtoMsg(message: ClaimRecord): ClaimRecordProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.ClaimRecord",
-      value: ClaimRecord.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/claim/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/claim/v1beta1/genesis.ts
deleted file mode 100644
index b7371366..00000000
--- a/examples/injective/src/codegen/osmosis/claim/v1beta1/genesis.ts
+++ /dev/null
@@ -1,165 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { ClaimRecord, ClaimRecordAmino, ClaimRecordSDKType } from "./claim";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the claim module's genesis state. */
-export interface GenesisState {
-  /** balance of the claim module's account */
-  moduleAccountBalance: Coin | undefined;
-  /** params defines all the parameters of the module. */
-  params: Params | undefined;
-  /** list of claim records, one for every airdrop recipient */
-  claimRecords: ClaimRecord[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the claim module's genesis state. */
-export interface GenesisStateAmino {
-  /** balance of the claim module's account */
-  module_account_balance?: CoinAmino | undefined;
-  /** params defines all the parameters of the module. */
-  params?: ParamsAmino | undefined;
-  /** list of claim records, one for every airdrop recipient */
-  claim_records: ClaimRecordAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/claim/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the claim module's genesis state. */
-export interface GenesisStateSDKType {
-  module_account_balance: CoinSDKType | undefined;
-  params: ParamsSDKType | undefined;
-  claim_records: ClaimRecordSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    moduleAccountBalance: Coin.fromPartial({}),
-    params: Params.fromPartial({}),
-    claimRecords: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.claim.v1beta1.GenesisState",
-  aminoType: "osmosis/claim/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.moduleAccountBalance !== undefined) {
-      Coin.encode(message.moduleAccountBalance, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.claimRecords) {
-      ClaimRecord.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.moduleAccountBalance = Coin.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.claimRecords.push(ClaimRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      moduleAccountBalance: isSet(object.moduleAccountBalance) ? Coin.fromJSON(object.moduleAccountBalance) : undefined,
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      claimRecords: Array.isArray(object?.claimRecords) ? object.claimRecords.map((e: any) => ClaimRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.moduleAccountBalance !== undefined && (obj.moduleAccountBalance = message.moduleAccountBalance ? Coin.toJSON(message.moduleAccountBalance) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.claimRecords) {
-      obj.claimRecords = message.claimRecords.map(e => e ? ClaimRecord.toJSON(e) : undefined);
-    } else {
-      obj.claimRecords = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.moduleAccountBalance = object.moduleAccountBalance !== undefined && object.moduleAccountBalance !== null ? Coin.fromPartial(object.moduleAccountBalance) : undefined;
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.claimRecords = object.claimRecords?.map(e => ClaimRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      moduleAccountBalance: object.module_account_balance ? Coin.fromSDK(object.module_account_balance) : undefined,
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      claimRecords: Array.isArray(object?.claim_records) ? object.claim_records.map((e: any) => ClaimRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.moduleAccountBalance !== undefined && (obj.module_account_balance = message.moduleAccountBalance ? Coin.toSDK(message.moduleAccountBalance) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.claimRecords) {
-      obj.claim_records = message.claimRecords.map(e => e ? ClaimRecord.toSDK(e) : undefined);
-    } else {
-      obj.claim_records = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      moduleAccountBalance: object?.module_account_balance ? Coin.fromAmino(object.module_account_balance) : undefined,
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      claimRecords: Array.isArray(object?.claim_records) ? object.claim_records.map((e: any) => ClaimRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.module_account_balance = message.moduleAccountBalance ? Coin.toAmino(message.moduleAccountBalance) : undefined;
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.claimRecords) {
-      obj.claim_records = message.claimRecords.map(e => e ? ClaimRecord.toAmino(e) : undefined);
-    } else {
-      obj.claim_records = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/claim/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/claim/v1beta1/params.ts b/examples/injective/src/codegen/osmosis/claim/v1beta1/params.ts
deleted file mode 100644
index 37b10433..00000000
--- a/examples/injective/src/codegen/osmosis/claim/v1beta1/params.ts
+++ /dev/null
@@ -1,165 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-/** Params defines the claim module's parameters. */
-export interface Params {
-  airdropStartTime: Date | undefined;
-  durationUntilDecay: Duration | undefined;
-  durationOfDecay: Duration | undefined;
-  /** denom of claimable asset */
-  claimDenom: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the claim module's parameters. */
-export interface ParamsAmino {
-  airdrop_start_time?: Date | undefined;
-  duration_until_decay?: DurationAmino | undefined;
-  duration_of_decay?: DurationAmino | undefined;
-  /** denom of claimable asset */
-  claim_denom: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/claim/params";
-  value: ParamsAmino;
-}
-/** Params defines the claim module's parameters. */
-export interface ParamsSDKType {
-  airdrop_start_time: Date | undefined;
-  duration_until_decay: DurationSDKType | undefined;
-  duration_of_decay: DurationSDKType | undefined;
-  claim_denom: string;
-}
-function createBaseParams(): Params {
-  return {
-    airdropStartTime: new Date(),
-    durationUntilDecay: Duration.fromPartial({}),
-    durationOfDecay: Duration.fromPartial({}),
-    claimDenom: ""
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.claim.v1beta1.Params",
-  aminoType: "osmosis/claim/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.airdropStartTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.airdropStartTime), writer.uint32(10).fork()).ldelim();
-    }
-    if (message.durationUntilDecay !== undefined) {
-      Duration.encode(message.durationUntilDecay, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.durationOfDecay !== undefined) {
-      Duration.encode(message.durationOfDecay, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.claimDenom !== "") {
-      writer.uint32(34).string(message.claimDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.airdropStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.durationUntilDecay = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.durationOfDecay = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.claimDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      airdropStartTime: isSet(object.airdropStartTime) ? new Date(object.airdropStartTime) : undefined,
-      durationUntilDecay: isSet(object.durationUntilDecay) ? Duration.fromJSON(object.durationUntilDecay) : undefined,
-      durationOfDecay: isSet(object.durationOfDecay) ? Duration.fromJSON(object.durationOfDecay) : undefined,
-      claimDenom: isSet(object.claimDenom) ? String(object.claimDenom) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.airdropStartTime !== undefined && (obj.airdropStartTime = message.airdropStartTime.toISOString());
-    message.durationUntilDecay !== undefined && (obj.durationUntilDecay = message.durationUntilDecay ? Duration.toJSON(message.durationUntilDecay) : undefined);
-    message.durationOfDecay !== undefined && (obj.durationOfDecay = message.durationOfDecay ? Duration.toJSON(message.durationOfDecay) : undefined);
-    message.claimDenom !== undefined && (obj.claimDenom = message.claimDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.airdropStartTime = object.airdropStartTime ?? undefined;
-    message.durationUntilDecay = object.durationUntilDecay !== undefined && object.durationUntilDecay !== null ? Duration.fromPartial(object.durationUntilDecay) : undefined;
-    message.durationOfDecay = object.durationOfDecay !== undefined && object.durationOfDecay !== null ? Duration.fromPartial(object.durationOfDecay) : undefined;
-    message.claimDenom = object.claimDenom ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      airdropStartTime: object.airdrop_start_time ?? undefined,
-      durationUntilDecay: object.duration_until_decay ? Duration.fromSDK(object.duration_until_decay) : undefined,
-      durationOfDecay: object.duration_of_decay ? Duration.fromSDK(object.duration_of_decay) : undefined,
-      claimDenom: object?.claim_denom
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    message.airdropStartTime !== undefined && (obj.airdrop_start_time = message.airdropStartTime ?? undefined);
-    message.durationUntilDecay !== undefined && (obj.duration_until_decay = message.durationUntilDecay ? Duration.toSDK(message.durationUntilDecay) : undefined);
-    message.durationOfDecay !== undefined && (obj.duration_of_decay = message.durationOfDecay ? Duration.toSDK(message.durationOfDecay) : undefined);
-    obj.claim_denom = message.claimDenom;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      airdropStartTime: object.airdrop_start_time,
-      durationUntilDecay: object?.duration_until_decay ? Duration.fromAmino(object.duration_until_decay) : undefined,
-      durationOfDecay: object?.duration_of_decay ? Duration.fromAmino(object.duration_of_decay) : undefined,
-      claimDenom: object.claim_denom
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.airdrop_start_time = message.airdropStartTime;
-    obj.duration_until_decay = message.durationUntilDecay ? Duration.toAmino(message.durationUntilDecay) : undefined;
-    obj.duration_of_decay = message.durationOfDecay ? Duration.toAmino(message.durationOfDecay) : undefined;
-    obj.claim_denom = message.claimDenom;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/claim/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/claim/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/claim/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 90cdd2f3..00000000
--- a/examples/injective/src/codegen/osmosis/claim/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,192 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryModuleAccountBalanceRequest, QueryModuleAccountBalanceResponse, QueryParamsRequest, QueryParamsResponse, QueryClaimRecordRequest, QueryClaimRecordResponse, QueryClaimableForActionRequest, QueryClaimableForActionResponse, QueryTotalClaimableRequest, QueryTotalClaimableResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  moduleAccountBalance(request?: QueryModuleAccountBalanceRequest): Promise<QueryModuleAccountBalanceResponse>;
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  claimRecord(request: QueryClaimRecordRequest): Promise<QueryClaimRecordResponse>;
-  claimableForAction(request: QueryClaimableForActionRequest): Promise<QueryClaimableForActionResponse>;
-  totalClaimable(request: QueryTotalClaimableRequest): Promise<QueryTotalClaimableResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.moduleAccountBalance = this.moduleAccountBalance.bind(this);
-    this.params = this.params.bind(this);
-    this.claimRecord = this.claimRecord.bind(this);
-    this.claimableForAction = this.claimableForAction.bind(this);
-    this.totalClaimable = this.totalClaimable.bind(this);
-  }
-  moduleAccountBalance(request: QueryModuleAccountBalanceRequest = {}): Promise<QueryModuleAccountBalanceResponse> {
-    const data = QueryModuleAccountBalanceRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.claim.v1beta1.Query", "ModuleAccountBalance", data);
-    return promise.then(data => QueryModuleAccountBalanceResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.claim.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  claimRecord(request: QueryClaimRecordRequest): Promise<QueryClaimRecordResponse> {
-    const data = QueryClaimRecordRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.claim.v1beta1.Query", "ClaimRecord", data);
-    return promise.then(data => QueryClaimRecordResponse.decode(new BinaryReader(data)));
-  }
-  claimableForAction(request: QueryClaimableForActionRequest): Promise<QueryClaimableForActionResponse> {
-    const data = QueryClaimableForActionRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.claim.v1beta1.Query", "ClaimableForAction", data);
-    return promise.then(data => QueryClaimableForActionResponse.decode(new BinaryReader(data)));
-  }
-  totalClaimable(request: QueryTotalClaimableRequest): Promise<QueryTotalClaimableResponse> {
-    const data = QueryTotalClaimableRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.claim.v1beta1.Query", "TotalClaimable", data);
-    return promise.then(data => QueryTotalClaimableResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    moduleAccountBalance(request?: QueryModuleAccountBalanceRequest): Promise<QueryModuleAccountBalanceResponse> {
-      return queryService.moduleAccountBalance(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    claimRecord(request: QueryClaimRecordRequest): Promise<QueryClaimRecordResponse> {
-      return queryService.claimRecord(request);
-    },
-    claimableForAction(request: QueryClaimableForActionRequest): Promise<QueryClaimableForActionResponse> {
-      return queryService.claimableForAction(request);
-    },
-    totalClaimable(request: QueryTotalClaimableRequest): Promise<QueryTotalClaimableResponse> {
-      return queryService.totalClaimable(request);
-    }
-  };
-};
-export interface UseModuleAccountBalanceQuery<TData> extends ReactQueryParams<QueryModuleAccountBalanceResponse, TData> {
-  request?: QueryModuleAccountBalanceRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseClaimRecordQuery<TData> extends ReactQueryParams<QueryClaimRecordResponse, TData> {
-  request: QueryClaimRecordRequest;
-}
-export interface UseClaimableForActionQuery<TData> extends ReactQueryParams<QueryClaimableForActionResponse, TData> {
-  request: QueryClaimableForActionRequest;
-}
-export interface UseTotalClaimableQuery<TData> extends ReactQueryParams<QueryTotalClaimableResponse, TData> {
-  request: QueryTotalClaimableRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useModuleAccountBalance = <TData = QueryModuleAccountBalanceResponse,>({
-    request,
-    options
-  }: UseModuleAccountBalanceQuery<TData>) => {
-    return useQuery<QueryModuleAccountBalanceResponse, Error, TData>(["moduleAccountBalanceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleAccountBalance(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useClaimRecord = <TData = QueryClaimRecordResponse,>({
-    request,
-    options
-  }: UseClaimRecordQuery<TData>) => {
-    return useQuery<QueryClaimRecordResponse, Error, TData>(["claimRecordQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.claimRecord(request);
-    }, options);
-  };
-  const useClaimableForAction = <TData = QueryClaimableForActionResponse,>({
-    request,
-    options
-  }: UseClaimableForActionQuery<TData>) => {
-    return useQuery<QueryClaimableForActionResponse, Error, TData>(["claimableForActionQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.claimableForAction(request);
-    }, options);
-  };
-  const useTotalClaimable = <TData = QueryTotalClaimableResponse,>({
-    request,
-    options
-  }: UseTotalClaimableQuery<TData>) => {
-    return useQuery<QueryTotalClaimableResponse, Error, TData>(["totalClaimableQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalClaimable(request);
-    }, options);
-  };
-  return {
-    useModuleAccountBalance,
-    useParams,
-    useClaimRecord,
-    useClaimableForAction,
-    useTotalClaimable
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryModuleAccountBalanceStore {
-    store = new QueryStore<QueryModuleAccountBalanceRequest, QueryModuleAccountBalanceResponse>(queryService?.moduleAccountBalance);
-    moduleAccountBalance(request: QueryModuleAccountBalanceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClaimRecordStore {
-    store = new QueryStore<QueryClaimRecordRequest, QueryClaimRecordResponse>(queryService?.claimRecord);
-    claimRecord(request: QueryClaimRecordRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryClaimableForActionStore {
-    store = new QueryStore<QueryClaimableForActionRequest, QueryClaimableForActionResponse>(queryService?.claimableForAction);
-    claimableForAction(request: QueryClaimableForActionRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalClaimableStore {
-    store = new QueryStore<QueryTotalClaimableRequest, QueryTotalClaimableResponse>(queryService?.totalClaimable);
-    totalClaimable(request: QueryTotalClaimableRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    QueryModuleAccountBalanceStore,
-    QueryParamsStore,
-    QueryClaimRecordStore,
-    QueryClaimableForActionStore,
-    QueryTotalClaimableStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/claim/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/claim/v1beta1/query.ts
deleted file mode 100644
index 80057376..00000000
--- a/examples/injective/src/codegen/osmosis/claim/v1beta1/query.ts
+++ /dev/null
@@ -1,1076 +0,0 @@
-import { Action, ClaimRecord, ClaimRecordAmino, ClaimRecordSDKType, actionFromJSON, actionToJSON } from "./claim";
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceRequest {}
-export interface QueryModuleAccountBalanceRequestProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceRequestAmino {}
-export interface QueryModuleAccountBalanceRequestAminoMsg {
-  type: "osmosis/claim/query-module-account-balance-request";
-  value: QueryModuleAccountBalanceRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceResponse {
-  /** params defines the parameters of the module. */
-  moduleAccountBalance: Coin[];
-}
-export interface QueryModuleAccountBalanceResponseProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceResponseAmino {
-  /** params defines the parameters of the module. */
-  moduleAccountBalance: CoinAmino[];
-}
-export interface QueryModuleAccountBalanceResponseAminoMsg {
-  type: "osmosis/claim/query-module-account-balance-response";
-  value: QueryModuleAccountBalanceResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryModuleAccountBalanceResponseSDKType {
-  moduleAccountBalance: CoinSDKType[];
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/claim/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/claim/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-export interface QueryClaimRecordRequest {
-  address: string;
-}
-export interface QueryClaimRecordRequestProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordRequest";
-  value: Uint8Array;
-}
-export interface QueryClaimRecordRequestAmino {
-  address: string;
-}
-export interface QueryClaimRecordRequestAminoMsg {
-  type: "osmosis/claim/query-claim-record-request";
-  value: QueryClaimRecordRequestAmino;
-}
-export interface QueryClaimRecordRequestSDKType {
-  address: string;
-}
-export interface QueryClaimRecordResponse {
-  claimRecord: ClaimRecord | undefined;
-}
-export interface QueryClaimRecordResponseProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordResponse";
-  value: Uint8Array;
-}
-export interface QueryClaimRecordResponseAmino {
-  claim_record?: ClaimRecordAmino | undefined;
-}
-export interface QueryClaimRecordResponseAminoMsg {
-  type: "osmosis/claim/query-claim-record-response";
-  value: QueryClaimRecordResponseAmino;
-}
-export interface QueryClaimRecordResponseSDKType {
-  claim_record: ClaimRecordSDKType | undefined;
-}
-export interface QueryClaimableForActionRequest {
-  address: string;
-  action: Action;
-}
-export interface QueryClaimableForActionRequestProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionRequest";
-  value: Uint8Array;
-}
-export interface QueryClaimableForActionRequestAmino {
-  address: string;
-  action: Action;
-}
-export interface QueryClaimableForActionRequestAminoMsg {
-  type: "osmosis/claim/query-claimable-for-action-request";
-  value: QueryClaimableForActionRequestAmino;
-}
-export interface QueryClaimableForActionRequestSDKType {
-  address: string;
-  action: Action;
-}
-export interface QueryClaimableForActionResponse {
-  coins: Coin[];
-}
-export interface QueryClaimableForActionResponseProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionResponse";
-  value: Uint8Array;
-}
-export interface QueryClaimableForActionResponseAmino {
-  coins: CoinAmino[];
-}
-export interface QueryClaimableForActionResponseAminoMsg {
-  type: "osmosis/claim/query-claimable-for-action-response";
-  value: QueryClaimableForActionResponseAmino;
-}
-export interface QueryClaimableForActionResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface QueryTotalClaimableRequest {
-  address: string;
-}
-export interface QueryTotalClaimableRequestProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableRequest";
-  value: Uint8Array;
-}
-export interface QueryTotalClaimableRequestAmino {
-  address: string;
-}
-export interface QueryTotalClaimableRequestAminoMsg {
-  type: "osmosis/claim/query-total-claimable-request";
-  value: QueryTotalClaimableRequestAmino;
-}
-export interface QueryTotalClaimableRequestSDKType {
-  address: string;
-}
-export interface QueryTotalClaimableResponse {
-  coins: Coin[];
-}
-export interface QueryTotalClaimableResponseProtoMsg {
-  typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalClaimableResponseAmino {
-  coins: CoinAmino[];
-}
-export interface QueryTotalClaimableResponseAminoMsg {
-  type: "osmosis/claim/query-total-claimable-response";
-  value: QueryTotalClaimableResponseAmino;
-}
-export interface QueryTotalClaimableResponseSDKType {
-  coins: CoinSDKType[];
-}
-function createBaseQueryModuleAccountBalanceRequest(): QueryModuleAccountBalanceRequest {
-  return {};
-}
-export const QueryModuleAccountBalanceRequest = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceRequest",
-  aminoType: "osmosis/claim/query-module-account-balance-request",
-  encode(_: QueryModuleAccountBalanceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleAccountBalanceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleAccountBalanceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryModuleAccountBalanceRequest {
-    return {};
-  },
-  toJSON(_: QueryModuleAccountBalanceRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryModuleAccountBalanceRequest>): QueryModuleAccountBalanceRequest {
-    const message = createBaseQueryModuleAccountBalanceRequest();
-    return message;
-  },
-  fromSDK(_: QueryModuleAccountBalanceRequestSDKType): QueryModuleAccountBalanceRequest {
-    return {};
-  },
-  toSDK(_: QueryModuleAccountBalanceRequest): QueryModuleAccountBalanceRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryModuleAccountBalanceRequestAmino): QueryModuleAccountBalanceRequest {
-    return {};
-  },
-  toAmino(_: QueryModuleAccountBalanceRequest): QueryModuleAccountBalanceRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleAccountBalanceRequestAminoMsg): QueryModuleAccountBalanceRequest {
-    return QueryModuleAccountBalanceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleAccountBalanceRequest): QueryModuleAccountBalanceRequestAminoMsg {
-    return {
-      type: "osmosis/claim/query-module-account-balance-request",
-      value: QueryModuleAccountBalanceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleAccountBalanceRequestProtoMsg): QueryModuleAccountBalanceRequest {
-    return QueryModuleAccountBalanceRequest.decode(message.value);
-  },
-  toProto(message: QueryModuleAccountBalanceRequest): Uint8Array {
-    return QueryModuleAccountBalanceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleAccountBalanceRequest): QueryModuleAccountBalanceRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceRequest",
-      value: QueryModuleAccountBalanceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryModuleAccountBalanceResponse(): QueryModuleAccountBalanceResponse {
-  return {
-    moduleAccountBalance: []
-  };
-}
-export const QueryModuleAccountBalanceResponse = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceResponse",
-  aminoType: "osmosis/claim/query-module-account-balance-response",
-  encode(message: QueryModuleAccountBalanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.moduleAccountBalance) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryModuleAccountBalanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryModuleAccountBalanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.moduleAccountBalance.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryModuleAccountBalanceResponse {
-    return {
-      moduleAccountBalance: Array.isArray(object?.moduleAccountBalance) ? object.moduleAccountBalance.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryModuleAccountBalanceResponse): unknown {
-    const obj: any = {};
-    if (message.moduleAccountBalance) {
-      obj.moduleAccountBalance = message.moduleAccountBalance.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.moduleAccountBalance = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryModuleAccountBalanceResponse>): QueryModuleAccountBalanceResponse {
-    const message = createBaseQueryModuleAccountBalanceResponse();
-    message.moduleAccountBalance = object.moduleAccountBalance?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryModuleAccountBalanceResponseSDKType): QueryModuleAccountBalanceResponse {
-    return {
-      moduleAccountBalance: Array.isArray(object?.moduleAccountBalance) ? object.moduleAccountBalance.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryModuleAccountBalanceResponse): QueryModuleAccountBalanceResponseSDKType {
-    const obj: any = {};
-    if (message.moduleAccountBalance) {
-      obj.moduleAccountBalance = message.moduleAccountBalance.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.moduleAccountBalance = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryModuleAccountBalanceResponseAmino): QueryModuleAccountBalanceResponse {
-    return {
-      moduleAccountBalance: Array.isArray(object?.moduleAccountBalance) ? object.moduleAccountBalance.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryModuleAccountBalanceResponse): QueryModuleAccountBalanceResponseAmino {
-    const obj: any = {};
-    if (message.moduleAccountBalance) {
-      obj.moduleAccountBalance = message.moduleAccountBalance.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.moduleAccountBalance = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryModuleAccountBalanceResponseAminoMsg): QueryModuleAccountBalanceResponse {
-    return QueryModuleAccountBalanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryModuleAccountBalanceResponse): QueryModuleAccountBalanceResponseAminoMsg {
-    return {
-      type: "osmosis/claim/query-module-account-balance-response",
-      value: QueryModuleAccountBalanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryModuleAccountBalanceResponseProtoMsg): QueryModuleAccountBalanceResponse {
-    return QueryModuleAccountBalanceResponse.decode(message.value);
-  },
-  toProto(message: QueryModuleAccountBalanceResponse): Uint8Array {
-    return QueryModuleAccountBalanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryModuleAccountBalanceResponse): QueryModuleAccountBalanceResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryModuleAccountBalanceResponse",
-      value: QueryModuleAccountBalanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryParamsRequest",
-  aminoType: "osmosis/claim/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/claim/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryParamsResponse",
-  aminoType: "osmosis/claim/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/claim/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClaimRecordRequest(): QueryClaimRecordRequest {
-  return {
-    address: ""
-  };
-}
-export const QueryClaimRecordRequest = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordRequest",
-  aminoType: "osmosis/claim/query-claim-record-request",
-  encode(message: QueryClaimRecordRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClaimRecordRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClaimRecordRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClaimRecordRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryClaimRecordRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClaimRecordRequest>): QueryClaimRecordRequest {
-    const message = createBaseQueryClaimRecordRequest();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryClaimRecordRequestSDKType): QueryClaimRecordRequest {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryClaimRecordRequest): QueryClaimRecordRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryClaimRecordRequestAmino): QueryClaimRecordRequest {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryClaimRecordRequest): QueryClaimRecordRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClaimRecordRequestAminoMsg): QueryClaimRecordRequest {
-    return QueryClaimRecordRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClaimRecordRequest): QueryClaimRecordRequestAminoMsg {
-    return {
-      type: "osmosis/claim/query-claim-record-request",
-      value: QueryClaimRecordRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClaimRecordRequestProtoMsg): QueryClaimRecordRequest {
-    return QueryClaimRecordRequest.decode(message.value);
-  },
-  toProto(message: QueryClaimRecordRequest): Uint8Array {
-    return QueryClaimRecordRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClaimRecordRequest): QueryClaimRecordRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordRequest",
-      value: QueryClaimRecordRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClaimRecordResponse(): QueryClaimRecordResponse {
-  return {
-    claimRecord: ClaimRecord.fromPartial({})
-  };
-}
-export const QueryClaimRecordResponse = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordResponse",
-  aminoType: "osmosis/claim/query-claim-record-response",
-  encode(message: QueryClaimRecordResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.claimRecord !== undefined) {
-      ClaimRecord.encode(message.claimRecord, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClaimRecordResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClaimRecordResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.claimRecord = ClaimRecord.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClaimRecordResponse {
-    return {
-      claimRecord: isSet(object.claimRecord) ? ClaimRecord.fromJSON(object.claimRecord) : undefined
-    };
-  },
-  toJSON(message: QueryClaimRecordResponse): unknown {
-    const obj: any = {};
-    message.claimRecord !== undefined && (obj.claimRecord = message.claimRecord ? ClaimRecord.toJSON(message.claimRecord) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClaimRecordResponse>): QueryClaimRecordResponse {
-    const message = createBaseQueryClaimRecordResponse();
-    message.claimRecord = object.claimRecord !== undefined && object.claimRecord !== null ? ClaimRecord.fromPartial(object.claimRecord) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryClaimRecordResponseSDKType): QueryClaimRecordResponse {
-    return {
-      claimRecord: object.claim_record ? ClaimRecord.fromSDK(object.claim_record) : undefined
-    };
-  },
-  toSDK(message: QueryClaimRecordResponse): QueryClaimRecordResponseSDKType {
-    const obj: any = {};
-    message.claimRecord !== undefined && (obj.claim_record = message.claimRecord ? ClaimRecord.toSDK(message.claimRecord) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryClaimRecordResponseAmino): QueryClaimRecordResponse {
-    return {
-      claimRecord: object?.claim_record ? ClaimRecord.fromAmino(object.claim_record) : undefined
-    };
-  },
-  toAmino(message: QueryClaimRecordResponse): QueryClaimRecordResponseAmino {
-    const obj: any = {};
-    obj.claim_record = message.claimRecord ? ClaimRecord.toAmino(message.claimRecord) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClaimRecordResponseAminoMsg): QueryClaimRecordResponse {
-    return QueryClaimRecordResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClaimRecordResponse): QueryClaimRecordResponseAminoMsg {
-    return {
-      type: "osmosis/claim/query-claim-record-response",
-      value: QueryClaimRecordResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClaimRecordResponseProtoMsg): QueryClaimRecordResponse {
-    return QueryClaimRecordResponse.decode(message.value);
-  },
-  toProto(message: QueryClaimRecordResponse): Uint8Array {
-    return QueryClaimRecordResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClaimRecordResponse): QueryClaimRecordResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryClaimRecordResponse",
-      value: QueryClaimRecordResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClaimableForActionRequest(): QueryClaimableForActionRequest {
-  return {
-    address: "",
-    action: 0
-  };
-}
-export const QueryClaimableForActionRequest = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionRequest",
-  aminoType: "osmosis/claim/query-claimable-for-action-request",
-  encode(message: QueryClaimableForActionRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.action !== 0) {
-      writer.uint32(16).int32(message.action);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClaimableForActionRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClaimableForActionRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.action = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClaimableForActionRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      action: isSet(object.action) ? actionFromJSON(object.action) : -1
-    };
-  },
-  toJSON(message: QueryClaimableForActionRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.action !== undefined && (obj.action = actionToJSON(message.action));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClaimableForActionRequest>): QueryClaimableForActionRequest {
-    const message = createBaseQueryClaimableForActionRequest();
-    message.address = object.address ?? "";
-    message.action = object.action ?? 0;
-    return message;
-  },
-  fromSDK(object: QueryClaimableForActionRequestSDKType): QueryClaimableForActionRequest {
-    return {
-      address: object?.address,
-      action: isSet(object.action) ? actionFromJSON(object.action) : -1
-    };
-  },
-  toSDK(message: QueryClaimableForActionRequest): QueryClaimableForActionRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.action !== undefined && (obj.action = actionToJSON(message.action));
-    return obj;
-  },
-  fromAmino(object: QueryClaimableForActionRequestAmino): QueryClaimableForActionRequest {
-    return {
-      address: object.address,
-      action: isSet(object.action) ? actionFromJSON(object.action) : -1
-    };
-  },
-  toAmino(message: QueryClaimableForActionRequest): QueryClaimableForActionRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.action = message.action;
-    return obj;
-  },
-  fromAminoMsg(object: QueryClaimableForActionRequestAminoMsg): QueryClaimableForActionRequest {
-    return QueryClaimableForActionRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClaimableForActionRequest): QueryClaimableForActionRequestAminoMsg {
-    return {
-      type: "osmosis/claim/query-claimable-for-action-request",
-      value: QueryClaimableForActionRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClaimableForActionRequestProtoMsg): QueryClaimableForActionRequest {
-    return QueryClaimableForActionRequest.decode(message.value);
-  },
-  toProto(message: QueryClaimableForActionRequest): Uint8Array {
-    return QueryClaimableForActionRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClaimableForActionRequest): QueryClaimableForActionRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionRequest",
-      value: QueryClaimableForActionRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryClaimableForActionResponse(): QueryClaimableForActionResponse {
-  return {
-    coins: []
-  };
-}
-export const QueryClaimableForActionResponse = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionResponse",
-  aminoType: "osmosis/claim/query-claimable-for-action-response",
-  encode(message: QueryClaimableForActionResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryClaimableForActionResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryClaimableForActionResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryClaimableForActionResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryClaimableForActionResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryClaimableForActionResponse>): QueryClaimableForActionResponse {
-    const message = createBaseQueryClaimableForActionResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryClaimableForActionResponseSDKType): QueryClaimableForActionResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryClaimableForActionResponse): QueryClaimableForActionResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryClaimableForActionResponseAmino): QueryClaimableForActionResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryClaimableForActionResponse): QueryClaimableForActionResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryClaimableForActionResponseAminoMsg): QueryClaimableForActionResponse {
-    return QueryClaimableForActionResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryClaimableForActionResponse): QueryClaimableForActionResponseAminoMsg {
-    return {
-      type: "osmosis/claim/query-claimable-for-action-response",
-      value: QueryClaimableForActionResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryClaimableForActionResponseProtoMsg): QueryClaimableForActionResponse {
-    return QueryClaimableForActionResponse.decode(message.value);
-  },
-  toProto(message: QueryClaimableForActionResponse): Uint8Array {
-    return QueryClaimableForActionResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryClaimableForActionResponse): QueryClaimableForActionResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryClaimableForActionResponse",
-      value: QueryClaimableForActionResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalClaimableRequest(): QueryTotalClaimableRequest {
-  return {
-    address: ""
-  };
-}
-export const QueryTotalClaimableRequest = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableRequest",
-  aminoType: "osmosis/claim/query-total-claimable-request",
-  encode(message: QueryTotalClaimableRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalClaimableRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalClaimableRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalClaimableRequest {
-    return {
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: QueryTotalClaimableRequest): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalClaimableRequest>): QueryTotalClaimableRequest {
-    const message = createBaseQueryTotalClaimableRequest();
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: QueryTotalClaimableRequestSDKType): QueryTotalClaimableRequest {
-    return {
-      address: object?.address
-    };
-  },
-  toSDK(message: QueryTotalClaimableRequest): QueryTotalClaimableRequestSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: QueryTotalClaimableRequestAmino): QueryTotalClaimableRequest {
-    return {
-      address: object.address
-    };
-  },
-  toAmino(message: QueryTotalClaimableRequest): QueryTotalClaimableRequestAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalClaimableRequestAminoMsg): QueryTotalClaimableRequest {
-    return QueryTotalClaimableRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalClaimableRequest): QueryTotalClaimableRequestAminoMsg {
-    return {
-      type: "osmosis/claim/query-total-claimable-request",
-      value: QueryTotalClaimableRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalClaimableRequestProtoMsg): QueryTotalClaimableRequest {
-    return QueryTotalClaimableRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalClaimableRequest): Uint8Array {
-    return QueryTotalClaimableRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalClaimableRequest): QueryTotalClaimableRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableRequest",
-      value: QueryTotalClaimableRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalClaimableResponse(): QueryTotalClaimableResponse {
-  return {
-    coins: []
-  };
-}
-export const QueryTotalClaimableResponse = {
-  typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableResponse",
-  aminoType: "osmosis/claim/query-total-claimable-response",
-  encode(message: QueryTotalClaimableResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalClaimableResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalClaimableResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalClaimableResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryTotalClaimableResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalClaimableResponse>): QueryTotalClaimableResponse {
-    const message = createBaseQueryTotalClaimableResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryTotalClaimableResponseSDKType): QueryTotalClaimableResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryTotalClaimableResponse): QueryTotalClaimableResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryTotalClaimableResponseAmino): QueryTotalClaimableResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryTotalClaimableResponse): QueryTotalClaimableResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalClaimableResponseAminoMsg): QueryTotalClaimableResponse {
-    return QueryTotalClaimableResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalClaimableResponse): QueryTotalClaimableResponseAminoMsg {
-    return {
-      type: "osmosis/claim/query-total-claimable-response",
-      value: QueryTotalClaimableResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalClaimableResponseProtoMsg): QueryTotalClaimableResponse {
-    return QueryTotalClaimableResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalClaimableResponse): Uint8Array {
-    return QueryTotalClaimableResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalClaimableResponse): QueryTotalClaimableResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.claim.v1beta1.QueryTotalClaimableResponse",
-      value: QueryTotalClaimableResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/client.ts b/examples/injective/src/codegen/osmosis/client.ts
deleted file mode 100644
index 48df1de1..00000000
--- a/examples/injective/src/codegen/osmosis/client.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { GeneratedType, Registry, OfflineSigner } from "@cosmjs/proto-signing";
-import { defaultRegistryTypes, AminoTypes, SigningStargateClient } from "@cosmjs/stargate";
-import { HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import * as osmosisGammPoolmodelsBalancerTxTxRegistry from "./gamm/pool-models/balancer/tx/tx.registry";
-import * as osmosisGammPoolmodelsStableswapTxRegistry from "./gamm/pool-models/stableswap/tx.registry";
-import * as osmosisGammV1beta1TxRegistry from "./gamm/v1beta1/tx.registry";
-import * as osmosisIncentivesTxRegistry from "./incentives/tx.registry";
-import * as osmosisLockupTxRegistry from "./lockup/tx.registry";
-import * as osmosisSuperfluidTxRegistry from "./superfluid/tx.registry";
-import * as osmosisTokenfactoryV1beta1TxRegistry from "./tokenfactory/v1beta1/tx.registry";
-import * as osmosisGammPoolmodelsBalancerTxTxAmino from "./gamm/pool-models/balancer/tx/tx.amino";
-import * as osmosisGammPoolmodelsStableswapTxAmino from "./gamm/pool-models/stableswap/tx.amino";
-import * as osmosisGammV1beta1TxAmino from "./gamm/v1beta1/tx.amino";
-import * as osmosisIncentivesTxAmino from "./incentives/tx.amino";
-import * as osmosisLockupTxAmino from "./lockup/tx.amino";
-import * as osmosisSuperfluidTxAmino from "./superfluid/tx.amino";
-import * as osmosisTokenfactoryV1beta1TxAmino from "./tokenfactory/v1beta1/tx.amino";
-export const osmosisAminoConverters = {
-  ...osmosisGammPoolmodelsBalancerTxTxAmino.AminoConverter,
-  ...osmosisGammPoolmodelsStableswapTxAmino.AminoConverter,
-  ...osmosisGammV1beta1TxAmino.AminoConverter,
-  ...osmosisIncentivesTxAmino.AminoConverter,
-  ...osmosisLockupTxAmino.AminoConverter,
-  ...osmosisSuperfluidTxAmino.AminoConverter,
-  ...osmosisTokenfactoryV1beta1TxAmino.AminoConverter
-};
-export const osmosisProtoRegistry: ReadonlyArray<[string, GeneratedType]> = [...osmosisGammPoolmodelsBalancerTxTxRegistry.registry, ...osmosisGammPoolmodelsStableswapTxRegistry.registry, ...osmosisGammV1beta1TxRegistry.registry, ...osmosisIncentivesTxRegistry.registry, ...osmosisLockupTxRegistry.registry, ...osmosisSuperfluidTxRegistry.registry, ...osmosisTokenfactoryV1beta1TxRegistry.registry];
-export const getSigningOsmosisClientOptions = ({
-  defaultTypes = defaultRegistryTypes
-}: {
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-} = {}): {
-  registry: Registry;
-  aminoTypes: AminoTypes;
-} => {
-  const registry = new Registry([...defaultTypes, ...osmosisProtoRegistry]);
-  const aminoTypes = new AminoTypes({
-    ...osmosisAminoConverters
-  });
-  return {
-    registry,
-    aminoTypes
-  };
-};
-export const getSigningOsmosisClient = async ({
-  rpcEndpoint,
-  signer,
-  defaultTypes = defaultRegistryTypes
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-  signer: OfflineSigner;
-  defaultTypes?: ReadonlyArray<[string, GeneratedType]>;
-}) => {
-  const {
-    registry,
-    aminoTypes
-  } = getSigningOsmosisClientOptions({
-    defaultTypes
-  });
-  const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
-    registry: (registry as any),
-    aminoTypes
-  });
-  return client;
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/epochs/genesis.ts b/examples/injective/src/codegen/osmosis/epochs/genesis.ts
deleted file mode 100644
index cf7fbccf..00000000
--- a/examples/injective/src/codegen/osmosis/epochs/genesis.ts
+++ /dev/null
@@ -1,433 +0,0 @@
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../helpers";
-/**
- * EpochInfo is a struct that describes the data going into
- * a timer defined by the x/epochs module.
- */
-export interface EpochInfo {
-  /** identifier is a unique reference to this particular timer. */
-  identifier: string;
-  /**
-   * start_time is the time at which the timer first ever ticks.
-   * If start_time is in the future, the epoch will not begin until the start
-   * time.
-   */
-  startTime: Date | undefined;
-  /**
-   * duration is the time in between epoch ticks.
-   * In order for intended behavior to be met, duration should
-   * be greater than the chains expected block time.
-   * Duration must be non-zero.
-   */
-  duration: Duration | undefined;
-  /**
-   * current_epoch is the current epoch number, or in other words,
-   * how many times has the timer 'ticked'.
-   * The first tick (current_epoch=1) is defined as
-   * the first block whose blocktime is greater than the EpochInfo start_time.
-   */
-  currentEpoch: bigint;
-  /**
-   * current_epoch_start_time describes the start time of the current timer
-   * interval. The interval is (current_epoch_start_time,
-   * current_epoch_start_time + duration] When the timer ticks, this is set to
-   * current_epoch_start_time = last_epoch_start_time + duration only one timer
-   * tick for a given identifier can occur per block.
-   * 
-   * NOTE! The current_epoch_start_time may diverge significantly from the
-   * wall-clock time the epoch began at. Wall-clock time of epoch start may be
-   * >> current_epoch_start_time. Suppose current_epoch_start_time = 10,
-   * duration = 5. Suppose the chain goes offline at t=14, and comes back online
-   * at t=30, and produces blocks at every successive time. (t=31, 32, etc.)
-   * * The t=30 block will start the epoch for (10, 15]
-   * * The t=31 block will start the epoch for (15, 20]
-   * * The t=32 block will start the epoch for (20, 25]
-   * * The t=33 block will start the epoch for (25, 30]
-   * * The t=34 block will start the epoch for (30, 35]
-   * * The **t=36** block will start the epoch for (35, 40]
-   */
-  currentEpochStartTime: Date | undefined;
-  /**
-   * epoch_counting_started is a boolean, that indicates whether this
-   * epoch timer has began yet.
-   */
-  epochCountingStarted: boolean;
-  /**
-   * current_epoch_start_height is the block height at which the current epoch
-   * started. (The block height at which the timer last ticked)
-   */
-  currentEpochStartHeight: bigint;
-}
-export interface EpochInfoProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.EpochInfo";
-  value: Uint8Array;
-}
-/**
- * EpochInfo is a struct that describes the data going into
- * a timer defined by the x/epochs module.
- */
-export interface EpochInfoAmino {
-  /** identifier is a unique reference to this particular timer. */
-  identifier: string;
-  /**
-   * start_time is the time at which the timer first ever ticks.
-   * If start_time is in the future, the epoch will not begin until the start
-   * time.
-   */
-  start_time?: Date | undefined;
-  /**
-   * duration is the time in between epoch ticks.
-   * In order for intended behavior to be met, duration should
-   * be greater than the chains expected block time.
-   * Duration must be non-zero.
-   */
-  duration?: DurationAmino | undefined;
-  /**
-   * current_epoch is the current epoch number, or in other words,
-   * how many times has the timer 'ticked'.
-   * The first tick (current_epoch=1) is defined as
-   * the first block whose blocktime is greater than the EpochInfo start_time.
-   */
-  current_epoch: string;
-  /**
-   * current_epoch_start_time describes the start time of the current timer
-   * interval. The interval is (current_epoch_start_time,
-   * current_epoch_start_time + duration] When the timer ticks, this is set to
-   * current_epoch_start_time = last_epoch_start_time + duration only one timer
-   * tick for a given identifier can occur per block.
-   * 
-   * NOTE! The current_epoch_start_time may diverge significantly from the
-   * wall-clock time the epoch began at. Wall-clock time of epoch start may be
-   * >> current_epoch_start_time. Suppose current_epoch_start_time = 10,
-   * duration = 5. Suppose the chain goes offline at t=14, and comes back online
-   * at t=30, and produces blocks at every successive time. (t=31, 32, etc.)
-   * * The t=30 block will start the epoch for (10, 15]
-   * * The t=31 block will start the epoch for (15, 20]
-   * * The t=32 block will start the epoch for (20, 25]
-   * * The t=33 block will start the epoch for (25, 30]
-   * * The t=34 block will start the epoch for (30, 35]
-   * * The **t=36** block will start the epoch for (35, 40]
-   */
-  current_epoch_start_time?: Date | undefined;
-  /**
-   * epoch_counting_started is a boolean, that indicates whether this
-   * epoch timer has began yet.
-   */
-  epoch_counting_started: boolean;
-  /**
-   * current_epoch_start_height is the block height at which the current epoch
-   * started. (The block height at which the timer last ticked)
-   */
-  current_epoch_start_height: string;
-}
-export interface EpochInfoAminoMsg {
-  type: "osmosis/epochs/epoch-info";
-  value: EpochInfoAmino;
-}
-/**
- * EpochInfo is a struct that describes the data going into
- * a timer defined by the x/epochs module.
- */
-export interface EpochInfoSDKType {
-  identifier: string;
-  start_time: Date | undefined;
-  duration: DurationSDKType | undefined;
-  current_epoch: bigint;
-  current_epoch_start_time: Date | undefined;
-  epoch_counting_started: boolean;
-  current_epoch_start_height: bigint;
-}
-/** GenesisState defines the epochs module's genesis state. */
-export interface GenesisState {
-  epochs: EpochInfo[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the epochs module's genesis state. */
-export interface GenesisStateAmino {
-  epochs: EpochInfoAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/epochs/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the epochs module's genesis state. */
-export interface GenesisStateSDKType {
-  epochs: EpochInfoSDKType[];
-}
-function createBaseEpochInfo(): EpochInfo {
-  return {
-    identifier: "",
-    startTime: new Date(),
-    duration: Duration.fromPartial({}),
-    currentEpoch: BigInt(0),
-    currentEpochStartTime: new Date(),
-    epochCountingStarted: false,
-    currentEpochStartHeight: BigInt(0)
-  };
-}
-export const EpochInfo = {
-  typeUrl: "/osmosis.epochs.v1beta1.EpochInfo",
-  aminoType: "osmosis/epochs/epoch-info",
-  encode(message: EpochInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.identifier !== "") {
-      writer.uint32(10).string(message.identifier);
-    }
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.currentEpoch !== BigInt(0)) {
-      writer.uint32(32).int64(message.currentEpoch);
-    }
-    if (message.currentEpochStartTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.currentEpochStartTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.epochCountingStarted === true) {
-      writer.uint32(48).bool(message.epochCountingStarted);
-    }
-    if (message.currentEpochStartHeight !== BigInt(0)) {
-      writer.uint32(64).int64(message.currentEpochStartHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EpochInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEpochInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.identifier = reader.string();
-          break;
-        case 2:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.currentEpoch = reader.int64();
-          break;
-        case 5:
-          message.currentEpochStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.epochCountingStarted = reader.bool();
-          break;
-        case 8:
-          message.currentEpochStartHeight = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EpochInfo {
-    return {
-      identifier: isSet(object.identifier) ? String(object.identifier) : "",
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined,
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      currentEpoch: isSet(object.currentEpoch) ? BigInt(object.currentEpoch.toString()) : BigInt(0),
-      currentEpochStartTime: isSet(object.currentEpochStartTime) ? new Date(object.currentEpochStartTime) : undefined,
-      epochCountingStarted: isSet(object.epochCountingStarted) ? Boolean(object.epochCountingStarted) : false,
-      currentEpochStartHeight: isSet(object.currentEpochStartHeight) ? BigInt(object.currentEpochStartHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EpochInfo): unknown {
-    const obj: any = {};
-    message.identifier !== undefined && (obj.identifier = message.identifier);
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    message.currentEpoch !== undefined && (obj.currentEpoch = (message.currentEpoch || BigInt(0)).toString());
-    message.currentEpochStartTime !== undefined && (obj.currentEpochStartTime = message.currentEpochStartTime.toISOString());
-    message.epochCountingStarted !== undefined && (obj.epochCountingStarted = message.epochCountingStarted);
-    message.currentEpochStartHeight !== undefined && (obj.currentEpochStartHeight = (message.currentEpochStartHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EpochInfo>): EpochInfo {
-    const message = createBaseEpochInfo();
-    message.identifier = object.identifier ?? "";
-    message.startTime = object.startTime ?? undefined;
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.currentEpoch = object.currentEpoch !== undefined && object.currentEpoch !== null ? BigInt(object.currentEpoch.toString()) : BigInt(0);
-    message.currentEpochStartTime = object.currentEpochStartTime ?? undefined;
-    message.epochCountingStarted = object.epochCountingStarted ?? false;
-    message.currentEpochStartHeight = object.currentEpochStartHeight !== undefined && object.currentEpochStartHeight !== null ? BigInt(object.currentEpochStartHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EpochInfoSDKType): EpochInfo {
-    return {
-      identifier: object?.identifier,
-      startTime: object.start_time ?? undefined,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      currentEpoch: object?.current_epoch,
-      currentEpochStartTime: object.current_epoch_start_time ?? undefined,
-      epochCountingStarted: object?.epoch_counting_started,
-      currentEpochStartHeight: object?.current_epoch_start_height
-    };
-  },
-  toSDK(message: EpochInfo): EpochInfoSDKType {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    obj.current_epoch = message.currentEpoch;
-    message.currentEpochStartTime !== undefined && (obj.current_epoch_start_time = message.currentEpochStartTime ?? undefined);
-    obj.epoch_counting_started = message.epochCountingStarted;
-    obj.current_epoch_start_height = message.currentEpochStartHeight;
-    return obj;
-  },
-  fromAmino(object: EpochInfoAmino): EpochInfo {
-    return {
-      identifier: object.identifier,
-      startTime: object.start_time,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      currentEpoch: BigInt(object.current_epoch),
-      currentEpochStartTime: object.current_epoch_start_time,
-      epochCountingStarted: object.epoch_counting_started,
-      currentEpochStartHeight: BigInt(object.current_epoch_start_height)
-    };
-  },
-  toAmino(message: EpochInfo): EpochInfoAmino {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    obj.start_time = message.startTime;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    obj.current_epoch = message.currentEpoch ? message.currentEpoch.toString() : undefined;
-    obj.current_epoch_start_time = message.currentEpochStartTime;
-    obj.epoch_counting_started = message.epochCountingStarted;
-    obj.current_epoch_start_height = message.currentEpochStartHeight ? message.currentEpochStartHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EpochInfoAminoMsg): EpochInfo {
-    return EpochInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: EpochInfo): EpochInfoAminoMsg {
-    return {
-      type: "osmosis/epochs/epoch-info",
-      value: EpochInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EpochInfoProtoMsg): EpochInfo {
-    return EpochInfo.decode(message.value);
-  },
-  toProto(message: EpochInfo): Uint8Array {
-    return EpochInfo.encode(message).finish();
-  },
-  toProtoMsg(message: EpochInfo): EpochInfoProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.EpochInfo",
-      value: EpochInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState(): GenesisState {
-  return {
-    epochs: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.epochs.v1beta1.GenesisState",
-  aminoType: "osmosis/epochs/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.epochs) {
-      EpochInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.epochs.push(EpochInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toJSON(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.epochs = object.epochs?.map(e => EpochInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toSDK(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toAmino(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/epochs/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/epochs/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/epochs/query.rpc.Query.ts
deleted file mode 100644
index f9598d98..00000000
--- a/examples/injective/src/codegen/osmosis/epochs/query.rpc.Query.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../mobx";
-import { QueryEpochsInfoRequest, QueryEpochsInfoResponse, QueryCurrentEpochRequest, QueryCurrentEpochResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** EpochInfos provide running epochInfos */
-  epochInfos(request?: QueryEpochsInfoRequest): Promise<QueryEpochsInfoResponse>;
-  /** CurrentEpoch provide current epoch of specified identifier */
-  currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.epochInfos = this.epochInfos.bind(this);
-    this.currentEpoch = this.currentEpoch.bind(this);
-  }
-  epochInfos(request: QueryEpochsInfoRequest = {}): Promise<QueryEpochsInfoResponse> {
-    const data = QueryEpochsInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.epochs.v1beta1.Query", "EpochInfos", data);
-    return promise.then(data => QueryEpochsInfoResponse.decode(new BinaryReader(data)));
-  }
-  currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse> {
-    const data = QueryCurrentEpochRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.epochs.v1beta1.Query", "CurrentEpoch", data);
-    return promise.then(data => QueryCurrentEpochResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    epochInfos(request?: QueryEpochsInfoRequest): Promise<QueryEpochsInfoResponse> {
-      return queryService.epochInfos(request);
-    },
-    currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse> {
-      return queryService.currentEpoch(request);
-    }
-  };
-};
-export interface UseEpochInfosQuery<TData> extends ReactQueryParams<QueryEpochsInfoResponse, TData> {
-  request?: QueryEpochsInfoRequest;
-}
-export interface UseCurrentEpochQuery<TData> extends ReactQueryParams<QueryCurrentEpochResponse, TData> {
-  request: QueryCurrentEpochRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useEpochInfos = <TData = QueryEpochsInfoResponse,>({
-    request,
-    options
-  }: UseEpochInfosQuery<TData>) => {
-    return useQuery<QueryEpochsInfoResponse, Error, TData>(["epochInfosQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.epochInfos(request);
-    }, options);
-  };
-  const useCurrentEpoch = <TData = QueryCurrentEpochResponse,>({
-    request,
-    options
-  }: UseCurrentEpochQuery<TData>) => {
-    return useQuery<QueryCurrentEpochResponse, Error, TData>(["currentEpochQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.currentEpoch(request);
-    }, options);
-  };
-  return {
-    /** EpochInfos provide running epochInfos */useEpochInfos,
-    /** CurrentEpoch provide current epoch of specified identifier */useCurrentEpoch
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryEpochInfosStore {
-    store = new QueryStore<QueryEpochsInfoRequest, QueryEpochsInfoResponse>(queryService?.epochInfos);
-    epochInfos(request: QueryEpochsInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCurrentEpochStore {
-    store = new QueryStore<QueryCurrentEpochRequest, QueryCurrentEpochResponse>(queryService?.currentEpoch);
-    currentEpoch(request: QueryCurrentEpochRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** EpochInfos provide running epochInfos */QueryEpochInfosStore,
-    /** CurrentEpoch provide current epoch of specified identifier */QueryCurrentEpochStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/epochs/query.ts b/examples/injective/src/codegen/osmosis/epochs/query.ts
deleted file mode 100644
index 8b1f52e8..00000000
--- a/examples/injective/src/codegen/osmosis/epochs/query.ts
+++ /dev/null
@@ -1,411 +0,0 @@
-import { EpochInfo, EpochInfoAmino, EpochInfoSDKType } from "./genesis";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial, isSet } from "../../helpers";
-export interface QueryEpochsInfoRequest {}
-export interface QueryEpochsInfoRequestProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoRequest";
-  value: Uint8Array;
-}
-export interface QueryEpochsInfoRequestAmino {}
-export interface QueryEpochsInfoRequestAminoMsg {
-  type: "osmosis/epochs/query-epochs-info-request";
-  value: QueryEpochsInfoRequestAmino;
-}
-export interface QueryEpochsInfoRequestSDKType {}
-export interface QueryEpochsInfoResponse {
-  epochs: EpochInfo[];
-}
-export interface QueryEpochsInfoResponseProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoResponse";
-  value: Uint8Array;
-}
-export interface QueryEpochsInfoResponseAmino {
-  epochs: EpochInfoAmino[];
-}
-export interface QueryEpochsInfoResponseAminoMsg {
-  type: "osmosis/epochs/query-epochs-info-response";
-  value: QueryEpochsInfoResponseAmino;
-}
-export interface QueryEpochsInfoResponseSDKType {
-  epochs: EpochInfoSDKType[];
-}
-export interface QueryCurrentEpochRequest {
-  identifier: string;
-}
-export interface QueryCurrentEpochRequestProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochRequest";
-  value: Uint8Array;
-}
-export interface QueryCurrentEpochRequestAmino {
-  identifier: string;
-}
-export interface QueryCurrentEpochRequestAminoMsg {
-  type: "osmosis/epochs/query-current-epoch-request";
-  value: QueryCurrentEpochRequestAmino;
-}
-export interface QueryCurrentEpochRequestSDKType {
-  identifier: string;
-}
-export interface QueryCurrentEpochResponse {
-  currentEpoch: bigint;
-}
-export interface QueryCurrentEpochResponseProtoMsg {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochResponse";
-  value: Uint8Array;
-}
-export interface QueryCurrentEpochResponseAmino {
-  current_epoch: string;
-}
-export interface QueryCurrentEpochResponseAminoMsg {
-  type: "osmosis/epochs/query-current-epoch-response";
-  value: QueryCurrentEpochResponseAmino;
-}
-export interface QueryCurrentEpochResponseSDKType {
-  current_epoch: bigint;
-}
-function createBaseQueryEpochsInfoRequest(): QueryEpochsInfoRequest {
-  return {};
-}
-export const QueryEpochsInfoRequest = {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoRequest",
-  aminoType: "osmosis/epochs/query-epochs-info-request",
-  encode(_: QueryEpochsInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEpochsInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEpochsInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryEpochsInfoRequest {
-    return {};
-  },
-  toJSON(_: QueryEpochsInfoRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryEpochsInfoRequest>): QueryEpochsInfoRequest {
-    const message = createBaseQueryEpochsInfoRequest();
-    return message;
-  },
-  fromSDK(_: QueryEpochsInfoRequestSDKType): QueryEpochsInfoRequest {
-    return {};
-  },
-  toSDK(_: QueryEpochsInfoRequest): QueryEpochsInfoRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryEpochsInfoRequestAmino): QueryEpochsInfoRequest {
-    return {};
-  },
-  toAmino(_: QueryEpochsInfoRequest): QueryEpochsInfoRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryEpochsInfoRequestAminoMsg): QueryEpochsInfoRequest {
-    return QueryEpochsInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEpochsInfoRequest): QueryEpochsInfoRequestAminoMsg {
-    return {
-      type: "osmosis/epochs/query-epochs-info-request",
-      value: QueryEpochsInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEpochsInfoRequestProtoMsg): QueryEpochsInfoRequest {
-    return QueryEpochsInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryEpochsInfoRequest): Uint8Array {
-    return QueryEpochsInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEpochsInfoRequest): QueryEpochsInfoRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoRequest",
-      value: QueryEpochsInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryEpochsInfoResponse(): QueryEpochsInfoResponse {
-  return {
-    epochs: []
-  };
-}
-export const QueryEpochsInfoResponse = {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoResponse",
-  aminoType: "osmosis/epochs/query-epochs-info-response",
-  encode(message: QueryEpochsInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.epochs) {
-      EpochInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEpochsInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEpochsInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.epochs.push(EpochInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryEpochsInfoResponse {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryEpochsInfoResponse): unknown {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toJSON(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryEpochsInfoResponse>): QueryEpochsInfoResponse {
-    const message = createBaseQueryEpochsInfoResponse();
-    message.epochs = object.epochs?.map(e => EpochInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryEpochsInfoResponseSDKType): QueryEpochsInfoResponse {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryEpochsInfoResponse): QueryEpochsInfoResponseSDKType {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toSDK(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryEpochsInfoResponseAmino): QueryEpochsInfoResponse {
-    return {
-      epochs: Array.isArray(object?.epochs) ? object.epochs.map((e: any) => EpochInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryEpochsInfoResponse): QueryEpochsInfoResponseAmino {
-    const obj: any = {};
-    if (message.epochs) {
-      obj.epochs = message.epochs.map(e => e ? EpochInfo.toAmino(e) : undefined);
-    } else {
-      obj.epochs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryEpochsInfoResponseAminoMsg): QueryEpochsInfoResponse {
-    return QueryEpochsInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEpochsInfoResponse): QueryEpochsInfoResponseAminoMsg {
-    return {
-      type: "osmosis/epochs/query-epochs-info-response",
-      value: QueryEpochsInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEpochsInfoResponseProtoMsg): QueryEpochsInfoResponse {
-    return QueryEpochsInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryEpochsInfoResponse): Uint8Array {
-    return QueryEpochsInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEpochsInfoResponse): QueryEpochsInfoResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.QueryEpochsInfoResponse",
-      value: QueryEpochsInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCurrentEpochRequest(): QueryCurrentEpochRequest {
-  return {
-    identifier: ""
-  };
-}
-export const QueryCurrentEpochRequest = {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochRequest",
-  aminoType: "osmosis/epochs/query-current-epoch-request",
-  encode(message: QueryCurrentEpochRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.identifier !== "") {
-      writer.uint32(10).string(message.identifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCurrentEpochRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCurrentEpochRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.identifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCurrentEpochRequest {
-    return {
-      identifier: isSet(object.identifier) ? String(object.identifier) : ""
-    };
-  },
-  toJSON(message: QueryCurrentEpochRequest): unknown {
-    const obj: any = {};
-    message.identifier !== undefined && (obj.identifier = message.identifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCurrentEpochRequest>): QueryCurrentEpochRequest {
-    const message = createBaseQueryCurrentEpochRequest();
-    message.identifier = object.identifier ?? "";
-    return message;
-  },
-  fromSDK(object: QueryCurrentEpochRequestSDKType): QueryCurrentEpochRequest {
-    return {
-      identifier: object?.identifier
-    };
-  },
-  toSDK(message: QueryCurrentEpochRequest): QueryCurrentEpochRequestSDKType {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    return obj;
-  },
-  fromAmino(object: QueryCurrentEpochRequestAmino): QueryCurrentEpochRequest {
-    return {
-      identifier: object.identifier
-    };
-  },
-  toAmino(message: QueryCurrentEpochRequest): QueryCurrentEpochRequestAmino {
-    const obj: any = {};
-    obj.identifier = message.identifier;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCurrentEpochRequestAminoMsg): QueryCurrentEpochRequest {
-    return QueryCurrentEpochRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCurrentEpochRequest): QueryCurrentEpochRequestAminoMsg {
-    return {
-      type: "osmosis/epochs/query-current-epoch-request",
-      value: QueryCurrentEpochRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCurrentEpochRequestProtoMsg): QueryCurrentEpochRequest {
-    return QueryCurrentEpochRequest.decode(message.value);
-  },
-  toProto(message: QueryCurrentEpochRequest): Uint8Array {
-    return QueryCurrentEpochRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCurrentEpochRequest): QueryCurrentEpochRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochRequest",
-      value: QueryCurrentEpochRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCurrentEpochResponse(): QueryCurrentEpochResponse {
-  return {
-    currentEpoch: BigInt(0)
-  };
-}
-export const QueryCurrentEpochResponse = {
-  typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochResponse",
-  aminoType: "osmosis/epochs/query-current-epoch-response",
-  encode(message: QueryCurrentEpochResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.currentEpoch !== BigInt(0)) {
-      writer.uint32(8).int64(message.currentEpoch);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCurrentEpochResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCurrentEpochResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.currentEpoch = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCurrentEpochResponse {
-    return {
-      currentEpoch: isSet(object.currentEpoch) ? BigInt(object.currentEpoch.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryCurrentEpochResponse): unknown {
-    const obj: any = {};
-    message.currentEpoch !== undefined && (obj.currentEpoch = (message.currentEpoch || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCurrentEpochResponse>): QueryCurrentEpochResponse {
-    const message = createBaseQueryCurrentEpochResponse();
-    message.currentEpoch = object.currentEpoch !== undefined && object.currentEpoch !== null ? BigInt(object.currentEpoch.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryCurrentEpochResponseSDKType): QueryCurrentEpochResponse {
-    return {
-      currentEpoch: object?.current_epoch
-    };
-  },
-  toSDK(message: QueryCurrentEpochResponse): QueryCurrentEpochResponseSDKType {
-    const obj: any = {};
-    obj.current_epoch = message.currentEpoch;
-    return obj;
-  },
-  fromAmino(object: QueryCurrentEpochResponseAmino): QueryCurrentEpochResponse {
-    return {
-      currentEpoch: BigInt(object.current_epoch)
-    };
-  },
-  toAmino(message: QueryCurrentEpochResponse): QueryCurrentEpochResponseAmino {
-    const obj: any = {};
-    obj.current_epoch = message.currentEpoch ? message.currentEpoch.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCurrentEpochResponseAminoMsg): QueryCurrentEpochResponse {
-    return QueryCurrentEpochResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCurrentEpochResponse): QueryCurrentEpochResponseAminoMsg {
-    return {
-      type: "osmosis/epochs/query-current-epoch-response",
-      value: QueryCurrentEpochResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCurrentEpochResponseProtoMsg): QueryCurrentEpochResponse {
-    return QueryCurrentEpochResponse.decode(message.value);
-  },
-  toProto(message: QueryCurrentEpochResponse): Uint8Array {
-    return QueryCurrentEpochResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCurrentEpochResponse): QueryCurrentEpochResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.epochs.v1beta1.QueryCurrentEpochResponse",
-      value: QueryCurrentEpochResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/balancerPool.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/balancerPool.ts
deleted file mode 100644
index 910a90e2..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/balancerPool.ts
+++ /dev/null
@@ -1,823 +0,0 @@
-import { Timestamp } from "../../../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../../../google/protobuf/duration";
-import { Coin, CoinAmino, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../../helpers";
-import { Decimal } from "@cosmjs/math";
-/**
- * Parameters for changing the weights in a balancer pool smoothly from
- * a start weight and end weight over a period of time.
- * Currently, the only smooth change supported is linear changing between
- * the two weights, but more types may be added in the future.
- * When these parameters are set, the weight w(t) for pool time `t` is the
- * following:
- *   t <= start_time: w(t) = initial_pool_weights
- *   start_time < t <= start_time + duration:
- *     w(t) = initial_pool_weights + (t - start_time) *
- *       (target_pool_weights - initial_pool_weights) / (duration)
- *   t > start_time + duration: w(t) = target_pool_weights
- */
-export interface SmoothWeightChangeParams {
-  /**
-   * The start time for beginning the weight change.
-   * If a parameter change / pool instantiation leaves this blank,
-   * it should be generated by the state_machine as the current time.
-   */
-  startTime: Date | undefined;
-  /** Duration for the weights to change over */
-  duration: Duration | undefined;
-  /**
-   * The initial pool weights. These are copied from the pool's settings
-   * at the time of weight change instantiation.
-   * The amount PoolAsset.token.amount field is ignored if present,
-   * future type refactorings should just have a type with the denom & weight
-   * here.
-   */
-  initialPoolWeights: PoolAsset[];
-  /**
-   * The target pool weights. The pool weights will change linearly with respect
-   * to time between start_time, and start_time + duration. The amount
-   * PoolAsset.token.amount field is ignored if present, future type
-   * refactorings should just have a type with the denom & weight here.
-   */
-  targetPoolWeights: PoolAsset[];
-}
-export interface SmoothWeightChangeParamsProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.SmoothWeightChangeParams";
-  value: Uint8Array;
-}
-/**
- * Parameters for changing the weights in a balancer pool smoothly from
- * a start weight and end weight over a period of time.
- * Currently, the only smooth change supported is linear changing between
- * the two weights, but more types may be added in the future.
- * When these parameters are set, the weight w(t) for pool time `t` is the
- * following:
- *   t <= start_time: w(t) = initial_pool_weights
- *   start_time < t <= start_time + duration:
- *     w(t) = initial_pool_weights + (t - start_time) *
- *       (target_pool_weights - initial_pool_weights) / (duration)
- *   t > start_time + duration: w(t) = target_pool_weights
- */
-export interface SmoothWeightChangeParamsAmino {
-  /**
-   * The start time for beginning the weight change.
-   * If a parameter change / pool instantiation leaves this blank,
-   * it should be generated by the state_machine as the current time.
-   */
-  start_time?: Date | undefined;
-  /** Duration for the weights to change over */
-  duration?: DurationAmino | undefined;
-  /**
-   * The initial pool weights. These are copied from the pool's settings
-   * at the time of weight change instantiation.
-   * The amount PoolAsset.token.amount field is ignored if present,
-   * future type refactorings should just have a type with the denom & weight
-   * here.
-   */
-  initial_pool_weights: PoolAssetAmino[];
-  /**
-   * The target pool weights. The pool weights will change linearly with respect
-   * to time between start_time, and start_time + duration. The amount
-   * PoolAsset.token.amount field is ignored if present, future type
-   * refactorings should just have a type with the denom & weight here.
-   */
-  target_pool_weights: PoolAssetAmino[];
-}
-export interface SmoothWeightChangeParamsAminoMsg {
-  type: "osmosis/gamm/smooth-weight-change-params";
-  value: SmoothWeightChangeParamsAmino;
-}
-/**
- * Parameters for changing the weights in a balancer pool smoothly from
- * a start weight and end weight over a period of time.
- * Currently, the only smooth change supported is linear changing between
- * the two weights, but more types may be added in the future.
- * When these parameters are set, the weight w(t) for pool time `t` is the
- * following:
- *   t <= start_time: w(t) = initial_pool_weights
- *   start_time < t <= start_time + duration:
- *     w(t) = initial_pool_weights + (t - start_time) *
- *       (target_pool_weights - initial_pool_weights) / (duration)
- *   t > start_time + duration: w(t) = target_pool_weights
- */
-export interface SmoothWeightChangeParamsSDKType {
-  start_time: Date | undefined;
-  duration: DurationSDKType | undefined;
-  initial_pool_weights: PoolAssetSDKType[];
-  target_pool_weights: PoolAssetSDKType[];
-}
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParams {
-  swapFee: string;
-  exitFee: string;
-  smoothWeightChangeParams?: SmoothWeightChangeParams | undefined;
-}
-export interface PoolParamsProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.PoolParams";
-  value: Uint8Array;
-}
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParamsAmino {
-  swap_fee: string;
-  exit_fee: string;
-  smooth_weight_change_params?: SmoothWeightChangeParamsAmino | undefined;
-}
-export interface PoolParamsAminoMsg {
-  type: "osmosis/gamm/pool-params";
-  value: PoolParamsAmino;
-}
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParamsSDKType {
-  swap_fee: string;
-  exit_fee: string;
-  smooth_weight_change_params?: SmoothWeightChangeParamsSDKType | undefined;
-}
-/**
- * Pool asset is an internal struct that combines the amount of the
- * token in the pool, and its balancer weight.
- * This is an awkward packaging of data,
- * and should be revisited in a future state migration.
- */
-export interface PoolAsset {
-  /**
-   * Coins we are talking about,
-   * the denomination must be unique amongst all PoolAssets for this pool.
-   */
-  token: Coin | undefined;
-  /** Weight that is not normalized. This weight must be less than 2^50 */
-  weight: string;
-}
-export interface PoolAssetProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.PoolAsset";
-  value: Uint8Array;
-}
-/**
- * Pool asset is an internal struct that combines the amount of the
- * token in the pool, and its balancer weight.
- * This is an awkward packaging of data,
- * and should be revisited in a future state migration.
- */
-export interface PoolAssetAmino {
-  /**
-   * Coins we are talking about,
-   * the denomination must be unique amongst all PoolAssets for this pool.
-   */
-  token?: CoinAmino | undefined;
-  /** Weight that is not normalized. This weight must be less than 2^50 */
-  weight: string;
-}
-export interface PoolAssetAminoMsg {
-  type: "osmosis/gamm/pool-asset";
-  value: PoolAssetAmino;
-}
-/**
- * Pool asset is an internal struct that combines the amount of the
- * token in the pool, and its balancer weight.
- * This is an awkward packaging of data,
- * and should be revisited in a future state migration.
- */
-export interface PoolAssetSDKType {
-  token: CoinSDKType | undefined;
-  weight: string;
-}
-export interface Pool {
-  address: string;
-  id: bigint;
-  poolParams: PoolParams | undefined;
-  /**
-   * This string specifies who will govern the pool in the future.
-   * Valid forms of this are:
-   * {token name},{duration}
-   * {duration}
-   * where {token name} if specified is the token which determines the
-   * governor, and if not specified is the LP token for this pool.duration is
-   * a time specified as 0w,1w,2w, etc. which specifies how long the token
-   * would need to be locked up to count in governance. 0w means no lockup.
-   * TODO: Further improve these docs
-   */
-  futurePoolGovernor: string;
-  /** sum of all LP tokens sent out */
-  totalShares: Coin | undefined;
-  /**
-   * These are assumed to be sorted by denomiation.
-   * They contain the pool asset and the information about the weight
-   */
-  poolAssets: PoolAsset[];
-  /** sum of all non-normalized pool weights */
-  totalWeight: string;
-}
-export interface PoolProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.Pool";
-  value: Uint8Array;
-}
-export interface PoolAmino {
-  address: string;
-  id: string;
-  pool_params?: PoolParamsAmino | undefined;
-  /**
-   * This string specifies who will govern the pool in the future.
-   * Valid forms of this are:
-   * {token name},{duration}
-   * {duration}
-   * where {token name} if specified is the token which determines the
-   * governor, and if not specified is the LP token for this pool.duration is
-   * a time specified as 0w,1w,2w, etc. which specifies how long the token
-   * would need to be locked up to count in governance. 0w means no lockup.
-   * TODO: Further improve these docs
-   */
-  future_pool_governor: string;
-  /** sum of all LP tokens sent out */
-  total_shares?: CoinAmino | undefined;
-  /**
-   * These are assumed to be sorted by denomiation.
-   * They contain the pool asset and the information about the weight
-   */
-  pool_assets: PoolAssetAmino[];
-  /** sum of all non-normalized pool weights */
-  total_weight: string;
-}
-export interface PoolAminoMsg {
-  type: "osmosis/gamm/pool";
-  value: PoolAmino;
-}
-export interface PoolSDKType {
-  address: string;
-  id: bigint;
-  pool_params: PoolParamsSDKType | undefined;
-  future_pool_governor: string;
-  total_shares: CoinSDKType | undefined;
-  pool_assets: PoolAssetSDKType[];
-  total_weight: string;
-}
-function createBaseSmoothWeightChangeParams(): SmoothWeightChangeParams {
-  return {
-    startTime: new Date(),
-    duration: Duration.fromPartial({}),
-    initialPoolWeights: [],
-    targetPoolWeights: []
-  };
-}
-export const SmoothWeightChangeParams = {
-  typeUrl: "/osmosis.gamm.v1beta1.SmoothWeightChangeParams",
-  aminoType: "osmosis/gamm/smooth-weight-change-params",
-  encode(message: SmoothWeightChangeParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(10).fork()).ldelim();
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.initialPoolWeights) {
-      PoolAsset.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.targetPoolWeights) {
-      PoolAsset.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SmoothWeightChangeParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSmoothWeightChangeParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.initialPoolWeights.push(PoolAsset.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.targetPoolWeights.push(PoolAsset.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SmoothWeightChangeParams {
-    return {
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined,
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      initialPoolWeights: Array.isArray(object?.initialPoolWeights) ? object.initialPoolWeights.map((e: any) => PoolAsset.fromJSON(e)) : [],
-      targetPoolWeights: Array.isArray(object?.targetPoolWeights) ? object.targetPoolWeights.map((e: any) => PoolAsset.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SmoothWeightChangeParams): unknown {
-    const obj: any = {};
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    if (message.initialPoolWeights) {
-      obj.initialPoolWeights = message.initialPoolWeights.map(e => e ? PoolAsset.toJSON(e) : undefined);
-    } else {
-      obj.initialPoolWeights = [];
-    }
-    if (message.targetPoolWeights) {
-      obj.targetPoolWeights = message.targetPoolWeights.map(e => e ? PoolAsset.toJSON(e) : undefined);
-    } else {
-      obj.targetPoolWeights = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SmoothWeightChangeParams>): SmoothWeightChangeParams {
-    const message = createBaseSmoothWeightChangeParams();
-    message.startTime = object.startTime ?? undefined;
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.initialPoolWeights = object.initialPoolWeights?.map(e => PoolAsset.fromPartial(e)) || [];
-    message.targetPoolWeights = object.targetPoolWeights?.map(e => PoolAsset.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SmoothWeightChangeParamsSDKType): SmoothWeightChangeParams {
-    return {
-      startTime: object.start_time ?? undefined,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      initialPoolWeights: Array.isArray(object?.initial_pool_weights) ? object.initial_pool_weights.map((e: any) => PoolAsset.fromSDK(e)) : [],
-      targetPoolWeights: Array.isArray(object?.target_pool_weights) ? object.target_pool_weights.map((e: any) => PoolAsset.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SmoothWeightChangeParams): SmoothWeightChangeParamsSDKType {
-    const obj: any = {};
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    if (message.initialPoolWeights) {
-      obj.initial_pool_weights = message.initialPoolWeights.map(e => e ? PoolAsset.toSDK(e) : undefined);
-    } else {
-      obj.initial_pool_weights = [];
-    }
-    if (message.targetPoolWeights) {
-      obj.target_pool_weights = message.targetPoolWeights.map(e => e ? PoolAsset.toSDK(e) : undefined);
-    } else {
-      obj.target_pool_weights = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SmoothWeightChangeParamsAmino): SmoothWeightChangeParams {
-    return {
-      startTime: object.start_time,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      initialPoolWeights: Array.isArray(object?.initial_pool_weights) ? object.initial_pool_weights.map((e: any) => PoolAsset.fromAmino(e)) : [],
-      targetPoolWeights: Array.isArray(object?.target_pool_weights) ? object.target_pool_weights.map((e: any) => PoolAsset.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SmoothWeightChangeParams): SmoothWeightChangeParamsAmino {
-    const obj: any = {};
-    obj.start_time = message.startTime;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    if (message.initialPoolWeights) {
-      obj.initial_pool_weights = message.initialPoolWeights.map(e => e ? PoolAsset.toAmino(e) : undefined);
-    } else {
-      obj.initial_pool_weights = [];
-    }
-    if (message.targetPoolWeights) {
-      obj.target_pool_weights = message.targetPoolWeights.map(e => e ? PoolAsset.toAmino(e) : undefined);
-    } else {
-      obj.target_pool_weights = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SmoothWeightChangeParamsAminoMsg): SmoothWeightChangeParams {
-    return SmoothWeightChangeParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: SmoothWeightChangeParams): SmoothWeightChangeParamsAminoMsg {
-    return {
-      type: "osmosis/gamm/smooth-weight-change-params",
-      value: SmoothWeightChangeParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SmoothWeightChangeParamsProtoMsg): SmoothWeightChangeParams {
-    return SmoothWeightChangeParams.decode(message.value);
-  },
-  toProto(message: SmoothWeightChangeParams): Uint8Array {
-    return SmoothWeightChangeParams.encode(message).finish();
-  },
-  toProtoMsg(message: SmoothWeightChangeParams): SmoothWeightChangeParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.SmoothWeightChangeParams",
-      value: SmoothWeightChangeParams.encode(message).finish()
-    };
-  }
-};
-function createBasePoolParams(): PoolParams {
-  return {
-    swapFee: "",
-    exitFee: "",
-    smoothWeightChangeParams: undefined
-  };
-}
-export const PoolParams = {
-  typeUrl: "/osmosis.gamm.v1beta1.PoolParams",
-  aminoType: "osmosis/gamm/pool-params",
-  encode(message: PoolParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.swapFee !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.swapFee, 18).atomics);
-    }
-    if (message.exitFee !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.exitFee, 18).atomics);
-    }
-    if (message.smoothWeightChangeParams !== undefined) {
-      SmoothWeightChangeParams.encode(message.smoothWeightChangeParams, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PoolParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePoolParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.swapFee = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.exitFee = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.smoothWeightChangeParams = SmoothWeightChangeParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PoolParams {
-    return {
-      swapFee: isSet(object.swapFee) ? String(object.swapFee) : "",
-      exitFee: isSet(object.exitFee) ? String(object.exitFee) : "",
-      smoothWeightChangeParams: isSet(object.smoothWeightChangeParams) ? SmoothWeightChangeParams.fromJSON(object.smoothWeightChangeParams) : undefined
-    };
-  },
-  toJSON(message: PoolParams): unknown {
-    const obj: any = {};
-    message.swapFee !== undefined && (obj.swapFee = message.swapFee);
-    message.exitFee !== undefined && (obj.exitFee = message.exitFee);
-    message.smoothWeightChangeParams !== undefined && (obj.smoothWeightChangeParams = message.smoothWeightChangeParams ? SmoothWeightChangeParams.toJSON(message.smoothWeightChangeParams) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PoolParams>): PoolParams {
-    const message = createBasePoolParams();
-    message.swapFee = object.swapFee ?? "";
-    message.exitFee = object.exitFee ?? "";
-    message.smoothWeightChangeParams = object.smoothWeightChangeParams !== undefined && object.smoothWeightChangeParams !== null ? SmoothWeightChangeParams.fromPartial(object.smoothWeightChangeParams) : undefined;
-    return message;
-  },
-  fromSDK(object: PoolParamsSDKType): PoolParams {
-    return {
-      swapFee: object?.swap_fee,
-      exitFee: object?.exit_fee,
-      smoothWeightChangeParams: object.smooth_weight_change_params ? SmoothWeightChangeParams.fromSDK(object.smooth_weight_change_params) : undefined
-    };
-  },
-  toSDK(message: PoolParams): PoolParamsSDKType {
-    const obj: any = {};
-    obj.swap_fee = message.swapFee;
-    obj.exit_fee = message.exitFee;
-    message.smoothWeightChangeParams !== undefined && (obj.smooth_weight_change_params = message.smoothWeightChangeParams ? SmoothWeightChangeParams.toSDK(message.smoothWeightChangeParams) : undefined);
-    return obj;
-  },
-  fromAmino(object: PoolParamsAmino): PoolParams {
-    return {
-      swapFee: object.swap_fee,
-      exitFee: object.exit_fee,
-      smoothWeightChangeParams: object?.smooth_weight_change_params ? SmoothWeightChangeParams.fromAmino(object.smooth_weight_change_params) : undefined
-    };
-  },
-  toAmino(message: PoolParams): PoolParamsAmino {
-    const obj: any = {};
-    obj.swap_fee = message.swapFee;
-    obj.exit_fee = message.exitFee;
-    obj.smooth_weight_change_params = message.smoothWeightChangeParams ? SmoothWeightChangeParams.toAmino(message.smoothWeightChangeParams) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PoolParamsAminoMsg): PoolParams {
-    return PoolParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: PoolParams): PoolParamsAminoMsg {
-    return {
-      type: "osmosis/gamm/pool-params",
-      value: PoolParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolParamsProtoMsg): PoolParams {
-    return PoolParams.decode(message.value);
-  },
-  toProto(message: PoolParams): Uint8Array {
-    return PoolParams.encode(message).finish();
-  },
-  toProtoMsg(message: PoolParams): PoolParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.PoolParams",
-      value: PoolParams.encode(message).finish()
-    };
-  }
-};
-function createBasePoolAsset(): PoolAsset {
-  return {
-    token: Coin.fromPartial({}),
-    weight: ""
-  };
-}
-export const PoolAsset = {
-  typeUrl: "/osmosis.gamm.v1beta1.PoolAsset",
-  aminoType: "osmosis/gamm/pool-asset",
-  encode(message: PoolAsset, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.token !== undefined) {
-      Coin.encode(message.token, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(message.weight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PoolAsset {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePoolAsset();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.token = Coin.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.weight = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PoolAsset {
-    return {
-      token: isSet(object.token) ? Coin.fromJSON(object.token) : undefined,
-      weight: isSet(object.weight) ? String(object.weight) : ""
-    };
-  },
-  toJSON(message: PoolAsset): unknown {
-    const obj: any = {};
-    message.token !== undefined && (obj.token = message.token ? Coin.toJSON(message.token) : undefined);
-    message.weight !== undefined && (obj.weight = message.weight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PoolAsset>): PoolAsset {
-    const message = createBasePoolAsset();
-    message.token = object.token !== undefined && object.token !== null ? Coin.fromPartial(object.token) : undefined;
-    message.weight = object.weight ?? "";
-    return message;
-  },
-  fromSDK(object: PoolAssetSDKType): PoolAsset {
-    return {
-      token: object.token ? Coin.fromSDK(object.token) : undefined,
-      weight: object?.weight
-    };
-  },
-  toSDK(message: PoolAsset): PoolAssetSDKType {
-    const obj: any = {};
-    message.token !== undefined && (obj.token = message.token ? Coin.toSDK(message.token) : undefined);
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAmino(object: PoolAssetAmino): PoolAsset {
-    return {
-      token: object?.token ? Coin.fromAmino(object.token) : undefined,
-      weight: object.weight
-    };
-  },
-  toAmino(message: PoolAsset): PoolAssetAmino {
-    const obj: any = {};
-    obj.token = message.token ? Coin.toAmino(message.token) : undefined;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAminoMsg(object: PoolAssetAminoMsg): PoolAsset {
-    return PoolAsset.fromAmino(object.value);
-  },
-  toAminoMsg(message: PoolAsset): PoolAssetAminoMsg {
-    return {
-      type: "osmosis/gamm/pool-asset",
-      value: PoolAsset.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolAssetProtoMsg): PoolAsset {
-    return PoolAsset.decode(message.value);
-  },
-  toProto(message: PoolAsset): Uint8Array {
-    return PoolAsset.encode(message).finish();
-  },
-  toProtoMsg(message: PoolAsset): PoolAssetProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.PoolAsset",
-      value: PoolAsset.encode(message).finish()
-    };
-  }
-};
-function createBasePool(): Pool {
-  return {
-    address: "",
-    id: BigInt(0),
-    poolParams: PoolParams.fromPartial({}),
-    futurePoolGovernor: "",
-    totalShares: Coin.fromPartial({}),
-    poolAssets: [],
-    totalWeight: ""
-  };
-}
-export const Pool = {
-  typeUrl: "/osmosis.gamm.v1beta1.Pool",
-  aminoType: "osmosis/gamm/pool",
-  encode(message: Pool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.id !== BigInt(0)) {
-      writer.uint32(16).uint64(message.id);
-    }
-    if (message.poolParams !== undefined) {
-      PoolParams.encode(message.poolParams, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.futurePoolGovernor !== "") {
-      writer.uint32(34).string(message.futurePoolGovernor);
-    }
-    if (message.totalShares !== undefined) {
-      Coin.encode(message.totalShares, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.poolAssets) {
-      PoolAsset.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.totalWeight !== "") {
-      writer.uint32(58).string(message.totalWeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Pool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.id = reader.uint64();
-          break;
-        case 3:
-          message.poolParams = PoolParams.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.futurePoolGovernor = reader.string();
-          break;
-        case 5:
-          message.totalShares = Coin.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.poolAssets.push(PoolAsset.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.totalWeight = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Pool {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      poolParams: isSet(object.poolParams) ? PoolParams.fromJSON(object.poolParams) : undefined,
-      futurePoolGovernor: isSet(object.futurePoolGovernor) ? String(object.futurePoolGovernor) : "",
-      totalShares: isSet(object.totalShares) ? Coin.fromJSON(object.totalShares) : undefined,
-      poolAssets: Array.isArray(object?.poolAssets) ? object.poolAssets.map((e: any) => PoolAsset.fromJSON(e)) : [],
-      totalWeight: isSet(object.totalWeight) ? String(object.totalWeight) : ""
-    };
-  },
-  toJSON(message: Pool): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    message.poolParams !== undefined && (obj.poolParams = message.poolParams ? PoolParams.toJSON(message.poolParams) : undefined);
-    message.futurePoolGovernor !== undefined && (obj.futurePoolGovernor = message.futurePoolGovernor);
-    message.totalShares !== undefined && (obj.totalShares = message.totalShares ? Coin.toJSON(message.totalShares) : undefined);
-    if (message.poolAssets) {
-      obj.poolAssets = message.poolAssets.map(e => e ? PoolAsset.toJSON(e) : undefined);
-    } else {
-      obj.poolAssets = [];
-    }
-    message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Pool>): Pool {
-    const message = createBasePool();
-    message.address = object.address ?? "";
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.poolParams = object.poolParams !== undefined && object.poolParams !== null ? PoolParams.fromPartial(object.poolParams) : undefined;
-    message.futurePoolGovernor = object.futurePoolGovernor ?? "";
-    message.totalShares = object.totalShares !== undefined && object.totalShares !== null ? Coin.fromPartial(object.totalShares) : undefined;
-    message.poolAssets = object.poolAssets?.map(e => PoolAsset.fromPartial(e)) || [];
-    message.totalWeight = object.totalWeight ?? "";
-    return message;
-  },
-  fromSDK(object: PoolSDKType): Pool {
-    return {
-      address: object?.address,
-      id: object?.id,
-      poolParams: object.pool_params ? PoolParams.fromSDK(object.pool_params) : undefined,
-      futurePoolGovernor: object?.future_pool_governor,
-      totalShares: object.total_shares ? Coin.fromSDK(object.total_shares) : undefined,
-      poolAssets: Array.isArray(object?.pool_assets) ? object.pool_assets.map((e: any) => PoolAsset.fromSDK(e)) : [],
-      totalWeight: object?.total_weight
-    };
-  },
-  toSDK(message: Pool): PoolSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.id = message.id;
-    message.poolParams !== undefined && (obj.pool_params = message.poolParams ? PoolParams.toSDK(message.poolParams) : undefined);
-    obj.future_pool_governor = message.futurePoolGovernor;
-    message.totalShares !== undefined && (obj.total_shares = message.totalShares ? Coin.toSDK(message.totalShares) : undefined);
-    if (message.poolAssets) {
-      obj.pool_assets = message.poolAssets.map(e => e ? PoolAsset.toSDK(e) : undefined);
-    } else {
-      obj.pool_assets = [];
-    }
-    obj.total_weight = message.totalWeight;
-    return obj;
-  },
-  fromAmino(object: PoolAmino): Pool {
-    return {
-      address: object.address,
-      id: BigInt(object.id),
-      poolParams: object?.pool_params ? PoolParams.fromAmino(object.pool_params) : undefined,
-      futurePoolGovernor: object.future_pool_governor,
-      totalShares: object?.total_shares ? Coin.fromAmino(object.total_shares) : undefined,
-      poolAssets: Array.isArray(object?.pool_assets) ? object.pool_assets.map((e: any) => PoolAsset.fromAmino(e)) : [],
-      totalWeight: object.total_weight
-    };
-  },
-  toAmino(message: Pool): PoolAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.id = message.id ? message.id.toString() : undefined;
-    obj.pool_params = message.poolParams ? PoolParams.toAmino(message.poolParams) : undefined;
-    obj.future_pool_governor = message.futurePoolGovernor;
-    obj.total_shares = message.totalShares ? Coin.toAmino(message.totalShares) : undefined;
-    if (message.poolAssets) {
-      obj.pool_assets = message.poolAssets.map(e => e ? PoolAsset.toAmino(e) : undefined);
-    } else {
-      obj.pool_assets = [];
-    }
-    obj.total_weight = message.totalWeight;
-    return obj;
-  },
-  fromAminoMsg(object: PoolAminoMsg): Pool {
-    return Pool.fromAmino(object.value);
-  },
-  toAminoMsg(message: Pool): PoolAminoMsg {
-    return {
-      type: "osmosis/gamm/pool",
-      value: Pool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolProtoMsg): Pool {
-    return Pool.decode(message.value);
-  },
-  toProto(message: Pool): Uint8Array {
-    return Pool.encode(message).finish();
-  },
-  toProtoMsg(message: Pool): PoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.Pool",
-      value: Pool.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.amino.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.amino.ts
deleted file mode 100644
index cba97bab..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.amino.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { MsgCreateBalancerPool } from "./tx";
-export const AminoConverter = {
-  "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool": {
-    aminoType: "osmosis/gamm/poolmodels/balancer/create-balancer-pool",
-    toAmino: MsgCreateBalancerPool.toAmino,
-    fromAmino: MsgCreateBalancerPool.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.registry.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.registry.ts
deleted file mode 100644
index ec61ee16..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.registry.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateBalancerPool } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool", MsgCreateBalancerPool]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createBalancerPool(value: MsgCreateBalancerPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-        value: MsgCreateBalancerPool.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createBalancerPool(value: MsgCreateBalancerPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createBalancerPool(value: MsgCreateBalancerPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-        value: MsgCreateBalancerPool.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createBalancerPool(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-        value: MsgCreateBalancerPool.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createBalancerPool(value: MsgCreateBalancerPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-        value: MsgCreateBalancerPool.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.rpc.msg.ts
deleted file mode 100644
index 049dae35..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.rpc.msg.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Rpc } from "../../../../../helpers";
-import { BinaryReader } from "../../../../../binary";
-import { MsgCreateBalancerPool, MsgCreateBalancerPoolResponse } from "./tx";
-export interface Msg {
-  createBalancerPool(request: MsgCreateBalancerPool): Promise<MsgCreateBalancerPoolResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createBalancerPool = this.createBalancerPool.bind(this);
-  }
-  createBalancerPool(request: MsgCreateBalancerPool): Promise<MsgCreateBalancerPoolResponse> {
-    const data = MsgCreateBalancerPool.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.poolmodels.balancer.v1beta1.Msg", "CreateBalancerPool", data);
-    return promise.then(data => MsgCreateBalancerPoolResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.ts
deleted file mode 100644
index ff427e30..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/balancer/tx/tx.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-import { PoolParams, PoolParamsAmino, PoolParamsSDKType, PoolAsset, PoolAssetAmino, PoolAssetSDKType } from "../balancerPool";
-import { BinaryReader, BinaryWriter } from "../../../../../binary";
-import { isSet, DeepPartial } from "../../../../../helpers";
-/** ===================== MsgCreatePool */
-export interface MsgCreateBalancerPool {
-  sender: string;
-  poolParams: PoolParams | undefined;
-  poolAssets: PoolAsset[];
-  futurePoolGovernor: string;
-}
-export interface MsgCreateBalancerPoolProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool";
-  value: Uint8Array;
-}
-/** ===================== MsgCreatePool */
-export interface MsgCreateBalancerPoolAmino {
-  sender: string;
-  pool_params?: PoolParamsAmino | undefined;
-  pool_assets: PoolAssetAmino[];
-  future_pool_governor: string;
-}
-export interface MsgCreateBalancerPoolAminoMsg {
-  type: "osmosis/gamm/poolmodels/balancer/create-balancer-pool";
-  value: MsgCreateBalancerPoolAmino;
-}
-/** ===================== MsgCreatePool */
-export interface MsgCreateBalancerPoolSDKType {
-  sender: string;
-  pool_params: PoolParamsSDKType | undefined;
-  pool_assets: PoolAssetSDKType[];
-  future_pool_governor: string;
-}
-/** Returns the poolID */
-export interface MsgCreateBalancerPoolResponse {
-  poolId: bigint;
-}
-export interface MsgCreateBalancerPoolResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPoolResponse";
-  value: Uint8Array;
-}
-/** Returns the poolID */
-export interface MsgCreateBalancerPoolResponseAmino {
-  pool_id: string;
-}
-export interface MsgCreateBalancerPoolResponseAminoMsg {
-  type: "osmosis/gamm/poolmodels/balancer/create-balancer-pool-response";
-  value: MsgCreateBalancerPoolResponseAmino;
-}
-/** Returns the poolID */
-export interface MsgCreateBalancerPoolResponseSDKType {
-  pool_id: bigint;
-}
-function createBaseMsgCreateBalancerPool(): MsgCreateBalancerPool {
-  return {
-    sender: "",
-    poolParams: PoolParams.fromPartial({}),
-    poolAssets: [],
-    futurePoolGovernor: ""
-  };
-}
-export const MsgCreateBalancerPool = {
-  typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-  aminoType: "osmosis/gamm/poolmodels/balancer/create-balancer-pool",
-  encode(message: MsgCreateBalancerPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolParams !== undefined) {
-      PoolParams.encode(message.poolParams, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.poolAssets) {
-      PoolAsset.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.futurePoolGovernor !== "") {
-      writer.uint32(34).string(message.futurePoolGovernor);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateBalancerPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateBalancerPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolParams = PoolParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.poolAssets.push(PoolAsset.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.futurePoolGovernor = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateBalancerPool {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolParams: isSet(object.poolParams) ? PoolParams.fromJSON(object.poolParams) : undefined,
-      poolAssets: Array.isArray(object?.poolAssets) ? object.poolAssets.map((e: any) => PoolAsset.fromJSON(e)) : [],
-      futurePoolGovernor: isSet(object.futurePoolGovernor) ? String(object.futurePoolGovernor) : ""
-    };
-  },
-  toJSON(message: MsgCreateBalancerPool): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolParams !== undefined && (obj.poolParams = message.poolParams ? PoolParams.toJSON(message.poolParams) : undefined);
-    if (message.poolAssets) {
-      obj.poolAssets = message.poolAssets.map(e => e ? PoolAsset.toJSON(e) : undefined);
-    } else {
-      obj.poolAssets = [];
-    }
-    message.futurePoolGovernor !== undefined && (obj.futurePoolGovernor = message.futurePoolGovernor);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateBalancerPool>): MsgCreateBalancerPool {
-    const message = createBaseMsgCreateBalancerPool();
-    message.sender = object.sender ?? "";
-    message.poolParams = object.poolParams !== undefined && object.poolParams !== null ? PoolParams.fromPartial(object.poolParams) : undefined;
-    message.poolAssets = object.poolAssets?.map(e => PoolAsset.fromPartial(e)) || [];
-    message.futurePoolGovernor = object.futurePoolGovernor ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateBalancerPoolSDKType): MsgCreateBalancerPool {
-    return {
-      sender: object?.sender,
-      poolParams: object.pool_params ? PoolParams.fromSDK(object.pool_params) : undefined,
-      poolAssets: Array.isArray(object?.pool_assets) ? object.pool_assets.map((e: any) => PoolAsset.fromSDK(e)) : [],
-      futurePoolGovernor: object?.future_pool_governor
-    };
-  },
-  toSDK(message: MsgCreateBalancerPool): MsgCreateBalancerPoolSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    message.poolParams !== undefined && (obj.pool_params = message.poolParams ? PoolParams.toSDK(message.poolParams) : undefined);
-    if (message.poolAssets) {
-      obj.pool_assets = message.poolAssets.map(e => e ? PoolAsset.toSDK(e) : undefined);
-    } else {
-      obj.pool_assets = [];
-    }
-    obj.future_pool_governor = message.futurePoolGovernor;
-    return obj;
-  },
-  fromAmino(object: MsgCreateBalancerPoolAmino): MsgCreateBalancerPool {
-    return {
-      sender: object.sender,
-      poolParams: object?.pool_params ? PoolParams.fromAmino(object.pool_params) : undefined,
-      poolAssets: Array.isArray(object?.pool_assets) ? object.pool_assets.map((e: any) => PoolAsset.fromAmino(e)) : [],
-      futurePoolGovernor: object.future_pool_governor
-    };
-  },
-  toAmino(message: MsgCreateBalancerPool): MsgCreateBalancerPoolAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_params = message.poolParams ? PoolParams.toAmino(message.poolParams) : undefined;
-    if (message.poolAssets) {
-      obj.pool_assets = message.poolAssets.map(e => e ? PoolAsset.toAmino(e) : undefined);
-    } else {
-      obj.pool_assets = [];
-    }
-    obj.future_pool_governor = message.futurePoolGovernor;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateBalancerPoolAminoMsg): MsgCreateBalancerPool {
-    return MsgCreateBalancerPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateBalancerPool): MsgCreateBalancerPoolAminoMsg {
-    return {
-      type: "osmosis/gamm/poolmodels/balancer/create-balancer-pool",
-      value: MsgCreateBalancerPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateBalancerPoolProtoMsg): MsgCreateBalancerPool {
-    return MsgCreateBalancerPool.decode(message.value);
-  },
-  toProto(message: MsgCreateBalancerPool): Uint8Array {
-    return MsgCreateBalancerPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateBalancerPool): MsgCreateBalancerPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPool",
-      value: MsgCreateBalancerPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateBalancerPoolResponse(): MsgCreateBalancerPoolResponse {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const MsgCreateBalancerPoolResponse = {
-  typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPoolResponse",
-  aminoType: "osmosis/gamm/poolmodels/balancer/create-balancer-pool-response",
-  encode(message: MsgCreateBalancerPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateBalancerPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateBalancerPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateBalancerPoolResponse {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgCreateBalancerPoolResponse): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateBalancerPoolResponse>): MsgCreateBalancerPoolResponse {
-    const message = createBaseMsgCreateBalancerPoolResponse();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgCreateBalancerPoolResponseSDKType): MsgCreateBalancerPoolResponse {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: MsgCreateBalancerPoolResponse): MsgCreateBalancerPoolResponseSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: MsgCreateBalancerPoolResponseAmino): MsgCreateBalancerPoolResponse {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: MsgCreateBalancerPoolResponse): MsgCreateBalancerPoolResponseAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateBalancerPoolResponseAminoMsg): MsgCreateBalancerPoolResponse {
-    return MsgCreateBalancerPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateBalancerPoolResponse): MsgCreateBalancerPoolResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/poolmodels/balancer/create-balancer-pool-response",
-      value: MsgCreateBalancerPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateBalancerPoolResponseProtoMsg): MsgCreateBalancerPoolResponse {
-    return MsgCreateBalancerPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateBalancerPoolResponse): Uint8Array {
-    return MsgCreateBalancerPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateBalancerPoolResponse): MsgCreateBalancerPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.balancer.v1beta1.MsgCreateBalancerPoolResponse",
-      value: MsgCreateBalancerPoolResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/stableswap_pool.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/stableswap_pool.ts
deleted file mode 100644
index 4a393523..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/stableswap_pool.ts
+++ /dev/null
@@ -1,432 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial } from "../../../../helpers";
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParams {
-  swapFee: string;
-  exitFee: string;
-}
-export interface PoolParamsProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.PoolParams";
-  value: Uint8Array;
-}
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParamsAmino {
-  swap_fee: string;
-  exit_fee: string;
-}
-export interface PoolParamsAminoMsg {
-  type: "osmosis/gamm/pool-params";
-  value: PoolParamsAmino;
-}
-/**
- * PoolParams defined the parameters that will be managed by the pool
- * governance in the future. This params are not managed by the chain
- * governance. Instead they will be managed by the token holders of the pool.
- * The pool's token holders are specified in future_pool_governor.
- */
-export interface PoolParamsSDKType {
-  swap_fee: string;
-  exit_fee: string;
-}
-/** Pool is the stableswap Pool struct */
-export interface Pool {
-  address: string;
-  id: bigint;
-  poolParams: PoolParams | undefined;
-  /**
-   * This string specifies who will govern the pool in the future.
-   * Valid forms of this are:
-   * {token name},{duration}
-   * {duration}
-   * where {token name} if specified is the token which determines the
-   * governor, and if not specified is the LP token for this pool.duration is
-   * a time specified as 0w,1w,2w, etc. which specifies how long the token
-   * would need to be locked up to count in governance. 0w means no lockup.
-   */
-  futurePoolGovernor: string;
-  /** sum of all LP shares */
-  totalShares: Coin | undefined;
-  /** assets in the pool */
-  poolLiquidity: Coin[];
-  /** for calculation amognst assets with different precisions */
-  scalingFactors: bigint[];
-  /** scaling_factor_controller is the address can adjust pool scaling factors */
-  scalingFactorController: string;
-}
-export interface PoolProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.Pool";
-  value: Uint8Array;
-}
-/** Pool is the stableswap Pool struct */
-export interface PoolAmino {
-  address: string;
-  id: string;
-  pool_params?: PoolParamsAmino | undefined;
-  /**
-   * This string specifies who will govern the pool in the future.
-   * Valid forms of this are:
-   * {token name},{duration}
-   * {duration}
-   * where {token name} if specified is the token which determines the
-   * governor, and if not specified is the LP token for this pool.duration is
-   * a time specified as 0w,1w,2w, etc. which specifies how long the token
-   * would need to be locked up to count in governance. 0w means no lockup.
-   */
-  future_pool_governor: string;
-  /** sum of all LP shares */
-  total_shares?: CoinAmino | undefined;
-  /** assets in the pool */
-  pool_liquidity: CoinAmino[];
-  /** for calculation amognst assets with different precisions */
-  scaling_factors: string[];
-  /** scaling_factor_controller is the address can adjust pool scaling factors */
-  scaling_factor_controller: string;
-}
-export interface PoolAminoMsg {
-  type: "osmosis/gamm/pool";
-  value: PoolAmino;
-}
-/** Pool is the stableswap Pool struct */
-export interface PoolSDKType {
-  address: string;
-  id: bigint;
-  pool_params: PoolParamsSDKType | undefined;
-  future_pool_governor: string;
-  total_shares: CoinSDKType | undefined;
-  pool_liquidity: CoinSDKType[];
-  scaling_factors: bigint[];
-  scaling_factor_controller: string;
-}
-function createBasePoolParams(): PoolParams {
-  return {
-    swapFee: "",
-    exitFee: ""
-  };
-}
-export const PoolParams = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.PoolParams",
-  aminoType: "osmosis/gamm/pool-params",
-  encode(message: PoolParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.swapFee !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.swapFee, 18).atomics);
-    }
-    if (message.exitFee !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.exitFee, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PoolParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePoolParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.swapFee = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.exitFee = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PoolParams {
-    return {
-      swapFee: isSet(object.swapFee) ? String(object.swapFee) : "",
-      exitFee: isSet(object.exitFee) ? String(object.exitFee) : ""
-    };
-  },
-  toJSON(message: PoolParams): unknown {
-    const obj: any = {};
-    message.swapFee !== undefined && (obj.swapFee = message.swapFee);
-    message.exitFee !== undefined && (obj.exitFee = message.exitFee);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PoolParams>): PoolParams {
-    const message = createBasePoolParams();
-    message.swapFee = object.swapFee ?? "";
-    message.exitFee = object.exitFee ?? "";
-    return message;
-  },
-  fromSDK(object: PoolParamsSDKType): PoolParams {
-    return {
-      swapFee: object?.swap_fee,
-      exitFee: object?.exit_fee
-    };
-  },
-  toSDK(message: PoolParams): PoolParamsSDKType {
-    const obj: any = {};
-    obj.swap_fee = message.swapFee;
-    obj.exit_fee = message.exitFee;
-    return obj;
-  },
-  fromAmino(object: PoolParamsAmino): PoolParams {
-    return {
-      swapFee: object.swap_fee,
-      exitFee: object.exit_fee
-    };
-  },
-  toAmino(message: PoolParams): PoolParamsAmino {
-    const obj: any = {};
-    obj.swap_fee = message.swapFee;
-    obj.exit_fee = message.exitFee;
-    return obj;
-  },
-  fromAminoMsg(object: PoolParamsAminoMsg): PoolParams {
-    return PoolParams.fromAmino(object.value);
-  },
-  toAminoMsg(message: PoolParams): PoolParamsAminoMsg {
-    return {
-      type: "osmosis/gamm/pool-params",
-      value: PoolParams.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolParamsProtoMsg): PoolParams {
-    return PoolParams.decode(message.value);
-  },
-  toProto(message: PoolParams): Uint8Array {
-    return PoolParams.encode(message).finish();
-  },
-  toProtoMsg(message: PoolParams): PoolParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.PoolParams",
-      value: PoolParams.encode(message).finish()
-    };
-  }
-};
-function createBasePool(): Pool {
-  return {
-    address: "",
-    id: BigInt(0),
-    poolParams: PoolParams.fromPartial({}),
-    futurePoolGovernor: "",
-    totalShares: Coin.fromPartial({}),
-    poolLiquidity: [],
-    scalingFactors: [],
-    scalingFactorController: ""
-  };
-}
-export const Pool = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.Pool",
-  aminoType: "osmosis/gamm/pool",
-  encode(message: Pool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.id !== BigInt(0)) {
-      writer.uint32(16).uint64(message.id);
-    }
-    if (message.poolParams !== undefined) {
-      PoolParams.encode(message.poolParams, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.futurePoolGovernor !== "") {
-      writer.uint32(34).string(message.futurePoolGovernor);
-    }
-    if (message.totalShares !== undefined) {
-      Coin.encode(message.totalShares, writer.uint32(42).fork()).ldelim();
-    }
-    for (const v of message.poolLiquidity) {
-      Coin.encode(v!, writer.uint32(50).fork()).ldelim();
-    }
-    writer.uint32(58).fork();
-    for (const v of message.scalingFactors) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.scalingFactorController !== "") {
-      writer.uint32(66).string(message.scalingFactorController);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Pool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.id = reader.uint64();
-          break;
-        case 3:
-          message.poolParams = PoolParams.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.futurePoolGovernor = reader.string();
-          break;
-        case 5:
-          message.totalShares = Coin.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.poolLiquidity.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.scalingFactors.push(reader.uint64());
-            }
-          } else {
-            message.scalingFactors.push(reader.uint64());
-          }
-          break;
-        case 8:
-          message.scalingFactorController = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Pool {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      poolParams: isSet(object.poolParams) ? PoolParams.fromJSON(object.poolParams) : undefined,
-      futurePoolGovernor: isSet(object.futurePoolGovernor) ? String(object.futurePoolGovernor) : "",
-      totalShares: isSet(object.totalShares) ? Coin.fromJSON(object.totalShares) : undefined,
-      poolLiquidity: Array.isArray(object?.poolLiquidity) ? object.poolLiquidity.map((e: any) => Coin.fromJSON(e)) : [],
-      scalingFactors: Array.isArray(object?.scalingFactors) ? object.scalingFactors.map((e: any) => BigInt(e.toString())) : [],
-      scalingFactorController: isSet(object.scalingFactorController) ? String(object.scalingFactorController) : ""
-    };
-  },
-  toJSON(message: Pool): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    message.poolParams !== undefined && (obj.poolParams = message.poolParams ? PoolParams.toJSON(message.poolParams) : undefined);
-    message.futurePoolGovernor !== undefined && (obj.futurePoolGovernor = message.futurePoolGovernor);
-    message.totalShares !== undefined && (obj.totalShares = message.totalShares ? Coin.toJSON(message.totalShares) : undefined);
-    if (message.poolLiquidity) {
-      obj.poolLiquidity = message.poolLiquidity.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.poolLiquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scalingFactors = message.scalingFactors.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.scalingFactors = [];
-    }
-    message.scalingFactorController !== undefined && (obj.scalingFactorController = message.scalingFactorController);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Pool>): Pool {
-    const message = createBasePool();
-    message.address = object.address ?? "";
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.poolParams = object.poolParams !== undefined && object.poolParams !== null ? PoolParams.fromPartial(object.poolParams) : undefined;
-    message.futurePoolGovernor = object.futurePoolGovernor ?? "";
-    message.totalShares = object.totalShares !== undefined && object.totalShares !== null ? Coin.fromPartial(object.totalShares) : undefined;
-    message.poolLiquidity = object.poolLiquidity?.map(e => Coin.fromPartial(e)) || [];
-    message.scalingFactors = object.scalingFactors?.map(e => BigInt(e.toString())) || [];
-    message.scalingFactorController = object.scalingFactorController ?? "";
-    return message;
-  },
-  fromSDK(object: PoolSDKType): Pool {
-    return {
-      address: object?.address,
-      id: object?.id,
-      poolParams: object.pool_params ? PoolParams.fromSDK(object.pool_params) : undefined,
-      futurePoolGovernor: object?.future_pool_governor,
-      totalShares: object.total_shares ? Coin.fromSDK(object.total_shares) : undefined,
-      poolLiquidity: Array.isArray(object?.pool_liquidity) ? object.pool_liquidity.map((e: any) => Coin.fromSDK(e)) : [],
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => e) : [],
-      scalingFactorController: object?.scaling_factor_controller
-    };
-  },
-  toSDK(message: Pool): PoolSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.id = message.id;
-    message.poolParams !== undefined && (obj.pool_params = message.poolParams ? PoolParams.toSDK(message.poolParams) : undefined);
-    obj.future_pool_governor = message.futurePoolGovernor;
-    message.totalShares !== undefined && (obj.total_shares = message.totalShares ? Coin.toSDK(message.totalShares) : undefined);
-    if (message.poolLiquidity) {
-      obj.pool_liquidity = message.poolLiquidity.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.pool_liquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e);
-    } else {
-      obj.scaling_factors = [];
-    }
-    obj.scaling_factor_controller = message.scalingFactorController;
-    return obj;
-  },
-  fromAmino(object: PoolAmino): Pool {
-    return {
-      address: object.address,
-      id: BigInt(object.id),
-      poolParams: object?.pool_params ? PoolParams.fromAmino(object.pool_params) : undefined,
-      futurePoolGovernor: object.future_pool_governor,
-      totalShares: object?.total_shares ? Coin.fromAmino(object.total_shares) : undefined,
-      poolLiquidity: Array.isArray(object?.pool_liquidity) ? object.pool_liquidity.map((e: any) => Coin.fromAmino(e)) : [],
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => BigInt(e)) : [],
-      scalingFactorController: object.scaling_factor_controller
-    };
-  },
-  toAmino(message: Pool): PoolAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.id = message.id ? message.id.toString() : undefined;
-    obj.pool_params = message.poolParams ? PoolParams.toAmino(message.poolParams) : undefined;
-    obj.future_pool_governor = message.futurePoolGovernor;
-    obj.total_shares = message.totalShares ? Coin.toAmino(message.totalShares) : undefined;
-    if (message.poolLiquidity) {
-      obj.pool_liquidity = message.poolLiquidity.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.pool_liquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e.toString());
-    } else {
-      obj.scaling_factors = [];
-    }
-    obj.scaling_factor_controller = message.scalingFactorController;
-    return obj;
-  },
-  fromAminoMsg(object: PoolAminoMsg): Pool {
-    return Pool.fromAmino(object.value);
-  },
-  toAminoMsg(message: Pool): PoolAminoMsg {
-    return {
-      type: "osmosis/gamm/pool",
-      value: Pool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolProtoMsg): Pool {
-    return Pool.decode(message.value);
-  },
-  toProto(message: Pool): Uint8Array {
-    return Pool.encode(message).finish();
-  },
-  toProtoMsg(message: Pool): PoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.Pool",
-      value: Pool.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.amino.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.amino.ts
deleted file mode 100644
index 01e8c020..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.amino.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MsgCreateStableswapPool, MsgStableSwapAdjustScalingFactors } from "./tx";
-export const AminoConverter = {
-  "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool": {
-    aminoType: "osmosis/gamm/create-stableswap-pool",
-    toAmino: MsgCreateStableswapPool.toAmino,
-    fromAmino: MsgCreateStableswapPool.fromAmino
-  },
-  "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors": {
-    aminoType: "osmosis/gamm/stable-swap-adjust-scaling-factors",
-    toAmino: MsgStableSwapAdjustScalingFactors.toAmino,
-    fromAmino: MsgStableSwapAdjustScalingFactors.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.registry.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.registry.ts
deleted file mode 100644
index 6389615d..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.registry.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateStableswapPool, MsgStableSwapAdjustScalingFactors } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool", MsgCreateStableswapPool], ["/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors", MsgStableSwapAdjustScalingFactors]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createStableswapPool(value: MsgCreateStableswapPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-        value: MsgCreateStableswapPool.encode(value).finish()
-      };
-    },
-    stableSwapAdjustScalingFactors(value: MsgStableSwapAdjustScalingFactors) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-        value: MsgStableSwapAdjustScalingFactors.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createStableswapPool(value: MsgCreateStableswapPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-        value
-      };
-    },
-    stableSwapAdjustScalingFactors(value: MsgStableSwapAdjustScalingFactors) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createStableswapPool(value: MsgCreateStableswapPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-        value: MsgCreateStableswapPool.toJSON(value)
-      };
-    },
-    stableSwapAdjustScalingFactors(value: MsgStableSwapAdjustScalingFactors) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-        value: MsgStableSwapAdjustScalingFactors.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createStableswapPool(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-        value: MsgCreateStableswapPool.fromJSON(value)
-      };
-    },
-    stableSwapAdjustScalingFactors(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-        value: MsgStableSwapAdjustScalingFactors.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createStableswapPool(value: MsgCreateStableswapPool) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-        value: MsgCreateStableswapPool.fromPartial(value)
-      };
-    },
-    stableSwapAdjustScalingFactors(value: MsgStableSwapAdjustScalingFactors) {
-      return {
-        typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-        value: MsgStableSwapAdjustScalingFactors.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.rpc.msg.ts
deleted file mode 100644
index 94f40063..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.rpc.msg.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Rpc } from "../../../../helpers";
-import { BinaryReader } from "../../../../binary";
-import { MsgCreateStableswapPool, MsgCreateStableswapPoolResponse, MsgStableSwapAdjustScalingFactors, MsgStableSwapAdjustScalingFactorsResponse } from "./tx";
-export interface Msg {
-  createStableswapPool(request: MsgCreateStableswapPool): Promise<MsgCreateStableswapPoolResponse>;
-  stableSwapAdjustScalingFactors(request: MsgStableSwapAdjustScalingFactors): Promise<MsgStableSwapAdjustScalingFactorsResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createStableswapPool = this.createStableswapPool.bind(this);
-    this.stableSwapAdjustScalingFactors = this.stableSwapAdjustScalingFactors.bind(this);
-  }
-  createStableswapPool(request: MsgCreateStableswapPool): Promise<MsgCreateStableswapPoolResponse> {
-    const data = MsgCreateStableswapPool.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.poolmodels.stableswap.v1beta1.Msg", "CreateStableswapPool", data);
-    return promise.then(data => MsgCreateStableswapPoolResponse.decode(new BinaryReader(data)));
-  }
-  stableSwapAdjustScalingFactors(request: MsgStableSwapAdjustScalingFactors): Promise<MsgStableSwapAdjustScalingFactorsResponse> {
-    const data = MsgStableSwapAdjustScalingFactors.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.poolmodels.stableswap.v1beta1.Msg", "StableSwapAdjustScalingFactors", data);
-    return promise.then(data => MsgStableSwapAdjustScalingFactorsResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.ts b/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.ts
deleted file mode 100644
index e4af8f58..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/pool-models/stableswap/tx.ts
+++ /dev/null
@@ -1,591 +0,0 @@
-import { PoolParams, PoolParamsAmino, PoolParamsSDKType } from "./stableswap_pool";
-import { Coin, CoinAmino, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../../binary";
-import { isSet, DeepPartial } from "../../../../helpers";
-/** ===================== MsgCreatePool */
-export interface MsgCreateStableswapPool {
-  sender: string;
-  poolParams: PoolParams | undefined;
-  initialPoolLiquidity: Coin[];
-  scalingFactors: bigint[];
-  futurePoolGovernor: string;
-  scalingFactorController: string;
-}
-export interface MsgCreateStableswapPoolProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool";
-  value: Uint8Array;
-}
-/** ===================== MsgCreatePool */
-export interface MsgCreateStableswapPoolAmino {
-  sender: string;
-  pool_params?: PoolParamsAmino | undefined;
-  initial_pool_liquidity: CoinAmino[];
-  scaling_factors: string[];
-  future_pool_governor: string;
-  scaling_factor_controller: string;
-}
-export interface MsgCreateStableswapPoolAminoMsg {
-  type: "osmosis/gamm/create-stableswap-pool";
-  value: MsgCreateStableswapPoolAmino;
-}
-/** ===================== MsgCreatePool */
-export interface MsgCreateStableswapPoolSDKType {
-  sender: string;
-  pool_params: PoolParamsSDKType | undefined;
-  initial_pool_liquidity: CoinSDKType[];
-  scaling_factors: bigint[];
-  future_pool_governor: string;
-  scaling_factor_controller: string;
-}
-/** Returns a poolID with custom poolName. */
-export interface MsgCreateStableswapPoolResponse {
-  poolId: bigint;
-}
-export interface MsgCreateStableswapPoolResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPoolResponse";
-  value: Uint8Array;
-}
-/** Returns a poolID with custom poolName. */
-export interface MsgCreateStableswapPoolResponseAmino {
-  pool_id: string;
-}
-export interface MsgCreateStableswapPoolResponseAminoMsg {
-  type: "osmosis/gamm/create-stableswap-pool-response";
-  value: MsgCreateStableswapPoolResponseAmino;
-}
-/** Returns a poolID with custom poolName. */
-export interface MsgCreateStableswapPoolResponseSDKType {
-  pool_id: bigint;
-}
-/**
- * Sender must be the pool's scaling_factor_governor in order for the tx to
- * succeed. Adjusts stableswap scaling factors.
- */
-export interface MsgStableSwapAdjustScalingFactors {
-  sender: string;
-  poolId: bigint;
-  scalingFactors: bigint[];
-}
-export interface MsgStableSwapAdjustScalingFactorsProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors";
-  value: Uint8Array;
-}
-/**
- * Sender must be the pool's scaling_factor_governor in order for the tx to
- * succeed. Adjusts stableswap scaling factors.
- */
-export interface MsgStableSwapAdjustScalingFactorsAmino {
-  sender: string;
-  pool_id: string;
-  scaling_factors: string[];
-}
-export interface MsgStableSwapAdjustScalingFactorsAminoMsg {
-  type: "osmosis/gamm/stable-swap-adjust-scaling-factors";
-  value: MsgStableSwapAdjustScalingFactorsAmino;
-}
-/**
- * Sender must be the pool's scaling_factor_governor in order for the tx to
- * succeed. Adjusts stableswap scaling factors.
- */
-export interface MsgStableSwapAdjustScalingFactorsSDKType {
-  sender: string;
-  pool_id: bigint;
-  scaling_factors: bigint[];
-}
-export interface MsgStableSwapAdjustScalingFactorsResponse {}
-export interface MsgStableSwapAdjustScalingFactorsResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactorsResponse";
-  value: Uint8Array;
-}
-export interface MsgStableSwapAdjustScalingFactorsResponseAmino {}
-export interface MsgStableSwapAdjustScalingFactorsResponseAminoMsg {
-  type: "osmosis/gamm/stable-swap-adjust-scaling-factors-response";
-  value: MsgStableSwapAdjustScalingFactorsResponseAmino;
-}
-export interface MsgStableSwapAdjustScalingFactorsResponseSDKType {}
-function createBaseMsgCreateStableswapPool(): MsgCreateStableswapPool {
-  return {
-    sender: "",
-    poolParams: PoolParams.fromPartial({}),
-    initialPoolLiquidity: [],
-    scalingFactors: [],
-    futurePoolGovernor: "",
-    scalingFactorController: ""
-  };
-}
-export const MsgCreateStableswapPool = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-  aminoType: "osmosis/gamm/create-stableswap-pool",
-  encode(message: MsgCreateStableswapPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolParams !== undefined) {
-      PoolParams.encode(message.poolParams, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.initialPoolLiquidity) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    writer.uint32(34).fork();
-    for (const v of message.scalingFactors) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.futurePoolGovernor !== "") {
-      writer.uint32(42).string(message.futurePoolGovernor);
-    }
-    if (message.scalingFactorController !== "") {
-      writer.uint32(50).string(message.scalingFactorController);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateStableswapPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateStableswapPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolParams = PoolParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.initialPoolLiquidity.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.scalingFactors.push(reader.uint64());
-            }
-          } else {
-            message.scalingFactors.push(reader.uint64());
-          }
-          break;
-        case 5:
-          message.futurePoolGovernor = reader.string();
-          break;
-        case 6:
-          message.scalingFactorController = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateStableswapPool {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolParams: isSet(object.poolParams) ? PoolParams.fromJSON(object.poolParams) : undefined,
-      initialPoolLiquidity: Array.isArray(object?.initialPoolLiquidity) ? object.initialPoolLiquidity.map((e: any) => Coin.fromJSON(e)) : [],
-      scalingFactors: Array.isArray(object?.scalingFactors) ? object.scalingFactors.map((e: any) => BigInt(e.toString())) : [],
-      futurePoolGovernor: isSet(object.futurePoolGovernor) ? String(object.futurePoolGovernor) : "",
-      scalingFactorController: isSet(object.scalingFactorController) ? String(object.scalingFactorController) : ""
-    };
-  },
-  toJSON(message: MsgCreateStableswapPool): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolParams !== undefined && (obj.poolParams = message.poolParams ? PoolParams.toJSON(message.poolParams) : undefined);
-    if (message.initialPoolLiquidity) {
-      obj.initialPoolLiquidity = message.initialPoolLiquidity.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.initialPoolLiquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scalingFactors = message.scalingFactors.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.scalingFactors = [];
-    }
-    message.futurePoolGovernor !== undefined && (obj.futurePoolGovernor = message.futurePoolGovernor);
-    message.scalingFactorController !== undefined && (obj.scalingFactorController = message.scalingFactorController);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateStableswapPool>): MsgCreateStableswapPool {
-    const message = createBaseMsgCreateStableswapPool();
-    message.sender = object.sender ?? "";
-    message.poolParams = object.poolParams !== undefined && object.poolParams !== null ? PoolParams.fromPartial(object.poolParams) : undefined;
-    message.initialPoolLiquidity = object.initialPoolLiquidity?.map(e => Coin.fromPartial(e)) || [];
-    message.scalingFactors = object.scalingFactors?.map(e => BigInt(e.toString())) || [];
-    message.futurePoolGovernor = object.futurePoolGovernor ?? "";
-    message.scalingFactorController = object.scalingFactorController ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateStableswapPoolSDKType): MsgCreateStableswapPool {
-    return {
-      sender: object?.sender,
-      poolParams: object.pool_params ? PoolParams.fromSDK(object.pool_params) : undefined,
-      initialPoolLiquidity: Array.isArray(object?.initial_pool_liquidity) ? object.initial_pool_liquidity.map((e: any) => Coin.fromSDK(e)) : [],
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => e) : [],
-      futurePoolGovernor: object?.future_pool_governor,
-      scalingFactorController: object?.scaling_factor_controller
-    };
-  },
-  toSDK(message: MsgCreateStableswapPool): MsgCreateStableswapPoolSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    message.poolParams !== undefined && (obj.pool_params = message.poolParams ? PoolParams.toSDK(message.poolParams) : undefined);
-    if (message.initialPoolLiquidity) {
-      obj.initial_pool_liquidity = message.initialPoolLiquidity.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.initial_pool_liquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e);
-    } else {
-      obj.scaling_factors = [];
-    }
-    obj.future_pool_governor = message.futurePoolGovernor;
-    obj.scaling_factor_controller = message.scalingFactorController;
-    return obj;
-  },
-  fromAmino(object: MsgCreateStableswapPoolAmino): MsgCreateStableswapPool {
-    return {
-      sender: object.sender,
-      poolParams: object?.pool_params ? PoolParams.fromAmino(object.pool_params) : undefined,
-      initialPoolLiquidity: Array.isArray(object?.initial_pool_liquidity) ? object.initial_pool_liquidity.map((e: any) => Coin.fromAmino(e)) : [],
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => BigInt(e)) : [],
-      futurePoolGovernor: object.future_pool_governor,
-      scalingFactorController: object.scaling_factor_controller
-    };
-  },
-  toAmino(message: MsgCreateStableswapPool): MsgCreateStableswapPoolAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_params = message.poolParams ? PoolParams.toAmino(message.poolParams) : undefined;
-    if (message.initialPoolLiquidity) {
-      obj.initial_pool_liquidity = message.initialPoolLiquidity.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.initial_pool_liquidity = [];
-    }
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e.toString());
-    } else {
-      obj.scaling_factors = [];
-    }
-    obj.future_pool_governor = message.futurePoolGovernor;
-    obj.scaling_factor_controller = message.scalingFactorController;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateStableswapPoolAminoMsg): MsgCreateStableswapPool {
-    return MsgCreateStableswapPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateStableswapPool): MsgCreateStableswapPoolAminoMsg {
-    return {
-      type: "osmosis/gamm/create-stableswap-pool",
-      value: MsgCreateStableswapPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateStableswapPoolProtoMsg): MsgCreateStableswapPool {
-    return MsgCreateStableswapPool.decode(message.value);
-  },
-  toProto(message: MsgCreateStableswapPool): Uint8Array {
-    return MsgCreateStableswapPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateStableswapPool): MsgCreateStableswapPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPool",
-      value: MsgCreateStableswapPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateStableswapPoolResponse(): MsgCreateStableswapPoolResponse {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const MsgCreateStableswapPoolResponse = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPoolResponse",
-  aminoType: "osmosis/gamm/create-stableswap-pool-response",
-  encode(message: MsgCreateStableswapPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateStableswapPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateStableswapPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateStableswapPoolResponse {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgCreateStableswapPoolResponse): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateStableswapPoolResponse>): MsgCreateStableswapPoolResponse {
-    const message = createBaseMsgCreateStableswapPoolResponse();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgCreateStableswapPoolResponseSDKType): MsgCreateStableswapPoolResponse {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: MsgCreateStableswapPoolResponse): MsgCreateStableswapPoolResponseSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: MsgCreateStableswapPoolResponseAmino): MsgCreateStableswapPoolResponse {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: MsgCreateStableswapPoolResponse): MsgCreateStableswapPoolResponseAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateStableswapPoolResponseAminoMsg): MsgCreateStableswapPoolResponse {
-    return MsgCreateStableswapPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateStableswapPoolResponse): MsgCreateStableswapPoolResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/create-stableswap-pool-response",
-      value: MsgCreateStableswapPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateStableswapPoolResponseProtoMsg): MsgCreateStableswapPoolResponse {
-    return MsgCreateStableswapPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateStableswapPoolResponse): Uint8Array {
-    return MsgCreateStableswapPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateStableswapPoolResponse): MsgCreateStableswapPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgCreateStableswapPoolResponse",
-      value: MsgCreateStableswapPoolResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgStableSwapAdjustScalingFactors(): MsgStableSwapAdjustScalingFactors {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    scalingFactors: []
-  };
-}
-export const MsgStableSwapAdjustScalingFactors = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-  aminoType: "osmosis/gamm/stable-swap-adjust-scaling-factors",
-  encode(message: MsgStableSwapAdjustScalingFactors, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.scalingFactors) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgStableSwapAdjustScalingFactors {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgStableSwapAdjustScalingFactors();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.scalingFactors.push(reader.uint64());
-            }
-          } else {
-            message.scalingFactors.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgStableSwapAdjustScalingFactors {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      scalingFactors: Array.isArray(object?.scalingFactors) ? object.scalingFactors.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: MsgStableSwapAdjustScalingFactors): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    if (message.scalingFactors) {
-      obj.scalingFactors = message.scalingFactors.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.scalingFactors = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgStableSwapAdjustScalingFactors>): MsgStableSwapAdjustScalingFactors {
-    const message = createBaseMsgStableSwapAdjustScalingFactors();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.scalingFactors = object.scalingFactors?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: MsgStableSwapAdjustScalingFactorsSDKType): MsgStableSwapAdjustScalingFactors {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: MsgStableSwapAdjustScalingFactors): MsgStableSwapAdjustScalingFactorsSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e);
-    } else {
-      obj.scaling_factors = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgStableSwapAdjustScalingFactorsAmino): MsgStableSwapAdjustScalingFactors {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      scalingFactors: Array.isArray(object?.scaling_factors) ? object.scaling_factors.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: MsgStableSwapAdjustScalingFactors): MsgStableSwapAdjustScalingFactorsAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    if (message.scalingFactors) {
-      obj.scaling_factors = message.scalingFactors.map(e => e.toString());
-    } else {
-      obj.scaling_factors = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgStableSwapAdjustScalingFactorsAminoMsg): MsgStableSwapAdjustScalingFactors {
-    return MsgStableSwapAdjustScalingFactors.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgStableSwapAdjustScalingFactors): MsgStableSwapAdjustScalingFactorsAminoMsg {
-    return {
-      type: "osmosis/gamm/stable-swap-adjust-scaling-factors",
-      value: MsgStableSwapAdjustScalingFactors.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgStableSwapAdjustScalingFactorsProtoMsg): MsgStableSwapAdjustScalingFactors {
-    return MsgStableSwapAdjustScalingFactors.decode(message.value);
-  },
-  toProto(message: MsgStableSwapAdjustScalingFactors): Uint8Array {
-    return MsgStableSwapAdjustScalingFactors.encode(message).finish();
-  },
-  toProtoMsg(message: MsgStableSwapAdjustScalingFactors): MsgStableSwapAdjustScalingFactorsProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactors",
-      value: MsgStableSwapAdjustScalingFactors.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgStableSwapAdjustScalingFactorsResponse(): MsgStableSwapAdjustScalingFactorsResponse {
-  return {};
-}
-export const MsgStableSwapAdjustScalingFactorsResponse = {
-  typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactorsResponse",
-  aminoType: "osmosis/gamm/stable-swap-adjust-scaling-factors-response",
-  encode(_: MsgStableSwapAdjustScalingFactorsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgStableSwapAdjustScalingFactorsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgStableSwapAdjustScalingFactorsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgStableSwapAdjustScalingFactorsResponse {
-    return {};
-  },
-  toJSON(_: MsgStableSwapAdjustScalingFactorsResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgStableSwapAdjustScalingFactorsResponse>): MsgStableSwapAdjustScalingFactorsResponse {
-    const message = createBaseMsgStableSwapAdjustScalingFactorsResponse();
-    return message;
-  },
-  fromSDK(_: MsgStableSwapAdjustScalingFactorsResponseSDKType): MsgStableSwapAdjustScalingFactorsResponse {
-    return {};
-  },
-  toSDK(_: MsgStableSwapAdjustScalingFactorsResponse): MsgStableSwapAdjustScalingFactorsResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgStableSwapAdjustScalingFactorsResponseAmino): MsgStableSwapAdjustScalingFactorsResponse {
-    return {};
-  },
-  toAmino(_: MsgStableSwapAdjustScalingFactorsResponse): MsgStableSwapAdjustScalingFactorsResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgStableSwapAdjustScalingFactorsResponseAminoMsg): MsgStableSwapAdjustScalingFactorsResponse {
-    return MsgStableSwapAdjustScalingFactorsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgStableSwapAdjustScalingFactorsResponse): MsgStableSwapAdjustScalingFactorsResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/stable-swap-adjust-scaling-factors-response",
-      value: MsgStableSwapAdjustScalingFactorsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgStableSwapAdjustScalingFactorsResponseProtoMsg): MsgStableSwapAdjustScalingFactorsResponse {
-    return MsgStableSwapAdjustScalingFactorsResponse.decode(message.value);
-  },
-  toProto(message: MsgStableSwapAdjustScalingFactorsResponse): Uint8Array {
-    return MsgStableSwapAdjustScalingFactorsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgStableSwapAdjustScalingFactorsResponse): MsgStableSwapAdjustScalingFactorsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.poolmodels.stableswap.v1beta1.MsgStableSwapAdjustScalingFactorsResponse",
-      value: MsgStableSwapAdjustScalingFactorsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/genesis.ts
deleted file mode 100644
index 11bbce93..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/genesis.ts
+++ /dev/null
@@ -1,280 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** Params holds parameters for the incentives module */
-export interface Params {
-  poolCreationFee: Coin[];
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the incentives module */
-export interface ParamsAmino {
-  pool_creation_fee: CoinAmino[];
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/gamm/params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the incentives module */
-export interface ParamsSDKType {
-  pool_creation_fee: CoinSDKType[];
-}
-/** GenesisState defines the gamm module's genesis state. */
-export interface GenesisState {
-  pools: Any[];
-  /** will be renamed to next_pool_id in an upcoming version */
-  nextPoolNumber: bigint;
-  params: Params | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the gamm module's genesis state. */
-export interface GenesisStateAmino {
-  pools: AnyAmino[];
-  /** will be renamed to next_pool_id in an upcoming version */
-  next_pool_number: string;
-  params?: ParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/gamm/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the gamm module's genesis state. */
-export interface GenesisStateSDKType {
-  pools: AnySDKType[];
-  next_pool_number: bigint;
-  params: ParamsSDKType | undefined;
-}
-function createBaseParams(): Params {
-  return {
-    poolCreationFee: []
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.gamm.v1beta1.Params",
-  aminoType: "osmosis/gamm/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.poolCreationFee) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolCreationFee.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      poolCreationFee: Array.isArray(object?.poolCreationFee) ? object.poolCreationFee.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    if (message.poolCreationFee) {
-      obj.poolCreationFee = message.poolCreationFee.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.poolCreationFee = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.poolCreationFee = object.poolCreationFee?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      poolCreationFee: Array.isArray(object?.pool_creation_fee) ? object.pool_creation_fee.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    if (message.poolCreationFee) {
-      obj.pool_creation_fee = message.poolCreationFee.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.pool_creation_fee = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      poolCreationFee: Array.isArray(object?.pool_creation_fee) ? object.pool_creation_fee.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    if (message.poolCreationFee) {
-      obj.pool_creation_fee = message.poolCreationFee.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.pool_creation_fee = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/gamm/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState(): GenesisState {
-  return {
-    pools: [],
-    nextPoolNumber: BigInt(0),
-    params: Params.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.gamm.v1beta1.GenesisState",
-  aminoType: "osmosis/gamm/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pools) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.nextPoolNumber !== BigInt(0)) {
-      writer.uint32(16).uint64(message.nextPoolNumber);
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pools.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.nextPoolNumber = reader.uint64();
-          break;
-        case 3:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromJSON(e)) : [],
-      nextPoolNumber: isSet(object.nextPoolNumber) ? BigInt(object.nextPoolNumber.toString()) : BigInt(0),
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    message.nextPoolNumber !== undefined && (obj.nextPoolNumber = (message.nextPoolNumber || BigInt(0)).toString());
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.pools = object.pools?.map(e => Any.fromPartial(e)) || [];
-    message.nextPoolNumber = object.nextPoolNumber !== undefined && object.nextPoolNumber !== null ? BigInt(object.nextPoolNumber.toString()) : BigInt(0);
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromSDK(e)) : [],
-      nextPoolNumber: object?.next_pool_number,
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    obj.next_pool_number = message.nextPoolNumber;
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromAmino(e)) : [],
-      nextPoolNumber: BigInt(object.next_pool_number),
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    obj.next_pool_number = message.nextPoolNumber ? message.nextPoolNumber.toString() : undefined;
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/gamm/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index ccaf18f1..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,546 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryPoolsRequest, QueryPoolsResponse, QueryNumPoolsRequest, QueryNumPoolsResponse, QueryTotalLiquidityRequest, QueryTotalLiquidityResponse, QueryPoolsWithFilterRequest, QueryPoolsWithFilterResponse, QueryPoolRequest, QueryPoolResponse, QueryPoolTypeRequest, QueryPoolTypeResponse, QueryCalcJoinPoolNoSwapSharesRequest, QueryCalcJoinPoolNoSwapSharesResponse, QueryCalcJoinPoolSharesRequest, QueryCalcJoinPoolSharesResponse, QueryCalcExitPoolCoinsFromSharesRequest, QueryCalcExitPoolCoinsFromSharesResponse, QueryPoolParamsRequest, QueryPoolParamsResponse, QueryTotalPoolLiquidityRequest, QueryTotalPoolLiquidityResponse, QueryTotalSharesRequest, QueryTotalSharesResponse, QuerySpotPriceRequest, QuerySpotPriceResponse, QuerySwapExactAmountInRequest, QuerySwapExactAmountInResponse, QuerySwapExactAmountOutRequest, QuerySwapExactAmountOutResponse } from "./query";
-export interface Query {
-  pools(request?: QueryPoolsRequest): Promise<QueryPoolsResponse>;
-  numPools(request?: QueryNumPoolsRequest): Promise<QueryNumPoolsResponse>;
-  totalLiquidity(request?: QueryTotalLiquidityRequest): Promise<QueryTotalLiquidityResponse>;
-  /**
-   * PoolsWithFilter allows you to query specific pools with requested
-   * parameters
-   */
-  poolsWithFilter(request: QueryPoolsWithFilterRequest): Promise<QueryPoolsWithFilterResponse>;
-  /** Per Pool gRPC Endpoints */
-  pool(request: QueryPoolRequest): Promise<QueryPoolResponse>;
-  /**
-   * PoolType returns the type of the pool.
-   * Returns "Balancer" as a string literal when the pool is a balancer pool.
-   * Errors if the pool is failed to be type caseted.
-   */
-  poolType(request: QueryPoolTypeRequest): Promise<QueryPoolTypeResponse>;
-  /**
-   * Simulates joining pool without a swap. Returns the amount of shares you'd
-   * get and tokens needed to provide
-   */
-  calcJoinPoolNoSwapShares(request: QueryCalcJoinPoolNoSwapSharesRequest): Promise<QueryCalcJoinPoolNoSwapSharesResponse>;
-  calcJoinPoolShares(request: QueryCalcJoinPoolSharesRequest): Promise<QueryCalcJoinPoolSharesResponse>;
-  calcExitPoolCoinsFromShares(request: QueryCalcExitPoolCoinsFromSharesRequest): Promise<QueryCalcExitPoolCoinsFromSharesResponse>;
-  poolParams(request: QueryPoolParamsRequest): Promise<QueryPoolParamsResponse>;
-  totalPoolLiquidity(request: QueryTotalPoolLiquidityRequest): Promise<QueryTotalPoolLiquidityResponse>;
-  totalShares(request: QueryTotalSharesRequest): Promise<QueryTotalSharesResponse>;
-  /**
-   * SpotPrice defines a gRPC query handler that returns the spot price given
-   * a base denomination and a quote denomination.
-   */
-  spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse>;
-  /** Estimate the swap. */
-  estimateSwapExactAmountIn(request: QuerySwapExactAmountInRequest): Promise<QuerySwapExactAmountInResponse>;
-  estimateSwapExactAmountOut(request: QuerySwapExactAmountOutRequest): Promise<QuerySwapExactAmountOutResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.pools = this.pools.bind(this);
-    this.numPools = this.numPools.bind(this);
-    this.totalLiquidity = this.totalLiquidity.bind(this);
-    this.poolsWithFilter = this.poolsWithFilter.bind(this);
-    this.pool = this.pool.bind(this);
-    this.poolType = this.poolType.bind(this);
-    this.calcJoinPoolNoSwapShares = this.calcJoinPoolNoSwapShares.bind(this);
-    this.calcJoinPoolShares = this.calcJoinPoolShares.bind(this);
-    this.calcExitPoolCoinsFromShares = this.calcExitPoolCoinsFromShares.bind(this);
-    this.poolParams = this.poolParams.bind(this);
-    this.totalPoolLiquidity = this.totalPoolLiquidity.bind(this);
-    this.totalShares = this.totalShares.bind(this);
-    this.spotPrice = this.spotPrice.bind(this);
-    this.estimateSwapExactAmountIn = this.estimateSwapExactAmountIn.bind(this);
-    this.estimateSwapExactAmountOut = this.estimateSwapExactAmountOut.bind(this);
-  }
-  pools(request: QueryPoolsRequest = {
-    pagination: undefined
-  }): Promise<QueryPoolsResponse> {
-    const data = QueryPoolsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "Pools", data);
-    return promise.then(data => QueryPoolsResponse.decode(new BinaryReader(data)));
-  }
-  numPools(request: QueryNumPoolsRequest = {}): Promise<QueryNumPoolsResponse> {
-    const data = QueryNumPoolsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "NumPools", data);
-    return promise.then(data => QueryNumPoolsResponse.decode(new BinaryReader(data)));
-  }
-  totalLiquidity(request: QueryTotalLiquidityRequest = {}): Promise<QueryTotalLiquidityResponse> {
-    const data = QueryTotalLiquidityRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "TotalLiquidity", data);
-    return promise.then(data => QueryTotalLiquidityResponse.decode(new BinaryReader(data)));
-  }
-  poolsWithFilter(request: QueryPoolsWithFilterRequest): Promise<QueryPoolsWithFilterResponse> {
-    const data = QueryPoolsWithFilterRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "PoolsWithFilter", data);
-    return promise.then(data => QueryPoolsWithFilterResponse.decode(new BinaryReader(data)));
-  }
-  pool(request: QueryPoolRequest): Promise<QueryPoolResponse> {
-    const data = QueryPoolRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "Pool", data);
-    return promise.then(data => QueryPoolResponse.decode(new BinaryReader(data)));
-  }
-  poolType(request: QueryPoolTypeRequest): Promise<QueryPoolTypeResponse> {
-    const data = QueryPoolTypeRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "PoolType", data);
-    return promise.then(data => QueryPoolTypeResponse.decode(new BinaryReader(data)));
-  }
-  calcJoinPoolNoSwapShares(request: QueryCalcJoinPoolNoSwapSharesRequest): Promise<QueryCalcJoinPoolNoSwapSharesResponse> {
-    const data = QueryCalcJoinPoolNoSwapSharesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "CalcJoinPoolNoSwapShares", data);
-    return promise.then(data => QueryCalcJoinPoolNoSwapSharesResponse.decode(new BinaryReader(data)));
-  }
-  calcJoinPoolShares(request: QueryCalcJoinPoolSharesRequest): Promise<QueryCalcJoinPoolSharesResponse> {
-    const data = QueryCalcJoinPoolSharesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "CalcJoinPoolShares", data);
-    return promise.then(data => QueryCalcJoinPoolSharesResponse.decode(new BinaryReader(data)));
-  }
-  calcExitPoolCoinsFromShares(request: QueryCalcExitPoolCoinsFromSharesRequest): Promise<QueryCalcExitPoolCoinsFromSharesResponse> {
-    const data = QueryCalcExitPoolCoinsFromSharesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "CalcExitPoolCoinsFromShares", data);
-    return promise.then(data => QueryCalcExitPoolCoinsFromSharesResponse.decode(new BinaryReader(data)));
-  }
-  poolParams(request: QueryPoolParamsRequest): Promise<QueryPoolParamsResponse> {
-    const data = QueryPoolParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "PoolParams", data);
-    return promise.then(data => QueryPoolParamsResponse.decode(new BinaryReader(data)));
-  }
-  totalPoolLiquidity(request: QueryTotalPoolLiquidityRequest): Promise<QueryTotalPoolLiquidityResponse> {
-    const data = QueryTotalPoolLiquidityRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "TotalPoolLiquidity", data);
-    return promise.then(data => QueryTotalPoolLiquidityResponse.decode(new BinaryReader(data)));
-  }
-  totalShares(request: QueryTotalSharesRequest): Promise<QueryTotalSharesResponse> {
-    const data = QueryTotalSharesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "TotalShares", data);
-    return promise.then(data => QueryTotalSharesResponse.decode(new BinaryReader(data)));
-  }
-  spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse> {
-    const data = QuerySpotPriceRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "SpotPrice", data);
-    return promise.then(data => QuerySpotPriceResponse.decode(new BinaryReader(data)));
-  }
-  estimateSwapExactAmountIn(request: QuerySwapExactAmountInRequest): Promise<QuerySwapExactAmountInResponse> {
-    const data = QuerySwapExactAmountInRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "EstimateSwapExactAmountIn", data);
-    return promise.then(data => QuerySwapExactAmountInResponse.decode(new BinaryReader(data)));
-  }
-  estimateSwapExactAmountOut(request: QuerySwapExactAmountOutRequest): Promise<QuerySwapExactAmountOutResponse> {
-    const data = QuerySwapExactAmountOutRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Query", "EstimateSwapExactAmountOut", data);
-    return promise.then(data => QuerySwapExactAmountOutResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    pools(request?: QueryPoolsRequest): Promise<QueryPoolsResponse> {
-      return queryService.pools(request);
-    },
-    numPools(request?: QueryNumPoolsRequest): Promise<QueryNumPoolsResponse> {
-      return queryService.numPools(request);
-    },
-    totalLiquidity(request?: QueryTotalLiquidityRequest): Promise<QueryTotalLiquidityResponse> {
-      return queryService.totalLiquidity(request);
-    },
-    poolsWithFilter(request: QueryPoolsWithFilterRequest): Promise<QueryPoolsWithFilterResponse> {
-      return queryService.poolsWithFilter(request);
-    },
-    pool(request: QueryPoolRequest): Promise<QueryPoolResponse> {
-      return queryService.pool(request);
-    },
-    poolType(request: QueryPoolTypeRequest): Promise<QueryPoolTypeResponse> {
-      return queryService.poolType(request);
-    },
-    calcJoinPoolNoSwapShares(request: QueryCalcJoinPoolNoSwapSharesRequest): Promise<QueryCalcJoinPoolNoSwapSharesResponse> {
-      return queryService.calcJoinPoolNoSwapShares(request);
-    },
-    calcJoinPoolShares(request: QueryCalcJoinPoolSharesRequest): Promise<QueryCalcJoinPoolSharesResponse> {
-      return queryService.calcJoinPoolShares(request);
-    },
-    calcExitPoolCoinsFromShares(request: QueryCalcExitPoolCoinsFromSharesRequest): Promise<QueryCalcExitPoolCoinsFromSharesResponse> {
-      return queryService.calcExitPoolCoinsFromShares(request);
-    },
-    poolParams(request: QueryPoolParamsRequest): Promise<QueryPoolParamsResponse> {
-      return queryService.poolParams(request);
-    },
-    totalPoolLiquidity(request: QueryTotalPoolLiquidityRequest): Promise<QueryTotalPoolLiquidityResponse> {
-      return queryService.totalPoolLiquidity(request);
-    },
-    totalShares(request: QueryTotalSharesRequest): Promise<QueryTotalSharesResponse> {
-      return queryService.totalShares(request);
-    },
-    spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse> {
-      return queryService.spotPrice(request);
-    },
-    estimateSwapExactAmountIn(request: QuerySwapExactAmountInRequest): Promise<QuerySwapExactAmountInResponse> {
-      return queryService.estimateSwapExactAmountIn(request);
-    },
-    estimateSwapExactAmountOut(request: QuerySwapExactAmountOutRequest): Promise<QuerySwapExactAmountOutResponse> {
-      return queryService.estimateSwapExactAmountOut(request);
-    }
-  };
-};
-export interface UsePoolsQuery<TData> extends ReactQueryParams<QueryPoolsResponse, TData> {
-  request?: QueryPoolsRequest;
-}
-export interface UseNumPoolsQuery<TData> extends ReactQueryParams<QueryNumPoolsResponse, TData> {
-  request?: QueryNumPoolsRequest;
-}
-export interface UseTotalLiquidityQuery<TData> extends ReactQueryParams<QueryTotalLiquidityResponse, TData> {
-  request?: QueryTotalLiquidityRequest;
-}
-export interface UsePoolsWithFilterQuery<TData> extends ReactQueryParams<QueryPoolsWithFilterResponse, TData> {
-  request: QueryPoolsWithFilterRequest;
-}
-export interface UsePoolQuery<TData> extends ReactQueryParams<QueryPoolResponse, TData> {
-  request: QueryPoolRequest;
-}
-export interface UsePoolTypeQuery<TData> extends ReactQueryParams<QueryPoolTypeResponse, TData> {
-  request: QueryPoolTypeRequest;
-}
-export interface UseCalcJoinPoolNoSwapSharesQuery<TData> extends ReactQueryParams<QueryCalcJoinPoolNoSwapSharesResponse, TData> {
-  request: QueryCalcJoinPoolNoSwapSharesRequest;
-}
-export interface UseCalcJoinPoolSharesQuery<TData> extends ReactQueryParams<QueryCalcJoinPoolSharesResponse, TData> {
-  request: QueryCalcJoinPoolSharesRequest;
-}
-export interface UseCalcExitPoolCoinsFromSharesQuery<TData> extends ReactQueryParams<QueryCalcExitPoolCoinsFromSharesResponse, TData> {
-  request: QueryCalcExitPoolCoinsFromSharesRequest;
-}
-export interface UsePoolParamsQuery<TData> extends ReactQueryParams<QueryPoolParamsResponse, TData> {
-  request: QueryPoolParamsRequest;
-}
-export interface UseTotalPoolLiquidityQuery<TData> extends ReactQueryParams<QueryTotalPoolLiquidityResponse, TData> {
-  request: QueryTotalPoolLiquidityRequest;
-}
-export interface UseTotalSharesQuery<TData> extends ReactQueryParams<QueryTotalSharesResponse, TData> {
-  request: QueryTotalSharesRequest;
-}
-export interface UseSpotPriceQuery<TData> extends ReactQueryParams<QuerySpotPriceResponse, TData> {
-  request: QuerySpotPriceRequest;
-}
-export interface UseEstimateSwapExactAmountInQuery<TData> extends ReactQueryParams<QuerySwapExactAmountInResponse, TData> {
-  request: QuerySwapExactAmountInRequest;
-}
-export interface UseEstimateSwapExactAmountOutQuery<TData> extends ReactQueryParams<QuerySwapExactAmountOutResponse, TData> {
-  request: QuerySwapExactAmountOutRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const usePools = <TData = QueryPoolsResponse,>({
-    request,
-    options
-  }: UsePoolsQuery<TData>) => {
-    return useQuery<QueryPoolsResponse, Error, TData>(["poolsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.pools(request);
-    }, options);
-  };
-  const useNumPools = <TData = QueryNumPoolsResponse,>({
-    request,
-    options
-  }: UseNumPoolsQuery<TData>) => {
-    return useQuery<QueryNumPoolsResponse, Error, TData>(["numPoolsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.numPools(request);
-    }, options);
-  };
-  const useTotalLiquidity = <TData = QueryTotalLiquidityResponse,>({
-    request,
-    options
-  }: UseTotalLiquidityQuery<TData>) => {
-    return useQuery<QueryTotalLiquidityResponse, Error, TData>(["totalLiquidityQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalLiquidity(request);
-    }, options);
-  };
-  const usePoolsWithFilter = <TData = QueryPoolsWithFilterResponse,>({
-    request,
-    options
-  }: UsePoolsWithFilterQuery<TData>) => {
-    return useQuery<QueryPoolsWithFilterResponse, Error, TData>(["poolsWithFilterQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.poolsWithFilter(request);
-    }, options);
-  };
-  const usePool = <TData = QueryPoolResponse,>({
-    request,
-    options
-  }: UsePoolQuery<TData>) => {
-    return useQuery<QueryPoolResponse, Error, TData>(["poolQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.pool(request);
-    }, options);
-  };
-  const usePoolType = <TData = QueryPoolTypeResponse,>({
-    request,
-    options
-  }: UsePoolTypeQuery<TData>) => {
-    return useQuery<QueryPoolTypeResponse, Error, TData>(["poolTypeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.poolType(request);
-    }, options);
-  };
-  const useCalcJoinPoolNoSwapShares = <TData = QueryCalcJoinPoolNoSwapSharesResponse,>({
-    request,
-    options
-  }: UseCalcJoinPoolNoSwapSharesQuery<TData>) => {
-    return useQuery<QueryCalcJoinPoolNoSwapSharesResponse, Error, TData>(["calcJoinPoolNoSwapSharesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.calcJoinPoolNoSwapShares(request);
-    }, options);
-  };
-  const useCalcJoinPoolShares = <TData = QueryCalcJoinPoolSharesResponse,>({
-    request,
-    options
-  }: UseCalcJoinPoolSharesQuery<TData>) => {
-    return useQuery<QueryCalcJoinPoolSharesResponse, Error, TData>(["calcJoinPoolSharesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.calcJoinPoolShares(request);
-    }, options);
-  };
-  const useCalcExitPoolCoinsFromShares = <TData = QueryCalcExitPoolCoinsFromSharesResponse,>({
-    request,
-    options
-  }: UseCalcExitPoolCoinsFromSharesQuery<TData>) => {
-    return useQuery<QueryCalcExitPoolCoinsFromSharesResponse, Error, TData>(["calcExitPoolCoinsFromSharesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.calcExitPoolCoinsFromShares(request);
-    }, options);
-  };
-  const usePoolParams = <TData = QueryPoolParamsResponse,>({
-    request,
-    options
-  }: UsePoolParamsQuery<TData>) => {
-    return useQuery<QueryPoolParamsResponse, Error, TData>(["poolParamsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.poolParams(request);
-    }, options);
-  };
-  const useTotalPoolLiquidity = <TData = QueryTotalPoolLiquidityResponse,>({
-    request,
-    options
-  }: UseTotalPoolLiquidityQuery<TData>) => {
-    return useQuery<QueryTotalPoolLiquidityResponse, Error, TData>(["totalPoolLiquidityQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalPoolLiquidity(request);
-    }, options);
-  };
-  const useTotalShares = <TData = QueryTotalSharesResponse,>({
-    request,
-    options
-  }: UseTotalSharesQuery<TData>) => {
-    return useQuery<QueryTotalSharesResponse, Error, TData>(["totalSharesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalShares(request);
-    }, options);
-  };
-  const useSpotPrice = <TData = QuerySpotPriceResponse,>({
-    request,
-    options
-  }: UseSpotPriceQuery<TData>) => {
-    return useQuery<QuerySpotPriceResponse, Error, TData>(["spotPriceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.spotPrice(request);
-    }, options);
-  };
-  const useEstimateSwapExactAmountIn = <TData = QuerySwapExactAmountInResponse,>({
-    request,
-    options
-  }: UseEstimateSwapExactAmountInQuery<TData>) => {
-    return useQuery<QuerySwapExactAmountInResponse, Error, TData>(["estimateSwapExactAmountInQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.estimateSwapExactAmountIn(request);
-    }, options);
-  };
-  const useEstimateSwapExactAmountOut = <TData = QuerySwapExactAmountOutResponse,>({
-    request,
-    options
-  }: UseEstimateSwapExactAmountOutQuery<TData>) => {
-    return useQuery<QuerySwapExactAmountOutResponse, Error, TData>(["estimateSwapExactAmountOutQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.estimateSwapExactAmountOut(request);
-    }, options);
-  };
-  return {
-    usePools,
-    useNumPools,
-    useTotalLiquidity,
-    /**
-     * PoolsWithFilter allows you to query specific pools with requested
-     * parameters
-     */
-    usePoolsWithFilter,
-    /** Per Pool gRPC Endpoints */usePool,
-    /**
-     * PoolType returns the type of the pool.
-     * Returns "Balancer" as a string literal when the pool is a balancer pool.
-     * Errors if the pool is failed to be type caseted.
-     */
-    usePoolType,
-    /**
-     * Simulates joining pool without a swap. Returns the amount of shares you'd
-     * get and tokens needed to provide
-     */
-    useCalcJoinPoolNoSwapShares,
-    useCalcJoinPoolShares,
-    useCalcExitPoolCoinsFromShares,
-    usePoolParams,
-    useTotalPoolLiquidity,
-    useTotalShares,
-    /**
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    useSpotPrice,
-    /** Estimate the swap. */useEstimateSwapExactAmountIn,
-    useEstimateSwapExactAmountOut
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryPoolsStore {
-    store = new QueryStore<QueryPoolsRequest, QueryPoolsResponse>(queryService?.pools);
-    pools(request: QueryPoolsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryNumPoolsStore {
-    store = new QueryStore<QueryNumPoolsRequest, QueryNumPoolsResponse>(queryService?.numPools);
-    numPools(request: QueryNumPoolsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalLiquidityStore {
-    store = new QueryStore<QueryTotalLiquidityRequest, QueryTotalLiquidityResponse>(queryService?.totalLiquidity);
-    totalLiquidity(request: QueryTotalLiquidityRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPoolsWithFilterStore {
-    store = new QueryStore<QueryPoolsWithFilterRequest, QueryPoolsWithFilterResponse>(queryService?.poolsWithFilter);
-    poolsWithFilter(request: QueryPoolsWithFilterRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPoolStore {
-    store = new QueryStore<QueryPoolRequest, QueryPoolResponse>(queryService?.pool);
-    pool(request: QueryPoolRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPoolTypeStore {
-    store = new QueryStore<QueryPoolTypeRequest, QueryPoolTypeResponse>(queryService?.poolType);
-    poolType(request: QueryPoolTypeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCalcJoinPoolNoSwapSharesStore {
-    store = new QueryStore<QueryCalcJoinPoolNoSwapSharesRequest, QueryCalcJoinPoolNoSwapSharesResponse>(queryService?.calcJoinPoolNoSwapShares);
-    calcJoinPoolNoSwapShares(request: QueryCalcJoinPoolNoSwapSharesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCalcJoinPoolSharesStore {
-    store = new QueryStore<QueryCalcJoinPoolSharesRequest, QueryCalcJoinPoolSharesResponse>(queryService?.calcJoinPoolShares);
-    calcJoinPoolShares(request: QueryCalcJoinPoolSharesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryCalcExitPoolCoinsFromSharesStore {
-    store = new QueryStore<QueryCalcExitPoolCoinsFromSharesRequest, QueryCalcExitPoolCoinsFromSharesResponse>(queryService?.calcExitPoolCoinsFromShares);
-    calcExitPoolCoinsFromShares(request: QueryCalcExitPoolCoinsFromSharesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryPoolParamsStore {
-    store = new QueryStore<QueryPoolParamsRequest, QueryPoolParamsResponse>(queryService?.poolParams);
-    poolParams(request: QueryPoolParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalPoolLiquidityStore {
-    store = new QueryStore<QueryTotalPoolLiquidityRequest, QueryTotalPoolLiquidityResponse>(queryService?.totalPoolLiquidity);
-    totalPoolLiquidity(request: QueryTotalPoolLiquidityRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalSharesStore {
-    store = new QueryStore<QueryTotalSharesRequest, QueryTotalSharesResponse>(queryService?.totalShares);
-    totalShares(request: QueryTotalSharesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySpotPriceStore {
-    store = new QueryStore<QuerySpotPriceRequest, QuerySpotPriceResponse>(queryService?.spotPrice);
-    spotPrice(request: QuerySpotPriceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryEstimateSwapExactAmountInStore {
-    store = new QueryStore<QuerySwapExactAmountInRequest, QuerySwapExactAmountInResponse>(queryService?.estimateSwapExactAmountIn);
-    estimateSwapExactAmountIn(request: QuerySwapExactAmountInRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryEstimateSwapExactAmountOutStore {
-    store = new QueryStore<QuerySwapExactAmountOutRequest, QuerySwapExactAmountOutResponse>(queryService?.estimateSwapExactAmountOut);
-    estimateSwapExactAmountOut(request: QuerySwapExactAmountOutRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    QueryPoolsStore,
-    QueryNumPoolsStore,
-    QueryTotalLiquidityStore,
-    /**
-     * PoolsWithFilter allows you to query specific pools with requested
-     * parameters
-     */
-    QueryPoolsWithFilterStore,
-    /** Per Pool gRPC Endpoints */QueryPoolStore,
-    /**
-     * PoolType returns the type of the pool.
-     * Returns "Balancer" as a string literal when the pool is a balancer pool.
-     * Errors if the pool is failed to be type caseted.
-     */
-    QueryPoolTypeStore,
-    /**
-     * Simulates joining pool without a swap. Returns the amount of shares you'd
-     * get and tokens needed to provide
-     */
-    QueryCalcJoinPoolNoSwapSharesStore,
-    QueryCalcJoinPoolSharesStore,
-    QueryCalcExitPoolCoinsFromSharesStore,
-    QueryPoolParamsStore,
-    QueryTotalPoolLiquidityStore,
-    QueryTotalSharesStore,
-    /**
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    QuerySpotPriceStore,
-    /** Estimate the swap. */QueryEstimateSwapExactAmountInStore,
-    QueryEstimateSwapExactAmountOutStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.ts
deleted file mode 100644
index 86197620..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/query.ts
+++ /dev/null
@@ -1,3619 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../cosmos/base/query/v1beta1/pagination";
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { SwapAmountInRoute, SwapAmountInRouteAmino, SwapAmountInRouteSDKType, SwapAmountOutRoute, SwapAmountOutRouteAmino, SwapAmountOutRouteSDKType } from "./tx";
-import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** =============================== Pool */
-export interface QueryPoolRequest {
-  poolId: bigint;
-}
-export interface QueryPoolRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolRequest";
-  value: Uint8Array;
-}
-/** =============================== Pool */
-export interface QueryPoolRequestAmino {
-  pool_id: string;
-}
-export interface QueryPoolRequestAminoMsg {
-  type: "osmosis/gamm/query-pool-request";
-  value: QueryPoolRequestAmino;
-}
-/** =============================== Pool */
-export interface QueryPoolRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryPoolResponse {
-  pool: Any | undefined;
-}
-export interface QueryPoolResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolResponse";
-  value: Uint8Array;
-}
-export interface QueryPoolResponseAmino {
-  pool?: AnyAmino | undefined;
-}
-export interface QueryPoolResponseAminoMsg {
-  type: "osmosis/gamm/query-pool-response";
-  value: QueryPoolResponseAmino;
-}
-export interface QueryPoolResponseSDKType {
-  pool: AnySDKType | undefined;
-}
-/** =============================== Pools */
-export interface QueryPoolsRequest {
-  /** pagination defines an optional pagination for the request. */
-  pagination: PageRequest | undefined;
-}
-export interface QueryPoolsRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsRequest";
-  value: Uint8Array;
-}
-/** =============================== Pools */
-export interface QueryPoolsRequestAmino {
-  /** pagination defines an optional pagination for the request. */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryPoolsRequestAminoMsg {
-  type: "osmosis/gamm/query-pools-request";
-  value: QueryPoolsRequestAmino;
-}
-/** =============================== Pools */
-export interface QueryPoolsRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-export interface QueryPoolsResponse {
-  pools: Any[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryPoolsResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsResponse";
-  value: Uint8Array;
-}
-export interface QueryPoolsResponseAmino {
-  pools: AnyAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryPoolsResponseAminoMsg {
-  type: "osmosis/gamm/query-pools-response";
-  value: QueryPoolsResponseAmino;
-}
-export interface QueryPoolsResponseSDKType {
-  pools: AnySDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/** =============================== NumPools */
-export interface QueryNumPoolsRequest {}
-export interface QueryNumPoolsRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsRequest";
-  value: Uint8Array;
-}
-/** =============================== NumPools */
-export interface QueryNumPoolsRequestAmino {}
-export interface QueryNumPoolsRequestAminoMsg {
-  type: "osmosis/gamm/query-num-pools-request";
-  value: QueryNumPoolsRequestAmino;
-}
-/** =============================== NumPools */
-export interface QueryNumPoolsRequestSDKType {}
-export interface QueryNumPoolsResponse {
-  numPools: bigint;
-}
-export interface QueryNumPoolsResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsResponse";
-  value: Uint8Array;
-}
-export interface QueryNumPoolsResponseAmino {
-  num_pools: string;
-}
-export interface QueryNumPoolsResponseAminoMsg {
-  type: "osmosis/gamm/query-num-pools-response";
-  value: QueryNumPoolsResponseAmino;
-}
-export interface QueryNumPoolsResponseSDKType {
-  num_pools: bigint;
-}
-/** =============================== PoolType */
-export interface QueryPoolTypeRequest {
-  poolId: bigint;
-}
-export interface QueryPoolTypeRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeRequest";
-  value: Uint8Array;
-}
-/** =============================== PoolType */
-export interface QueryPoolTypeRequestAmino {
-  pool_id: string;
-}
-export interface QueryPoolTypeRequestAminoMsg {
-  type: "osmosis/gamm/query-pool-type-request";
-  value: QueryPoolTypeRequestAmino;
-}
-/** =============================== PoolType */
-export interface QueryPoolTypeRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryPoolTypeResponse {
-  poolType: string;
-}
-export interface QueryPoolTypeResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeResponse";
-  value: Uint8Array;
-}
-export interface QueryPoolTypeResponseAmino {
-  pool_type: string;
-}
-export interface QueryPoolTypeResponseAminoMsg {
-  type: "osmosis/gamm/query-pool-type-response";
-  value: QueryPoolTypeResponseAmino;
-}
-export interface QueryPoolTypeResponseSDKType {
-  pool_type: string;
-}
-/** =============================== CalcJoinPoolShares */
-export interface QueryCalcJoinPoolSharesRequest {
-  poolId: bigint;
-  tokensIn: Coin[];
-}
-export interface QueryCalcJoinPoolSharesRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesRequest";
-  value: Uint8Array;
-}
-/** =============================== CalcJoinPoolShares */
-export interface QueryCalcJoinPoolSharesRequestAmino {
-  pool_id: string;
-  tokens_in: CoinAmino[];
-}
-export interface QueryCalcJoinPoolSharesRequestAminoMsg {
-  type: "osmosis/gamm/query-calc-join-pool-shares-request";
-  value: QueryCalcJoinPoolSharesRequestAmino;
-}
-/** =============================== CalcJoinPoolShares */
-export interface QueryCalcJoinPoolSharesRequestSDKType {
-  pool_id: bigint;
-  tokens_in: CoinSDKType[];
-}
-export interface QueryCalcJoinPoolSharesResponse {
-  shareOutAmount: string;
-  tokensOut: Coin[];
-}
-export interface QueryCalcJoinPoolSharesResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesResponse";
-  value: Uint8Array;
-}
-export interface QueryCalcJoinPoolSharesResponseAmino {
-  share_out_amount: string;
-  tokens_out: CoinAmino[];
-}
-export interface QueryCalcJoinPoolSharesResponseAminoMsg {
-  type: "osmosis/gamm/query-calc-join-pool-shares-response";
-  value: QueryCalcJoinPoolSharesResponseAmino;
-}
-export interface QueryCalcJoinPoolSharesResponseSDKType {
-  share_out_amount: string;
-  tokens_out: CoinSDKType[];
-}
-/** =============================== CalcExitPoolCoinsFromShares */
-export interface QueryCalcExitPoolCoinsFromSharesRequest {
-  poolId: bigint;
-  shareInAmount: string;
-}
-export interface QueryCalcExitPoolCoinsFromSharesRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesRequest";
-  value: Uint8Array;
-}
-/** =============================== CalcExitPoolCoinsFromShares */
-export interface QueryCalcExitPoolCoinsFromSharesRequestAmino {
-  pool_id: string;
-  share_in_amount: string;
-}
-export interface QueryCalcExitPoolCoinsFromSharesRequestAminoMsg {
-  type: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-request";
-  value: QueryCalcExitPoolCoinsFromSharesRequestAmino;
-}
-/** =============================== CalcExitPoolCoinsFromShares */
-export interface QueryCalcExitPoolCoinsFromSharesRequestSDKType {
-  pool_id: bigint;
-  share_in_amount: string;
-}
-export interface QueryCalcExitPoolCoinsFromSharesResponse {
-  tokensOut: Coin[];
-}
-export interface QueryCalcExitPoolCoinsFromSharesResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesResponse";
-  value: Uint8Array;
-}
-export interface QueryCalcExitPoolCoinsFromSharesResponseAmino {
-  tokens_out: CoinAmino[];
-}
-export interface QueryCalcExitPoolCoinsFromSharesResponseAminoMsg {
-  type: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-response";
-  value: QueryCalcExitPoolCoinsFromSharesResponseAmino;
-}
-export interface QueryCalcExitPoolCoinsFromSharesResponseSDKType {
-  tokens_out: CoinSDKType[];
-}
-/** =============================== PoolParams */
-export interface QueryPoolParamsRequest {
-  poolId: bigint;
-}
-export interface QueryPoolParamsRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsRequest";
-  value: Uint8Array;
-}
-/** =============================== PoolParams */
-export interface QueryPoolParamsRequestAmino {
-  pool_id: string;
-}
-export interface QueryPoolParamsRequestAminoMsg {
-  type: "osmosis/gamm/query-pool-params-request";
-  value: QueryPoolParamsRequestAmino;
-}
-/** =============================== PoolParams */
-export interface QueryPoolParamsRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryPoolParamsResponse {
-  params: Any | undefined;
-}
-export interface QueryPoolParamsResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsResponse";
-  value: Uint8Array;
-}
-export interface QueryPoolParamsResponseAmino {
-  params?: AnyAmino | undefined;
-}
-export interface QueryPoolParamsResponseAminoMsg {
-  type: "osmosis/gamm/query-pool-params-response";
-  value: QueryPoolParamsResponseAmino;
-}
-export interface QueryPoolParamsResponseSDKType {
-  params: AnySDKType | undefined;
-}
-/** =============================== PoolLiquidity */
-export interface QueryTotalPoolLiquidityRequest {
-  poolId: bigint;
-}
-export interface QueryTotalPoolLiquidityRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityRequest";
-  value: Uint8Array;
-}
-/** =============================== PoolLiquidity */
-export interface QueryTotalPoolLiquidityRequestAmino {
-  pool_id: string;
-}
-export interface QueryTotalPoolLiquidityRequestAminoMsg {
-  type: "osmosis/gamm/query-total-pool-liquidity-request";
-  value: QueryTotalPoolLiquidityRequestAmino;
-}
-/** =============================== PoolLiquidity */
-export interface QueryTotalPoolLiquidityRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryTotalPoolLiquidityResponse {
-  liquidity: Coin[];
-}
-export interface QueryTotalPoolLiquidityResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalPoolLiquidityResponseAmino {
-  liquidity: CoinAmino[];
-}
-export interface QueryTotalPoolLiquidityResponseAminoMsg {
-  type: "osmosis/gamm/query-total-pool-liquidity-response";
-  value: QueryTotalPoolLiquidityResponseAmino;
-}
-export interface QueryTotalPoolLiquidityResponseSDKType {
-  liquidity: CoinSDKType[];
-}
-/** =============================== TotalShares */
-export interface QueryTotalSharesRequest {
-  poolId: bigint;
-}
-export interface QueryTotalSharesRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesRequest";
-  value: Uint8Array;
-}
-/** =============================== TotalShares */
-export interface QueryTotalSharesRequestAmino {
-  pool_id: string;
-}
-export interface QueryTotalSharesRequestAminoMsg {
-  type: "osmosis/gamm/query-total-shares-request";
-  value: QueryTotalSharesRequestAmino;
-}
-/** =============================== TotalShares */
-export interface QueryTotalSharesRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryTotalSharesResponse {
-  totalShares: Coin | undefined;
-}
-export interface QueryTotalSharesResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalSharesResponseAmino {
-  total_shares?: CoinAmino | undefined;
-}
-export interface QueryTotalSharesResponseAminoMsg {
-  type: "osmosis/gamm/query-total-shares-response";
-  value: QueryTotalSharesResponseAmino;
-}
-export interface QueryTotalSharesResponseSDKType {
-  total_shares: CoinSDKType | undefined;
-}
-/** =============================== CalcJoinPoolNoSwapShares */
-export interface QueryCalcJoinPoolNoSwapSharesRequest {
-  poolId: bigint;
-  tokensIn: Coin[];
-}
-export interface QueryCalcJoinPoolNoSwapSharesRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesRequest";
-  value: Uint8Array;
-}
-/** =============================== CalcJoinPoolNoSwapShares */
-export interface QueryCalcJoinPoolNoSwapSharesRequestAmino {
-  pool_id: string;
-  tokens_in: CoinAmino[];
-}
-export interface QueryCalcJoinPoolNoSwapSharesRequestAminoMsg {
-  type: "osmosis/gamm/query-calc-join-pool-no-swap-shares-request";
-  value: QueryCalcJoinPoolNoSwapSharesRequestAmino;
-}
-/** =============================== CalcJoinPoolNoSwapShares */
-export interface QueryCalcJoinPoolNoSwapSharesRequestSDKType {
-  pool_id: bigint;
-  tokens_in: CoinSDKType[];
-}
-export interface QueryCalcJoinPoolNoSwapSharesResponse {
-  tokensOut: Coin[];
-  sharesOut: string;
-}
-export interface QueryCalcJoinPoolNoSwapSharesResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesResponse";
-  value: Uint8Array;
-}
-export interface QueryCalcJoinPoolNoSwapSharesResponseAmino {
-  tokens_out: CoinAmino[];
-  shares_out: string;
-}
-export interface QueryCalcJoinPoolNoSwapSharesResponseAminoMsg {
-  type: "osmosis/gamm/query-calc-join-pool-no-swap-shares-response";
-  value: QueryCalcJoinPoolNoSwapSharesResponseAmino;
-}
-export interface QueryCalcJoinPoolNoSwapSharesResponseSDKType {
-  tokens_out: CoinSDKType[];
-  shares_out: string;
-}
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceRequest {
-  poolId: bigint;
-  baseAssetDenom: string;
-  quoteAssetDenom: string;
-}
-export interface QuerySpotPriceRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceRequestAmino {
-  pool_id: string;
-  base_asset_denom: string;
-  quote_asset_denom: string;
-}
-export interface QuerySpotPriceRequestAminoMsg {
-  type: "osmosis/gamm/query-spot-price-request";
-  value: QuerySpotPriceRequestAmino;
-}
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceRequestSDKType {
-  pool_id: bigint;
-  base_asset_denom: string;
-  quote_asset_denom: string;
-}
-export interface QueryPoolsWithFilterRequest {
-  minLiquidity: Coin[];
-  poolType: string;
-  pagination: PageRequest | undefined;
-}
-export interface QueryPoolsWithFilterRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterRequest";
-  value: Uint8Array;
-}
-export interface QueryPoolsWithFilterRequestAmino {
-  min_liquidity: CoinAmino[];
-  pool_type: string;
-  pagination?: PageRequestAmino | undefined;
-}
-export interface QueryPoolsWithFilterRequestAminoMsg {
-  type: "osmosis/gamm/query-pools-with-filter-request";
-  value: QueryPoolsWithFilterRequestAmino;
-}
-export interface QueryPoolsWithFilterRequestSDKType {
-  min_liquidity: CoinSDKType[];
-  pool_type: string;
-  pagination: PageRequestSDKType | undefined;
-}
-export interface QueryPoolsWithFilterResponse {
-  pools: Any[];
-  /** pagination defines the pagination in the response. */
-  pagination: PageResponse | undefined;
-}
-export interface QueryPoolsWithFilterResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterResponse";
-  value: Uint8Array;
-}
-export interface QueryPoolsWithFilterResponseAmino {
-  pools: AnyAmino[];
-  /** pagination defines the pagination in the response. */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface QueryPoolsWithFilterResponseAminoMsg {
-  type: "osmosis/gamm/query-pools-with-filter-response";
-  value: QueryPoolsWithFilterResponseAmino;
-}
-export interface QueryPoolsWithFilterResponseSDKType {
-  pools: AnySDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceResponse {
-  /** String of the Dec. Ex) 10.203uatom */
-  spotPrice: string;
-}
-export interface QuerySpotPriceResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceResponseAmino {
-  /** String of the Dec. Ex) 10.203uatom */
-  spot_price: string;
-}
-export interface QuerySpotPriceResponseAminoMsg {
-  type: "osmosis/gamm/query-spot-price-response";
-  value: QuerySpotPriceResponseAmino;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-/** @deprecated */
-export interface QuerySpotPriceResponseSDKType {
-  spot_price: string;
-}
-/** =============================== EstimateSwapExactAmountIn */
-export interface QuerySwapExactAmountInRequest {
-  /** TODO: CHANGE THIS TO RESERVED IN A PATCH RELEASE */
-  sender: string;
-  poolId: bigint;
-  tokenIn: string;
-  routes: SwapAmountInRoute[];
-}
-export interface QuerySwapExactAmountInRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInRequest";
-  value: Uint8Array;
-}
-/** =============================== EstimateSwapExactAmountIn */
-export interface QuerySwapExactAmountInRequestAmino {
-  /** TODO: CHANGE THIS TO RESERVED IN A PATCH RELEASE */
-  sender: string;
-  pool_id: string;
-  token_in: string;
-  routes: SwapAmountInRouteAmino[];
-}
-export interface QuerySwapExactAmountInRequestAminoMsg {
-  type: "osmosis/gamm/query-swap-exact-amount-in-request";
-  value: QuerySwapExactAmountInRequestAmino;
-}
-/** =============================== EstimateSwapExactAmountIn */
-export interface QuerySwapExactAmountInRequestSDKType {
-  sender: string;
-  pool_id: bigint;
-  token_in: string;
-  routes: SwapAmountInRouteSDKType[];
-}
-export interface QuerySwapExactAmountInResponse {
-  tokenOutAmount: string;
-}
-export interface QuerySwapExactAmountInResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInResponse";
-  value: Uint8Array;
-}
-export interface QuerySwapExactAmountInResponseAmino {
-  token_out_amount: string;
-}
-export interface QuerySwapExactAmountInResponseAminoMsg {
-  type: "osmosis/gamm/query-swap-exact-amount-in-response";
-  value: QuerySwapExactAmountInResponseAmino;
-}
-export interface QuerySwapExactAmountInResponseSDKType {
-  token_out_amount: string;
-}
-/** =============================== EstimateSwapExactAmountOut */
-export interface QuerySwapExactAmountOutRequest {
-  /** TODO: CHANGE THIS TO RESERVED IN A PATCH RELEASE */
-  sender: string;
-  poolId: bigint;
-  routes: SwapAmountOutRoute[];
-  tokenOut: string;
-}
-export interface QuerySwapExactAmountOutRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutRequest";
-  value: Uint8Array;
-}
-/** =============================== EstimateSwapExactAmountOut */
-export interface QuerySwapExactAmountOutRequestAmino {
-  /** TODO: CHANGE THIS TO RESERVED IN A PATCH RELEASE */
-  sender: string;
-  pool_id: string;
-  routes: SwapAmountOutRouteAmino[];
-  token_out: string;
-}
-export interface QuerySwapExactAmountOutRequestAminoMsg {
-  type: "osmosis/gamm/query-swap-exact-amount-out-request";
-  value: QuerySwapExactAmountOutRequestAmino;
-}
-/** =============================== EstimateSwapExactAmountOut */
-export interface QuerySwapExactAmountOutRequestSDKType {
-  sender: string;
-  pool_id: bigint;
-  routes: SwapAmountOutRouteSDKType[];
-  token_out: string;
-}
-export interface QuerySwapExactAmountOutResponse {
-  tokenInAmount: string;
-}
-export interface QuerySwapExactAmountOutResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutResponse";
-  value: Uint8Array;
-}
-export interface QuerySwapExactAmountOutResponseAmino {
-  token_in_amount: string;
-}
-export interface QuerySwapExactAmountOutResponseAminoMsg {
-  type: "osmosis/gamm/query-swap-exact-amount-out-response";
-  value: QuerySwapExactAmountOutResponseAmino;
-}
-export interface QuerySwapExactAmountOutResponseSDKType {
-  token_in_amount: string;
-}
-export interface QueryTotalLiquidityRequest {}
-export interface QueryTotalLiquidityRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityRequest";
-  value: Uint8Array;
-}
-export interface QueryTotalLiquidityRequestAmino {}
-export interface QueryTotalLiquidityRequestAminoMsg {
-  type: "osmosis/gamm/query-total-liquidity-request";
-  value: QueryTotalLiquidityRequestAmino;
-}
-export interface QueryTotalLiquidityRequestSDKType {}
-export interface QueryTotalLiquidityResponse {
-  liquidity: Coin[];
-}
-export interface QueryTotalLiquidityResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalLiquidityResponseAmino {
-  liquidity: CoinAmino[];
-}
-export interface QueryTotalLiquidityResponseAminoMsg {
-  type: "osmosis/gamm/query-total-liquidity-response";
-  value: QueryTotalLiquidityResponseAmino;
-}
-export interface QueryTotalLiquidityResponseSDKType {
-  liquidity: CoinSDKType[];
-}
-function createBaseQueryPoolRequest(): QueryPoolRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryPoolRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolRequest",
-  aminoType: "osmosis/gamm/query-pool-request",
-  encode(message: QueryPoolRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPoolRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolRequest>): QueryPoolRequest {
-    const message = createBaseQueryPoolRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPoolRequestSDKType): QueryPoolRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryPoolRequest): QueryPoolRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryPoolRequestAmino): QueryPoolRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryPoolRequest): QueryPoolRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolRequestAminoMsg): QueryPoolRequest {
-    return QueryPoolRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolRequest): QueryPoolRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-request",
-      value: QueryPoolRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolRequestProtoMsg): QueryPoolRequest {
-    return QueryPoolRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolRequest): Uint8Array {
-    return QueryPoolRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolRequest): QueryPoolRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolRequest",
-      value: QueryPoolRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolResponse(): QueryPoolResponse {
-  return {
-    pool: Any.fromPartial({})
-  };
-}
-export const QueryPoolResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolResponse",
-  aminoType: "osmosis/gamm/query-pool-response",
-  encode(message: QueryPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pool !== undefined) {
-      Any.encode(message.pool, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pool = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolResponse {
-    return {
-      pool: isSet(object.pool) ? Any.fromJSON(object.pool) : undefined
-    };
-  },
-  toJSON(message: QueryPoolResponse): unknown {
-    const obj: any = {};
-    message.pool !== undefined && (obj.pool = message.pool ? Any.toJSON(message.pool) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolResponse>): QueryPoolResponse {
-    const message = createBaseQueryPoolResponse();
-    message.pool = object.pool !== undefined && object.pool !== null ? Any.fromPartial(object.pool) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolResponseSDKType): QueryPoolResponse {
-    return {
-      pool: object.pool ? Any.fromSDK(object.pool) : undefined
-    };
-  },
-  toSDK(message: QueryPoolResponse): QueryPoolResponseSDKType {
-    const obj: any = {};
-    message.pool !== undefined && (obj.pool = message.pool ? Any.toSDK(message.pool) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolResponseAmino): QueryPoolResponse {
-    return {
-      pool: object?.pool ? Any.fromAmino(object.pool) : undefined
-    };
-  },
-  toAmino(message: QueryPoolResponse): QueryPoolResponseAmino {
-    const obj: any = {};
-    obj.pool = message.pool ? Any.toAmino(message.pool) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolResponseAminoMsg): QueryPoolResponse {
-    return QueryPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolResponse): QueryPoolResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-response",
-      value: QueryPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolResponseProtoMsg): QueryPoolResponse {
-    return QueryPoolResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolResponse): Uint8Array {
-    return QueryPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolResponse): QueryPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolResponse",
-      value: QueryPoolResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolsRequest(): QueryPoolsRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryPoolsRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsRequest",
-  aminoType: "osmosis/gamm/query-pools-request",
-  encode(message: QueryPoolsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolsRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPoolsRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolsRequest>): QueryPoolsRequest {
-    const message = createBaseQueryPoolsRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolsRequestSDKType): QueryPoolsRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPoolsRequest): QueryPoolsRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolsRequestAmino): QueryPoolsRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPoolsRequest): QueryPoolsRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolsRequestAminoMsg): QueryPoolsRequest {
-    return QueryPoolsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolsRequest): QueryPoolsRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pools-request",
-      value: QueryPoolsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolsRequestProtoMsg): QueryPoolsRequest {
-    return QueryPoolsRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolsRequest): Uint8Array {
-    return QueryPoolsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolsRequest): QueryPoolsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsRequest",
-      value: QueryPoolsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolsResponse(): QueryPoolsResponse {
-  return {
-    pools: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryPoolsResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsResponse",
-  aminoType: "osmosis/gamm/query-pools-response",
-  encode(message: QueryPoolsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pools) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pools.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolsResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPoolsResponse): unknown {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolsResponse>): QueryPoolsResponse {
-    const message = createBaseQueryPoolsResponse();
-    message.pools = object.pools?.map(e => Any.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolsResponseSDKType): QueryPoolsResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPoolsResponse): QueryPoolsResponseSDKType {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolsResponseAmino): QueryPoolsResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPoolsResponse): QueryPoolsResponseAmino {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolsResponseAminoMsg): QueryPoolsResponse {
-    return QueryPoolsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolsResponse): QueryPoolsResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pools-response",
-      value: QueryPoolsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolsResponseProtoMsg): QueryPoolsResponse {
-    return QueryPoolsResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolsResponse): Uint8Array {
-    return QueryPoolsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolsResponse): QueryPoolsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsResponse",
-      value: QueryPoolsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNumPoolsRequest(): QueryNumPoolsRequest {
-  return {};
-}
-export const QueryNumPoolsRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsRequest",
-  aminoType: "osmosis/gamm/query-num-pools-request",
-  encode(_: QueryNumPoolsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNumPoolsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNumPoolsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryNumPoolsRequest {
-    return {};
-  },
-  toJSON(_: QueryNumPoolsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryNumPoolsRequest>): QueryNumPoolsRequest {
-    const message = createBaseQueryNumPoolsRequest();
-    return message;
-  },
-  fromSDK(_: QueryNumPoolsRequestSDKType): QueryNumPoolsRequest {
-    return {};
-  },
-  toSDK(_: QueryNumPoolsRequest): QueryNumPoolsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryNumPoolsRequestAmino): QueryNumPoolsRequest {
-    return {};
-  },
-  toAmino(_: QueryNumPoolsRequest): QueryNumPoolsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryNumPoolsRequestAminoMsg): QueryNumPoolsRequest {
-    return QueryNumPoolsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNumPoolsRequest): QueryNumPoolsRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-num-pools-request",
-      value: QueryNumPoolsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNumPoolsRequestProtoMsg): QueryNumPoolsRequest {
-    return QueryNumPoolsRequest.decode(message.value);
-  },
-  toProto(message: QueryNumPoolsRequest): Uint8Array {
-    return QueryNumPoolsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNumPoolsRequest): QueryNumPoolsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsRequest",
-      value: QueryNumPoolsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryNumPoolsResponse(): QueryNumPoolsResponse {
-  return {
-    numPools: BigInt(0)
-  };
-}
-export const QueryNumPoolsResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsResponse",
-  aminoType: "osmosis/gamm/query-num-pools-response",
-  encode(message: QueryNumPoolsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.numPools !== BigInt(0)) {
-      writer.uint32(8).uint64(message.numPools);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryNumPoolsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryNumPoolsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.numPools = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryNumPoolsResponse {
-    return {
-      numPools: isSet(object.numPools) ? BigInt(object.numPools.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryNumPoolsResponse): unknown {
-    const obj: any = {};
-    message.numPools !== undefined && (obj.numPools = (message.numPools || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryNumPoolsResponse>): QueryNumPoolsResponse {
-    const message = createBaseQueryNumPoolsResponse();
-    message.numPools = object.numPools !== undefined && object.numPools !== null ? BigInt(object.numPools.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryNumPoolsResponseSDKType): QueryNumPoolsResponse {
-    return {
-      numPools: object?.num_pools
-    };
-  },
-  toSDK(message: QueryNumPoolsResponse): QueryNumPoolsResponseSDKType {
-    const obj: any = {};
-    obj.num_pools = message.numPools;
-    return obj;
-  },
-  fromAmino(object: QueryNumPoolsResponseAmino): QueryNumPoolsResponse {
-    return {
-      numPools: BigInt(object.num_pools)
-    };
-  },
-  toAmino(message: QueryNumPoolsResponse): QueryNumPoolsResponseAmino {
-    const obj: any = {};
-    obj.num_pools = message.numPools ? message.numPools.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryNumPoolsResponseAminoMsg): QueryNumPoolsResponse {
-    return QueryNumPoolsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryNumPoolsResponse): QueryNumPoolsResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-num-pools-response",
-      value: QueryNumPoolsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryNumPoolsResponseProtoMsg): QueryNumPoolsResponse {
-    return QueryNumPoolsResponse.decode(message.value);
-  },
-  toProto(message: QueryNumPoolsResponse): Uint8Array {
-    return QueryNumPoolsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryNumPoolsResponse): QueryNumPoolsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryNumPoolsResponse",
-      value: QueryNumPoolsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolTypeRequest(): QueryPoolTypeRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryPoolTypeRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeRequest",
-  aminoType: "osmosis/gamm/query-pool-type-request",
-  encode(message: QueryPoolTypeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolTypeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolTypeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolTypeRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPoolTypeRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolTypeRequest>): QueryPoolTypeRequest {
-    const message = createBaseQueryPoolTypeRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPoolTypeRequestSDKType): QueryPoolTypeRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryPoolTypeRequest): QueryPoolTypeRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryPoolTypeRequestAmino): QueryPoolTypeRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryPoolTypeRequest): QueryPoolTypeRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolTypeRequestAminoMsg): QueryPoolTypeRequest {
-    return QueryPoolTypeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolTypeRequest): QueryPoolTypeRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-type-request",
-      value: QueryPoolTypeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolTypeRequestProtoMsg): QueryPoolTypeRequest {
-    return QueryPoolTypeRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolTypeRequest): Uint8Array {
-    return QueryPoolTypeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolTypeRequest): QueryPoolTypeRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeRequest",
-      value: QueryPoolTypeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolTypeResponse(): QueryPoolTypeResponse {
-  return {
-    poolType: ""
-  };
-}
-export const QueryPoolTypeResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeResponse",
-  aminoType: "osmosis/gamm/query-pool-type-response",
-  encode(message: QueryPoolTypeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolType !== "") {
-      writer.uint32(10).string(message.poolType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolTypeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolTypeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolType = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolTypeResponse {
-    return {
-      poolType: isSet(object.poolType) ? String(object.poolType) : ""
-    };
-  },
-  toJSON(message: QueryPoolTypeResponse): unknown {
-    const obj: any = {};
-    message.poolType !== undefined && (obj.poolType = message.poolType);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolTypeResponse>): QueryPoolTypeResponse {
-    const message = createBaseQueryPoolTypeResponse();
-    message.poolType = object.poolType ?? "";
-    return message;
-  },
-  fromSDK(object: QueryPoolTypeResponseSDKType): QueryPoolTypeResponse {
-    return {
-      poolType: object?.pool_type
-    };
-  },
-  toSDK(message: QueryPoolTypeResponse): QueryPoolTypeResponseSDKType {
-    const obj: any = {};
-    obj.pool_type = message.poolType;
-    return obj;
-  },
-  fromAmino(object: QueryPoolTypeResponseAmino): QueryPoolTypeResponse {
-    return {
-      poolType: object.pool_type
-    };
-  },
-  toAmino(message: QueryPoolTypeResponse): QueryPoolTypeResponseAmino {
-    const obj: any = {};
-    obj.pool_type = message.poolType;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolTypeResponseAminoMsg): QueryPoolTypeResponse {
-    return QueryPoolTypeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolTypeResponse): QueryPoolTypeResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-type-response",
-      value: QueryPoolTypeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolTypeResponseProtoMsg): QueryPoolTypeResponse {
-    return QueryPoolTypeResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolTypeResponse): Uint8Array {
-    return QueryPoolTypeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolTypeResponse): QueryPoolTypeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolTypeResponse",
-      value: QueryPoolTypeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcJoinPoolSharesRequest(): QueryCalcJoinPoolSharesRequest {
-  return {
-    poolId: BigInt(0),
-    tokensIn: []
-  };
-}
-export const QueryCalcJoinPoolSharesRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesRequest",
-  aminoType: "osmosis/gamm/query-calc-join-pool-shares-request",
-  encode(message: QueryCalcJoinPoolSharesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    for (const v of message.tokensIn) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcJoinPoolSharesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcJoinPoolSharesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.tokensIn.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcJoinPoolSharesRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokensIn: Array.isArray(object?.tokensIn) ? object.tokensIn.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryCalcJoinPoolSharesRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    if (message.tokensIn) {
-      obj.tokensIn = message.tokensIn.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokensIn = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcJoinPoolSharesRequest>): QueryCalcJoinPoolSharesRequest {
-    const message = createBaseQueryCalcJoinPoolSharesRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokensIn = object.tokensIn?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryCalcJoinPoolSharesRequestSDKType): QueryCalcJoinPoolSharesRequest {
-    return {
-      poolId: object?.pool_id,
-      tokensIn: Array.isArray(object?.tokens_in) ? object.tokens_in.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryCalcJoinPoolSharesRequest): QueryCalcJoinPoolSharesRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    if (message.tokensIn) {
-      obj.tokens_in = message.tokensIn.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.tokens_in = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryCalcJoinPoolSharesRequestAmino): QueryCalcJoinPoolSharesRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      tokensIn: Array.isArray(object?.tokens_in) ? object.tokens_in.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryCalcJoinPoolSharesRequest): QueryCalcJoinPoolSharesRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    if (message.tokensIn) {
-      obj.tokens_in = message.tokensIn.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.tokens_in = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcJoinPoolSharesRequestAminoMsg): QueryCalcJoinPoolSharesRequest {
-    return QueryCalcJoinPoolSharesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcJoinPoolSharesRequest): QueryCalcJoinPoolSharesRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-join-pool-shares-request",
-      value: QueryCalcJoinPoolSharesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcJoinPoolSharesRequestProtoMsg): QueryCalcJoinPoolSharesRequest {
-    return QueryCalcJoinPoolSharesRequest.decode(message.value);
-  },
-  toProto(message: QueryCalcJoinPoolSharesRequest): Uint8Array {
-    return QueryCalcJoinPoolSharesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcJoinPoolSharesRequest): QueryCalcJoinPoolSharesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesRequest",
-      value: QueryCalcJoinPoolSharesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcJoinPoolSharesResponse(): QueryCalcJoinPoolSharesResponse {
-  return {
-    shareOutAmount: "",
-    tokensOut: []
-  };
-}
-export const QueryCalcJoinPoolSharesResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesResponse",
-  aminoType: "osmosis/gamm/query-calc-join-pool-shares-response",
-  encode(message: QueryCalcJoinPoolSharesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.shareOutAmount !== "") {
-      writer.uint32(10).string(message.shareOutAmount);
-    }
-    for (const v of message.tokensOut) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcJoinPoolSharesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcJoinPoolSharesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.shareOutAmount = reader.string();
-          break;
-        case 2:
-          message.tokensOut.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcJoinPoolSharesResponse {
-    return {
-      shareOutAmount: isSet(object.shareOutAmount) ? String(object.shareOutAmount) : "",
-      tokensOut: Array.isArray(object?.tokensOut) ? object.tokensOut.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryCalcJoinPoolSharesResponse): unknown {
-    const obj: any = {};
-    message.shareOutAmount !== undefined && (obj.shareOutAmount = message.shareOutAmount);
-    if (message.tokensOut) {
-      obj.tokensOut = message.tokensOut.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokensOut = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcJoinPoolSharesResponse>): QueryCalcJoinPoolSharesResponse {
-    const message = createBaseQueryCalcJoinPoolSharesResponse();
-    message.shareOutAmount = object.shareOutAmount ?? "";
-    message.tokensOut = object.tokensOut?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryCalcJoinPoolSharesResponseSDKType): QueryCalcJoinPoolSharesResponse {
-    return {
-      shareOutAmount: object?.share_out_amount,
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryCalcJoinPoolSharesResponse): QueryCalcJoinPoolSharesResponseSDKType {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryCalcJoinPoolSharesResponseAmino): QueryCalcJoinPoolSharesResponse {
-    return {
-      shareOutAmount: object.share_out_amount,
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryCalcJoinPoolSharesResponse): QueryCalcJoinPoolSharesResponseAmino {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcJoinPoolSharesResponseAminoMsg): QueryCalcJoinPoolSharesResponse {
-    return QueryCalcJoinPoolSharesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcJoinPoolSharesResponse): QueryCalcJoinPoolSharesResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-join-pool-shares-response",
-      value: QueryCalcJoinPoolSharesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcJoinPoolSharesResponseProtoMsg): QueryCalcJoinPoolSharesResponse {
-    return QueryCalcJoinPoolSharesResponse.decode(message.value);
-  },
-  toProto(message: QueryCalcJoinPoolSharesResponse): Uint8Array {
-    return QueryCalcJoinPoolSharesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcJoinPoolSharesResponse): QueryCalcJoinPoolSharesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolSharesResponse",
-      value: QueryCalcJoinPoolSharesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcExitPoolCoinsFromSharesRequest(): QueryCalcExitPoolCoinsFromSharesRequest {
-  return {
-    poolId: BigInt(0),
-    shareInAmount: ""
-  };
-}
-export const QueryCalcExitPoolCoinsFromSharesRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesRequest",
-  aminoType: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-request",
-  encode(message: QueryCalcExitPoolCoinsFromSharesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.shareInAmount !== "") {
-      writer.uint32(18).string(message.shareInAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcExitPoolCoinsFromSharesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcExitPoolCoinsFromSharesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.shareInAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcExitPoolCoinsFromSharesRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      shareInAmount: isSet(object.shareInAmount) ? String(object.shareInAmount) : ""
-    };
-  },
-  toJSON(message: QueryCalcExitPoolCoinsFromSharesRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.shareInAmount !== undefined && (obj.shareInAmount = message.shareInAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcExitPoolCoinsFromSharesRequest>): QueryCalcExitPoolCoinsFromSharesRequest {
-    const message = createBaseQueryCalcExitPoolCoinsFromSharesRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.shareInAmount = object.shareInAmount ?? "";
-    return message;
-  },
-  fromSDK(object: QueryCalcExitPoolCoinsFromSharesRequestSDKType): QueryCalcExitPoolCoinsFromSharesRequest {
-    return {
-      poolId: object?.pool_id,
-      shareInAmount: object?.share_in_amount
-    };
-  },
-  toSDK(message: QueryCalcExitPoolCoinsFromSharesRequest): QueryCalcExitPoolCoinsFromSharesRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.share_in_amount = message.shareInAmount;
-    return obj;
-  },
-  fromAmino(object: QueryCalcExitPoolCoinsFromSharesRequestAmino): QueryCalcExitPoolCoinsFromSharesRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      shareInAmount: object.share_in_amount
-    };
-  },
-  toAmino(message: QueryCalcExitPoolCoinsFromSharesRequest): QueryCalcExitPoolCoinsFromSharesRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.share_in_amount = message.shareInAmount;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcExitPoolCoinsFromSharesRequestAminoMsg): QueryCalcExitPoolCoinsFromSharesRequest {
-    return QueryCalcExitPoolCoinsFromSharesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcExitPoolCoinsFromSharesRequest): QueryCalcExitPoolCoinsFromSharesRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-request",
-      value: QueryCalcExitPoolCoinsFromSharesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcExitPoolCoinsFromSharesRequestProtoMsg): QueryCalcExitPoolCoinsFromSharesRequest {
-    return QueryCalcExitPoolCoinsFromSharesRequest.decode(message.value);
-  },
-  toProto(message: QueryCalcExitPoolCoinsFromSharesRequest): Uint8Array {
-    return QueryCalcExitPoolCoinsFromSharesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcExitPoolCoinsFromSharesRequest): QueryCalcExitPoolCoinsFromSharesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesRequest",
-      value: QueryCalcExitPoolCoinsFromSharesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcExitPoolCoinsFromSharesResponse(): QueryCalcExitPoolCoinsFromSharesResponse {
-  return {
-    tokensOut: []
-  };
-}
-export const QueryCalcExitPoolCoinsFromSharesResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesResponse",
-  aminoType: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-response",
-  encode(message: QueryCalcExitPoolCoinsFromSharesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.tokensOut) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcExitPoolCoinsFromSharesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcExitPoolCoinsFromSharesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokensOut.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcExitPoolCoinsFromSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokensOut) ? object.tokensOut.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryCalcExitPoolCoinsFromSharesResponse): unknown {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokensOut = message.tokensOut.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokensOut = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcExitPoolCoinsFromSharesResponse>): QueryCalcExitPoolCoinsFromSharesResponse {
-    const message = createBaseQueryCalcExitPoolCoinsFromSharesResponse();
-    message.tokensOut = object.tokensOut?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryCalcExitPoolCoinsFromSharesResponseSDKType): QueryCalcExitPoolCoinsFromSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryCalcExitPoolCoinsFromSharesResponse): QueryCalcExitPoolCoinsFromSharesResponseSDKType {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryCalcExitPoolCoinsFromSharesResponseAmino): QueryCalcExitPoolCoinsFromSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryCalcExitPoolCoinsFromSharesResponse): QueryCalcExitPoolCoinsFromSharesResponseAmino {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcExitPoolCoinsFromSharesResponseAminoMsg): QueryCalcExitPoolCoinsFromSharesResponse {
-    return QueryCalcExitPoolCoinsFromSharesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcExitPoolCoinsFromSharesResponse): QueryCalcExitPoolCoinsFromSharesResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-exit-pool-coins-from-shares-response",
-      value: QueryCalcExitPoolCoinsFromSharesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcExitPoolCoinsFromSharesResponseProtoMsg): QueryCalcExitPoolCoinsFromSharesResponse {
-    return QueryCalcExitPoolCoinsFromSharesResponse.decode(message.value);
-  },
-  toProto(message: QueryCalcExitPoolCoinsFromSharesResponse): Uint8Array {
-    return QueryCalcExitPoolCoinsFromSharesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcExitPoolCoinsFromSharesResponse): QueryCalcExitPoolCoinsFromSharesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcExitPoolCoinsFromSharesResponse",
-      value: QueryCalcExitPoolCoinsFromSharesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolParamsRequest(): QueryPoolParamsRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryPoolParamsRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsRequest",
-  aminoType: "osmosis/gamm/query-pool-params-request",
-  encode(message: QueryPoolParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolParamsRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryPoolParamsRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolParamsRequest>): QueryPoolParamsRequest {
-    const message = createBaseQueryPoolParamsRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryPoolParamsRequestSDKType): QueryPoolParamsRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryPoolParamsRequest): QueryPoolParamsRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryPoolParamsRequestAmino): QueryPoolParamsRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryPoolParamsRequest): QueryPoolParamsRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolParamsRequestAminoMsg): QueryPoolParamsRequest {
-    return QueryPoolParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolParamsRequest): QueryPoolParamsRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-params-request",
-      value: QueryPoolParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolParamsRequestProtoMsg): QueryPoolParamsRequest {
-    return QueryPoolParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolParamsRequest): Uint8Array {
-    return QueryPoolParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolParamsRequest): QueryPoolParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsRequest",
-      value: QueryPoolParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolParamsResponse(): QueryPoolParamsResponse {
-  return {
-    params: Any.fromPartial({})
-  };
-}
-export const QueryPoolParamsResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsResponse",
-  aminoType: "osmosis/gamm/query-pool-params-response",
-  encode(message: QueryPoolParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Any.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Any.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolParamsResponse {
-    return {
-      params: isSet(object.params) ? Any.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryPoolParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Any.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolParamsResponse>): QueryPoolParamsResponse {
-    const message = createBaseQueryPoolParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Any.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolParamsResponseSDKType): QueryPoolParamsResponse {
-    return {
-      params: object.params ? Any.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryPoolParamsResponse): QueryPoolParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Any.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolParamsResponseAmino): QueryPoolParamsResponse {
-    return {
-      params: object?.params ? Any.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryPoolParamsResponse): QueryPoolParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Any.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolParamsResponseAminoMsg): QueryPoolParamsResponse {
-    return QueryPoolParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolParamsResponse): QueryPoolParamsResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pool-params-response",
-      value: QueryPoolParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolParamsResponseProtoMsg): QueryPoolParamsResponse {
-    return QueryPoolParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolParamsResponse): Uint8Array {
-    return QueryPoolParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolParamsResponse): QueryPoolParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolParamsResponse",
-      value: QueryPoolParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalPoolLiquidityRequest(): QueryTotalPoolLiquidityRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryTotalPoolLiquidityRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityRequest",
-  aminoType: "osmosis/gamm/query-total-pool-liquidity-request",
-  encode(message: QueryTotalPoolLiquidityRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalPoolLiquidityRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalPoolLiquidityRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalPoolLiquidityRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryTotalPoolLiquidityRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalPoolLiquidityRequest>): QueryTotalPoolLiquidityRequest {
-    const message = createBaseQueryTotalPoolLiquidityRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryTotalPoolLiquidityRequestSDKType): QueryTotalPoolLiquidityRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryTotalPoolLiquidityRequest): QueryTotalPoolLiquidityRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryTotalPoolLiquidityRequestAmino): QueryTotalPoolLiquidityRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryTotalPoolLiquidityRequest): QueryTotalPoolLiquidityRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalPoolLiquidityRequestAminoMsg): QueryTotalPoolLiquidityRequest {
-    return QueryTotalPoolLiquidityRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalPoolLiquidityRequest): QueryTotalPoolLiquidityRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-pool-liquidity-request",
-      value: QueryTotalPoolLiquidityRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalPoolLiquidityRequestProtoMsg): QueryTotalPoolLiquidityRequest {
-    return QueryTotalPoolLiquidityRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalPoolLiquidityRequest): Uint8Array {
-    return QueryTotalPoolLiquidityRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalPoolLiquidityRequest): QueryTotalPoolLiquidityRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityRequest",
-      value: QueryTotalPoolLiquidityRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalPoolLiquidityResponse(): QueryTotalPoolLiquidityResponse {
-  return {
-    liquidity: []
-  };
-}
-export const QueryTotalPoolLiquidityResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityResponse",
-  aminoType: "osmosis/gamm/query-total-pool-liquidity-response",
-  encode(message: QueryTotalPoolLiquidityResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.liquidity) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalPoolLiquidityResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalPoolLiquidityResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.liquidity.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalPoolLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryTotalPoolLiquidityResponse): unknown {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalPoolLiquidityResponse>): QueryTotalPoolLiquidityResponse {
-    const message = createBaseQueryTotalPoolLiquidityResponse();
-    message.liquidity = object.liquidity?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryTotalPoolLiquidityResponseSDKType): QueryTotalPoolLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryTotalPoolLiquidityResponse): QueryTotalPoolLiquidityResponseSDKType {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryTotalPoolLiquidityResponseAmino): QueryTotalPoolLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryTotalPoolLiquidityResponse): QueryTotalPoolLiquidityResponseAmino {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalPoolLiquidityResponseAminoMsg): QueryTotalPoolLiquidityResponse {
-    return QueryTotalPoolLiquidityResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalPoolLiquidityResponse): QueryTotalPoolLiquidityResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-pool-liquidity-response",
-      value: QueryTotalPoolLiquidityResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalPoolLiquidityResponseProtoMsg): QueryTotalPoolLiquidityResponse {
-    return QueryTotalPoolLiquidityResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalPoolLiquidityResponse): Uint8Array {
-    return QueryTotalPoolLiquidityResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalPoolLiquidityResponse): QueryTotalPoolLiquidityResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalPoolLiquidityResponse",
-      value: QueryTotalPoolLiquidityResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalSharesRequest(): QueryTotalSharesRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryTotalSharesRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesRequest",
-  aminoType: "osmosis/gamm/query-total-shares-request",
-  encode(message: QueryTotalSharesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalSharesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalSharesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalSharesRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryTotalSharesRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalSharesRequest>): QueryTotalSharesRequest {
-    const message = createBaseQueryTotalSharesRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryTotalSharesRequestSDKType): QueryTotalSharesRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryTotalSharesRequest): QueryTotalSharesRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryTotalSharesRequestAmino): QueryTotalSharesRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryTotalSharesRequest): QueryTotalSharesRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalSharesRequestAminoMsg): QueryTotalSharesRequest {
-    return QueryTotalSharesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalSharesRequest): QueryTotalSharesRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-shares-request",
-      value: QueryTotalSharesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalSharesRequestProtoMsg): QueryTotalSharesRequest {
-    return QueryTotalSharesRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalSharesRequest): Uint8Array {
-    return QueryTotalSharesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalSharesRequest): QueryTotalSharesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesRequest",
-      value: QueryTotalSharesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalSharesResponse(): QueryTotalSharesResponse {
-  return {
-    totalShares: Coin.fromPartial({})
-  };
-}
-export const QueryTotalSharesResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesResponse",
-  aminoType: "osmosis/gamm/query-total-shares-response",
-  encode(message: QueryTotalSharesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.totalShares !== undefined) {
-      Coin.encode(message.totalShares, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalSharesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalSharesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.totalShares = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalSharesResponse {
-    return {
-      totalShares: isSet(object.totalShares) ? Coin.fromJSON(object.totalShares) : undefined
-    };
-  },
-  toJSON(message: QueryTotalSharesResponse): unknown {
-    const obj: any = {};
-    message.totalShares !== undefined && (obj.totalShares = message.totalShares ? Coin.toJSON(message.totalShares) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalSharesResponse>): QueryTotalSharesResponse {
-    const message = createBaseQueryTotalSharesResponse();
-    message.totalShares = object.totalShares !== undefined && object.totalShares !== null ? Coin.fromPartial(object.totalShares) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTotalSharesResponseSDKType): QueryTotalSharesResponse {
-    return {
-      totalShares: object.total_shares ? Coin.fromSDK(object.total_shares) : undefined
-    };
-  },
-  toSDK(message: QueryTotalSharesResponse): QueryTotalSharesResponseSDKType {
-    const obj: any = {};
-    message.totalShares !== undefined && (obj.total_shares = message.totalShares ? Coin.toSDK(message.totalShares) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTotalSharesResponseAmino): QueryTotalSharesResponse {
-    return {
-      totalShares: object?.total_shares ? Coin.fromAmino(object.total_shares) : undefined
-    };
-  },
-  toAmino(message: QueryTotalSharesResponse): QueryTotalSharesResponseAmino {
-    const obj: any = {};
-    obj.total_shares = message.totalShares ? Coin.toAmino(message.totalShares) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalSharesResponseAminoMsg): QueryTotalSharesResponse {
-    return QueryTotalSharesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalSharesResponse): QueryTotalSharesResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-shares-response",
-      value: QueryTotalSharesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalSharesResponseProtoMsg): QueryTotalSharesResponse {
-    return QueryTotalSharesResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalSharesResponse): Uint8Array {
-    return QueryTotalSharesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalSharesResponse): QueryTotalSharesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalSharesResponse",
-      value: QueryTotalSharesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcJoinPoolNoSwapSharesRequest(): QueryCalcJoinPoolNoSwapSharesRequest {
-  return {
-    poolId: BigInt(0),
-    tokensIn: []
-  };
-}
-export const QueryCalcJoinPoolNoSwapSharesRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesRequest",
-  aminoType: "osmosis/gamm/query-calc-join-pool-no-swap-shares-request",
-  encode(message: QueryCalcJoinPoolNoSwapSharesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    for (const v of message.tokensIn) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcJoinPoolNoSwapSharesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcJoinPoolNoSwapSharesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.tokensIn.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcJoinPoolNoSwapSharesRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokensIn: Array.isArray(object?.tokensIn) ? object.tokensIn.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryCalcJoinPoolNoSwapSharesRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    if (message.tokensIn) {
-      obj.tokensIn = message.tokensIn.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokensIn = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcJoinPoolNoSwapSharesRequest>): QueryCalcJoinPoolNoSwapSharesRequest {
-    const message = createBaseQueryCalcJoinPoolNoSwapSharesRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokensIn = object.tokensIn?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryCalcJoinPoolNoSwapSharesRequestSDKType): QueryCalcJoinPoolNoSwapSharesRequest {
-    return {
-      poolId: object?.pool_id,
-      tokensIn: Array.isArray(object?.tokens_in) ? object.tokens_in.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryCalcJoinPoolNoSwapSharesRequest): QueryCalcJoinPoolNoSwapSharesRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    if (message.tokensIn) {
-      obj.tokens_in = message.tokensIn.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.tokens_in = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryCalcJoinPoolNoSwapSharesRequestAmino): QueryCalcJoinPoolNoSwapSharesRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      tokensIn: Array.isArray(object?.tokens_in) ? object.tokens_in.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryCalcJoinPoolNoSwapSharesRequest): QueryCalcJoinPoolNoSwapSharesRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    if (message.tokensIn) {
-      obj.tokens_in = message.tokensIn.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.tokens_in = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcJoinPoolNoSwapSharesRequestAminoMsg): QueryCalcJoinPoolNoSwapSharesRequest {
-    return QueryCalcJoinPoolNoSwapSharesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcJoinPoolNoSwapSharesRequest): QueryCalcJoinPoolNoSwapSharesRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-join-pool-no-swap-shares-request",
-      value: QueryCalcJoinPoolNoSwapSharesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcJoinPoolNoSwapSharesRequestProtoMsg): QueryCalcJoinPoolNoSwapSharesRequest {
-    return QueryCalcJoinPoolNoSwapSharesRequest.decode(message.value);
-  },
-  toProto(message: QueryCalcJoinPoolNoSwapSharesRequest): Uint8Array {
-    return QueryCalcJoinPoolNoSwapSharesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcJoinPoolNoSwapSharesRequest): QueryCalcJoinPoolNoSwapSharesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesRequest",
-      value: QueryCalcJoinPoolNoSwapSharesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCalcJoinPoolNoSwapSharesResponse(): QueryCalcJoinPoolNoSwapSharesResponse {
-  return {
-    tokensOut: [],
-    sharesOut: ""
-  };
-}
-export const QueryCalcJoinPoolNoSwapSharesResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesResponse",
-  aminoType: "osmosis/gamm/query-calc-join-pool-no-swap-shares-response",
-  encode(message: QueryCalcJoinPoolNoSwapSharesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.tokensOut) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.sharesOut !== "") {
-      writer.uint32(18).string(message.sharesOut);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCalcJoinPoolNoSwapSharesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCalcJoinPoolNoSwapSharesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokensOut.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.sharesOut = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCalcJoinPoolNoSwapSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokensOut) ? object.tokensOut.map((e: any) => Coin.fromJSON(e)) : [],
-      sharesOut: isSet(object.sharesOut) ? String(object.sharesOut) : ""
-    };
-  },
-  toJSON(message: QueryCalcJoinPoolNoSwapSharesResponse): unknown {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokensOut = message.tokensOut.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokensOut = [];
-    }
-    message.sharesOut !== undefined && (obj.sharesOut = message.sharesOut);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCalcJoinPoolNoSwapSharesResponse>): QueryCalcJoinPoolNoSwapSharesResponse {
-    const message = createBaseQueryCalcJoinPoolNoSwapSharesResponse();
-    message.tokensOut = object.tokensOut?.map(e => Coin.fromPartial(e)) || [];
-    message.sharesOut = object.sharesOut ?? "";
-    return message;
-  },
-  fromSDK(object: QueryCalcJoinPoolNoSwapSharesResponseSDKType): QueryCalcJoinPoolNoSwapSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromSDK(e)) : [],
-      sharesOut: object?.shares_out
-    };
-  },
-  toSDK(message: QueryCalcJoinPoolNoSwapSharesResponse): QueryCalcJoinPoolNoSwapSharesResponseSDKType {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    obj.shares_out = message.sharesOut;
-    return obj;
-  },
-  fromAmino(object: QueryCalcJoinPoolNoSwapSharesResponseAmino): QueryCalcJoinPoolNoSwapSharesResponse {
-    return {
-      tokensOut: Array.isArray(object?.tokens_out) ? object.tokens_out.map((e: any) => Coin.fromAmino(e)) : [],
-      sharesOut: object.shares_out
-    };
-  },
-  toAmino(message: QueryCalcJoinPoolNoSwapSharesResponse): QueryCalcJoinPoolNoSwapSharesResponseAmino {
-    const obj: any = {};
-    if (message.tokensOut) {
-      obj.tokens_out = message.tokensOut.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.tokens_out = [];
-    }
-    obj.shares_out = message.sharesOut;
-    return obj;
-  },
-  fromAminoMsg(object: QueryCalcJoinPoolNoSwapSharesResponseAminoMsg): QueryCalcJoinPoolNoSwapSharesResponse {
-    return QueryCalcJoinPoolNoSwapSharesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCalcJoinPoolNoSwapSharesResponse): QueryCalcJoinPoolNoSwapSharesResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-calc-join-pool-no-swap-shares-response",
-      value: QueryCalcJoinPoolNoSwapSharesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryCalcJoinPoolNoSwapSharesResponseProtoMsg): QueryCalcJoinPoolNoSwapSharesResponse {
-    return QueryCalcJoinPoolNoSwapSharesResponse.decode(message.value);
-  },
-  toProto(message: QueryCalcJoinPoolNoSwapSharesResponse): Uint8Array {
-    return QueryCalcJoinPoolNoSwapSharesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCalcJoinPoolNoSwapSharesResponse): QueryCalcJoinPoolNoSwapSharesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryCalcJoinPoolNoSwapSharesResponse",
-      value: QueryCalcJoinPoolNoSwapSharesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySpotPriceRequest(): QuerySpotPriceRequest {
-  return {
-    poolId: BigInt(0),
-    baseAssetDenom: "",
-    quoteAssetDenom: ""
-  };
-}
-export const QuerySpotPriceRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceRequest",
-  aminoType: "osmosis/gamm/query-spot-price-request",
-  encode(message: QuerySpotPriceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.baseAssetDenom !== "") {
-      writer.uint32(18).string(message.baseAssetDenom);
-    }
-    if (message.quoteAssetDenom !== "") {
-      writer.uint32(26).string(message.quoteAssetDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpotPriceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpotPriceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.baseAssetDenom = reader.string();
-          break;
-        case 3:
-          message.quoteAssetDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpotPriceRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      baseAssetDenom: isSet(object.baseAssetDenom) ? String(object.baseAssetDenom) : "",
-      quoteAssetDenom: isSet(object.quoteAssetDenom) ? String(object.quoteAssetDenom) : ""
-    };
-  },
-  toJSON(message: QuerySpotPriceRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.baseAssetDenom !== undefined && (obj.baseAssetDenom = message.baseAssetDenom);
-    message.quoteAssetDenom !== undefined && (obj.quoteAssetDenom = message.quoteAssetDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpotPriceRequest>): QuerySpotPriceRequest {
-    const message = createBaseQuerySpotPriceRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.baseAssetDenom = object.baseAssetDenom ?? "";
-    message.quoteAssetDenom = object.quoteAssetDenom ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySpotPriceRequestSDKType): QuerySpotPriceRequest {
-    return {
-      poolId: object?.pool_id,
-      baseAssetDenom: object?.base_asset_denom,
-      quoteAssetDenom: object?.quote_asset_denom
-    };
-  },
-  toSDK(message: QuerySpotPriceRequest): QuerySpotPriceRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.base_asset_denom = message.baseAssetDenom;
-    obj.quote_asset_denom = message.quoteAssetDenom;
-    return obj;
-  },
-  fromAmino(object: QuerySpotPriceRequestAmino): QuerySpotPriceRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      baseAssetDenom: object.base_asset_denom,
-      quoteAssetDenom: object.quote_asset_denom
-    };
-  },
-  toAmino(message: QuerySpotPriceRequest): QuerySpotPriceRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.base_asset_denom = message.baseAssetDenom;
-    obj.quote_asset_denom = message.quoteAssetDenom;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpotPriceRequestAminoMsg): QuerySpotPriceRequest {
-    return QuerySpotPriceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpotPriceRequest): QuerySpotPriceRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-spot-price-request",
-      value: QuerySpotPriceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpotPriceRequestProtoMsg): QuerySpotPriceRequest {
-    return QuerySpotPriceRequest.decode(message.value);
-  },
-  toProto(message: QuerySpotPriceRequest): Uint8Array {
-    return QuerySpotPriceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpotPriceRequest): QuerySpotPriceRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceRequest",
-      value: QuerySpotPriceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolsWithFilterRequest(): QueryPoolsWithFilterRequest {
-  return {
-    minLiquidity: [],
-    poolType: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const QueryPoolsWithFilterRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterRequest",
-  aminoType: "osmosis/gamm/query-pools-with-filter-request",
-  encode(message: QueryPoolsWithFilterRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.minLiquidity) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.poolType !== "") {
-      writer.uint32(18).string(message.poolType);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolsWithFilterRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolsWithFilterRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minLiquidity.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.poolType = reader.string();
-          break;
-        case 3:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolsWithFilterRequest {
-    return {
-      minLiquidity: Array.isArray(object?.minLiquidity) ? object.minLiquidity.map((e: any) => Coin.fromJSON(e)) : [],
-      poolType: isSet(object.poolType) ? String(object.poolType) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPoolsWithFilterRequest): unknown {
-    const obj: any = {};
-    if (message.minLiquidity) {
-      obj.minLiquidity = message.minLiquidity.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.minLiquidity = [];
-    }
-    message.poolType !== undefined && (obj.poolType = message.poolType);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolsWithFilterRequest>): QueryPoolsWithFilterRequest {
-    const message = createBaseQueryPoolsWithFilterRequest();
-    message.minLiquidity = object.minLiquidity?.map(e => Coin.fromPartial(e)) || [];
-    message.poolType = object.poolType ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolsWithFilterRequestSDKType): QueryPoolsWithFilterRequest {
-    return {
-      minLiquidity: Array.isArray(object?.min_liquidity) ? object.min_liquidity.map((e: any) => Coin.fromSDK(e)) : [],
-      poolType: object?.pool_type,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPoolsWithFilterRequest): QueryPoolsWithFilterRequestSDKType {
-    const obj: any = {};
-    if (message.minLiquidity) {
-      obj.min_liquidity = message.minLiquidity.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.min_liquidity = [];
-    }
-    obj.pool_type = message.poolType;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolsWithFilterRequestAmino): QueryPoolsWithFilterRequest {
-    return {
-      minLiquidity: Array.isArray(object?.min_liquidity) ? object.min_liquidity.map((e: any) => Coin.fromAmino(e)) : [],
-      poolType: object.pool_type,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPoolsWithFilterRequest): QueryPoolsWithFilterRequestAmino {
-    const obj: any = {};
-    if (message.minLiquidity) {
-      obj.min_liquidity = message.minLiquidity.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.min_liquidity = [];
-    }
-    obj.pool_type = message.poolType;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolsWithFilterRequestAminoMsg): QueryPoolsWithFilterRequest {
-    return QueryPoolsWithFilterRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolsWithFilterRequest): QueryPoolsWithFilterRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pools-with-filter-request",
-      value: QueryPoolsWithFilterRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolsWithFilterRequestProtoMsg): QueryPoolsWithFilterRequest {
-    return QueryPoolsWithFilterRequest.decode(message.value);
-  },
-  toProto(message: QueryPoolsWithFilterRequest): Uint8Array {
-    return QueryPoolsWithFilterRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolsWithFilterRequest): QueryPoolsWithFilterRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterRequest",
-      value: QueryPoolsWithFilterRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryPoolsWithFilterResponse(): QueryPoolsWithFilterResponse {
-  return {
-    pools: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const QueryPoolsWithFilterResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterResponse",
-  aminoType: "osmosis/gamm/query-pools-with-filter-response",
-  encode(message: QueryPoolsWithFilterResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pools) {
-      Any.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryPoolsWithFilterResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryPoolsWithFilterResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pools.push(Any.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryPoolsWithFilterResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: QueryPoolsWithFilterResponse): unknown {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toJSON(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryPoolsWithFilterResponse>): QueryPoolsWithFilterResponse {
-    const message = createBaseQueryPoolsWithFilterResponse();
-    message.pools = object.pools?.map(e => Any.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryPoolsWithFilterResponseSDKType): QueryPoolsWithFilterResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: QueryPoolsWithFilterResponse): QueryPoolsWithFilterResponseSDKType {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toSDK(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryPoolsWithFilterResponseAmino): QueryPoolsWithFilterResponse {
-    return {
-      pools: Array.isArray(object?.pools) ? object.pools.map((e: any) => Any.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: QueryPoolsWithFilterResponse): QueryPoolsWithFilterResponseAmino {
-    const obj: any = {};
-    if (message.pools) {
-      obj.pools = message.pools.map(e => e ? Any.toAmino(e) : undefined);
-    } else {
-      obj.pools = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryPoolsWithFilterResponseAminoMsg): QueryPoolsWithFilterResponse {
-    return QueryPoolsWithFilterResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryPoolsWithFilterResponse): QueryPoolsWithFilterResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-pools-with-filter-response",
-      value: QueryPoolsWithFilterResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryPoolsWithFilterResponseProtoMsg): QueryPoolsWithFilterResponse {
-    return QueryPoolsWithFilterResponse.decode(message.value);
-  },
-  toProto(message: QueryPoolsWithFilterResponse): Uint8Array {
-    return QueryPoolsWithFilterResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryPoolsWithFilterResponse): QueryPoolsWithFilterResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryPoolsWithFilterResponse",
-      value: QueryPoolsWithFilterResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySpotPriceResponse(): QuerySpotPriceResponse {
-  return {
-    spotPrice: ""
-  };
-}
-export const QuerySpotPriceResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceResponse",
-  aminoType: "osmosis/gamm/query-spot-price-response",
-  encode(message: QuerySpotPriceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.spotPrice !== "") {
-      writer.uint32(10).string(message.spotPrice);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpotPriceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpotPriceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.spotPrice = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpotPriceResponse {
-    return {
-      spotPrice: isSet(object.spotPrice) ? String(object.spotPrice) : ""
-    };
-  },
-  toJSON(message: QuerySpotPriceResponse): unknown {
-    const obj: any = {};
-    message.spotPrice !== undefined && (obj.spotPrice = message.spotPrice);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpotPriceResponse>): QuerySpotPriceResponse {
-    const message = createBaseQuerySpotPriceResponse();
-    message.spotPrice = object.spotPrice ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySpotPriceResponseSDKType): QuerySpotPriceResponse {
-    return {
-      spotPrice: object?.spot_price
-    };
-  },
-  toSDK(message: QuerySpotPriceResponse): QuerySpotPriceResponseSDKType {
-    const obj: any = {};
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAmino(object: QuerySpotPriceResponseAmino): QuerySpotPriceResponse {
-    return {
-      spotPrice: object.spot_price
-    };
-  },
-  toAmino(message: QuerySpotPriceResponse): QuerySpotPriceResponseAmino {
-    const obj: any = {};
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpotPriceResponseAminoMsg): QuerySpotPriceResponse {
-    return QuerySpotPriceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpotPriceResponse): QuerySpotPriceResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-spot-price-response",
-      value: QuerySpotPriceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpotPriceResponseProtoMsg): QuerySpotPriceResponse {
-    return QuerySpotPriceResponse.decode(message.value);
-  },
-  toProto(message: QuerySpotPriceResponse): Uint8Array {
-    return QuerySpotPriceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpotPriceResponse): QuerySpotPriceResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySpotPriceResponse",
-      value: QuerySpotPriceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySwapExactAmountInRequest(): QuerySwapExactAmountInRequest {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    tokenIn: "",
-    routes: []
-  };
-}
-export const QuerySwapExactAmountInRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInRequest",
-  aminoType: "osmosis/gamm/query-swap-exact-amount-in-request",
-  encode(message: QuerySwapExactAmountInRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.tokenIn !== "") {
-      writer.uint32(26).string(message.tokenIn);
-    }
-    for (const v of message.routes) {
-      SwapAmountInRoute.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySwapExactAmountInRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySwapExactAmountInRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.tokenIn = reader.string();
-          break;
-        case 4:
-          message.routes.push(SwapAmountInRoute.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySwapExactAmountInRequest {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenIn: isSet(object.tokenIn) ? String(object.tokenIn) : "",
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QuerySwapExactAmountInRequest): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenIn !== undefined && (obj.tokenIn = message.tokenIn);
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toJSON(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySwapExactAmountInRequest>): QuerySwapExactAmountInRequest {
-    const message = createBaseQuerySwapExactAmountInRequest();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenIn = object.tokenIn ?? "";
-    message.routes = object.routes?.map(e => SwapAmountInRoute.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QuerySwapExactAmountInRequestSDKType): QuerySwapExactAmountInRequest {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      tokenIn: object?.token_in,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QuerySwapExactAmountInRequest): QuerySwapExactAmountInRequestSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    obj.token_in = message.tokenIn;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toSDK(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QuerySwapExactAmountInRequestAmino): QuerySwapExactAmountInRequest {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      tokenIn: object.token_in,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QuerySwapExactAmountInRequest): QuerySwapExactAmountInRequestAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_in = message.tokenIn;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toAmino(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QuerySwapExactAmountInRequestAminoMsg): QuerySwapExactAmountInRequest {
-    return QuerySwapExactAmountInRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySwapExactAmountInRequest): QuerySwapExactAmountInRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-swap-exact-amount-in-request",
-      value: QuerySwapExactAmountInRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySwapExactAmountInRequestProtoMsg): QuerySwapExactAmountInRequest {
-    return QuerySwapExactAmountInRequest.decode(message.value);
-  },
-  toProto(message: QuerySwapExactAmountInRequest): Uint8Array {
-    return QuerySwapExactAmountInRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySwapExactAmountInRequest): QuerySwapExactAmountInRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInRequest",
-      value: QuerySwapExactAmountInRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySwapExactAmountInResponse(): QuerySwapExactAmountInResponse {
-  return {
-    tokenOutAmount: ""
-  };
-}
-export const QuerySwapExactAmountInResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInResponse",
-  aminoType: "osmosis/gamm/query-swap-exact-amount-in-response",
-  encode(message: QuerySwapExactAmountInResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenOutAmount !== "") {
-      writer.uint32(10).string(message.tokenOutAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySwapExactAmountInResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySwapExactAmountInResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenOutAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySwapExactAmountInResponse {
-    return {
-      tokenOutAmount: isSet(object.tokenOutAmount) ? String(object.tokenOutAmount) : ""
-    };
-  },
-  toJSON(message: QuerySwapExactAmountInResponse): unknown {
-    const obj: any = {};
-    message.tokenOutAmount !== undefined && (obj.tokenOutAmount = message.tokenOutAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySwapExactAmountInResponse>): QuerySwapExactAmountInResponse {
-    const message = createBaseQuerySwapExactAmountInResponse();
-    message.tokenOutAmount = object.tokenOutAmount ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySwapExactAmountInResponseSDKType): QuerySwapExactAmountInResponse {
-    return {
-      tokenOutAmount: object?.token_out_amount
-    };
-  },
-  toSDK(message: QuerySwapExactAmountInResponse): QuerySwapExactAmountInResponseSDKType {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAmino(object: QuerySwapExactAmountInResponseAmino): QuerySwapExactAmountInResponse {
-    return {
-      tokenOutAmount: object.token_out_amount
-    };
-  },
-  toAmino(message: QuerySwapExactAmountInResponse): QuerySwapExactAmountInResponseAmino {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySwapExactAmountInResponseAminoMsg): QuerySwapExactAmountInResponse {
-    return QuerySwapExactAmountInResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySwapExactAmountInResponse): QuerySwapExactAmountInResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-swap-exact-amount-in-response",
-      value: QuerySwapExactAmountInResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySwapExactAmountInResponseProtoMsg): QuerySwapExactAmountInResponse {
-    return QuerySwapExactAmountInResponse.decode(message.value);
-  },
-  toProto(message: QuerySwapExactAmountInResponse): Uint8Array {
-    return QuerySwapExactAmountInResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySwapExactAmountInResponse): QuerySwapExactAmountInResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountInResponse",
-      value: QuerySwapExactAmountInResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySwapExactAmountOutRequest(): QuerySwapExactAmountOutRequest {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    routes: [],
-    tokenOut: ""
-  };
-}
-export const QuerySwapExactAmountOutRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutRequest",
-  aminoType: "osmosis/gamm/query-swap-exact-amount-out-request",
-  encode(message: QuerySwapExactAmountOutRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    for (const v of message.routes) {
-      SwapAmountOutRoute.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.tokenOut !== "") {
-      writer.uint32(34).string(message.tokenOut);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySwapExactAmountOutRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySwapExactAmountOutRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.routes.push(SwapAmountOutRoute.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.tokenOut = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySwapExactAmountOutRequest {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromJSON(e)) : [],
-      tokenOut: isSet(object.tokenOut) ? String(object.tokenOut) : ""
-    };
-  },
-  toJSON(message: QuerySwapExactAmountOutRequest): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toJSON(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    message.tokenOut !== undefined && (obj.tokenOut = message.tokenOut);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySwapExactAmountOutRequest>): QuerySwapExactAmountOutRequest {
-    const message = createBaseQuerySwapExactAmountOutRequest();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.routes = object.routes?.map(e => SwapAmountOutRoute.fromPartial(e)) || [];
-    message.tokenOut = object.tokenOut ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySwapExactAmountOutRequestSDKType): QuerySwapExactAmountOutRequest {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromSDK(e)) : [],
-      tokenOut: object?.token_out
-    };
-  },
-  toSDK(message: QuerySwapExactAmountOutRequest): QuerySwapExactAmountOutRequestSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toSDK(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    obj.token_out = message.tokenOut;
-    return obj;
-  },
-  fromAmino(object: QuerySwapExactAmountOutRequestAmino): QuerySwapExactAmountOutRequest {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromAmino(e)) : [],
-      tokenOut: object.token_out
-    };
-  },
-  toAmino(message: QuerySwapExactAmountOutRequest): QuerySwapExactAmountOutRequestAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toAmino(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    obj.token_out = message.tokenOut;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySwapExactAmountOutRequestAminoMsg): QuerySwapExactAmountOutRequest {
-    return QuerySwapExactAmountOutRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySwapExactAmountOutRequest): QuerySwapExactAmountOutRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-swap-exact-amount-out-request",
-      value: QuerySwapExactAmountOutRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySwapExactAmountOutRequestProtoMsg): QuerySwapExactAmountOutRequest {
-    return QuerySwapExactAmountOutRequest.decode(message.value);
-  },
-  toProto(message: QuerySwapExactAmountOutRequest): Uint8Array {
-    return QuerySwapExactAmountOutRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySwapExactAmountOutRequest): QuerySwapExactAmountOutRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutRequest",
-      value: QuerySwapExactAmountOutRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySwapExactAmountOutResponse(): QuerySwapExactAmountOutResponse {
-  return {
-    tokenInAmount: ""
-  };
-}
-export const QuerySwapExactAmountOutResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutResponse",
-  aminoType: "osmosis/gamm/query-swap-exact-amount-out-response",
-  encode(message: QuerySwapExactAmountOutResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenInAmount !== "") {
-      writer.uint32(10).string(message.tokenInAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySwapExactAmountOutResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySwapExactAmountOutResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenInAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySwapExactAmountOutResponse {
-    return {
-      tokenInAmount: isSet(object.tokenInAmount) ? String(object.tokenInAmount) : ""
-    };
-  },
-  toJSON(message: QuerySwapExactAmountOutResponse): unknown {
-    const obj: any = {};
-    message.tokenInAmount !== undefined && (obj.tokenInAmount = message.tokenInAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySwapExactAmountOutResponse>): QuerySwapExactAmountOutResponse {
-    const message = createBaseQuerySwapExactAmountOutResponse();
-    message.tokenInAmount = object.tokenInAmount ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySwapExactAmountOutResponseSDKType): QuerySwapExactAmountOutResponse {
-    return {
-      tokenInAmount: object?.token_in_amount
-    };
-  },
-  toSDK(message: QuerySwapExactAmountOutResponse): QuerySwapExactAmountOutResponseSDKType {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAmino(object: QuerySwapExactAmountOutResponseAmino): QuerySwapExactAmountOutResponse {
-    return {
-      tokenInAmount: object.token_in_amount
-    };
-  },
-  toAmino(message: QuerySwapExactAmountOutResponse): QuerySwapExactAmountOutResponseAmino {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySwapExactAmountOutResponseAminoMsg): QuerySwapExactAmountOutResponse {
-    return QuerySwapExactAmountOutResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySwapExactAmountOutResponse): QuerySwapExactAmountOutResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-swap-exact-amount-out-response",
-      value: QuerySwapExactAmountOutResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySwapExactAmountOutResponseProtoMsg): QuerySwapExactAmountOutResponse {
-    return QuerySwapExactAmountOutResponse.decode(message.value);
-  },
-  toProto(message: QuerySwapExactAmountOutResponse): Uint8Array {
-    return QuerySwapExactAmountOutResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySwapExactAmountOutResponse): QuerySwapExactAmountOutResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QuerySwapExactAmountOutResponse",
-      value: QuerySwapExactAmountOutResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalLiquidityRequest(): QueryTotalLiquidityRequest {
-  return {};
-}
-export const QueryTotalLiquidityRequest = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityRequest",
-  aminoType: "osmosis/gamm/query-total-liquidity-request",
-  encode(_: QueryTotalLiquidityRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalLiquidityRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalLiquidityRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryTotalLiquidityRequest {
-    return {};
-  },
-  toJSON(_: QueryTotalLiquidityRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryTotalLiquidityRequest>): QueryTotalLiquidityRequest {
-    const message = createBaseQueryTotalLiquidityRequest();
-    return message;
-  },
-  fromSDK(_: QueryTotalLiquidityRequestSDKType): QueryTotalLiquidityRequest {
-    return {};
-  },
-  toSDK(_: QueryTotalLiquidityRequest): QueryTotalLiquidityRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryTotalLiquidityRequestAmino): QueryTotalLiquidityRequest {
-    return {};
-  },
-  toAmino(_: QueryTotalLiquidityRequest): QueryTotalLiquidityRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalLiquidityRequestAminoMsg): QueryTotalLiquidityRequest {
-    return QueryTotalLiquidityRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalLiquidityRequest): QueryTotalLiquidityRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-liquidity-request",
-      value: QueryTotalLiquidityRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalLiquidityRequestProtoMsg): QueryTotalLiquidityRequest {
-    return QueryTotalLiquidityRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalLiquidityRequest): Uint8Array {
-    return QueryTotalLiquidityRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalLiquidityRequest): QueryTotalLiquidityRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityRequest",
-      value: QueryTotalLiquidityRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalLiquidityResponse(): QueryTotalLiquidityResponse {
-  return {
-    liquidity: []
-  };
-}
-export const QueryTotalLiquidityResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityResponse",
-  aminoType: "osmosis/gamm/query-total-liquidity-response",
-  encode(message: QueryTotalLiquidityResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.liquidity) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalLiquidityResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalLiquidityResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.liquidity.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryTotalLiquidityResponse): unknown {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalLiquidityResponse>): QueryTotalLiquidityResponse {
-    const message = createBaseQueryTotalLiquidityResponse();
-    message.liquidity = object.liquidity?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryTotalLiquidityResponseSDKType): QueryTotalLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryTotalLiquidityResponse): QueryTotalLiquidityResponseSDKType {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryTotalLiquidityResponseAmino): QueryTotalLiquidityResponse {
-    return {
-      liquidity: Array.isArray(object?.liquidity) ? object.liquidity.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryTotalLiquidityResponse): QueryTotalLiquidityResponseAmino {
-    const obj: any = {};
-    if (message.liquidity) {
-      obj.liquidity = message.liquidity.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.liquidity = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalLiquidityResponseAminoMsg): QueryTotalLiquidityResponse {
-    return QueryTotalLiquidityResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalLiquidityResponse): QueryTotalLiquidityResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/query-total-liquidity-response",
-      value: QueryTotalLiquidityResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalLiquidityResponseProtoMsg): QueryTotalLiquidityResponse {
-    return QueryTotalLiquidityResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalLiquidityResponse): Uint8Array {
-    return QueryTotalLiquidityResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalLiquidityResponse): QueryTotalLiquidityResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.QueryTotalLiquidityResponse",
-      value: QueryTotalLiquidityResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.amino.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.amino.ts
deleted file mode 100644
index 79662b17..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { MsgJoinPool, MsgExitPool, MsgSwapExactAmountIn, MsgSwapExactAmountOut, MsgJoinSwapExternAmountIn, MsgJoinSwapShareAmountOut, MsgExitSwapExternAmountOut, MsgExitSwapShareAmountIn } from "./tx";
-export const AminoConverter = {
-  "/osmosis.gamm.v1beta1.MsgJoinPool": {
-    aminoType: "osmosis/gamm/join-pool",
-    toAmino: MsgJoinPool.toAmino,
-    fromAmino: MsgJoinPool.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgExitPool": {
-    aminoType: "osmosis/gamm/exit-pool",
-    toAmino: MsgExitPool.toAmino,
-    fromAmino: MsgExitPool.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn": {
-    aminoType: "osmosis/gamm/swap-exact-amount-in",
-    toAmino: MsgSwapExactAmountIn.toAmino,
-    fromAmino: MsgSwapExactAmountIn.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut": {
-    aminoType: "osmosis/gamm/swap-exact-amount-out",
-    toAmino: MsgSwapExactAmountOut.toAmino,
-    fromAmino: MsgSwapExactAmountOut.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn": {
-    aminoType: "osmosis/gamm/join-swap-extern-amount-in",
-    toAmino: MsgJoinSwapExternAmountIn.toAmino,
-    fromAmino: MsgJoinSwapExternAmountIn.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut": {
-    aminoType: "osmosis/gamm/join-swap-share-amount-out",
-    toAmino: MsgJoinSwapShareAmountOut.toAmino,
-    fromAmino: MsgJoinSwapShareAmountOut.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut": {
-    aminoType: "osmosis/gamm/exit-swap-extern-amount-out",
-    toAmino: MsgExitSwapExternAmountOut.toAmino,
-    fromAmino: MsgExitSwapExternAmountOut.fromAmino
-  },
-  "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn": {
-    aminoType: "osmosis/gamm/exit-swap-share-amount-in",
-    toAmino: MsgExitSwapShareAmountIn.toAmino,
-    fromAmino: MsgExitSwapShareAmountIn.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.registry.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.registry.ts
deleted file mode 100644
index e5919b85..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,261 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgJoinPool, MsgExitPool, MsgSwapExactAmountIn, MsgSwapExactAmountOut, MsgJoinSwapExternAmountIn, MsgJoinSwapShareAmountOut, MsgExitSwapExternAmountOut, MsgExitSwapShareAmountIn } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.gamm.v1beta1.MsgJoinPool", MsgJoinPool], ["/osmosis.gamm.v1beta1.MsgExitPool", MsgExitPool], ["/osmosis.gamm.v1beta1.MsgSwapExactAmountIn", MsgSwapExactAmountIn], ["/osmosis.gamm.v1beta1.MsgSwapExactAmountOut", MsgSwapExactAmountOut], ["/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn", MsgJoinSwapExternAmountIn], ["/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut", MsgJoinSwapShareAmountOut], ["/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut", MsgExitSwapExternAmountOut], ["/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn", MsgExitSwapShareAmountIn]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    joinPool(value: MsgJoinPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-        value: MsgJoinPool.encode(value).finish()
-      };
-    },
-    exitPool(value: MsgExitPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-        value: MsgExitPool.encode(value).finish()
-      };
-    },
-    swapExactAmountIn(value: MsgSwapExactAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-        value: MsgSwapExactAmountIn.encode(value).finish()
-      };
-    },
-    swapExactAmountOut(value: MsgSwapExactAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-        value: MsgSwapExactAmountOut.encode(value).finish()
-      };
-    },
-    joinSwapExternAmountIn(value: MsgJoinSwapExternAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-        value: MsgJoinSwapExternAmountIn.encode(value).finish()
-      };
-    },
-    joinSwapShareAmountOut(value: MsgJoinSwapShareAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-        value: MsgJoinSwapShareAmountOut.encode(value).finish()
-      };
-    },
-    exitSwapExternAmountOut(value: MsgExitSwapExternAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-        value: MsgExitSwapExternAmountOut.encode(value).finish()
-      };
-    },
-    exitSwapShareAmountIn(value: MsgExitSwapShareAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-        value: MsgExitSwapShareAmountIn.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    joinPool(value: MsgJoinPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-        value
-      };
-    },
-    exitPool(value: MsgExitPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-        value
-      };
-    },
-    swapExactAmountIn(value: MsgSwapExactAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-        value
-      };
-    },
-    swapExactAmountOut(value: MsgSwapExactAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-        value
-      };
-    },
-    joinSwapExternAmountIn(value: MsgJoinSwapExternAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-        value
-      };
-    },
-    joinSwapShareAmountOut(value: MsgJoinSwapShareAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-        value
-      };
-    },
-    exitSwapExternAmountOut(value: MsgExitSwapExternAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-        value
-      };
-    },
-    exitSwapShareAmountIn(value: MsgExitSwapShareAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-        value
-      };
-    }
-  },
-  toJSON: {
-    joinPool(value: MsgJoinPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-        value: MsgJoinPool.toJSON(value)
-      };
-    },
-    exitPool(value: MsgExitPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-        value: MsgExitPool.toJSON(value)
-      };
-    },
-    swapExactAmountIn(value: MsgSwapExactAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-        value: MsgSwapExactAmountIn.toJSON(value)
-      };
-    },
-    swapExactAmountOut(value: MsgSwapExactAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-        value: MsgSwapExactAmountOut.toJSON(value)
-      };
-    },
-    joinSwapExternAmountIn(value: MsgJoinSwapExternAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-        value: MsgJoinSwapExternAmountIn.toJSON(value)
-      };
-    },
-    joinSwapShareAmountOut(value: MsgJoinSwapShareAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-        value: MsgJoinSwapShareAmountOut.toJSON(value)
-      };
-    },
-    exitSwapExternAmountOut(value: MsgExitSwapExternAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-        value: MsgExitSwapExternAmountOut.toJSON(value)
-      };
-    },
-    exitSwapShareAmountIn(value: MsgExitSwapShareAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-        value: MsgExitSwapShareAmountIn.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    joinPool(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-        value: MsgJoinPool.fromJSON(value)
-      };
-    },
-    exitPool(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-        value: MsgExitPool.fromJSON(value)
-      };
-    },
-    swapExactAmountIn(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-        value: MsgSwapExactAmountIn.fromJSON(value)
-      };
-    },
-    swapExactAmountOut(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-        value: MsgSwapExactAmountOut.fromJSON(value)
-      };
-    },
-    joinSwapExternAmountIn(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-        value: MsgJoinSwapExternAmountIn.fromJSON(value)
-      };
-    },
-    joinSwapShareAmountOut(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-        value: MsgJoinSwapShareAmountOut.fromJSON(value)
-      };
-    },
-    exitSwapExternAmountOut(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-        value: MsgExitSwapExternAmountOut.fromJSON(value)
-      };
-    },
-    exitSwapShareAmountIn(value: any) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-        value: MsgExitSwapShareAmountIn.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    joinPool(value: MsgJoinPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-        value: MsgJoinPool.fromPartial(value)
-      };
-    },
-    exitPool(value: MsgExitPool) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-        value: MsgExitPool.fromPartial(value)
-      };
-    },
-    swapExactAmountIn(value: MsgSwapExactAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-        value: MsgSwapExactAmountIn.fromPartial(value)
-      };
-    },
-    swapExactAmountOut(value: MsgSwapExactAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-        value: MsgSwapExactAmountOut.fromPartial(value)
-      };
-    },
-    joinSwapExternAmountIn(value: MsgJoinSwapExternAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-        value: MsgJoinSwapExternAmountIn.fromPartial(value)
-      };
-    },
-    joinSwapShareAmountOut(value: MsgJoinSwapShareAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-        value: MsgJoinSwapShareAmountOut.fromPartial(value)
-      };
-    },
-    exitSwapExternAmountOut(value: MsgExitSwapExternAmountOut) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-        value: MsgExitSwapExternAmountOut.fromPartial(value)
-      };
-    },
-    exitSwapShareAmountIn(value: MsgExitSwapShareAmountIn) {
-      return {
-        typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-        value: MsgExitSwapShareAmountIn.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index f4dc977b..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgJoinPool, MsgJoinPoolResponse, MsgExitPool, MsgExitPoolResponse, MsgSwapExactAmountIn, MsgSwapExactAmountInResponse, MsgSwapExactAmountOut, MsgSwapExactAmountOutResponse, MsgJoinSwapExternAmountIn, MsgJoinSwapExternAmountInResponse, MsgJoinSwapShareAmountOut, MsgJoinSwapShareAmountOutResponse, MsgExitSwapExternAmountOut, MsgExitSwapExternAmountOutResponse, MsgExitSwapShareAmountIn, MsgExitSwapShareAmountInResponse } from "./tx";
-export interface Msg {
-  joinPool(request: MsgJoinPool): Promise<MsgJoinPoolResponse>;
-  exitPool(request: MsgExitPool): Promise<MsgExitPoolResponse>;
-  swapExactAmountIn(request: MsgSwapExactAmountIn): Promise<MsgSwapExactAmountInResponse>;
-  swapExactAmountOut(request: MsgSwapExactAmountOut): Promise<MsgSwapExactAmountOutResponse>;
-  joinSwapExternAmountIn(request: MsgJoinSwapExternAmountIn): Promise<MsgJoinSwapExternAmountInResponse>;
-  joinSwapShareAmountOut(request: MsgJoinSwapShareAmountOut): Promise<MsgJoinSwapShareAmountOutResponse>;
-  exitSwapExternAmountOut(request: MsgExitSwapExternAmountOut): Promise<MsgExitSwapExternAmountOutResponse>;
-  exitSwapShareAmountIn(request: MsgExitSwapShareAmountIn): Promise<MsgExitSwapShareAmountInResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.joinPool = this.joinPool.bind(this);
-    this.exitPool = this.exitPool.bind(this);
-    this.swapExactAmountIn = this.swapExactAmountIn.bind(this);
-    this.swapExactAmountOut = this.swapExactAmountOut.bind(this);
-    this.joinSwapExternAmountIn = this.joinSwapExternAmountIn.bind(this);
-    this.joinSwapShareAmountOut = this.joinSwapShareAmountOut.bind(this);
-    this.exitSwapExternAmountOut = this.exitSwapExternAmountOut.bind(this);
-    this.exitSwapShareAmountIn = this.exitSwapShareAmountIn.bind(this);
-  }
-  joinPool(request: MsgJoinPool): Promise<MsgJoinPoolResponse> {
-    const data = MsgJoinPool.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "JoinPool", data);
-    return promise.then(data => MsgJoinPoolResponse.decode(new BinaryReader(data)));
-  }
-  exitPool(request: MsgExitPool): Promise<MsgExitPoolResponse> {
-    const data = MsgExitPool.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "ExitPool", data);
-    return promise.then(data => MsgExitPoolResponse.decode(new BinaryReader(data)));
-  }
-  swapExactAmountIn(request: MsgSwapExactAmountIn): Promise<MsgSwapExactAmountInResponse> {
-    const data = MsgSwapExactAmountIn.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "SwapExactAmountIn", data);
-    return promise.then(data => MsgSwapExactAmountInResponse.decode(new BinaryReader(data)));
-  }
-  swapExactAmountOut(request: MsgSwapExactAmountOut): Promise<MsgSwapExactAmountOutResponse> {
-    const data = MsgSwapExactAmountOut.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "SwapExactAmountOut", data);
-    return promise.then(data => MsgSwapExactAmountOutResponse.decode(new BinaryReader(data)));
-  }
-  joinSwapExternAmountIn(request: MsgJoinSwapExternAmountIn): Promise<MsgJoinSwapExternAmountInResponse> {
-    const data = MsgJoinSwapExternAmountIn.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "JoinSwapExternAmountIn", data);
-    return promise.then(data => MsgJoinSwapExternAmountInResponse.decode(new BinaryReader(data)));
-  }
-  joinSwapShareAmountOut(request: MsgJoinSwapShareAmountOut): Promise<MsgJoinSwapShareAmountOutResponse> {
-    const data = MsgJoinSwapShareAmountOut.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "JoinSwapShareAmountOut", data);
-    return promise.then(data => MsgJoinSwapShareAmountOutResponse.decode(new BinaryReader(data)));
-  }
-  exitSwapExternAmountOut(request: MsgExitSwapExternAmountOut): Promise<MsgExitSwapExternAmountOutResponse> {
-    const data = MsgExitSwapExternAmountOut.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "ExitSwapExternAmountOut", data);
-    return promise.then(data => MsgExitSwapExternAmountOutResponse.decode(new BinaryReader(data)));
-  }
-  exitSwapShareAmountIn(request: MsgExitSwapShareAmountIn): Promise<MsgExitSwapShareAmountInResponse> {
-    const data = MsgExitSwapShareAmountIn.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v1beta1.Msg", "ExitSwapShareAmountIn", data);
-    return promise.then(data => MsgExitSwapShareAmountInResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.ts b/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.ts
deleted file mode 100644
index 3158a17c..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v1beta1/tx.ts
+++ /dev/null
@@ -1,2500 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * ===================== MsgJoinPool
- * This is really MsgJoinPoolNoSwap
- */
-export interface MsgJoinPool {
-  sender: string;
-  poolId: bigint;
-  shareOutAmount: string;
-  tokenInMaxs: Coin[];
-}
-export interface MsgJoinPoolProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool";
-  value: Uint8Array;
-}
-/**
- * ===================== MsgJoinPool
- * This is really MsgJoinPoolNoSwap
- */
-export interface MsgJoinPoolAmino {
-  sender: string;
-  pool_id: string;
-  share_out_amount: string;
-  token_in_maxs: CoinAmino[];
-}
-export interface MsgJoinPoolAminoMsg {
-  type: "osmosis/gamm/join-pool";
-  value: MsgJoinPoolAmino;
-}
-/**
- * ===================== MsgJoinPool
- * This is really MsgJoinPoolNoSwap
- */
-export interface MsgJoinPoolSDKType {
-  sender: string;
-  pool_id: bigint;
-  share_out_amount: string;
-  token_in_maxs: CoinSDKType[];
-}
-export interface MsgJoinPoolResponse {
-  shareOutAmount: string;
-  tokenIn: Coin[];
-}
-export interface MsgJoinPoolResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPoolResponse";
-  value: Uint8Array;
-}
-export interface MsgJoinPoolResponseAmino {
-  share_out_amount: string;
-  token_in: CoinAmino[];
-}
-export interface MsgJoinPoolResponseAminoMsg {
-  type: "osmosis/gamm/join-pool-response";
-  value: MsgJoinPoolResponseAmino;
-}
-export interface MsgJoinPoolResponseSDKType {
-  share_out_amount: string;
-  token_in: CoinSDKType[];
-}
-/** ===================== MsgExitPool */
-export interface MsgExitPool {
-  sender: string;
-  poolId: bigint;
-  shareInAmount: string;
-  tokenOutMins: Coin[];
-}
-export interface MsgExitPoolProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool";
-  value: Uint8Array;
-}
-/** ===================== MsgExitPool */
-export interface MsgExitPoolAmino {
-  sender: string;
-  pool_id: string;
-  share_in_amount: string;
-  token_out_mins: CoinAmino[];
-}
-export interface MsgExitPoolAminoMsg {
-  type: "osmosis/gamm/exit-pool";
-  value: MsgExitPoolAmino;
-}
-/** ===================== MsgExitPool */
-export interface MsgExitPoolSDKType {
-  sender: string;
-  pool_id: bigint;
-  share_in_amount: string;
-  token_out_mins: CoinSDKType[];
-}
-export interface MsgExitPoolResponse {
-  tokenOut: Coin[];
-}
-export interface MsgExitPoolResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitPoolResponse";
-  value: Uint8Array;
-}
-export interface MsgExitPoolResponseAmino {
-  token_out: CoinAmino[];
-}
-export interface MsgExitPoolResponseAminoMsg {
-  type: "osmosis/gamm/exit-pool-response";
-  value: MsgExitPoolResponseAmino;
-}
-export interface MsgExitPoolResponseSDKType {
-  token_out: CoinSDKType[];
-}
-/** ===================== MsgSwapExactAmountIn */
-export interface SwapAmountInRoute {
-  poolId: bigint;
-  tokenOutDenom: string;
-}
-export interface SwapAmountInRouteProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.SwapAmountInRoute";
-  value: Uint8Array;
-}
-/** ===================== MsgSwapExactAmountIn */
-export interface SwapAmountInRouteAmino {
-  pool_id: string;
-  token_out_denom: string;
-}
-export interface SwapAmountInRouteAminoMsg {
-  type: "osmosis/gamm/swap-amount-in-route";
-  value: SwapAmountInRouteAmino;
-}
-/** ===================== MsgSwapExactAmountIn */
-export interface SwapAmountInRouteSDKType {
-  pool_id: bigint;
-  token_out_denom: string;
-}
-export interface MsgSwapExactAmountIn {
-  sender: string;
-  routes: SwapAmountInRoute[];
-  tokenIn: Coin | undefined;
-  tokenOutMinAmount: string;
-}
-export interface MsgSwapExactAmountInProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn";
-  value: Uint8Array;
-}
-export interface MsgSwapExactAmountInAmino {
-  sender: string;
-  routes: SwapAmountInRouteAmino[];
-  token_in?: CoinAmino | undefined;
-  token_out_min_amount: string;
-}
-export interface MsgSwapExactAmountInAminoMsg {
-  type: "osmosis/gamm/swap-exact-amount-in";
-  value: MsgSwapExactAmountInAmino;
-}
-export interface MsgSwapExactAmountInSDKType {
-  sender: string;
-  routes: SwapAmountInRouteSDKType[];
-  token_in: CoinSDKType | undefined;
-  token_out_min_amount: string;
-}
-export interface MsgSwapExactAmountInResponse {
-  tokenOutAmount: string;
-}
-export interface MsgSwapExactAmountInResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountInResponse";
-  value: Uint8Array;
-}
-export interface MsgSwapExactAmountInResponseAmino {
-  token_out_amount: string;
-}
-export interface MsgSwapExactAmountInResponseAminoMsg {
-  type: "osmosis/gamm/swap-exact-amount-in-response";
-  value: MsgSwapExactAmountInResponseAmino;
-}
-export interface MsgSwapExactAmountInResponseSDKType {
-  token_out_amount: string;
-}
-/** ===================== MsgSwapExactAmountOut */
-export interface SwapAmountOutRoute {
-  poolId: bigint;
-  tokenInDenom: string;
-}
-export interface SwapAmountOutRouteProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.SwapAmountOutRoute";
-  value: Uint8Array;
-}
-/** ===================== MsgSwapExactAmountOut */
-export interface SwapAmountOutRouteAmino {
-  pool_id: string;
-  token_in_denom: string;
-}
-export interface SwapAmountOutRouteAminoMsg {
-  type: "osmosis/gamm/swap-amount-out-route";
-  value: SwapAmountOutRouteAmino;
-}
-/** ===================== MsgSwapExactAmountOut */
-export interface SwapAmountOutRouteSDKType {
-  pool_id: bigint;
-  token_in_denom: string;
-}
-export interface MsgSwapExactAmountOut {
-  sender: string;
-  routes: SwapAmountOutRoute[];
-  tokenInMaxAmount: string;
-  tokenOut: Coin | undefined;
-}
-export interface MsgSwapExactAmountOutProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut";
-  value: Uint8Array;
-}
-export interface MsgSwapExactAmountOutAmino {
-  sender: string;
-  routes: SwapAmountOutRouteAmino[];
-  token_in_max_amount: string;
-  token_out?: CoinAmino | undefined;
-}
-export interface MsgSwapExactAmountOutAminoMsg {
-  type: "osmosis/gamm/swap-exact-amount-out";
-  value: MsgSwapExactAmountOutAmino;
-}
-export interface MsgSwapExactAmountOutSDKType {
-  sender: string;
-  routes: SwapAmountOutRouteSDKType[];
-  token_in_max_amount: string;
-  token_out: CoinSDKType | undefined;
-}
-export interface MsgSwapExactAmountOutResponse {
-  tokenInAmount: string;
-}
-export interface MsgSwapExactAmountOutResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOutResponse";
-  value: Uint8Array;
-}
-export interface MsgSwapExactAmountOutResponseAmino {
-  token_in_amount: string;
-}
-export interface MsgSwapExactAmountOutResponseAminoMsg {
-  type: "osmosis/gamm/swap-exact-amount-out-response";
-  value: MsgSwapExactAmountOutResponseAmino;
-}
-export interface MsgSwapExactAmountOutResponseSDKType {
-  token_in_amount: string;
-}
-/**
- * ===================== MsgJoinSwapExternAmountIn
- * TODO: Rename to MsgJoinSwapExactAmountIn
- */
-export interface MsgJoinSwapExternAmountIn {
-  sender: string;
-  poolId: bigint;
-  tokenIn: Coin | undefined;
-  shareOutMinAmount: string;
-}
-export interface MsgJoinSwapExternAmountInProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn";
-  value: Uint8Array;
-}
-/**
- * ===================== MsgJoinSwapExternAmountIn
- * TODO: Rename to MsgJoinSwapExactAmountIn
- */
-export interface MsgJoinSwapExternAmountInAmino {
-  sender: string;
-  pool_id: string;
-  token_in?: CoinAmino | undefined;
-  share_out_min_amount: string;
-}
-export interface MsgJoinSwapExternAmountInAminoMsg {
-  type: "osmosis/gamm/join-swap-extern-amount-in";
-  value: MsgJoinSwapExternAmountInAmino;
-}
-/**
- * ===================== MsgJoinSwapExternAmountIn
- * TODO: Rename to MsgJoinSwapExactAmountIn
- */
-export interface MsgJoinSwapExternAmountInSDKType {
-  sender: string;
-  pool_id: bigint;
-  token_in: CoinSDKType | undefined;
-  share_out_min_amount: string;
-}
-export interface MsgJoinSwapExternAmountInResponse {
-  shareOutAmount: string;
-}
-export interface MsgJoinSwapExternAmountInResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountInResponse";
-  value: Uint8Array;
-}
-export interface MsgJoinSwapExternAmountInResponseAmino {
-  share_out_amount: string;
-}
-export interface MsgJoinSwapExternAmountInResponseAminoMsg {
-  type: "osmosis/gamm/join-swap-extern-amount-in-response";
-  value: MsgJoinSwapExternAmountInResponseAmino;
-}
-export interface MsgJoinSwapExternAmountInResponseSDKType {
-  share_out_amount: string;
-}
-/** ===================== MsgJoinSwapShareAmountOut */
-export interface MsgJoinSwapShareAmountOut {
-  sender: string;
-  poolId: bigint;
-  tokenInDenom: string;
-  shareOutAmount: string;
-  tokenInMaxAmount: string;
-}
-export interface MsgJoinSwapShareAmountOutProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut";
-  value: Uint8Array;
-}
-/** ===================== MsgJoinSwapShareAmountOut */
-export interface MsgJoinSwapShareAmountOutAmino {
-  sender: string;
-  pool_id: string;
-  token_in_denom: string;
-  share_out_amount: string;
-  token_in_max_amount: string;
-}
-export interface MsgJoinSwapShareAmountOutAminoMsg {
-  type: "osmosis/gamm/join-swap-share-amount-out";
-  value: MsgJoinSwapShareAmountOutAmino;
-}
-/** ===================== MsgJoinSwapShareAmountOut */
-export interface MsgJoinSwapShareAmountOutSDKType {
-  sender: string;
-  pool_id: bigint;
-  token_in_denom: string;
-  share_out_amount: string;
-  token_in_max_amount: string;
-}
-export interface MsgJoinSwapShareAmountOutResponse {
-  tokenInAmount: string;
-}
-export interface MsgJoinSwapShareAmountOutResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOutResponse";
-  value: Uint8Array;
-}
-export interface MsgJoinSwapShareAmountOutResponseAmino {
-  token_in_amount: string;
-}
-export interface MsgJoinSwapShareAmountOutResponseAminoMsg {
-  type: "osmosis/gamm/join-swap-share-amount-out-response";
-  value: MsgJoinSwapShareAmountOutResponseAmino;
-}
-export interface MsgJoinSwapShareAmountOutResponseSDKType {
-  token_in_amount: string;
-}
-/** ===================== MsgExitSwapShareAmountIn */
-export interface MsgExitSwapShareAmountIn {
-  sender: string;
-  poolId: bigint;
-  tokenOutDenom: string;
-  shareInAmount: string;
-  tokenOutMinAmount: string;
-}
-export interface MsgExitSwapShareAmountInProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn";
-  value: Uint8Array;
-}
-/** ===================== MsgExitSwapShareAmountIn */
-export interface MsgExitSwapShareAmountInAmino {
-  sender: string;
-  pool_id: string;
-  token_out_denom: string;
-  share_in_amount: string;
-  token_out_min_amount: string;
-}
-export interface MsgExitSwapShareAmountInAminoMsg {
-  type: "osmosis/gamm/exit-swap-share-amount-in";
-  value: MsgExitSwapShareAmountInAmino;
-}
-/** ===================== MsgExitSwapShareAmountIn */
-export interface MsgExitSwapShareAmountInSDKType {
-  sender: string;
-  pool_id: bigint;
-  token_out_denom: string;
-  share_in_amount: string;
-  token_out_min_amount: string;
-}
-export interface MsgExitSwapShareAmountInResponse {
-  tokenOutAmount: string;
-}
-export interface MsgExitSwapShareAmountInResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountInResponse";
-  value: Uint8Array;
-}
-export interface MsgExitSwapShareAmountInResponseAmino {
-  token_out_amount: string;
-}
-export interface MsgExitSwapShareAmountInResponseAminoMsg {
-  type: "osmosis/gamm/exit-swap-share-amount-in-response";
-  value: MsgExitSwapShareAmountInResponseAmino;
-}
-export interface MsgExitSwapShareAmountInResponseSDKType {
-  token_out_amount: string;
-}
-/** ===================== MsgExitSwapExternAmountOut */
-export interface MsgExitSwapExternAmountOut {
-  sender: string;
-  poolId: bigint;
-  tokenOut: Coin | undefined;
-  shareInMaxAmount: string;
-}
-export interface MsgExitSwapExternAmountOutProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut";
-  value: Uint8Array;
-}
-/** ===================== MsgExitSwapExternAmountOut */
-export interface MsgExitSwapExternAmountOutAmino {
-  sender: string;
-  pool_id: string;
-  token_out?: CoinAmino | undefined;
-  share_in_max_amount: string;
-}
-export interface MsgExitSwapExternAmountOutAminoMsg {
-  type: "osmosis/gamm/exit-swap-extern-amount-out";
-  value: MsgExitSwapExternAmountOutAmino;
-}
-/** ===================== MsgExitSwapExternAmountOut */
-export interface MsgExitSwapExternAmountOutSDKType {
-  sender: string;
-  pool_id: bigint;
-  token_out: CoinSDKType | undefined;
-  share_in_max_amount: string;
-}
-export interface MsgExitSwapExternAmountOutResponse {
-  shareInAmount: string;
-}
-export interface MsgExitSwapExternAmountOutResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOutResponse";
-  value: Uint8Array;
-}
-export interface MsgExitSwapExternAmountOutResponseAmino {
-  share_in_amount: string;
-}
-export interface MsgExitSwapExternAmountOutResponseAminoMsg {
-  type: "osmosis/gamm/exit-swap-extern-amount-out-response";
-  value: MsgExitSwapExternAmountOutResponseAmino;
-}
-export interface MsgExitSwapExternAmountOutResponseSDKType {
-  share_in_amount: string;
-}
-function createBaseMsgJoinPool(): MsgJoinPool {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    shareOutAmount: "",
-    tokenInMaxs: []
-  };
-}
-export const MsgJoinPool = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-  aminoType: "osmosis/gamm/join-pool",
-  encode(message: MsgJoinPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.shareOutAmount !== "") {
-      writer.uint32(26).string(message.shareOutAmount);
-    }
-    for (const v of message.tokenInMaxs) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.shareOutAmount = reader.string();
-          break;
-        case 4:
-          message.tokenInMaxs.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinPool {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      shareOutAmount: isSet(object.shareOutAmount) ? String(object.shareOutAmount) : "",
-      tokenInMaxs: Array.isArray(object?.tokenInMaxs) ? object.tokenInMaxs.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgJoinPool): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.shareOutAmount !== undefined && (obj.shareOutAmount = message.shareOutAmount);
-    if (message.tokenInMaxs) {
-      obj.tokenInMaxs = message.tokenInMaxs.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokenInMaxs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinPool>): MsgJoinPool {
-    const message = createBaseMsgJoinPool();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.shareOutAmount = object.shareOutAmount ?? "";
-    message.tokenInMaxs = object.tokenInMaxs?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgJoinPoolSDKType): MsgJoinPool {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      shareOutAmount: object?.share_out_amount,
-      tokenInMaxs: Array.isArray(object?.token_in_maxs) ? object.token_in_maxs.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgJoinPool): MsgJoinPoolSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokenInMaxs) {
-      obj.token_in_maxs = message.tokenInMaxs.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.token_in_maxs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgJoinPoolAmino): MsgJoinPool {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      shareOutAmount: object.share_out_amount,
-      tokenInMaxs: Array.isArray(object?.token_in_maxs) ? object.token_in_maxs.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgJoinPool): MsgJoinPoolAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokenInMaxs) {
-      obj.token_in_maxs = message.tokenInMaxs.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.token_in_maxs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinPoolAminoMsg): MsgJoinPool {
-    return MsgJoinPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinPool): MsgJoinPoolAminoMsg {
-    return {
-      type: "osmosis/gamm/join-pool",
-      value: MsgJoinPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinPoolProtoMsg): MsgJoinPool {
-    return MsgJoinPool.decode(message.value);
-  },
-  toProto(message: MsgJoinPool): Uint8Array {
-    return MsgJoinPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinPool): MsgJoinPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPool",
-      value: MsgJoinPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgJoinPoolResponse(): MsgJoinPoolResponse {
-  return {
-    shareOutAmount: "",
-    tokenIn: []
-  };
-}
-export const MsgJoinPoolResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPoolResponse",
-  aminoType: "osmosis/gamm/join-pool-response",
-  encode(message: MsgJoinPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.shareOutAmount !== "") {
-      writer.uint32(10).string(message.shareOutAmount);
-    }
-    for (const v of message.tokenIn) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.shareOutAmount = reader.string();
-          break;
-        case 2:
-          message.tokenIn.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinPoolResponse {
-    return {
-      shareOutAmount: isSet(object.shareOutAmount) ? String(object.shareOutAmount) : "",
-      tokenIn: Array.isArray(object?.tokenIn) ? object.tokenIn.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgJoinPoolResponse): unknown {
-    const obj: any = {};
-    message.shareOutAmount !== undefined && (obj.shareOutAmount = message.shareOutAmount);
-    if (message.tokenIn) {
-      obj.tokenIn = message.tokenIn.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokenIn = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinPoolResponse>): MsgJoinPoolResponse {
-    const message = createBaseMsgJoinPoolResponse();
-    message.shareOutAmount = object.shareOutAmount ?? "";
-    message.tokenIn = object.tokenIn?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgJoinPoolResponseSDKType): MsgJoinPoolResponse {
-    return {
-      shareOutAmount: object?.share_out_amount,
-      tokenIn: Array.isArray(object?.token_in) ? object.token_in.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgJoinPoolResponse): MsgJoinPoolResponseSDKType {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokenIn) {
-      obj.token_in = message.tokenIn.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.token_in = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgJoinPoolResponseAmino): MsgJoinPoolResponse {
-    return {
-      shareOutAmount: object.share_out_amount,
-      tokenIn: Array.isArray(object?.token_in) ? object.token_in.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgJoinPoolResponse): MsgJoinPoolResponseAmino {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    if (message.tokenIn) {
-      obj.token_in = message.tokenIn.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.token_in = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinPoolResponseAminoMsg): MsgJoinPoolResponse {
-    return MsgJoinPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinPoolResponse): MsgJoinPoolResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/join-pool-response",
-      value: MsgJoinPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinPoolResponseProtoMsg): MsgJoinPoolResponse {
-    return MsgJoinPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgJoinPoolResponse): Uint8Array {
-    return MsgJoinPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinPoolResponse): MsgJoinPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinPoolResponse",
-      value: MsgJoinPoolResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitPool(): MsgExitPool {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    shareInAmount: "",
-    tokenOutMins: []
-  };
-}
-export const MsgExitPool = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-  aminoType: "osmosis/gamm/exit-pool",
-  encode(message: MsgExitPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.shareInAmount !== "") {
-      writer.uint32(26).string(message.shareInAmount);
-    }
-    for (const v of message.tokenOutMins) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.shareInAmount = reader.string();
-          break;
-        case 4:
-          message.tokenOutMins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitPool {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      shareInAmount: isSet(object.shareInAmount) ? String(object.shareInAmount) : "",
-      tokenOutMins: Array.isArray(object?.tokenOutMins) ? object.tokenOutMins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgExitPool): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.shareInAmount !== undefined && (obj.shareInAmount = message.shareInAmount);
-    if (message.tokenOutMins) {
-      obj.tokenOutMins = message.tokenOutMins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokenOutMins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitPool>): MsgExitPool {
-    const message = createBaseMsgExitPool();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.shareInAmount = object.shareInAmount ?? "";
-    message.tokenOutMins = object.tokenOutMins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgExitPoolSDKType): MsgExitPool {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      shareInAmount: object?.share_in_amount,
-      tokenOutMins: Array.isArray(object?.token_out_mins) ? object.token_out_mins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgExitPool): MsgExitPoolSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    obj.share_in_amount = message.shareInAmount;
-    if (message.tokenOutMins) {
-      obj.token_out_mins = message.tokenOutMins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.token_out_mins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgExitPoolAmino): MsgExitPool {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      shareInAmount: object.share_in_amount,
-      tokenOutMins: Array.isArray(object?.token_out_mins) ? object.token_out_mins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgExitPool): MsgExitPoolAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.share_in_amount = message.shareInAmount;
-    if (message.tokenOutMins) {
-      obj.token_out_mins = message.tokenOutMins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.token_out_mins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitPoolAminoMsg): MsgExitPool {
-    return MsgExitPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitPool): MsgExitPoolAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-pool",
-      value: MsgExitPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitPoolProtoMsg): MsgExitPool {
-    return MsgExitPool.decode(message.value);
-  },
-  toProto(message: MsgExitPool): Uint8Array {
-    return MsgExitPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitPool): MsgExitPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitPool",
-      value: MsgExitPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitPoolResponse(): MsgExitPoolResponse {
-  return {
-    tokenOut: []
-  };
-}
-export const MsgExitPoolResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitPoolResponse",
-  aminoType: "osmosis/gamm/exit-pool-response",
-  encode(message: MsgExitPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.tokenOut) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenOut.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitPoolResponse {
-    return {
-      tokenOut: Array.isArray(object?.tokenOut) ? object.tokenOut.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgExitPoolResponse): unknown {
-    const obj: any = {};
-    if (message.tokenOut) {
-      obj.tokenOut = message.tokenOut.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.tokenOut = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitPoolResponse>): MsgExitPoolResponse {
-    const message = createBaseMsgExitPoolResponse();
-    message.tokenOut = object.tokenOut?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgExitPoolResponseSDKType): MsgExitPoolResponse {
-    return {
-      tokenOut: Array.isArray(object?.token_out) ? object.token_out.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgExitPoolResponse): MsgExitPoolResponseSDKType {
-    const obj: any = {};
-    if (message.tokenOut) {
-      obj.token_out = message.tokenOut.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.token_out = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgExitPoolResponseAmino): MsgExitPoolResponse {
-    return {
-      tokenOut: Array.isArray(object?.token_out) ? object.token_out.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgExitPoolResponse): MsgExitPoolResponseAmino {
-    const obj: any = {};
-    if (message.tokenOut) {
-      obj.token_out = message.tokenOut.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.token_out = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitPoolResponseAminoMsg): MsgExitPoolResponse {
-    return MsgExitPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitPoolResponse): MsgExitPoolResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-pool-response",
-      value: MsgExitPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitPoolResponseProtoMsg): MsgExitPoolResponse {
-    return MsgExitPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgExitPoolResponse): Uint8Array {
-    return MsgExitPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitPoolResponse): MsgExitPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitPoolResponse",
-      value: MsgExitPoolResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSwapAmountInRoute(): SwapAmountInRoute {
-  return {
-    poolId: BigInt(0),
-    tokenOutDenom: ""
-  };
-}
-export const SwapAmountInRoute = {
-  typeUrl: "/osmosis.gamm.v1beta1.SwapAmountInRoute",
-  aminoType: "osmosis/gamm/swap-amount-in-route",
-  encode(message: SwapAmountInRoute, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.tokenOutDenom !== "") {
-      writer.uint32(18).string(message.tokenOutDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SwapAmountInRoute {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSwapAmountInRoute();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.tokenOutDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SwapAmountInRoute {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenOutDenom: isSet(object.tokenOutDenom) ? String(object.tokenOutDenom) : ""
-    };
-  },
-  toJSON(message: SwapAmountInRoute): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenOutDenom !== undefined && (obj.tokenOutDenom = message.tokenOutDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SwapAmountInRoute>): SwapAmountInRoute {
-    const message = createBaseSwapAmountInRoute();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenOutDenom = object.tokenOutDenom ?? "";
-    return message;
-  },
-  fromSDK(object: SwapAmountInRouteSDKType): SwapAmountInRoute {
-    return {
-      poolId: object?.pool_id,
-      tokenOutDenom: object?.token_out_denom
-    };
-  },
-  toSDK(message: SwapAmountInRoute): SwapAmountInRouteSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.token_out_denom = message.tokenOutDenom;
-    return obj;
-  },
-  fromAmino(object: SwapAmountInRouteAmino): SwapAmountInRoute {
-    return {
-      poolId: BigInt(object.pool_id),
-      tokenOutDenom: object.token_out_denom
-    };
-  },
-  toAmino(message: SwapAmountInRoute): SwapAmountInRouteAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_out_denom = message.tokenOutDenom;
-    return obj;
-  },
-  fromAminoMsg(object: SwapAmountInRouteAminoMsg): SwapAmountInRoute {
-    return SwapAmountInRoute.fromAmino(object.value);
-  },
-  toAminoMsg(message: SwapAmountInRoute): SwapAmountInRouteAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-amount-in-route",
-      value: SwapAmountInRoute.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SwapAmountInRouteProtoMsg): SwapAmountInRoute {
-    return SwapAmountInRoute.decode(message.value);
-  },
-  toProto(message: SwapAmountInRoute): Uint8Array {
-    return SwapAmountInRoute.encode(message).finish();
-  },
-  toProtoMsg(message: SwapAmountInRoute): SwapAmountInRouteProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.SwapAmountInRoute",
-      value: SwapAmountInRoute.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSwapExactAmountIn(): MsgSwapExactAmountIn {
-  return {
-    sender: "",
-    routes: [],
-    tokenIn: Coin.fromPartial({}),
-    tokenOutMinAmount: ""
-  };
-}
-export const MsgSwapExactAmountIn = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-  aminoType: "osmosis/gamm/swap-exact-amount-in",
-  encode(message: MsgSwapExactAmountIn, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    for (const v of message.routes) {
-      SwapAmountInRoute.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.tokenIn !== undefined) {
-      Coin.encode(message.tokenIn, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.tokenOutMinAmount !== "") {
-      writer.uint32(34).string(message.tokenOutMinAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSwapExactAmountIn {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSwapExactAmountIn();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.routes.push(SwapAmountInRoute.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.tokenIn = Coin.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.tokenOutMinAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSwapExactAmountIn {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromJSON(e)) : [],
-      tokenIn: isSet(object.tokenIn) ? Coin.fromJSON(object.tokenIn) : undefined,
-      tokenOutMinAmount: isSet(object.tokenOutMinAmount) ? String(object.tokenOutMinAmount) : ""
-    };
-  },
-  toJSON(message: MsgSwapExactAmountIn): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toJSON(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    message.tokenIn !== undefined && (obj.tokenIn = message.tokenIn ? Coin.toJSON(message.tokenIn) : undefined);
-    message.tokenOutMinAmount !== undefined && (obj.tokenOutMinAmount = message.tokenOutMinAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSwapExactAmountIn>): MsgSwapExactAmountIn {
-    const message = createBaseMsgSwapExactAmountIn();
-    message.sender = object.sender ?? "";
-    message.routes = object.routes?.map(e => SwapAmountInRoute.fromPartial(e)) || [];
-    message.tokenIn = object.tokenIn !== undefined && object.tokenIn !== null ? Coin.fromPartial(object.tokenIn) : undefined;
-    message.tokenOutMinAmount = object.tokenOutMinAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSwapExactAmountInSDKType): MsgSwapExactAmountIn {
-    return {
-      sender: object?.sender,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromSDK(e)) : [],
-      tokenIn: object.token_in ? Coin.fromSDK(object.token_in) : undefined,
-      tokenOutMinAmount: object?.token_out_min_amount
-    };
-  },
-  toSDK(message: MsgSwapExactAmountIn): MsgSwapExactAmountInSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toSDK(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    message.tokenIn !== undefined && (obj.token_in = message.tokenIn ? Coin.toSDK(message.tokenIn) : undefined);
-    obj.token_out_min_amount = message.tokenOutMinAmount;
-    return obj;
-  },
-  fromAmino(object: MsgSwapExactAmountInAmino): MsgSwapExactAmountIn {
-    return {
-      sender: object.sender,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountInRoute.fromAmino(e)) : [],
-      tokenIn: object?.token_in ? Coin.fromAmino(object.token_in) : undefined,
-      tokenOutMinAmount: object.token_out_min_amount
-    };
-  },
-  toAmino(message: MsgSwapExactAmountIn): MsgSwapExactAmountInAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountInRoute.toAmino(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    obj.token_in = message.tokenIn ? Coin.toAmino(message.tokenIn) : undefined;
-    obj.token_out_min_amount = message.tokenOutMinAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSwapExactAmountInAminoMsg): MsgSwapExactAmountIn {
-    return MsgSwapExactAmountIn.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSwapExactAmountIn): MsgSwapExactAmountInAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-exact-amount-in",
-      value: MsgSwapExactAmountIn.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSwapExactAmountInProtoMsg): MsgSwapExactAmountIn {
-    return MsgSwapExactAmountIn.decode(message.value);
-  },
-  toProto(message: MsgSwapExactAmountIn): Uint8Array {
-    return MsgSwapExactAmountIn.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSwapExactAmountIn): MsgSwapExactAmountInProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountIn",
-      value: MsgSwapExactAmountIn.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSwapExactAmountInResponse(): MsgSwapExactAmountInResponse {
-  return {
-    tokenOutAmount: ""
-  };
-}
-export const MsgSwapExactAmountInResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountInResponse",
-  aminoType: "osmosis/gamm/swap-exact-amount-in-response",
-  encode(message: MsgSwapExactAmountInResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenOutAmount !== "") {
-      writer.uint32(10).string(message.tokenOutAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSwapExactAmountInResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSwapExactAmountInResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenOutAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSwapExactAmountInResponse {
-    return {
-      tokenOutAmount: isSet(object.tokenOutAmount) ? String(object.tokenOutAmount) : ""
-    };
-  },
-  toJSON(message: MsgSwapExactAmountInResponse): unknown {
-    const obj: any = {};
-    message.tokenOutAmount !== undefined && (obj.tokenOutAmount = message.tokenOutAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSwapExactAmountInResponse>): MsgSwapExactAmountInResponse {
-    const message = createBaseMsgSwapExactAmountInResponse();
-    message.tokenOutAmount = object.tokenOutAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSwapExactAmountInResponseSDKType): MsgSwapExactAmountInResponse {
-    return {
-      tokenOutAmount: object?.token_out_amount
-    };
-  },
-  toSDK(message: MsgSwapExactAmountInResponse): MsgSwapExactAmountInResponseSDKType {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAmino(object: MsgSwapExactAmountInResponseAmino): MsgSwapExactAmountInResponse {
-    return {
-      tokenOutAmount: object.token_out_amount
-    };
-  },
-  toAmino(message: MsgSwapExactAmountInResponse): MsgSwapExactAmountInResponseAmino {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSwapExactAmountInResponseAminoMsg): MsgSwapExactAmountInResponse {
-    return MsgSwapExactAmountInResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSwapExactAmountInResponse): MsgSwapExactAmountInResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-exact-amount-in-response",
-      value: MsgSwapExactAmountInResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSwapExactAmountInResponseProtoMsg): MsgSwapExactAmountInResponse {
-    return MsgSwapExactAmountInResponse.decode(message.value);
-  },
-  toProto(message: MsgSwapExactAmountInResponse): Uint8Array {
-    return MsgSwapExactAmountInResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSwapExactAmountInResponse): MsgSwapExactAmountInResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountInResponse",
-      value: MsgSwapExactAmountInResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSwapAmountOutRoute(): SwapAmountOutRoute {
-  return {
-    poolId: BigInt(0),
-    tokenInDenom: ""
-  };
-}
-export const SwapAmountOutRoute = {
-  typeUrl: "/osmosis.gamm.v1beta1.SwapAmountOutRoute",
-  aminoType: "osmosis/gamm/swap-amount-out-route",
-  encode(message: SwapAmountOutRoute, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.tokenInDenom !== "") {
-      writer.uint32(18).string(message.tokenInDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SwapAmountOutRoute {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSwapAmountOutRoute();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.tokenInDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SwapAmountOutRoute {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenInDenom: isSet(object.tokenInDenom) ? String(object.tokenInDenom) : ""
-    };
-  },
-  toJSON(message: SwapAmountOutRoute): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenInDenom !== undefined && (obj.tokenInDenom = message.tokenInDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SwapAmountOutRoute>): SwapAmountOutRoute {
-    const message = createBaseSwapAmountOutRoute();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenInDenom = object.tokenInDenom ?? "";
-    return message;
-  },
-  fromSDK(object: SwapAmountOutRouteSDKType): SwapAmountOutRoute {
-    return {
-      poolId: object?.pool_id,
-      tokenInDenom: object?.token_in_denom
-    };
-  },
-  toSDK(message: SwapAmountOutRoute): SwapAmountOutRouteSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.token_in_denom = message.tokenInDenom;
-    return obj;
-  },
-  fromAmino(object: SwapAmountOutRouteAmino): SwapAmountOutRoute {
-    return {
-      poolId: BigInt(object.pool_id),
-      tokenInDenom: object.token_in_denom
-    };
-  },
-  toAmino(message: SwapAmountOutRoute): SwapAmountOutRouteAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_in_denom = message.tokenInDenom;
-    return obj;
-  },
-  fromAminoMsg(object: SwapAmountOutRouteAminoMsg): SwapAmountOutRoute {
-    return SwapAmountOutRoute.fromAmino(object.value);
-  },
-  toAminoMsg(message: SwapAmountOutRoute): SwapAmountOutRouteAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-amount-out-route",
-      value: SwapAmountOutRoute.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SwapAmountOutRouteProtoMsg): SwapAmountOutRoute {
-    return SwapAmountOutRoute.decode(message.value);
-  },
-  toProto(message: SwapAmountOutRoute): Uint8Array {
-    return SwapAmountOutRoute.encode(message).finish();
-  },
-  toProtoMsg(message: SwapAmountOutRoute): SwapAmountOutRouteProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.SwapAmountOutRoute",
-      value: SwapAmountOutRoute.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSwapExactAmountOut(): MsgSwapExactAmountOut {
-  return {
-    sender: "",
-    routes: [],
-    tokenInMaxAmount: "",
-    tokenOut: Coin.fromPartial({})
-  };
-}
-export const MsgSwapExactAmountOut = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-  aminoType: "osmosis/gamm/swap-exact-amount-out",
-  encode(message: MsgSwapExactAmountOut, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    for (const v of message.routes) {
-      SwapAmountOutRoute.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.tokenInMaxAmount !== "") {
-      writer.uint32(26).string(message.tokenInMaxAmount);
-    }
-    if (message.tokenOut !== undefined) {
-      Coin.encode(message.tokenOut, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSwapExactAmountOut {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSwapExactAmountOut();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.routes.push(SwapAmountOutRoute.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.tokenInMaxAmount = reader.string();
-          break;
-        case 4:
-          message.tokenOut = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSwapExactAmountOut {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromJSON(e)) : [],
-      tokenInMaxAmount: isSet(object.tokenInMaxAmount) ? String(object.tokenInMaxAmount) : "",
-      tokenOut: isSet(object.tokenOut) ? Coin.fromJSON(object.tokenOut) : undefined
-    };
-  },
-  toJSON(message: MsgSwapExactAmountOut): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toJSON(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    message.tokenInMaxAmount !== undefined && (obj.tokenInMaxAmount = message.tokenInMaxAmount);
-    message.tokenOut !== undefined && (obj.tokenOut = message.tokenOut ? Coin.toJSON(message.tokenOut) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSwapExactAmountOut>): MsgSwapExactAmountOut {
-    const message = createBaseMsgSwapExactAmountOut();
-    message.sender = object.sender ?? "";
-    message.routes = object.routes?.map(e => SwapAmountOutRoute.fromPartial(e)) || [];
-    message.tokenInMaxAmount = object.tokenInMaxAmount ?? "";
-    message.tokenOut = object.tokenOut !== undefined && object.tokenOut !== null ? Coin.fromPartial(object.tokenOut) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgSwapExactAmountOutSDKType): MsgSwapExactAmountOut {
-    return {
-      sender: object?.sender,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromSDK(e)) : [],
-      tokenInMaxAmount: object?.token_in_max_amount,
-      tokenOut: object.token_out ? Coin.fromSDK(object.token_out) : undefined
-    };
-  },
-  toSDK(message: MsgSwapExactAmountOut): MsgSwapExactAmountOutSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toSDK(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    obj.token_in_max_amount = message.tokenInMaxAmount;
-    message.tokenOut !== undefined && (obj.token_out = message.tokenOut ? Coin.toSDK(message.tokenOut) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgSwapExactAmountOutAmino): MsgSwapExactAmountOut {
-    return {
-      sender: object.sender,
-      routes: Array.isArray(object?.routes) ? object.routes.map((e: any) => SwapAmountOutRoute.fromAmino(e)) : [],
-      tokenInMaxAmount: object.token_in_max_amount,
-      tokenOut: object?.token_out ? Coin.fromAmino(object.token_out) : undefined
-    };
-  },
-  toAmino(message: MsgSwapExactAmountOut): MsgSwapExactAmountOutAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.routes) {
-      obj.routes = message.routes.map(e => e ? SwapAmountOutRoute.toAmino(e) : undefined);
-    } else {
-      obj.routes = [];
-    }
-    obj.token_in_max_amount = message.tokenInMaxAmount;
-    obj.token_out = message.tokenOut ? Coin.toAmino(message.tokenOut) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSwapExactAmountOutAminoMsg): MsgSwapExactAmountOut {
-    return MsgSwapExactAmountOut.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSwapExactAmountOut): MsgSwapExactAmountOutAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-exact-amount-out",
-      value: MsgSwapExactAmountOut.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSwapExactAmountOutProtoMsg): MsgSwapExactAmountOut {
-    return MsgSwapExactAmountOut.decode(message.value);
-  },
-  toProto(message: MsgSwapExactAmountOut): Uint8Array {
-    return MsgSwapExactAmountOut.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSwapExactAmountOut): MsgSwapExactAmountOutProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOut",
-      value: MsgSwapExactAmountOut.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSwapExactAmountOutResponse(): MsgSwapExactAmountOutResponse {
-  return {
-    tokenInAmount: ""
-  };
-}
-export const MsgSwapExactAmountOutResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOutResponse",
-  aminoType: "osmosis/gamm/swap-exact-amount-out-response",
-  encode(message: MsgSwapExactAmountOutResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenInAmount !== "") {
-      writer.uint32(10).string(message.tokenInAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSwapExactAmountOutResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSwapExactAmountOutResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenInAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSwapExactAmountOutResponse {
-    return {
-      tokenInAmount: isSet(object.tokenInAmount) ? String(object.tokenInAmount) : ""
-    };
-  },
-  toJSON(message: MsgSwapExactAmountOutResponse): unknown {
-    const obj: any = {};
-    message.tokenInAmount !== undefined && (obj.tokenInAmount = message.tokenInAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSwapExactAmountOutResponse>): MsgSwapExactAmountOutResponse {
-    const message = createBaseMsgSwapExactAmountOutResponse();
-    message.tokenInAmount = object.tokenInAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSwapExactAmountOutResponseSDKType): MsgSwapExactAmountOutResponse {
-    return {
-      tokenInAmount: object?.token_in_amount
-    };
-  },
-  toSDK(message: MsgSwapExactAmountOutResponse): MsgSwapExactAmountOutResponseSDKType {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAmino(object: MsgSwapExactAmountOutResponseAmino): MsgSwapExactAmountOutResponse {
-    return {
-      tokenInAmount: object.token_in_amount
-    };
-  },
-  toAmino(message: MsgSwapExactAmountOutResponse): MsgSwapExactAmountOutResponseAmino {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSwapExactAmountOutResponseAminoMsg): MsgSwapExactAmountOutResponse {
-    return MsgSwapExactAmountOutResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSwapExactAmountOutResponse): MsgSwapExactAmountOutResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/swap-exact-amount-out-response",
-      value: MsgSwapExactAmountOutResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSwapExactAmountOutResponseProtoMsg): MsgSwapExactAmountOutResponse {
-    return MsgSwapExactAmountOutResponse.decode(message.value);
-  },
-  toProto(message: MsgSwapExactAmountOutResponse): Uint8Array {
-    return MsgSwapExactAmountOutResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSwapExactAmountOutResponse): MsgSwapExactAmountOutResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgSwapExactAmountOutResponse",
-      value: MsgSwapExactAmountOutResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgJoinSwapExternAmountIn(): MsgJoinSwapExternAmountIn {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    tokenIn: Coin.fromPartial({}),
-    shareOutMinAmount: ""
-  };
-}
-export const MsgJoinSwapExternAmountIn = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-  aminoType: "osmosis/gamm/join-swap-extern-amount-in",
-  encode(message: MsgJoinSwapExternAmountIn, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.tokenIn !== undefined) {
-      Coin.encode(message.tokenIn, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.shareOutMinAmount !== "") {
-      writer.uint32(34).string(message.shareOutMinAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinSwapExternAmountIn {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinSwapExternAmountIn();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.tokenIn = Coin.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.shareOutMinAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinSwapExternAmountIn {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenIn: isSet(object.tokenIn) ? Coin.fromJSON(object.tokenIn) : undefined,
-      shareOutMinAmount: isSet(object.shareOutMinAmount) ? String(object.shareOutMinAmount) : ""
-    };
-  },
-  toJSON(message: MsgJoinSwapExternAmountIn): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenIn !== undefined && (obj.tokenIn = message.tokenIn ? Coin.toJSON(message.tokenIn) : undefined);
-    message.shareOutMinAmount !== undefined && (obj.shareOutMinAmount = message.shareOutMinAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinSwapExternAmountIn>): MsgJoinSwapExternAmountIn {
-    const message = createBaseMsgJoinSwapExternAmountIn();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenIn = object.tokenIn !== undefined && object.tokenIn !== null ? Coin.fromPartial(object.tokenIn) : undefined;
-    message.shareOutMinAmount = object.shareOutMinAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgJoinSwapExternAmountInSDKType): MsgJoinSwapExternAmountIn {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      tokenIn: object.token_in ? Coin.fromSDK(object.token_in) : undefined,
-      shareOutMinAmount: object?.share_out_min_amount
-    };
-  },
-  toSDK(message: MsgJoinSwapExternAmountIn): MsgJoinSwapExternAmountInSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    message.tokenIn !== undefined && (obj.token_in = message.tokenIn ? Coin.toSDK(message.tokenIn) : undefined);
-    obj.share_out_min_amount = message.shareOutMinAmount;
-    return obj;
-  },
-  fromAmino(object: MsgJoinSwapExternAmountInAmino): MsgJoinSwapExternAmountIn {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      tokenIn: object?.token_in ? Coin.fromAmino(object.token_in) : undefined,
-      shareOutMinAmount: object.share_out_min_amount
-    };
-  },
-  toAmino(message: MsgJoinSwapExternAmountIn): MsgJoinSwapExternAmountInAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_in = message.tokenIn ? Coin.toAmino(message.tokenIn) : undefined;
-    obj.share_out_min_amount = message.shareOutMinAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinSwapExternAmountInAminoMsg): MsgJoinSwapExternAmountIn {
-    return MsgJoinSwapExternAmountIn.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinSwapExternAmountIn): MsgJoinSwapExternAmountInAminoMsg {
-    return {
-      type: "osmosis/gamm/join-swap-extern-amount-in",
-      value: MsgJoinSwapExternAmountIn.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinSwapExternAmountInProtoMsg): MsgJoinSwapExternAmountIn {
-    return MsgJoinSwapExternAmountIn.decode(message.value);
-  },
-  toProto(message: MsgJoinSwapExternAmountIn): Uint8Array {
-    return MsgJoinSwapExternAmountIn.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinSwapExternAmountIn): MsgJoinSwapExternAmountInProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountIn",
-      value: MsgJoinSwapExternAmountIn.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgJoinSwapExternAmountInResponse(): MsgJoinSwapExternAmountInResponse {
-  return {
-    shareOutAmount: ""
-  };
-}
-export const MsgJoinSwapExternAmountInResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountInResponse",
-  aminoType: "osmosis/gamm/join-swap-extern-amount-in-response",
-  encode(message: MsgJoinSwapExternAmountInResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.shareOutAmount !== "") {
-      writer.uint32(10).string(message.shareOutAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinSwapExternAmountInResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinSwapExternAmountInResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.shareOutAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinSwapExternAmountInResponse {
-    return {
-      shareOutAmount: isSet(object.shareOutAmount) ? String(object.shareOutAmount) : ""
-    };
-  },
-  toJSON(message: MsgJoinSwapExternAmountInResponse): unknown {
-    const obj: any = {};
-    message.shareOutAmount !== undefined && (obj.shareOutAmount = message.shareOutAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinSwapExternAmountInResponse>): MsgJoinSwapExternAmountInResponse {
-    const message = createBaseMsgJoinSwapExternAmountInResponse();
-    message.shareOutAmount = object.shareOutAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgJoinSwapExternAmountInResponseSDKType): MsgJoinSwapExternAmountInResponse {
-    return {
-      shareOutAmount: object?.share_out_amount
-    };
-  },
-  toSDK(message: MsgJoinSwapExternAmountInResponse): MsgJoinSwapExternAmountInResponseSDKType {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    return obj;
-  },
-  fromAmino(object: MsgJoinSwapExternAmountInResponseAmino): MsgJoinSwapExternAmountInResponse {
-    return {
-      shareOutAmount: object.share_out_amount
-    };
-  },
-  toAmino(message: MsgJoinSwapExternAmountInResponse): MsgJoinSwapExternAmountInResponseAmino {
-    const obj: any = {};
-    obj.share_out_amount = message.shareOutAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinSwapExternAmountInResponseAminoMsg): MsgJoinSwapExternAmountInResponse {
-    return MsgJoinSwapExternAmountInResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinSwapExternAmountInResponse): MsgJoinSwapExternAmountInResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/join-swap-extern-amount-in-response",
-      value: MsgJoinSwapExternAmountInResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinSwapExternAmountInResponseProtoMsg): MsgJoinSwapExternAmountInResponse {
-    return MsgJoinSwapExternAmountInResponse.decode(message.value);
-  },
-  toProto(message: MsgJoinSwapExternAmountInResponse): Uint8Array {
-    return MsgJoinSwapExternAmountInResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinSwapExternAmountInResponse): MsgJoinSwapExternAmountInResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapExternAmountInResponse",
-      value: MsgJoinSwapExternAmountInResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgJoinSwapShareAmountOut(): MsgJoinSwapShareAmountOut {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    tokenInDenom: "",
-    shareOutAmount: "",
-    tokenInMaxAmount: ""
-  };
-}
-export const MsgJoinSwapShareAmountOut = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-  aminoType: "osmosis/gamm/join-swap-share-amount-out",
-  encode(message: MsgJoinSwapShareAmountOut, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.tokenInDenom !== "") {
-      writer.uint32(26).string(message.tokenInDenom);
-    }
-    if (message.shareOutAmount !== "") {
-      writer.uint32(34).string(message.shareOutAmount);
-    }
-    if (message.tokenInMaxAmount !== "") {
-      writer.uint32(42).string(message.tokenInMaxAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinSwapShareAmountOut {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinSwapShareAmountOut();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.tokenInDenom = reader.string();
-          break;
-        case 4:
-          message.shareOutAmount = reader.string();
-          break;
-        case 5:
-          message.tokenInMaxAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinSwapShareAmountOut {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenInDenom: isSet(object.tokenInDenom) ? String(object.tokenInDenom) : "",
-      shareOutAmount: isSet(object.shareOutAmount) ? String(object.shareOutAmount) : "",
-      tokenInMaxAmount: isSet(object.tokenInMaxAmount) ? String(object.tokenInMaxAmount) : ""
-    };
-  },
-  toJSON(message: MsgJoinSwapShareAmountOut): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenInDenom !== undefined && (obj.tokenInDenom = message.tokenInDenom);
-    message.shareOutAmount !== undefined && (obj.shareOutAmount = message.shareOutAmount);
-    message.tokenInMaxAmount !== undefined && (obj.tokenInMaxAmount = message.tokenInMaxAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinSwapShareAmountOut>): MsgJoinSwapShareAmountOut {
-    const message = createBaseMsgJoinSwapShareAmountOut();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenInDenom = object.tokenInDenom ?? "";
-    message.shareOutAmount = object.shareOutAmount ?? "";
-    message.tokenInMaxAmount = object.tokenInMaxAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgJoinSwapShareAmountOutSDKType): MsgJoinSwapShareAmountOut {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      tokenInDenom: object?.token_in_denom,
-      shareOutAmount: object?.share_out_amount,
-      tokenInMaxAmount: object?.token_in_max_amount
-    };
-  },
-  toSDK(message: MsgJoinSwapShareAmountOut): MsgJoinSwapShareAmountOutSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    obj.token_in_denom = message.tokenInDenom;
-    obj.share_out_amount = message.shareOutAmount;
-    obj.token_in_max_amount = message.tokenInMaxAmount;
-    return obj;
-  },
-  fromAmino(object: MsgJoinSwapShareAmountOutAmino): MsgJoinSwapShareAmountOut {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      tokenInDenom: object.token_in_denom,
-      shareOutAmount: object.share_out_amount,
-      tokenInMaxAmount: object.token_in_max_amount
-    };
-  },
-  toAmino(message: MsgJoinSwapShareAmountOut): MsgJoinSwapShareAmountOutAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_in_denom = message.tokenInDenom;
-    obj.share_out_amount = message.shareOutAmount;
-    obj.token_in_max_amount = message.tokenInMaxAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinSwapShareAmountOutAminoMsg): MsgJoinSwapShareAmountOut {
-    return MsgJoinSwapShareAmountOut.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinSwapShareAmountOut): MsgJoinSwapShareAmountOutAminoMsg {
-    return {
-      type: "osmosis/gamm/join-swap-share-amount-out",
-      value: MsgJoinSwapShareAmountOut.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinSwapShareAmountOutProtoMsg): MsgJoinSwapShareAmountOut {
-    return MsgJoinSwapShareAmountOut.decode(message.value);
-  },
-  toProto(message: MsgJoinSwapShareAmountOut): Uint8Array {
-    return MsgJoinSwapShareAmountOut.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinSwapShareAmountOut): MsgJoinSwapShareAmountOutProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOut",
-      value: MsgJoinSwapShareAmountOut.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgJoinSwapShareAmountOutResponse(): MsgJoinSwapShareAmountOutResponse {
-  return {
-    tokenInAmount: ""
-  };
-}
-export const MsgJoinSwapShareAmountOutResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOutResponse",
-  aminoType: "osmosis/gamm/join-swap-share-amount-out-response",
-  encode(message: MsgJoinSwapShareAmountOutResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenInAmount !== "") {
-      writer.uint32(10).string(message.tokenInAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgJoinSwapShareAmountOutResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgJoinSwapShareAmountOutResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenInAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgJoinSwapShareAmountOutResponse {
-    return {
-      tokenInAmount: isSet(object.tokenInAmount) ? String(object.tokenInAmount) : ""
-    };
-  },
-  toJSON(message: MsgJoinSwapShareAmountOutResponse): unknown {
-    const obj: any = {};
-    message.tokenInAmount !== undefined && (obj.tokenInAmount = message.tokenInAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgJoinSwapShareAmountOutResponse>): MsgJoinSwapShareAmountOutResponse {
-    const message = createBaseMsgJoinSwapShareAmountOutResponse();
-    message.tokenInAmount = object.tokenInAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgJoinSwapShareAmountOutResponseSDKType): MsgJoinSwapShareAmountOutResponse {
-    return {
-      tokenInAmount: object?.token_in_amount
-    };
-  },
-  toSDK(message: MsgJoinSwapShareAmountOutResponse): MsgJoinSwapShareAmountOutResponseSDKType {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAmino(object: MsgJoinSwapShareAmountOutResponseAmino): MsgJoinSwapShareAmountOutResponse {
-    return {
-      tokenInAmount: object.token_in_amount
-    };
-  },
-  toAmino(message: MsgJoinSwapShareAmountOutResponse): MsgJoinSwapShareAmountOutResponseAmino {
-    const obj: any = {};
-    obj.token_in_amount = message.tokenInAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgJoinSwapShareAmountOutResponseAminoMsg): MsgJoinSwapShareAmountOutResponse {
-    return MsgJoinSwapShareAmountOutResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgJoinSwapShareAmountOutResponse): MsgJoinSwapShareAmountOutResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/join-swap-share-amount-out-response",
-      value: MsgJoinSwapShareAmountOutResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgJoinSwapShareAmountOutResponseProtoMsg): MsgJoinSwapShareAmountOutResponse {
-    return MsgJoinSwapShareAmountOutResponse.decode(message.value);
-  },
-  toProto(message: MsgJoinSwapShareAmountOutResponse): Uint8Array {
-    return MsgJoinSwapShareAmountOutResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgJoinSwapShareAmountOutResponse): MsgJoinSwapShareAmountOutResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgJoinSwapShareAmountOutResponse",
-      value: MsgJoinSwapShareAmountOutResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitSwapShareAmountIn(): MsgExitSwapShareAmountIn {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    tokenOutDenom: "",
-    shareInAmount: "",
-    tokenOutMinAmount: ""
-  };
-}
-export const MsgExitSwapShareAmountIn = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-  aminoType: "osmosis/gamm/exit-swap-share-amount-in",
-  encode(message: MsgExitSwapShareAmountIn, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.tokenOutDenom !== "") {
-      writer.uint32(26).string(message.tokenOutDenom);
-    }
-    if (message.shareInAmount !== "") {
-      writer.uint32(34).string(message.shareInAmount);
-    }
-    if (message.tokenOutMinAmount !== "") {
-      writer.uint32(42).string(message.tokenOutMinAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitSwapShareAmountIn {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitSwapShareAmountIn();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.tokenOutDenom = reader.string();
-          break;
-        case 4:
-          message.shareInAmount = reader.string();
-          break;
-        case 5:
-          message.tokenOutMinAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitSwapShareAmountIn {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenOutDenom: isSet(object.tokenOutDenom) ? String(object.tokenOutDenom) : "",
-      shareInAmount: isSet(object.shareInAmount) ? String(object.shareInAmount) : "",
-      tokenOutMinAmount: isSet(object.tokenOutMinAmount) ? String(object.tokenOutMinAmount) : ""
-    };
-  },
-  toJSON(message: MsgExitSwapShareAmountIn): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenOutDenom !== undefined && (obj.tokenOutDenom = message.tokenOutDenom);
-    message.shareInAmount !== undefined && (obj.shareInAmount = message.shareInAmount);
-    message.tokenOutMinAmount !== undefined && (obj.tokenOutMinAmount = message.tokenOutMinAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitSwapShareAmountIn>): MsgExitSwapShareAmountIn {
-    const message = createBaseMsgExitSwapShareAmountIn();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenOutDenom = object.tokenOutDenom ?? "";
-    message.shareInAmount = object.shareInAmount ?? "";
-    message.tokenOutMinAmount = object.tokenOutMinAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExitSwapShareAmountInSDKType): MsgExitSwapShareAmountIn {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      tokenOutDenom: object?.token_out_denom,
-      shareInAmount: object?.share_in_amount,
-      tokenOutMinAmount: object?.token_out_min_amount
-    };
-  },
-  toSDK(message: MsgExitSwapShareAmountIn): MsgExitSwapShareAmountInSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    obj.token_out_denom = message.tokenOutDenom;
-    obj.share_in_amount = message.shareInAmount;
-    obj.token_out_min_amount = message.tokenOutMinAmount;
-    return obj;
-  },
-  fromAmino(object: MsgExitSwapShareAmountInAmino): MsgExitSwapShareAmountIn {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      tokenOutDenom: object.token_out_denom,
-      shareInAmount: object.share_in_amount,
-      tokenOutMinAmount: object.token_out_min_amount
-    };
-  },
-  toAmino(message: MsgExitSwapShareAmountIn): MsgExitSwapShareAmountInAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_out_denom = message.tokenOutDenom;
-    obj.share_in_amount = message.shareInAmount;
-    obj.token_out_min_amount = message.tokenOutMinAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitSwapShareAmountInAminoMsg): MsgExitSwapShareAmountIn {
-    return MsgExitSwapShareAmountIn.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitSwapShareAmountIn): MsgExitSwapShareAmountInAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-swap-share-amount-in",
-      value: MsgExitSwapShareAmountIn.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitSwapShareAmountInProtoMsg): MsgExitSwapShareAmountIn {
-    return MsgExitSwapShareAmountIn.decode(message.value);
-  },
-  toProto(message: MsgExitSwapShareAmountIn): Uint8Array {
-    return MsgExitSwapShareAmountIn.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitSwapShareAmountIn): MsgExitSwapShareAmountInProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountIn",
-      value: MsgExitSwapShareAmountIn.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitSwapShareAmountInResponse(): MsgExitSwapShareAmountInResponse {
-  return {
-    tokenOutAmount: ""
-  };
-}
-export const MsgExitSwapShareAmountInResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountInResponse",
-  aminoType: "osmosis/gamm/exit-swap-share-amount-in-response",
-  encode(message: MsgExitSwapShareAmountInResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tokenOutAmount !== "") {
-      writer.uint32(10).string(message.tokenOutAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitSwapShareAmountInResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitSwapShareAmountInResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tokenOutAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitSwapShareAmountInResponse {
-    return {
-      tokenOutAmount: isSet(object.tokenOutAmount) ? String(object.tokenOutAmount) : ""
-    };
-  },
-  toJSON(message: MsgExitSwapShareAmountInResponse): unknown {
-    const obj: any = {};
-    message.tokenOutAmount !== undefined && (obj.tokenOutAmount = message.tokenOutAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitSwapShareAmountInResponse>): MsgExitSwapShareAmountInResponse {
-    const message = createBaseMsgExitSwapShareAmountInResponse();
-    message.tokenOutAmount = object.tokenOutAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExitSwapShareAmountInResponseSDKType): MsgExitSwapShareAmountInResponse {
-    return {
-      tokenOutAmount: object?.token_out_amount
-    };
-  },
-  toSDK(message: MsgExitSwapShareAmountInResponse): MsgExitSwapShareAmountInResponseSDKType {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAmino(object: MsgExitSwapShareAmountInResponseAmino): MsgExitSwapShareAmountInResponse {
-    return {
-      tokenOutAmount: object.token_out_amount
-    };
-  },
-  toAmino(message: MsgExitSwapShareAmountInResponse): MsgExitSwapShareAmountInResponseAmino {
-    const obj: any = {};
-    obj.token_out_amount = message.tokenOutAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitSwapShareAmountInResponseAminoMsg): MsgExitSwapShareAmountInResponse {
-    return MsgExitSwapShareAmountInResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitSwapShareAmountInResponse): MsgExitSwapShareAmountInResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-swap-share-amount-in-response",
-      value: MsgExitSwapShareAmountInResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitSwapShareAmountInResponseProtoMsg): MsgExitSwapShareAmountInResponse {
-    return MsgExitSwapShareAmountInResponse.decode(message.value);
-  },
-  toProto(message: MsgExitSwapShareAmountInResponse): Uint8Array {
-    return MsgExitSwapShareAmountInResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitSwapShareAmountInResponse): MsgExitSwapShareAmountInResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapShareAmountInResponse",
-      value: MsgExitSwapShareAmountInResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitSwapExternAmountOut(): MsgExitSwapExternAmountOut {
-  return {
-    sender: "",
-    poolId: BigInt(0),
-    tokenOut: Coin.fromPartial({}),
-    shareInMaxAmount: ""
-  };
-}
-export const MsgExitSwapExternAmountOut = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-  aminoType: "osmosis/gamm/exit-swap-extern-amount-out",
-  encode(message: MsgExitSwapExternAmountOut, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    if (message.tokenOut !== undefined) {
-      Coin.encode(message.tokenOut, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.shareInMaxAmount !== "") {
-      writer.uint32(34).string(message.shareInMaxAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitSwapExternAmountOut {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitSwapExternAmountOut();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        case 3:
-          message.tokenOut = Coin.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.shareInMaxAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitSwapExternAmountOut {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      tokenOut: isSet(object.tokenOut) ? Coin.fromJSON(object.tokenOut) : undefined,
-      shareInMaxAmount: isSet(object.shareInMaxAmount) ? String(object.shareInMaxAmount) : ""
-    };
-  },
-  toJSON(message: MsgExitSwapExternAmountOut): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.tokenOut !== undefined && (obj.tokenOut = message.tokenOut ? Coin.toJSON(message.tokenOut) : undefined);
-    message.shareInMaxAmount !== undefined && (obj.shareInMaxAmount = message.shareInMaxAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitSwapExternAmountOut>): MsgExitSwapExternAmountOut {
-    const message = createBaseMsgExitSwapExternAmountOut();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.tokenOut = object.tokenOut !== undefined && object.tokenOut !== null ? Coin.fromPartial(object.tokenOut) : undefined;
-    message.shareInMaxAmount = object.shareInMaxAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExitSwapExternAmountOutSDKType): MsgExitSwapExternAmountOut {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id,
-      tokenOut: object.token_out ? Coin.fromSDK(object.token_out) : undefined,
-      shareInMaxAmount: object?.share_in_max_amount
-    };
-  },
-  toSDK(message: MsgExitSwapExternAmountOut): MsgExitSwapExternAmountOutSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    message.tokenOut !== undefined && (obj.token_out = message.tokenOut ? Coin.toSDK(message.tokenOut) : undefined);
-    obj.share_in_max_amount = message.shareInMaxAmount;
-    return obj;
-  },
-  fromAmino(object: MsgExitSwapExternAmountOutAmino): MsgExitSwapExternAmountOut {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id),
-      tokenOut: object?.token_out ? Coin.fromAmino(object.token_out) : undefined,
-      shareInMaxAmount: object.share_in_max_amount
-    };
-  },
-  toAmino(message: MsgExitSwapExternAmountOut): MsgExitSwapExternAmountOutAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.token_out = message.tokenOut ? Coin.toAmino(message.tokenOut) : undefined;
-    obj.share_in_max_amount = message.shareInMaxAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitSwapExternAmountOutAminoMsg): MsgExitSwapExternAmountOut {
-    return MsgExitSwapExternAmountOut.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitSwapExternAmountOut): MsgExitSwapExternAmountOutAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-swap-extern-amount-out",
-      value: MsgExitSwapExternAmountOut.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitSwapExternAmountOutProtoMsg): MsgExitSwapExternAmountOut {
-    return MsgExitSwapExternAmountOut.decode(message.value);
-  },
-  toProto(message: MsgExitSwapExternAmountOut): Uint8Array {
-    return MsgExitSwapExternAmountOut.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitSwapExternAmountOut): MsgExitSwapExternAmountOutProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOut",
-      value: MsgExitSwapExternAmountOut.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExitSwapExternAmountOutResponse(): MsgExitSwapExternAmountOutResponse {
-  return {
-    shareInAmount: ""
-  };
-}
-export const MsgExitSwapExternAmountOutResponse = {
-  typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOutResponse",
-  aminoType: "osmosis/gamm/exit-swap-extern-amount-out-response",
-  encode(message: MsgExitSwapExternAmountOutResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.shareInAmount !== "") {
-      writer.uint32(10).string(message.shareInAmount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExitSwapExternAmountOutResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExitSwapExternAmountOutResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.shareInAmount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExitSwapExternAmountOutResponse {
-    return {
-      shareInAmount: isSet(object.shareInAmount) ? String(object.shareInAmount) : ""
-    };
-  },
-  toJSON(message: MsgExitSwapExternAmountOutResponse): unknown {
-    const obj: any = {};
-    message.shareInAmount !== undefined && (obj.shareInAmount = message.shareInAmount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExitSwapExternAmountOutResponse>): MsgExitSwapExternAmountOutResponse {
-    const message = createBaseMsgExitSwapExternAmountOutResponse();
-    message.shareInAmount = object.shareInAmount ?? "";
-    return message;
-  },
-  fromSDK(object: MsgExitSwapExternAmountOutResponseSDKType): MsgExitSwapExternAmountOutResponse {
-    return {
-      shareInAmount: object?.share_in_amount
-    };
-  },
-  toSDK(message: MsgExitSwapExternAmountOutResponse): MsgExitSwapExternAmountOutResponseSDKType {
-    const obj: any = {};
-    obj.share_in_amount = message.shareInAmount;
-    return obj;
-  },
-  fromAmino(object: MsgExitSwapExternAmountOutResponseAmino): MsgExitSwapExternAmountOutResponse {
-    return {
-      shareInAmount: object.share_in_amount
-    };
-  },
-  toAmino(message: MsgExitSwapExternAmountOutResponse): MsgExitSwapExternAmountOutResponseAmino {
-    const obj: any = {};
-    obj.share_in_amount = message.shareInAmount;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExitSwapExternAmountOutResponseAminoMsg): MsgExitSwapExternAmountOutResponse {
-    return MsgExitSwapExternAmountOutResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExitSwapExternAmountOutResponse): MsgExitSwapExternAmountOutResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/exit-swap-extern-amount-out-response",
-      value: MsgExitSwapExternAmountOutResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExitSwapExternAmountOutResponseProtoMsg): MsgExitSwapExternAmountOutResponse {
-    return MsgExitSwapExternAmountOutResponse.decode(message.value);
-  },
-  toProto(message: MsgExitSwapExternAmountOutResponse): Uint8Array {
-    return MsgExitSwapExternAmountOutResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExitSwapExternAmountOutResponse): MsgExitSwapExternAmountOutResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v1beta1.MsgExitSwapExternAmountOutResponse",
-      value: MsgExitSwapExternAmountOutResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v2/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/gamm/v2/query.rpc.Query.ts
deleted file mode 100644
index bfd99984..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v2/query.rpc.Query.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QuerySpotPriceRequest, QuerySpotPriceResponse } from "./query";
-export interface Query {
-  /**
-   * SpotPrice defines a gRPC query handler that returns the spot price given
-   * a base denomination and a quote denomination.
-   */
-  spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.spotPrice = this.spotPrice.bind(this);
-  }
-  spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse> {
-    const data = QuerySpotPriceRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.gamm.v2.Query", "SpotPrice", data);
-    return promise.then(data => QuerySpotPriceResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    spotPrice(request: QuerySpotPriceRequest): Promise<QuerySpotPriceResponse> {
-      return queryService.spotPrice(request);
-    }
-  };
-};
-export interface UseSpotPriceQuery<TData> extends ReactQueryParams<QuerySpotPriceResponse, TData> {
-  request: QuerySpotPriceRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useSpotPrice = <TData = QuerySpotPriceResponse,>({
-    request,
-    options
-  }: UseSpotPriceQuery<TData>) => {
-    return useQuery<QuerySpotPriceResponse, Error, TData>(["spotPriceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.spotPrice(request);
-    }, options);
-  };
-  return {
-    /**
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    useSpotPrice
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QuerySpotPriceStore {
-    store = new QueryStore<QuerySpotPriceRequest, QuerySpotPriceResponse>(queryService?.spotPrice);
-    spotPrice(request: QuerySpotPriceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * SpotPrice defines a gRPC query handler that returns the spot price given
-     * a base denomination and a quote denomination.
-     */
-    QuerySpotPriceStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/gamm/v2/query.ts b/examples/injective/src/codegen/osmosis/gamm/v2/query.ts
deleted file mode 100644
index e0ccadf4..00000000
--- a/examples/injective/src/codegen/osmosis/gamm/v2/query.ts
+++ /dev/null
@@ -1,272 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceRequest {
-  poolId: bigint;
-  baseAssetDenom: string;
-  quoteAssetDenom: string;
-}
-export interface QuerySpotPriceRequestProtoMsg {
-  typeUrl: "/osmosis.gamm.v2.QuerySpotPriceRequest";
-  value: Uint8Array;
-}
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceRequestAmino {
-  pool_id: string;
-  base_asset_denom: string;
-  quote_asset_denom: string;
-}
-export interface QuerySpotPriceRequestAminoMsg {
-  type: "osmosis/gamm/v2/query-spot-price-request";
-  value: QuerySpotPriceRequestAmino;
-}
-/**
- * QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceRequestSDKType {
-  pool_id: bigint;
-  base_asset_denom: string;
-  quote_asset_denom: string;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceResponse {
-  /** String of the Dec. Ex) 10.203uatom */
-  spotPrice: string;
-}
-export interface QuerySpotPriceResponseProtoMsg {
-  typeUrl: "/osmosis.gamm.v2.QuerySpotPriceResponse";
-  value: Uint8Array;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceResponseAmino {
-  /** String of the Dec. Ex) 10.203uatom */
-  spot_price: string;
-}
-export interface QuerySpotPriceResponseAminoMsg {
-  type: "osmosis/gamm/v2/query-spot-price-response";
-  value: QuerySpotPriceResponseAmino;
-}
-/**
- * QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
- * query.
- */
-export interface QuerySpotPriceResponseSDKType {
-  spot_price: string;
-}
-function createBaseQuerySpotPriceRequest(): QuerySpotPriceRequest {
-  return {
-    poolId: BigInt(0),
-    baseAssetDenom: "",
-    quoteAssetDenom: ""
-  };
-}
-export const QuerySpotPriceRequest = {
-  typeUrl: "/osmosis.gamm.v2.QuerySpotPriceRequest",
-  aminoType: "osmosis/gamm/v2/query-spot-price-request",
-  encode(message: QuerySpotPriceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.baseAssetDenom !== "") {
-      writer.uint32(18).string(message.baseAssetDenom);
-    }
-    if (message.quoteAssetDenom !== "") {
-      writer.uint32(26).string(message.quoteAssetDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpotPriceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpotPriceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.baseAssetDenom = reader.string();
-          break;
-        case 3:
-          message.quoteAssetDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpotPriceRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      baseAssetDenom: isSet(object.baseAssetDenom) ? String(object.baseAssetDenom) : "",
-      quoteAssetDenom: isSet(object.quoteAssetDenom) ? String(object.quoteAssetDenom) : ""
-    };
-  },
-  toJSON(message: QuerySpotPriceRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.baseAssetDenom !== undefined && (obj.baseAssetDenom = message.baseAssetDenom);
-    message.quoteAssetDenom !== undefined && (obj.quoteAssetDenom = message.quoteAssetDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpotPriceRequest>): QuerySpotPriceRequest {
-    const message = createBaseQuerySpotPriceRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.baseAssetDenom = object.baseAssetDenom ?? "";
-    message.quoteAssetDenom = object.quoteAssetDenom ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySpotPriceRequestSDKType): QuerySpotPriceRequest {
-    return {
-      poolId: object?.pool_id,
-      baseAssetDenom: object?.base_asset_denom,
-      quoteAssetDenom: object?.quote_asset_denom
-    };
-  },
-  toSDK(message: QuerySpotPriceRequest): QuerySpotPriceRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.base_asset_denom = message.baseAssetDenom;
-    obj.quote_asset_denom = message.quoteAssetDenom;
-    return obj;
-  },
-  fromAmino(object: QuerySpotPriceRequestAmino): QuerySpotPriceRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      baseAssetDenom: object.base_asset_denom,
-      quoteAssetDenom: object.quote_asset_denom
-    };
-  },
-  toAmino(message: QuerySpotPriceRequest): QuerySpotPriceRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.base_asset_denom = message.baseAssetDenom;
-    obj.quote_asset_denom = message.quoteAssetDenom;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpotPriceRequestAminoMsg): QuerySpotPriceRequest {
-    return QuerySpotPriceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpotPriceRequest): QuerySpotPriceRequestAminoMsg {
-    return {
-      type: "osmosis/gamm/v2/query-spot-price-request",
-      value: QuerySpotPriceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpotPriceRequestProtoMsg): QuerySpotPriceRequest {
-    return QuerySpotPriceRequest.decode(message.value);
-  },
-  toProto(message: QuerySpotPriceRequest): Uint8Array {
-    return QuerySpotPriceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpotPriceRequest): QuerySpotPriceRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v2.QuerySpotPriceRequest",
-      value: QuerySpotPriceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQuerySpotPriceResponse(): QuerySpotPriceResponse {
-  return {
-    spotPrice: ""
-  };
-}
-export const QuerySpotPriceResponse = {
-  typeUrl: "/osmosis.gamm.v2.QuerySpotPriceResponse",
-  aminoType: "osmosis/gamm/v2/query-spot-price-response",
-  encode(message: QuerySpotPriceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.spotPrice !== "") {
-      writer.uint32(10).string(message.spotPrice);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QuerySpotPriceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQuerySpotPriceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.spotPrice = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QuerySpotPriceResponse {
-    return {
-      spotPrice: isSet(object.spotPrice) ? String(object.spotPrice) : ""
-    };
-  },
-  toJSON(message: QuerySpotPriceResponse): unknown {
-    const obj: any = {};
-    message.spotPrice !== undefined && (obj.spotPrice = message.spotPrice);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QuerySpotPriceResponse>): QuerySpotPriceResponse {
-    const message = createBaseQuerySpotPriceResponse();
-    message.spotPrice = object.spotPrice ?? "";
-    return message;
-  },
-  fromSDK(object: QuerySpotPriceResponseSDKType): QuerySpotPriceResponse {
-    return {
-      spotPrice: object?.spot_price
-    };
-  },
-  toSDK(message: QuerySpotPriceResponse): QuerySpotPriceResponseSDKType {
-    const obj: any = {};
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAmino(object: QuerySpotPriceResponseAmino): QuerySpotPriceResponse {
-    return {
-      spotPrice: object.spot_price
-    };
-  },
-  toAmino(message: QuerySpotPriceResponse): QuerySpotPriceResponseAmino {
-    const obj: any = {};
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAminoMsg(object: QuerySpotPriceResponseAminoMsg): QuerySpotPriceResponse {
-    return QuerySpotPriceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QuerySpotPriceResponse): QuerySpotPriceResponseAminoMsg {
-    return {
-      type: "osmosis/gamm/v2/query-spot-price-response",
-      value: QuerySpotPriceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QuerySpotPriceResponseProtoMsg): QuerySpotPriceResponse {
-    return QuerySpotPriceResponse.decode(message.value);
-  },
-  toProto(message: QuerySpotPriceResponse): Uint8Array {
-    return QuerySpotPriceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QuerySpotPriceResponse): QuerySpotPriceResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.gamm.v2.QuerySpotPriceResponse",
-      value: QuerySpotPriceResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/params.ts b/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/params.ts
deleted file mode 100644
index e8843840..00000000
--- a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/params.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Params defines the parameters for the ibc-rate-limit module. */
-export interface Params {
-  contractAddress: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the parameters for the ibc-rate-limit module. */
-export interface ParamsAmino {
-  contract_address: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/ibcratelimit/params";
-  value: ParamsAmino;
-}
-/** Params defines the parameters for the ibc-rate-limit module. */
-export interface ParamsSDKType {
-  contract_address: string;
-}
-function createBaseParams(): Params {
-  return {
-    contractAddress: ""
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.Params",
-  aminoType: "osmosis/ibcratelimit/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.contractAddress !== "") {
-      writer.uint32(10).string(message.contractAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.contractAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      contractAddress: isSet(object.contractAddress) ? String(object.contractAddress) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.contractAddress !== undefined && (obj.contractAddress = message.contractAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.contractAddress = object.contractAddress ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      contractAddress: object?.contract_address
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.contract_address = message.contractAddress;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      contractAddress: object.contract_address
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.contract_address = message.contractAddress;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/ibcratelimit/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.ibcratelimit.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 6177611a..00000000
--- a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /**
-   * Params defines a gRPC query method that returns the ibc-rate-limit module's
-   * parameters.
-   */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.ibcratelimit.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  return {
-    /**
-     * Params defines a gRPC query method that returns the ibc-rate-limit module's
-     * parameters.
-     */
-    useParams
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * Params defines a gRPC query method that returns the ibc-rate-limit module's
-     * parameters.
-     */
-    QueryParamsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.ts
deleted file mode 100644
index badc5854..00000000
--- a/examples/injective/src/codegen/osmosis/ibc-rate-limit/v1beta1/query.ts
+++ /dev/null
@@ -1,197 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/ibcratelimit/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/ibcratelimit/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsRequest",
-  aminoType: "osmosis/ibcratelimit/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/ibcratelimit/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsResponse",
-  aminoType: "osmosis/ibcratelimit/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/ibcratelimit/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.ibcratelimit.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/gauge.ts b/examples/injective/src/codegen/osmosis/incentives/gauge.ts
deleted file mode 100644
index d4c36ce4..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/gauge.ts
+++ /dev/null
@@ -1,440 +0,0 @@
-import { QueryCondition, QueryConditionAmino, QueryConditionSDKType } from "../lockup/lock";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../helpers";
-/**
- * Gauge is an object that stores and distributes yields to recipients who
- * satisfy certain conditions. Currently gauges support conditions around the
- * duration for which a given denom is locked.
- */
-export interface Gauge {
-  /** id is the unique ID of a Gauge */
-  id: bigint;
-  /**
-   * is_perpetual is a flag to show if it's a perpetual or non-perpetual gauge
-   * Non-perpetual gauges distribute their tokens equally per epoch while the
-   * gauge is in the active period. Perpetual gauges distribute all their tokens
-   * at a single time and only distribute their tokens again once the gauge is
-   * refilled, Intended for use with incentives that get refilled daily.
-   */
-  isPerpetual: boolean;
-  /**
-   * distribute_to is where the gauge rewards are distributed to.
-   * This is queried via lock duration or by timestamp
-   */
-  distributeTo: QueryCondition | undefined;
-  /**
-   * coins is the total amount of coins that have been in the gauge
-   * Can distribute multiple coin denoms
-   */
-  coins: Coin[];
-  /** start_time is the distribution start time */
-  startTime: Date | undefined;
-  /**
-   * num_epochs_paid_over is the number of total epochs distribution will be
-   * completed over
-   */
-  numEpochsPaidOver: bigint;
-  /**
-   * filled_epochs is the number of epochs distribution has been completed on
-   * already
-   */
-  filledEpochs: bigint;
-  /** distributed_coins are coins that have been distributed already */
-  distributedCoins: Coin[];
-}
-export interface GaugeProtoMsg {
-  typeUrl: "/osmosis.incentives.Gauge";
-  value: Uint8Array;
-}
-/**
- * Gauge is an object that stores and distributes yields to recipients who
- * satisfy certain conditions. Currently gauges support conditions around the
- * duration for which a given denom is locked.
- */
-export interface GaugeAmino {
-  /** id is the unique ID of a Gauge */
-  id: string;
-  /**
-   * is_perpetual is a flag to show if it's a perpetual or non-perpetual gauge
-   * Non-perpetual gauges distribute their tokens equally per epoch while the
-   * gauge is in the active period. Perpetual gauges distribute all their tokens
-   * at a single time and only distribute their tokens again once the gauge is
-   * refilled, Intended for use with incentives that get refilled daily.
-   */
-  is_perpetual: boolean;
-  /**
-   * distribute_to is where the gauge rewards are distributed to.
-   * This is queried via lock duration or by timestamp
-   */
-  distribute_to?: QueryConditionAmino | undefined;
-  /**
-   * coins is the total amount of coins that have been in the gauge
-   * Can distribute multiple coin denoms
-   */
-  coins: CoinAmino[];
-  /** start_time is the distribution start time */
-  start_time?: Date | undefined;
-  /**
-   * num_epochs_paid_over is the number of total epochs distribution will be
-   * completed over
-   */
-  num_epochs_paid_over: string;
-  /**
-   * filled_epochs is the number of epochs distribution has been completed on
-   * already
-   */
-  filled_epochs: string;
-  /** distributed_coins are coins that have been distributed already */
-  distributed_coins: CoinAmino[];
-}
-export interface GaugeAminoMsg {
-  type: "osmosis/incentives/gauge";
-  value: GaugeAmino;
-}
-/**
- * Gauge is an object that stores and distributes yields to recipients who
- * satisfy certain conditions. Currently gauges support conditions around the
- * duration for which a given denom is locked.
- */
-export interface GaugeSDKType {
-  id: bigint;
-  is_perpetual: boolean;
-  distribute_to: QueryConditionSDKType | undefined;
-  coins: CoinSDKType[];
-  start_time: Date | undefined;
-  num_epochs_paid_over: bigint;
-  filled_epochs: bigint;
-  distributed_coins: CoinSDKType[];
-}
-export interface LockableDurationsInfo {
-  /** List of incentivised durations that gauges will pay out to */
-  lockableDurations: Duration[];
-}
-export interface LockableDurationsInfoProtoMsg {
-  typeUrl: "/osmosis.incentives.LockableDurationsInfo";
-  value: Uint8Array;
-}
-export interface LockableDurationsInfoAmino {
-  /** List of incentivised durations that gauges will pay out to */
-  lockable_durations: DurationAmino[];
-}
-export interface LockableDurationsInfoAminoMsg {
-  type: "osmosis/incentives/lockable-durations-info";
-  value: LockableDurationsInfoAmino;
-}
-export interface LockableDurationsInfoSDKType {
-  lockable_durations: DurationSDKType[];
-}
-function createBaseGauge(): Gauge {
-  return {
-    id: BigInt(0),
-    isPerpetual: false,
-    distributeTo: QueryCondition.fromPartial({}),
-    coins: [],
-    startTime: new Date(),
-    numEpochsPaidOver: BigInt(0),
-    filledEpochs: BigInt(0),
-    distributedCoins: []
-  };
-}
-export const Gauge = {
-  typeUrl: "/osmosis.incentives.Gauge",
-  aminoType: "osmosis/incentives/gauge",
-  encode(message: Gauge, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== BigInt(0)) {
-      writer.uint32(8).uint64(message.id);
-    }
-    if (message.isPerpetual === true) {
-      writer.uint32(16).bool(message.isPerpetual);
-    }
-    if (message.distributeTo !== undefined) {
-      QueryCondition.encode(message.distributeTo, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.numEpochsPaidOver !== BigInt(0)) {
-      writer.uint32(48).uint64(message.numEpochsPaidOver);
-    }
-    if (message.filledEpochs !== BigInt(0)) {
-      writer.uint32(56).uint64(message.filledEpochs);
-    }
-    for (const v of message.distributedCoins) {
-      Coin.encode(v!, writer.uint32(66).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Gauge {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGauge();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint64();
-          break;
-        case 2:
-          message.isPerpetual = reader.bool();
-          break;
-        case 3:
-          message.distributeTo = QueryCondition.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.numEpochsPaidOver = reader.uint64();
-          break;
-        case 7:
-          message.filledEpochs = reader.uint64();
-          break;
-        case 8:
-          message.distributedCoins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Gauge {
-    return {
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0),
-      isPerpetual: isSet(object.isPerpetual) ? Boolean(object.isPerpetual) : false,
-      distributeTo: isSet(object.distributeTo) ? QueryCondition.fromJSON(object.distributeTo) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : [],
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined,
-      numEpochsPaidOver: isSet(object.numEpochsPaidOver) ? BigInt(object.numEpochsPaidOver.toString()) : BigInt(0),
-      filledEpochs: isSet(object.filledEpochs) ? BigInt(object.filledEpochs.toString()) : BigInt(0),
-      distributedCoins: Array.isArray(object?.distributedCoins) ? object.distributedCoins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Gauge): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    message.isPerpetual !== undefined && (obj.isPerpetual = message.isPerpetual);
-    message.distributeTo !== undefined && (obj.distributeTo = message.distributeTo ? QueryCondition.toJSON(message.distributeTo) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    message.numEpochsPaidOver !== undefined && (obj.numEpochsPaidOver = (message.numEpochsPaidOver || BigInt(0)).toString());
-    message.filledEpochs !== undefined && (obj.filledEpochs = (message.filledEpochs || BigInt(0)).toString());
-    if (message.distributedCoins) {
-      obj.distributedCoins = message.distributedCoins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.distributedCoins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Gauge>): Gauge {
-    const message = createBaseGauge();
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    message.isPerpetual = object.isPerpetual ?? false;
-    message.distributeTo = object.distributeTo !== undefined && object.distributeTo !== null ? QueryCondition.fromPartial(object.distributeTo) : undefined;
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    message.startTime = object.startTime ?? undefined;
-    message.numEpochsPaidOver = object.numEpochsPaidOver !== undefined && object.numEpochsPaidOver !== null ? BigInt(object.numEpochsPaidOver.toString()) : BigInt(0);
-    message.filledEpochs = object.filledEpochs !== undefined && object.filledEpochs !== null ? BigInt(object.filledEpochs.toString()) : BigInt(0);
-    message.distributedCoins = object.distributedCoins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GaugeSDKType): Gauge {
-    return {
-      id: object?.id,
-      isPerpetual: object?.is_perpetual,
-      distributeTo: object.distribute_to ? QueryCondition.fromSDK(object.distribute_to) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : [],
-      startTime: object.start_time ?? undefined,
-      numEpochsPaidOver: object?.num_epochs_paid_over,
-      filledEpochs: object?.filled_epochs,
-      distributedCoins: Array.isArray(object?.distributed_coins) ? object.distributed_coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Gauge): GaugeSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    obj.is_perpetual = message.isPerpetual;
-    message.distributeTo !== undefined && (obj.distribute_to = message.distributeTo ? QueryCondition.toSDK(message.distributeTo) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    obj.num_epochs_paid_over = message.numEpochsPaidOver;
-    obj.filled_epochs = message.filledEpochs;
-    if (message.distributedCoins) {
-      obj.distributed_coins = message.distributedCoins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.distributed_coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GaugeAmino): Gauge {
-    return {
-      id: BigInt(object.id),
-      isPerpetual: object.is_perpetual,
-      distributeTo: object?.distribute_to ? QueryCondition.fromAmino(object.distribute_to) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : [],
-      startTime: object.start_time,
-      numEpochsPaidOver: BigInt(object.num_epochs_paid_over),
-      filledEpochs: BigInt(object.filled_epochs),
-      distributedCoins: Array.isArray(object?.distributed_coins) ? object.distributed_coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Gauge): GaugeAmino {
-    const obj: any = {};
-    obj.id = message.id ? message.id.toString() : undefined;
-    obj.is_perpetual = message.isPerpetual;
-    obj.distribute_to = message.distributeTo ? QueryCondition.toAmino(message.distributeTo) : undefined;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    obj.start_time = message.startTime;
-    obj.num_epochs_paid_over = message.numEpochsPaidOver ? message.numEpochsPaidOver.toString() : undefined;
-    obj.filled_epochs = message.filledEpochs ? message.filledEpochs.toString() : undefined;
-    if (message.distributedCoins) {
-      obj.distributed_coins = message.distributedCoins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.distributed_coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GaugeAminoMsg): Gauge {
-    return Gauge.fromAmino(object.value);
-  },
-  toAminoMsg(message: Gauge): GaugeAminoMsg {
-    return {
-      type: "osmosis/incentives/gauge",
-      value: Gauge.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GaugeProtoMsg): Gauge {
-    return Gauge.decode(message.value);
-  },
-  toProto(message: Gauge): Uint8Array {
-    return Gauge.encode(message).finish();
-  },
-  toProtoMsg(message: Gauge): GaugeProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.Gauge",
-      value: Gauge.encode(message).finish()
-    };
-  }
-};
-function createBaseLockableDurationsInfo(): LockableDurationsInfo {
-  return {
-    lockableDurations: []
-  };
-}
-export const LockableDurationsInfo = {
-  typeUrl: "/osmosis.incentives.LockableDurationsInfo",
-  aminoType: "osmosis/incentives/lockable-durations-info",
-  encode(message: LockableDurationsInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockableDurationsInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockableDurationsInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: LockableDurationsInfo): unknown {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockableDurationsInfo>): LockableDurationsInfo {
-    const message = createBaseLockableDurationsInfo();
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: LockableDurationsInfoSDKType): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: LockableDurationsInfo): LockableDurationsInfoSDKType {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAmino(object: LockableDurationsInfoAmino): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: LockableDurationsInfo): LockableDurationsInfoAmino {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: LockableDurationsInfoAminoMsg): LockableDurationsInfo {
-    return LockableDurationsInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockableDurationsInfo): LockableDurationsInfoAminoMsg {
-    return {
-      type: "osmosis/incentives/lockable-durations-info",
-      value: LockableDurationsInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockableDurationsInfoProtoMsg): LockableDurationsInfo {
-    return LockableDurationsInfo.decode(message.value);
-  },
-  toProto(message: LockableDurationsInfo): Uint8Array {
-    return LockableDurationsInfo.encode(message).finish();
-  },
-  toProtoMsg(message: LockableDurationsInfo): LockableDurationsInfoProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.LockableDurationsInfo",
-      value: LockableDurationsInfo.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/genesis.ts b/examples/injective/src/codegen/osmosis/incentives/genesis.ts
deleted file mode 100644
index bb888bda..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/genesis.ts
+++ /dev/null
@@ -1,217 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { Gauge, GaugeAmino, GaugeSDKType } from "./gauge";
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/**
- * GenesisState defines the incentives module's various parameters when first
- * initialized
- */
-export interface GenesisState {
-  /** params are all the parameters of the module */
-  params: Params | undefined;
-  /** gauges are all gauges that should exist at genesis */
-  gauges: Gauge[];
-  /**
-   * lockable_durations are all lockup durations that gauges can be locked for
-   * in order to recieve incentives
-   */
-  lockableDurations: Duration[];
-  /**
-   * last_gauge_id is what the gauge number will increment from when creating
-   * the next gauge after genesis
-   */
-  lastGaugeId: bigint;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.incentives.GenesisState";
-  value: Uint8Array;
-}
-/**
- * GenesisState defines the incentives module's various parameters when first
- * initialized
- */
-export interface GenesisStateAmino {
-  /** params are all the parameters of the module */
-  params?: ParamsAmino | undefined;
-  /** gauges are all gauges that should exist at genesis */
-  gauges: GaugeAmino[];
-  /**
-   * lockable_durations are all lockup durations that gauges can be locked for
-   * in order to recieve incentives
-   */
-  lockable_durations: DurationAmino[];
-  /**
-   * last_gauge_id is what the gauge number will increment from when creating
-   * the next gauge after genesis
-   */
-  last_gauge_id: string;
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/incentives/genesis-state";
-  value: GenesisStateAmino;
-}
-/**
- * GenesisState defines the incentives module's various parameters when first
- * initialized
- */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  gauges: GaugeSDKType[];
-  lockable_durations: DurationSDKType[];
-  last_gauge_id: bigint;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    gauges: [],
-    lockableDurations: [],
-    lastGaugeId: BigInt(0)
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.incentives.GenesisState",
-  aminoType: "osmosis/incentives/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.gauges) {
-      Gauge.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.lastGaugeId !== BigInt(0)) {
-      writer.uint32(32).uint64(message.lastGaugeId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.gauges.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.lastGaugeId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      gauges: Array.isArray(object?.gauges) ? object.gauges.map((e: any) => Gauge.fromJSON(e)) : [],
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : [],
-      lastGaugeId: isSet(object.lastGaugeId) ? BigInt(object.lastGaugeId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.gauges) {
-      obj.gauges = message.gauges.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.gauges = [];
-    }
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    message.lastGaugeId !== undefined && (obj.lastGaugeId = (message.lastGaugeId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.gauges = object.gauges?.map(e => Gauge.fromPartial(e)) || [];
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    message.lastGaugeId = object.lastGaugeId !== undefined && object.lastGaugeId !== null ? BigInt(object.lastGaugeId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      gauges: Array.isArray(object?.gauges) ? object.gauges.map((e: any) => Gauge.fromSDK(e)) : [],
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : [],
-      lastGaugeId: object?.last_gauge_id
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.gauges) {
-      obj.gauges = message.gauges.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.gauges = [];
-    }
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    obj.last_gauge_id = message.lastGaugeId;
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      gauges: Array.isArray(object?.gauges) ? object.gauges.map((e: any) => Gauge.fromAmino(e)) : [],
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : [],
-      lastGaugeId: BigInt(object.last_gauge_id)
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.gauges) {
-      obj.gauges = message.gauges.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.gauges = [];
-    }
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    obj.last_gauge_id = message.lastGaugeId ? message.lastGaugeId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/incentives/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/params.ts b/examples/injective/src/codegen/osmosis/incentives/params.ts
deleted file mode 100644
index 1164a65f..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/params.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/** Params holds parameters for the incentives module */
-export interface Params {
-  /**
-   * distr_epoch_identifier is what epoch type distribution will be triggered by
-   * (day, week, etc.)
-   */
-  distrEpochIdentifier: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.incentives.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the incentives module */
-export interface ParamsAmino {
-  /**
-   * distr_epoch_identifier is what epoch type distribution will be triggered by
-   * (day, week, etc.)
-   */
-  distr_epoch_identifier: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/incentives/params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the incentives module */
-export interface ParamsSDKType {
-  distr_epoch_identifier: string;
-}
-function createBaseParams(): Params {
-  return {
-    distrEpochIdentifier: ""
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.incentives.Params",
-  aminoType: "osmosis/incentives/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.distrEpochIdentifier !== "") {
-      writer.uint32(10).string(message.distrEpochIdentifier);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.distrEpochIdentifier = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      distrEpochIdentifier: isSet(object.distrEpochIdentifier) ? String(object.distrEpochIdentifier) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.distrEpochIdentifier !== undefined && (obj.distrEpochIdentifier = message.distrEpochIdentifier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.distrEpochIdentifier = object.distrEpochIdentifier ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      distrEpochIdentifier: object?.distr_epoch_identifier
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.distr_epoch_identifier = message.distrEpochIdentifier;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      distrEpochIdentifier: object.distr_epoch_identifier
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.distr_epoch_identifier = message.distrEpochIdentifier;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/incentives/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/incentives/query.rpc.Query.ts
deleted file mode 100644
index 19617a7e..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/query.rpc.Query.ts
+++ /dev/null
@@ -1,363 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../mobx";
-import { ModuleToDistributeCoinsRequest, ModuleToDistributeCoinsResponse, GaugeByIDRequest, GaugeByIDResponse, GaugesRequest, GaugesResponse, ActiveGaugesRequest, ActiveGaugesResponse, ActiveGaugesPerDenomRequest, ActiveGaugesPerDenomResponse, UpcomingGaugesRequest, UpcomingGaugesResponse, UpcomingGaugesPerDenomRequest, UpcomingGaugesPerDenomResponse, RewardsEstRequest, RewardsEstResponse, QueryLockableDurationsRequest, QueryLockableDurationsResponse } from "./query";
-/** Query defines the gRPC querier service */
-export interface Query {
-  /** ModuleToDistributeCoins returns coins that are going to be distributed */
-  moduleToDistributeCoins(request?: ModuleToDistributeCoinsRequest): Promise<ModuleToDistributeCoinsResponse>;
-  /** GaugeByID returns gauges by their respective ID */
-  gaugeByID(request: GaugeByIDRequest): Promise<GaugeByIDResponse>;
-  /** Gauges returns both upcoming and active gauges */
-  gauges(request?: GaugesRequest): Promise<GaugesResponse>;
-  /** ActiveGauges returns active gauges */
-  activeGauges(request?: ActiveGaugesRequest): Promise<ActiveGaugesResponse>;
-  /** ActiveGaugesPerDenom returns active gauges by denom */
-  activeGaugesPerDenom(request: ActiveGaugesPerDenomRequest): Promise<ActiveGaugesPerDenomResponse>;
-  /** Returns scheduled gauges that have not yet occured */
-  upcomingGauges(request?: UpcomingGaugesRequest): Promise<UpcomingGaugesResponse>;
-  /**
-   * UpcomingGaugesPerDenom returns scheduled gauges that have not yet occured
-   * by denom
-   */
-  upcomingGaugesPerDenom(request: UpcomingGaugesPerDenomRequest): Promise<UpcomingGaugesPerDenomResponse>;
-  /**
-   * RewardsEst returns an estimate of the rewards from now until a specified
-   * time in the future The querier either provides an address or a set of locks
-   * for which they want to find the associated rewards
-   */
-  rewardsEst(request: RewardsEstRequest): Promise<RewardsEstResponse>;
-  /**
-   * LockableDurations returns lockable durations that are valid to distribute
-   * incentives for
-   */
-  lockableDurations(request?: QueryLockableDurationsRequest): Promise<QueryLockableDurationsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.moduleToDistributeCoins = this.moduleToDistributeCoins.bind(this);
-    this.gaugeByID = this.gaugeByID.bind(this);
-    this.gauges = this.gauges.bind(this);
-    this.activeGauges = this.activeGauges.bind(this);
-    this.activeGaugesPerDenom = this.activeGaugesPerDenom.bind(this);
-    this.upcomingGauges = this.upcomingGauges.bind(this);
-    this.upcomingGaugesPerDenom = this.upcomingGaugesPerDenom.bind(this);
-    this.rewardsEst = this.rewardsEst.bind(this);
-    this.lockableDurations = this.lockableDurations.bind(this);
-  }
-  moduleToDistributeCoins(request: ModuleToDistributeCoinsRequest = {}): Promise<ModuleToDistributeCoinsResponse> {
-    const data = ModuleToDistributeCoinsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "ModuleToDistributeCoins", data);
-    return promise.then(data => ModuleToDistributeCoinsResponse.decode(new BinaryReader(data)));
-  }
-  gaugeByID(request: GaugeByIDRequest): Promise<GaugeByIDResponse> {
-    const data = GaugeByIDRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "GaugeByID", data);
-    return promise.then(data => GaugeByIDResponse.decode(new BinaryReader(data)));
-  }
-  gauges(request: GaugesRequest = {
-    pagination: undefined
-  }): Promise<GaugesResponse> {
-    const data = GaugesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "Gauges", data);
-    return promise.then(data => GaugesResponse.decode(new BinaryReader(data)));
-  }
-  activeGauges(request: ActiveGaugesRequest = {
-    pagination: undefined
-  }): Promise<ActiveGaugesResponse> {
-    const data = ActiveGaugesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "ActiveGauges", data);
-    return promise.then(data => ActiveGaugesResponse.decode(new BinaryReader(data)));
-  }
-  activeGaugesPerDenom(request: ActiveGaugesPerDenomRequest): Promise<ActiveGaugesPerDenomResponse> {
-    const data = ActiveGaugesPerDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "ActiveGaugesPerDenom", data);
-    return promise.then(data => ActiveGaugesPerDenomResponse.decode(new BinaryReader(data)));
-  }
-  upcomingGauges(request: UpcomingGaugesRequest = {
-    pagination: undefined
-  }): Promise<UpcomingGaugesResponse> {
-    const data = UpcomingGaugesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "UpcomingGauges", data);
-    return promise.then(data => UpcomingGaugesResponse.decode(new BinaryReader(data)));
-  }
-  upcomingGaugesPerDenom(request: UpcomingGaugesPerDenomRequest): Promise<UpcomingGaugesPerDenomResponse> {
-    const data = UpcomingGaugesPerDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "UpcomingGaugesPerDenom", data);
-    return promise.then(data => UpcomingGaugesPerDenomResponse.decode(new BinaryReader(data)));
-  }
-  rewardsEst(request: RewardsEstRequest): Promise<RewardsEstResponse> {
-    const data = RewardsEstRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "RewardsEst", data);
-    return promise.then(data => RewardsEstResponse.decode(new BinaryReader(data)));
-  }
-  lockableDurations(request: QueryLockableDurationsRequest = {}): Promise<QueryLockableDurationsResponse> {
-    const data = QueryLockableDurationsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Query", "LockableDurations", data);
-    return promise.then(data => QueryLockableDurationsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    moduleToDistributeCoins(request?: ModuleToDistributeCoinsRequest): Promise<ModuleToDistributeCoinsResponse> {
-      return queryService.moduleToDistributeCoins(request);
-    },
-    gaugeByID(request: GaugeByIDRequest): Promise<GaugeByIDResponse> {
-      return queryService.gaugeByID(request);
-    },
-    gauges(request?: GaugesRequest): Promise<GaugesResponse> {
-      return queryService.gauges(request);
-    },
-    activeGauges(request?: ActiveGaugesRequest): Promise<ActiveGaugesResponse> {
-      return queryService.activeGauges(request);
-    },
-    activeGaugesPerDenom(request: ActiveGaugesPerDenomRequest): Promise<ActiveGaugesPerDenomResponse> {
-      return queryService.activeGaugesPerDenom(request);
-    },
-    upcomingGauges(request?: UpcomingGaugesRequest): Promise<UpcomingGaugesResponse> {
-      return queryService.upcomingGauges(request);
-    },
-    upcomingGaugesPerDenom(request: UpcomingGaugesPerDenomRequest): Promise<UpcomingGaugesPerDenomResponse> {
-      return queryService.upcomingGaugesPerDenom(request);
-    },
-    rewardsEst(request: RewardsEstRequest): Promise<RewardsEstResponse> {
-      return queryService.rewardsEst(request);
-    },
-    lockableDurations(request?: QueryLockableDurationsRequest): Promise<QueryLockableDurationsResponse> {
-      return queryService.lockableDurations(request);
-    }
-  };
-};
-export interface UseModuleToDistributeCoinsQuery<TData> extends ReactQueryParams<ModuleToDistributeCoinsResponse, TData> {
-  request?: ModuleToDistributeCoinsRequest;
-}
-export interface UseGaugeByIDQuery<TData> extends ReactQueryParams<GaugeByIDResponse, TData> {
-  request: GaugeByIDRequest;
-}
-export interface UseGaugesQuery<TData> extends ReactQueryParams<GaugesResponse, TData> {
-  request?: GaugesRequest;
-}
-export interface UseActiveGaugesQuery<TData> extends ReactQueryParams<ActiveGaugesResponse, TData> {
-  request?: ActiveGaugesRequest;
-}
-export interface UseActiveGaugesPerDenomQuery<TData> extends ReactQueryParams<ActiveGaugesPerDenomResponse, TData> {
-  request: ActiveGaugesPerDenomRequest;
-}
-export interface UseUpcomingGaugesQuery<TData> extends ReactQueryParams<UpcomingGaugesResponse, TData> {
-  request?: UpcomingGaugesRequest;
-}
-export interface UseUpcomingGaugesPerDenomQuery<TData> extends ReactQueryParams<UpcomingGaugesPerDenomResponse, TData> {
-  request: UpcomingGaugesPerDenomRequest;
-}
-export interface UseRewardsEstQuery<TData> extends ReactQueryParams<RewardsEstResponse, TData> {
-  request: RewardsEstRequest;
-}
-export interface UseLockableDurationsQuery<TData> extends ReactQueryParams<QueryLockableDurationsResponse, TData> {
-  request?: QueryLockableDurationsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useModuleToDistributeCoins = <TData = ModuleToDistributeCoinsResponse,>({
-    request,
-    options
-  }: UseModuleToDistributeCoinsQuery<TData>) => {
-    return useQuery<ModuleToDistributeCoinsResponse, Error, TData>(["moduleToDistributeCoinsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleToDistributeCoins(request);
-    }, options);
-  };
-  const useGaugeByID = <TData = GaugeByIDResponse,>({
-    request,
-    options
-  }: UseGaugeByIDQuery<TData>) => {
-    return useQuery<GaugeByIDResponse, Error, TData>(["gaugeByIDQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.gaugeByID(request);
-    }, options);
-  };
-  const useGauges = <TData = GaugesResponse,>({
-    request,
-    options
-  }: UseGaugesQuery<TData>) => {
-    return useQuery<GaugesResponse, Error, TData>(["gaugesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.gauges(request);
-    }, options);
-  };
-  const useActiveGauges = <TData = ActiveGaugesResponse,>({
-    request,
-    options
-  }: UseActiveGaugesQuery<TData>) => {
-    return useQuery<ActiveGaugesResponse, Error, TData>(["activeGaugesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.activeGauges(request);
-    }, options);
-  };
-  const useActiveGaugesPerDenom = <TData = ActiveGaugesPerDenomResponse,>({
-    request,
-    options
-  }: UseActiveGaugesPerDenomQuery<TData>) => {
-    return useQuery<ActiveGaugesPerDenomResponse, Error, TData>(["activeGaugesPerDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.activeGaugesPerDenom(request);
-    }, options);
-  };
-  const useUpcomingGauges = <TData = UpcomingGaugesResponse,>({
-    request,
-    options
-  }: UseUpcomingGaugesQuery<TData>) => {
-    return useQuery<UpcomingGaugesResponse, Error, TData>(["upcomingGaugesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.upcomingGauges(request);
-    }, options);
-  };
-  const useUpcomingGaugesPerDenom = <TData = UpcomingGaugesPerDenomResponse,>({
-    request,
-    options
-  }: UseUpcomingGaugesPerDenomQuery<TData>) => {
-    return useQuery<UpcomingGaugesPerDenomResponse, Error, TData>(["upcomingGaugesPerDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.upcomingGaugesPerDenom(request);
-    }, options);
-  };
-  const useRewardsEst = <TData = RewardsEstResponse,>({
-    request,
-    options
-  }: UseRewardsEstQuery<TData>) => {
-    return useQuery<RewardsEstResponse, Error, TData>(["rewardsEstQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.rewardsEst(request);
-    }, options);
-  };
-  const useLockableDurations = <TData = QueryLockableDurationsResponse,>({
-    request,
-    options
-  }: UseLockableDurationsQuery<TData>) => {
-    return useQuery<QueryLockableDurationsResponse, Error, TData>(["lockableDurationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.lockableDurations(request);
-    }, options);
-  };
-  return {
-    /** ModuleToDistributeCoins returns coins that are going to be distributed */useModuleToDistributeCoins,
-    /** GaugeByID returns gauges by their respective ID */useGaugeByID,
-    /** Gauges returns both upcoming and active gauges */useGauges,
-    /** ActiveGauges returns active gauges */useActiveGauges,
-    /** ActiveGaugesPerDenom returns active gauges by denom */useActiveGaugesPerDenom,
-    /** Returns scheduled gauges that have not yet occured */useUpcomingGauges,
-    /**
-     * UpcomingGaugesPerDenom returns scheduled gauges that have not yet occured
-     * by denom
-     */
-    useUpcomingGaugesPerDenom,
-    /**
-     * RewardsEst returns an estimate of the rewards from now until a specified
-     * time in the future The querier either provides an address or a set of locks
-     * for which they want to find the associated rewards
-     */
-    useRewardsEst,
-    /**
-     * LockableDurations returns lockable durations that are valid to distribute
-     * incentives for
-     */
-    useLockableDurations
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryModuleToDistributeCoinsStore {
-    store = new QueryStore<ModuleToDistributeCoinsRequest, ModuleToDistributeCoinsResponse>(queryService?.moduleToDistributeCoins);
-    moduleToDistributeCoins(request: ModuleToDistributeCoinsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGaugeByIDStore {
-    store = new QueryStore<GaugeByIDRequest, GaugeByIDResponse>(queryService?.gaugeByID);
-    gaugeByID(request: GaugeByIDRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryGaugesStore {
-    store = new QueryStore<GaugesRequest, GaugesResponse>(queryService?.gauges);
-    gauges(request: GaugesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryActiveGaugesStore {
-    store = new QueryStore<ActiveGaugesRequest, ActiveGaugesResponse>(queryService?.activeGauges);
-    activeGauges(request: ActiveGaugesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryActiveGaugesPerDenomStore {
-    store = new QueryStore<ActiveGaugesPerDenomRequest, ActiveGaugesPerDenomResponse>(queryService?.activeGaugesPerDenom);
-    activeGaugesPerDenom(request: ActiveGaugesPerDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUpcomingGaugesStore {
-    store = new QueryStore<UpcomingGaugesRequest, UpcomingGaugesResponse>(queryService?.upcomingGauges);
-    upcomingGauges(request: UpcomingGaugesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUpcomingGaugesPerDenomStore {
-    store = new QueryStore<UpcomingGaugesPerDenomRequest, UpcomingGaugesPerDenomResponse>(queryService?.upcomingGaugesPerDenom);
-    upcomingGaugesPerDenom(request: UpcomingGaugesPerDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryRewardsEstStore {
-    store = new QueryStore<RewardsEstRequest, RewardsEstResponse>(queryService?.rewardsEst);
-    rewardsEst(request: RewardsEstRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryLockableDurationsStore {
-    store = new QueryStore<QueryLockableDurationsRequest, QueryLockableDurationsResponse>(queryService?.lockableDurations);
-    lockableDurations(request: QueryLockableDurationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** ModuleToDistributeCoins returns coins that are going to be distributed */QueryModuleToDistributeCoinsStore,
-    /** GaugeByID returns gauges by their respective ID */QueryGaugeByIDStore,
-    /** Gauges returns both upcoming and active gauges */QueryGaugesStore,
-    /** ActiveGauges returns active gauges */QueryActiveGaugesStore,
-    /** ActiveGaugesPerDenom returns active gauges by denom */QueryActiveGaugesPerDenomStore,
-    /** Returns scheduled gauges that have not yet occured */QueryUpcomingGaugesStore,
-    /**
-     * UpcomingGaugesPerDenom returns scheduled gauges that have not yet occured
-     * by denom
-     */
-    QueryUpcomingGaugesPerDenomStore,
-    /**
-     * RewardsEst returns an estimate of the rewards from now until a specified
-     * time in the future The querier either provides an address or a set of locks
-     * for which they want to find the associated rewards
-     */
-    QueryRewardsEstStore,
-    /**
-     * LockableDurations returns lockable durations that are valid to distribute
-     * incentives for
-     */
-    QueryLockableDurationsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/query.ts b/examples/injective/src/codegen/osmosis/incentives/query.ts
deleted file mode 100644
index 65542b22..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/query.ts
+++ /dev/null
@@ -1,2180 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../cosmos/base/query/v1beta1/pagination";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { Gauge, GaugeAmino, GaugeSDKType } from "./gauge";
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial, isSet } from "../../helpers";
-export interface ModuleToDistributeCoinsRequest {}
-export interface ModuleToDistributeCoinsRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsRequest";
-  value: Uint8Array;
-}
-export interface ModuleToDistributeCoinsRequestAmino {}
-export interface ModuleToDistributeCoinsRequestAminoMsg {
-  type: "osmosis/incentives/module-to-distribute-coins-request";
-  value: ModuleToDistributeCoinsRequestAmino;
-}
-export interface ModuleToDistributeCoinsRequestSDKType {}
-export interface ModuleToDistributeCoinsResponse {
-  /** Coins that have yet to be distributed */
-  coins: Coin[];
-}
-export interface ModuleToDistributeCoinsResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsResponse";
-  value: Uint8Array;
-}
-export interface ModuleToDistributeCoinsResponseAmino {
-  /** Coins that have yet to be distributed */
-  coins: CoinAmino[];
-}
-export interface ModuleToDistributeCoinsResponseAminoMsg {
-  type: "osmosis/incentives/module-to-distribute-coins-response";
-  value: ModuleToDistributeCoinsResponseAmino;
-}
-export interface ModuleToDistributeCoinsResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface GaugeByIDRequest {
-  /** Gague ID being queried */
-  id: bigint;
-}
-export interface GaugeByIDRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.GaugeByIDRequest";
-  value: Uint8Array;
-}
-export interface GaugeByIDRequestAmino {
-  /** Gague ID being queried */
-  id: string;
-}
-export interface GaugeByIDRequestAminoMsg {
-  type: "osmosis/incentives/gauge-by-id-request";
-  value: GaugeByIDRequestAmino;
-}
-export interface GaugeByIDRequestSDKType {
-  id: bigint;
-}
-export interface GaugeByIDResponse {
-  /** Gauge that corresponds to provided gague ID */
-  gauge: Gauge | undefined;
-}
-export interface GaugeByIDResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.GaugeByIDResponse";
-  value: Uint8Array;
-}
-export interface GaugeByIDResponseAmino {
-  /** Gauge that corresponds to provided gague ID */
-  gauge?: GaugeAmino | undefined;
-}
-export interface GaugeByIDResponseAminoMsg {
-  type: "osmosis/incentives/gauge-by-id-response";
-  value: GaugeByIDResponseAmino;
-}
-export interface GaugeByIDResponseSDKType {
-  gauge: GaugeSDKType | undefined;
-}
-export interface GaugesRequest {
-  /** Pagination defines pagination for the request */
-  pagination: PageRequest | undefined;
-}
-export interface GaugesRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.GaugesRequest";
-  value: Uint8Array;
-}
-export interface GaugesRequestAmino {
-  /** Pagination defines pagination for the request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface GaugesRequestAminoMsg {
-  type: "osmosis/incentives/gauges-request";
-  value: GaugesRequestAmino;
-}
-export interface GaugesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-export interface GaugesResponse {
-  /** Upcoming and active gauges */
-  data: Gauge[];
-  /** Pagination defines pagination for the response */
-  pagination: PageResponse | undefined;
-}
-export interface GaugesResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.GaugesResponse";
-  value: Uint8Array;
-}
-export interface GaugesResponseAmino {
-  /** Upcoming and active gauges */
-  data: GaugeAmino[];
-  /** Pagination defines pagination for the response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface GaugesResponseAminoMsg {
-  type: "osmosis/incentives/gauges-response";
-  value: GaugesResponseAmino;
-}
-export interface GaugesResponseSDKType {
-  data: GaugeSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface ActiveGaugesRequest {
-  /** Pagination defines pagination for the request */
-  pagination: PageRequest | undefined;
-}
-export interface ActiveGaugesRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.ActiveGaugesRequest";
-  value: Uint8Array;
-}
-export interface ActiveGaugesRequestAmino {
-  /** Pagination defines pagination for the request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface ActiveGaugesRequestAminoMsg {
-  type: "osmosis/incentives/active-gauges-request";
-  value: ActiveGaugesRequestAmino;
-}
-export interface ActiveGaugesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-export interface ActiveGaugesResponse {
-  /** Active gagues only */
-  data: Gauge[];
-  /** Pagination defines pagination for the response */
-  pagination: PageResponse | undefined;
-}
-export interface ActiveGaugesResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.ActiveGaugesResponse";
-  value: Uint8Array;
-}
-export interface ActiveGaugesResponseAmino {
-  /** Active gagues only */
-  data: GaugeAmino[];
-  /** Pagination defines pagination for the response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface ActiveGaugesResponseAminoMsg {
-  type: "osmosis/incentives/active-gauges-response";
-  value: ActiveGaugesResponseAmino;
-}
-export interface ActiveGaugesResponseSDKType {
-  data: GaugeSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface ActiveGaugesPerDenomRequest {
-  /** Desired denom when querying active gagues */
-  denom: string;
-  /** Pagination defines pagination for the request */
-  pagination: PageRequest | undefined;
-}
-export interface ActiveGaugesPerDenomRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomRequest";
-  value: Uint8Array;
-}
-export interface ActiveGaugesPerDenomRequestAmino {
-  /** Desired denom when querying active gagues */
-  denom: string;
-  /** Pagination defines pagination for the request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface ActiveGaugesPerDenomRequestAminoMsg {
-  type: "osmosis/incentives/active-gauges-per-denom-request";
-  value: ActiveGaugesPerDenomRequestAmino;
-}
-export interface ActiveGaugesPerDenomRequestSDKType {
-  denom: string;
-  pagination: PageRequestSDKType | undefined;
-}
-export interface ActiveGaugesPerDenomResponse {
-  /** Active gagues that match denom in query */
-  data: Gauge[];
-  /** Pagination defines pagination for the response */
-  pagination: PageResponse | undefined;
-}
-export interface ActiveGaugesPerDenomResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomResponse";
-  value: Uint8Array;
-}
-export interface ActiveGaugesPerDenomResponseAmino {
-  /** Active gagues that match denom in query */
-  data: GaugeAmino[];
-  /** Pagination defines pagination for the response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface ActiveGaugesPerDenomResponseAminoMsg {
-  type: "osmosis/incentives/active-gauges-per-denom-response";
-  value: ActiveGaugesPerDenomResponseAmino;
-}
-export interface ActiveGaugesPerDenomResponseSDKType {
-  data: GaugeSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface UpcomingGaugesRequest {
-  /** Pagination defines pagination for the request */
-  pagination: PageRequest | undefined;
-}
-export interface UpcomingGaugesRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesRequest";
-  value: Uint8Array;
-}
-export interface UpcomingGaugesRequestAmino {
-  /** Pagination defines pagination for the request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface UpcomingGaugesRequestAminoMsg {
-  type: "osmosis/incentives/upcoming-gauges-request";
-  value: UpcomingGaugesRequestAmino;
-}
-export interface UpcomingGaugesRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-export interface UpcomingGaugesResponse {
-  /** Gauges whose distribution is upcoming */
-  data: Gauge[];
-  /** Pagination defines pagination for the response */
-  pagination: PageResponse | undefined;
-}
-export interface UpcomingGaugesResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesResponse";
-  value: Uint8Array;
-}
-export interface UpcomingGaugesResponseAmino {
-  /** Gauges whose distribution is upcoming */
-  data: GaugeAmino[];
-  /** Pagination defines pagination for the response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface UpcomingGaugesResponseAminoMsg {
-  type: "osmosis/incentives/upcoming-gauges-response";
-  value: UpcomingGaugesResponseAmino;
-}
-export interface UpcomingGaugesResponseSDKType {
-  data: GaugeSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface UpcomingGaugesPerDenomRequest {
-  /** Filter for upcoming gagues that match specific denom */
-  denom: string;
-  /** Pagination defines pagination for the request */
-  pagination: PageRequest | undefined;
-}
-export interface UpcomingGaugesPerDenomRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomRequest";
-  value: Uint8Array;
-}
-export interface UpcomingGaugesPerDenomRequestAmino {
-  /** Filter for upcoming gagues that match specific denom */
-  denom: string;
-  /** Pagination defines pagination for the request */
-  pagination?: PageRequestAmino | undefined;
-}
-export interface UpcomingGaugesPerDenomRequestAminoMsg {
-  type: "osmosis/incentives/upcoming-gauges-per-denom-request";
-  value: UpcomingGaugesPerDenomRequestAmino;
-}
-export interface UpcomingGaugesPerDenomRequestSDKType {
-  denom: string;
-  pagination: PageRequestSDKType | undefined;
-}
-export interface UpcomingGaugesPerDenomResponse {
-  /** Upcoming gagues that match denom in query */
-  upcomingGauges: Gauge[];
-  /** Pagination defines pagination for the response */
-  pagination: PageResponse | undefined;
-}
-export interface UpcomingGaugesPerDenomResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomResponse";
-  value: Uint8Array;
-}
-export interface UpcomingGaugesPerDenomResponseAmino {
-  /** Upcoming gagues that match denom in query */
-  upcoming_gauges: GaugeAmino[];
-  /** Pagination defines pagination for the response */
-  pagination?: PageResponseAmino | undefined;
-}
-export interface UpcomingGaugesPerDenomResponseAminoMsg {
-  type: "osmosis/incentives/upcoming-gauges-per-denom-response";
-  value: UpcomingGaugesPerDenomResponseAmino;
-}
-export interface UpcomingGaugesPerDenomResponseSDKType {
-  upcoming_gauges: GaugeSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface RewardsEstRequest {
-  /** Address that is being queried for future estimated rewards */
-  owner: string;
-  /** Lock IDs included in future reward estimation */
-  lockIds: bigint[];
-  /**
-   * Upper time limit of reward estimation
-   * Lower limit is current epoch
-   */
-  endEpoch: bigint;
-}
-export interface RewardsEstRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.RewardsEstRequest";
-  value: Uint8Array;
-}
-export interface RewardsEstRequestAmino {
-  /** Address that is being queried for future estimated rewards */
-  owner: string;
-  /** Lock IDs included in future reward estimation */
-  lock_ids: string[];
-  /**
-   * Upper time limit of reward estimation
-   * Lower limit is current epoch
-   */
-  end_epoch: string;
-}
-export interface RewardsEstRequestAminoMsg {
-  type: "osmosis/incentives/rewards-est-request";
-  value: RewardsEstRequestAmino;
-}
-export interface RewardsEstRequestSDKType {
-  owner: string;
-  lock_ids: bigint[];
-  end_epoch: bigint;
-}
-export interface RewardsEstResponse {
-  /**
-   * Estimated coin rewards that will be recieved at provided address
-   * from specified locks between current time and end epoch
-   */
-  coins: Coin[];
-}
-export interface RewardsEstResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.RewardsEstResponse";
-  value: Uint8Array;
-}
-export interface RewardsEstResponseAmino {
-  /**
-   * Estimated coin rewards that will be recieved at provided address
-   * from specified locks between current time and end epoch
-   */
-  coins: CoinAmino[];
-}
-export interface RewardsEstResponseAminoMsg {
-  type: "osmosis/incentives/rewards-est-response";
-  value: RewardsEstResponseAmino;
-}
-export interface RewardsEstResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface QueryLockableDurationsRequest {}
-export interface QueryLockableDurationsRequestProtoMsg {
-  typeUrl: "/osmosis.incentives.QueryLockableDurationsRequest";
-  value: Uint8Array;
-}
-export interface QueryLockableDurationsRequestAmino {}
-export interface QueryLockableDurationsRequestAminoMsg {
-  type: "osmosis/incentives/query-lockable-durations-request";
-  value: QueryLockableDurationsRequestAmino;
-}
-export interface QueryLockableDurationsRequestSDKType {}
-export interface QueryLockableDurationsResponse {
-  /** Time durations that users can lock coins for in order to recieve rewards */
-  lockableDurations: Duration[];
-}
-export interface QueryLockableDurationsResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.QueryLockableDurationsResponse";
-  value: Uint8Array;
-}
-export interface QueryLockableDurationsResponseAmino {
-  /** Time durations that users can lock coins for in order to recieve rewards */
-  lockable_durations: DurationAmino[];
-}
-export interface QueryLockableDurationsResponseAminoMsg {
-  type: "osmosis/incentives/query-lockable-durations-response";
-  value: QueryLockableDurationsResponseAmino;
-}
-export interface QueryLockableDurationsResponseSDKType {
-  lockable_durations: DurationSDKType[];
-}
-function createBaseModuleToDistributeCoinsRequest(): ModuleToDistributeCoinsRequest {
-  return {};
-}
-export const ModuleToDistributeCoinsRequest = {
-  typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsRequest",
-  aminoType: "osmosis/incentives/module-to-distribute-coins-request",
-  encode(_: ModuleToDistributeCoinsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleToDistributeCoinsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleToDistributeCoinsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ModuleToDistributeCoinsRequest {
-    return {};
-  },
-  toJSON(_: ModuleToDistributeCoinsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ModuleToDistributeCoinsRequest>): ModuleToDistributeCoinsRequest {
-    const message = createBaseModuleToDistributeCoinsRequest();
-    return message;
-  },
-  fromSDK(_: ModuleToDistributeCoinsRequestSDKType): ModuleToDistributeCoinsRequest {
-    return {};
-  },
-  toSDK(_: ModuleToDistributeCoinsRequest): ModuleToDistributeCoinsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ModuleToDistributeCoinsRequestAmino): ModuleToDistributeCoinsRequest {
-    return {};
-  },
-  toAmino(_: ModuleToDistributeCoinsRequest): ModuleToDistributeCoinsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ModuleToDistributeCoinsRequestAminoMsg): ModuleToDistributeCoinsRequest {
-    return ModuleToDistributeCoinsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleToDistributeCoinsRequest): ModuleToDistributeCoinsRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/module-to-distribute-coins-request",
-      value: ModuleToDistributeCoinsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleToDistributeCoinsRequestProtoMsg): ModuleToDistributeCoinsRequest {
-    return ModuleToDistributeCoinsRequest.decode(message.value);
-  },
-  toProto(message: ModuleToDistributeCoinsRequest): Uint8Array {
-    return ModuleToDistributeCoinsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleToDistributeCoinsRequest): ModuleToDistributeCoinsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsRequest",
-      value: ModuleToDistributeCoinsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleToDistributeCoinsResponse(): ModuleToDistributeCoinsResponse {
-  return {
-    coins: []
-  };
-}
-export const ModuleToDistributeCoinsResponse = {
-  typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsResponse",
-  aminoType: "osmosis/incentives/module-to-distribute-coins-response",
-  encode(message: ModuleToDistributeCoinsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleToDistributeCoinsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleToDistributeCoinsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleToDistributeCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ModuleToDistributeCoinsResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleToDistributeCoinsResponse>): ModuleToDistributeCoinsResponse {
-    const message = createBaseModuleToDistributeCoinsResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ModuleToDistributeCoinsResponseSDKType): ModuleToDistributeCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ModuleToDistributeCoinsResponse): ModuleToDistributeCoinsResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModuleToDistributeCoinsResponseAmino): ModuleToDistributeCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ModuleToDistributeCoinsResponse): ModuleToDistributeCoinsResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModuleToDistributeCoinsResponseAminoMsg): ModuleToDistributeCoinsResponse {
-    return ModuleToDistributeCoinsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleToDistributeCoinsResponse): ModuleToDistributeCoinsResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/module-to-distribute-coins-response",
-      value: ModuleToDistributeCoinsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleToDistributeCoinsResponseProtoMsg): ModuleToDistributeCoinsResponse {
-    return ModuleToDistributeCoinsResponse.decode(message.value);
-  },
-  toProto(message: ModuleToDistributeCoinsResponse): Uint8Array {
-    return ModuleToDistributeCoinsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleToDistributeCoinsResponse): ModuleToDistributeCoinsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ModuleToDistributeCoinsResponse",
-      value: ModuleToDistributeCoinsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGaugeByIDRequest(): GaugeByIDRequest {
-  return {
-    id: BigInt(0)
-  };
-}
-export const GaugeByIDRequest = {
-  typeUrl: "/osmosis.incentives.GaugeByIDRequest",
-  aminoType: "osmosis/incentives/gauge-by-id-request",
-  encode(message: GaugeByIDRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== BigInt(0)) {
-      writer.uint32(8).uint64(message.id);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GaugeByIDRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGaugeByIDRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GaugeByIDRequest {
-    return {
-      id: isSet(object.id) ? BigInt(object.id.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GaugeByIDRequest): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GaugeByIDRequest>): GaugeByIDRequest {
-    const message = createBaseGaugeByIDRequest();
-    message.id = object.id !== undefined && object.id !== null ? BigInt(object.id.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GaugeByIDRequestSDKType): GaugeByIDRequest {
-    return {
-      id: object?.id
-    };
-  },
-  toSDK(message: GaugeByIDRequest): GaugeByIDRequestSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    return obj;
-  },
-  fromAmino(object: GaugeByIDRequestAmino): GaugeByIDRequest {
-    return {
-      id: BigInt(object.id)
-    };
-  },
-  toAmino(message: GaugeByIDRequest): GaugeByIDRequestAmino {
-    const obj: any = {};
-    obj.id = message.id ? message.id.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GaugeByIDRequestAminoMsg): GaugeByIDRequest {
-    return GaugeByIDRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GaugeByIDRequest): GaugeByIDRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/gauge-by-id-request",
-      value: GaugeByIDRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GaugeByIDRequestProtoMsg): GaugeByIDRequest {
-    return GaugeByIDRequest.decode(message.value);
-  },
-  toProto(message: GaugeByIDRequest): Uint8Array {
-    return GaugeByIDRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GaugeByIDRequest): GaugeByIDRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.GaugeByIDRequest",
-      value: GaugeByIDRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGaugeByIDResponse(): GaugeByIDResponse {
-  return {
-    gauge: Gauge.fromPartial({})
-  };
-}
-export const GaugeByIDResponse = {
-  typeUrl: "/osmosis.incentives.GaugeByIDResponse",
-  aminoType: "osmosis/incentives/gauge-by-id-response",
-  encode(message: GaugeByIDResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gauge !== undefined) {
-      Gauge.encode(message.gauge, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GaugeByIDResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGaugeByIDResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gauge = Gauge.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GaugeByIDResponse {
-    return {
-      gauge: isSet(object.gauge) ? Gauge.fromJSON(object.gauge) : undefined
-    };
-  },
-  toJSON(message: GaugeByIDResponse): unknown {
-    const obj: any = {};
-    message.gauge !== undefined && (obj.gauge = message.gauge ? Gauge.toJSON(message.gauge) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GaugeByIDResponse>): GaugeByIDResponse {
-    const message = createBaseGaugeByIDResponse();
-    message.gauge = object.gauge !== undefined && object.gauge !== null ? Gauge.fromPartial(object.gauge) : undefined;
-    return message;
-  },
-  fromSDK(object: GaugeByIDResponseSDKType): GaugeByIDResponse {
-    return {
-      gauge: object.gauge ? Gauge.fromSDK(object.gauge) : undefined
-    };
-  },
-  toSDK(message: GaugeByIDResponse): GaugeByIDResponseSDKType {
-    const obj: any = {};
-    message.gauge !== undefined && (obj.gauge = message.gauge ? Gauge.toSDK(message.gauge) : undefined);
-    return obj;
-  },
-  fromAmino(object: GaugeByIDResponseAmino): GaugeByIDResponse {
-    return {
-      gauge: object?.gauge ? Gauge.fromAmino(object.gauge) : undefined
-    };
-  },
-  toAmino(message: GaugeByIDResponse): GaugeByIDResponseAmino {
-    const obj: any = {};
-    obj.gauge = message.gauge ? Gauge.toAmino(message.gauge) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GaugeByIDResponseAminoMsg): GaugeByIDResponse {
-    return GaugeByIDResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GaugeByIDResponse): GaugeByIDResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/gauge-by-id-response",
-      value: GaugeByIDResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GaugeByIDResponseProtoMsg): GaugeByIDResponse {
-    return GaugeByIDResponse.decode(message.value);
-  },
-  toProto(message: GaugeByIDResponse): Uint8Array {
-    return GaugeByIDResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GaugeByIDResponse): GaugeByIDResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.GaugeByIDResponse",
-      value: GaugeByIDResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseGaugesRequest(): GaugesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const GaugesRequest = {
-  typeUrl: "/osmosis.incentives.GaugesRequest",
-  aminoType: "osmosis/incentives/gauges-request",
-  encode(message: GaugesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GaugesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGaugesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GaugesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GaugesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GaugesRequest>): GaugesRequest {
-    const message = createBaseGaugesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GaugesRequestSDKType): GaugesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GaugesRequest): GaugesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GaugesRequestAmino): GaugesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GaugesRequest): GaugesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GaugesRequestAminoMsg): GaugesRequest {
-    return GaugesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: GaugesRequest): GaugesRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/gauges-request",
-      value: GaugesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GaugesRequestProtoMsg): GaugesRequest {
-    return GaugesRequest.decode(message.value);
-  },
-  toProto(message: GaugesRequest): Uint8Array {
-    return GaugesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: GaugesRequest): GaugesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.GaugesRequest",
-      value: GaugesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseGaugesResponse(): GaugesResponse {
-  return {
-    data: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const GaugesResponse = {
-  typeUrl: "/osmosis.incentives.GaugesResponse",
-  aminoType: "osmosis/incentives/gauges-response",
-  encode(message: GaugesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GaugesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGaugesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: GaugesResponse): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GaugesResponse>): GaugesResponse {
-    const message = createBaseGaugesResponse();
-    message.data = object.data?.map(e => Gauge.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: GaugesResponseSDKType): GaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: GaugesResponse): GaugesResponseSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: GaugesResponseAmino): GaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: GaugesResponse): GaugesResponseAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GaugesResponseAminoMsg): GaugesResponse {
-    return GaugesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: GaugesResponse): GaugesResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/gauges-response",
-      value: GaugesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GaugesResponseProtoMsg): GaugesResponse {
-    return GaugesResponse.decode(message.value);
-  },
-  toProto(message: GaugesResponse): Uint8Array {
-    return GaugesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: GaugesResponse): GaugesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.GaugesResponse",
-      value: GaugesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseActiveGaugesRequest(): ActiveGaugesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const ActiveGaugesRequest = {
-  typeUrl: "/osmosis.incentives.ActiveGaugesRequest",
-  aminoType: "osmosis/incentives/active-gauges-request",
-  encode(message: ActiveGaugesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ActiveGaugesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseActiveGaugesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ActiveGaugesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: ActiveGaugesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ActiveGaugesRequest>): ActiveGaugesRequest {
-    const message = createBaseActiveGaugesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: ActiveGaugesRequestSDKType): ActiveGaugesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: ActiveGaugesRequest): ActiveGaugesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: ActiveGaugesRequestAmino): ActiveGaugesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: ActiveGaugesRequest): ActiveGaugesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ActiveGaugesRequestAminoMsg): ActiveGaugesRequest {
-    return ActiveGaugesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ActiveGaugesRequest): ActiveGaugesRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/active-gauges-request",
-      value: ActiveGaugesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ActiveGaugesRequestProtoMsg): ActiveGaugesRequest {
-    return ActiveGaugesRequest.decode(message.value);
-  },
-  toProto(message: ActiveGaugesRequest): Uint8Array {
-    return ActiveGaugesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ActiveGaugesRequest): ActiveGaugesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ActiveGaugesRequest",
-      value: ActiveGaugesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseActiveGaugesResponse(): ActiveGaugesResponse {
-  return {
-    data: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const ActiveGaugesResponse = {
-  typeUrl: "/osmosis.incentives.ActiveGaugesResponse",
-  aminoType: "osmosis/incentives/active-gauges-response",
-  encode(message: ActiveGaugesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ActiveGaugesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseActiveGaugesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ActiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: ActiveGaugesResponse): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ActiveGaugesResponse>): ActiveGaugesResponse {
-    const message = createBaseActiveGaugesResponse();
-    message.data = object.data?.map(e => Gauge.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: ActiveGaugesResponseSDKType): ActiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: ActiveGaugesResponse): ActiveGaugesResponseSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: ActiveGaugesResponseAmino): ActiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: ActiveGaugesResponse): ActiveGaugesResponseAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ActiveGaugesResponseAminoMsg): ActiveGaugesResponse {
-    return ActiveGaugesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ActiveGaugesResponse): ActiveGaugesResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/active-gauges-response",
-      value: ActiveGaugesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ActiveGaugesResponseProtoMsg): ActiveGaugesResponse {
-    return ActiveGaugesResponse.decode(message.value);
-  },
-  toProto(message: ActiveGaugesResponse): Uint8Array {
-    return ActiveGaugesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ActiveGaugesResponse): ActiveGaugesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ActiveGaugesResponse",
-      value: ActiveGaugesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseActiveGaugesPerDenomRequest(): ActiveGaugesPerDenomRequest {
-  return {
-    denom: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const ActiveGaugesPerDenomRequest = {
-  typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomRequest",
-  aminoType: "osmosis/incentives/active-gauges-per-denom-request",
-  encode(message: ActiveGaugesPerDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ActiveGaugesPerDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseActiveGaugesPerDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ActiveGaugesPerDenomRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: ActiveGaugesPerDenomRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ActiveGaugesPerDenomRequest>): ActiveGaugesPerDenomRequest {
-    const message = createBaseActiveGaugesPerDenomRequest();
-    message.denom = object.denom ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: ActiveGaugesPerDenomRequestSDKType): ActiveGaugesPerDenomRequest {
-    return {
-      denom: object?.denom,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: ActiveGaugesPerDenomRequest): ActiveGaugesPerDenomRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: ActiveGaugesPerDenomRequestAmino): ActiveGaugesPerDenomRequest {
-    return {
-      denom: object.denom,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: ActiveGaugesPerDenomRequest): ActiveGaugesPerDenomRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ActiveGaugesPerDenomRequestAminoMsg): ActiveGaugesPerDenomRequest {
-    return ActiveGaugesPerDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ActiveGaugesPerDenomRequest): ActiveGaugesPerDenomRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/active-gauges-per-denom-request",
-      value: ActiveGaugesPerDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ActiveGaugesPerDenomRequestProtoMsg): ActiveGaugesPerDenomRequest {
-    return ActiveGaugesPerDenomRequest.decode(message.value);
-  },
-  toProto(message: ActiveGaugesPerDenomRequest): Uint8Array {
-    return ActiveGaugesPerDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ActiveGaugesPerDenomRequest): ActiveGaugesPerDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomRequest",
-      value: ActiveGaugesPerDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseActiveGaugesPerDenomResponse(): ActiveGaugesPerDenomResponse {
-  return {
-    data: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const ActiveGaugesPerDenomResponse = {
-  typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomResponse",
-  aminoType: "osmosis/incentives/active-gauges-per-denom-response",
-  encode(message: ActiveGaugesPerDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ActiveGaugesPerDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseActiveGaugesPerDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ActiveGaugesPerDenomResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: ActiveGaugesPerDenomResponse): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ActiveGaugesPerDenomResponse>): ActiveGaugesPerDenomResponse {
-    const message = createBaseActiveGaugesPerDenomResponse();
-    message.data = object.data?.map(e => Gauge.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: ActiveGaugesPerDenomResponseSDKType): ActiveGaugesPerDenomResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: ActiveGaugesPerDenomResponse): ActiveGaugesPerDenomResponseSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: ActiveGaugesPerDenomResponseAmino): ActiveGaugesPerDenomResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: ActiveGaugesPerDenomResponse): ActiveGaugesPerDenomResponseAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ActiveGaugesPerDenomResponseAminoMsg): ActiveGaugesPerDenomResponse {
-    return ActiveGaugesPerDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ActiveGaugesPerDenomResponse): ActiveGaugesPerDenomResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/active-gauges-per-denom-response",
-      value: ActiveGaugesPerDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ActiveGaugesPerDenomResponseProtoMsg): ActiveGaugesPerDenomResponse {
-    return ActiveGaugesPerDenomResponse.decode(message.value);
-  },
-  toProto(message: ActiveGaugesPerDenomResponse): Uint8Array {
-    return ActiveGaugesPerDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ActiveGaugesPerDenomResponse): ActiveGaugesPerDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.ActiveGaugesPerDenomResponse",
-      value: ActiveGaugesPerDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseUpcomingGaugesRequest(): UpcomingGaugesRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const UpcomingGaugesRequest = {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesRequest",
-  aminoType: "osmosis/incentives/upcoming-gauges-request",
-  encode(message: UpcomingGaugesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpcomingGaugesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpcomingGaugesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpcomingGaugesRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: UpcomingGaugesRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpcomingGaugesRequest>): UpcomingGaugesRequest {
-    const message = createBaseUpcomingGaugesRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: UpcomingGaugesRequestSDKType): UpcomingGaugesRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: UpcomingGaugesRequest): UpcomingGaugesRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpcomingGaugesRequestAmino): UpcomingGaugesRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: UpcomingGaugesRequest): UpcomingGaugesRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpcomingGaugesRequestAminoMsg): UpcomingGaugesRequest {
-    return UpcomingGaugesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpcomingGaugesRequest): UpcomingGaugesRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/upcoming-gauges-request",
-      value: UpcomingGaugesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpcomingGaugesRequestProtoMsg): UpcomingGaugesRequest {
-    return UpcomingGaugesRequest.decode(message.value);
-  },
-  toProto(message: UpcomingGaugesRequest): Uint8Array {
-    return UpcomingGaugesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: UpcomingGaugesRequest): UpcomingGaugesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.UpcomingGaugesRequest",
-      value: UpcomingGaugesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseUpcomingGaugesResponse(): UpcomingGaugesResponse {
-  return {
-    data: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const UpcomingGaugesResponse = {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesResponse",
-  aminoType: "osmosis/incentives/upcoming-gauges-response",
-  encode(message: UpcomingGaugesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpcomingGaugesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpcomingGaugesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpcomingGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: UpcomingGaugesResponse): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpcomingGaugesResponse>): UpcomingGaugesResponse {
-    const message = createBaseUpcomingGaugesResponse();
-    message.data = object.data?.map(e => Gauge.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: UpcomingGaugesResponseSDKType): UpcomingGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: UpcomingGaugesResponse): UpcomingGaugesResponseSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpcomingGaugesResponseAmino): UpcomingGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: UpcomingGaugesResponse): UpcomingGaugesResponseAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpcomingGaugesResponseAminoMsg): UpcomingGaugesResponse {
-    return UpcomingGaugesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpcomingGaugesResponse): UpcomingGaugesResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/upcoming-gauges-response",
-      value: UpcomingGaugesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpcomingGaugesResponseProtoMsg): UpcomingGaugesResponse {
-    return UpcomingGaugesResponse.decode(message.value);
-  },
-  toProto(message: UpcomingGaugesResponse): Uint8Array {
-    return UpcomingGaugesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: UpcomingGaugesResponse): UpcomingGaugesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.UpcomingGaugesResponse",
-      value: UpcomingGaugesResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseUpcomingGaugesPerDenomRequest(): UpcomingGaugesPerDenomRequest {
-  return {
-    denom: "",
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const UpcomingGaugesPerDenomRequest = {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomRequest",
-  aminoType: "osmosis/incentives/upcoming-gauges-per-denom-request",
-  encode(message: UpcomingGaugesPerDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpcomingGaugesPerDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpcomingGaugesPerDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpcomingGaugesPerDenomRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: UpcomingGaugesPerDenomRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpcomingGaugesPerDenomRequest>): UpcomingGaugesPerDenomRequest {
-    const message = createBaseUpcomingGaugesPerDenomRequest();
-    message.denom = object.denom ?? "";
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: UpcomingGaugesPerDenomRequestSDKType): UpcomingGaugesPerDenomRequest {
-    return {
-      denom: object?.denom,
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: UpcomingGaugesPerDenomRequest): UpcomingGaugesPerDenomRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpcomingGaugesPerDenomRequestAmino): UpcomingGaugesPerDenomRequest {
-    return {
-      denom: object.denom,
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: UpcomingGaugesPerDenomRequest): UpcomingGaugesPerDenomRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpcomingGaugesPerDenomRequestAminoMsg): UpcomingGaugesPerDenomRequest {
-    return UpcomingGaugesPerDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpcomingGaugesPerDenomRequest): UpcomingGaugesPerDenomRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/upcoming-gauges-per-denom-request",
-      value: UpcomingGaugesPerDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpcomingGaugesPerDenomRequestProtoMsg): UpcomingGaugesPerDenomRequest {
-    return UpcomingGaugesPerDenomRequest.decode(message.value);
-  },
-  toProto(message: UpcomingGaugesPerDenomRequest): Uint8Array {
-    return UpcomingGaugesPerDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: UpcomingGaugesPerDenomRequest): UpcomingGaugesPerDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomRequest",
-      value: UpcomingGaugesPerDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseUpcomingGaugesPerDenomResponse(): UpcomingGaugesPerDenomResponse {
-  return {
-    upcomingGauges: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const UpcomingGaugesPerDenomResponse = {
-  typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomResponse",
-  aminoType: "osmosis/incentives/upcoming-gauges-per-denom-response",
-  encode(message: UpcomingGaugesPerDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.upcomingGauges) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpcomingGaugesPerDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpcomingGaugesPerDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.upcomingGauges.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpcomingGaugesPerDenomResponse {
-    return {
-      upcomingGauges: Array.isArray(object?.upcomingGauges) ? object.upcomingGauges.map((e: any) => Gauge.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: UpcomingGaugesPerDenomResponse): unknown {
-    const obj: any = {};
-    if (message.upcomingGauges) {
-      obj.upcomingGauges = message.upcomingGauges.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.upcomingGauges = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpcomingGaugesPerDenomResponse>): UpcomingGaugesPerDenomResponse {
-    const message = createBaseUpcomingGaugesPerDenomResponse();
-    message.upcomingGauges = object.upcomingGauges?.map(e => Gauge.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: UpcomingGaugesPerDenomResponseSDKType): UpcomingGaugesPerDenomResponse {
-    return {
-      upcomingGauges: Array.isArray(object?.upcoming_gauges) ? object.upcoming_gauges.map((e: any) => Gauge.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: UpcomingGaugesPerDenomResponse): UpcomingGaugesPerDenomResponseSDKType {
-    const obj: any = {};
-    if (message.upcomingGauges) {
-      obj.upcoming_gauges = message.upcomingGauges.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.upcoming_gauges = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpcomingGaugesPerDenomResponseAmino): UpcomingGaugesPerDenomResponse {
-    return {
-      upcomingGauges: Array.isArray(object?.upcoming_gauges) ? object.upcoming_gauges.map((e: any) => Gauge.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: UpcomingGaugesPerDenomResponse): UpcomingGaugesPerDenomResponseAmino {
-    const obj: any = {};
-    if (message.upcomingGauges) {
-      obj.upcoming_gauges = message.upcomingGauges.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.upcoming_gauges = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpcomingGaugesPerDenomResponseAminoMsg): UpcomingGaugesPerDenomResponse {
-    return UpcomingGaugesPerDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpcomingGaugesPerDenomResponse): UpcomingGaugesPerDenomResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/upcoming-gauges-per-denom-response",
-      value: UpcomingGaugesPerDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpcomingGaugesPerDenomResponseProtoMsg): UpcomingGaugesPerDenomResponse {
-    return UpcomingGaugesPerDenomResponse.decode(message.value);
-  },
-  toProto(message: UpcomingGaugesPerDenomResponse): Uint8Array {
-    return UpcomingGaugesPerDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: UpcomingGaugesPerDenomResponse): UpcomingGaugesPerDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.UpcomingGaugesPerDenomResponse",
-      value: UpcomingGaugesPerDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseRewardsEstRequest(): RewardsEstRequest {
-  return {
-    owner: "",
-    lockIds: [],
-    endEpoch: BigInt(0)
-  };
-}
-export const RewardsEstRequest = {
-  typeUrl: "/osmosis.incentives.RewardsEstRequest",
-  aminoType: "osmosis/incentives/rewards-est-request",
-  encode(message: RewardsEstRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    writer.uint32(18).fork();
-    for (const v of message.lockIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.endEpoch !== BigInt(0)) {
-      writer.uint32(24).int64(message.endEpoch);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RewardsEstRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRewardsEstRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.lockIds.push(reader.uint64());
-            }
-          } else {
-            message.lockIds.push(reader.uint64());
-          }
-          break;
-        case 3:
-          message.endEpoch = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RewardsEstRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      lockIds: Array.isArray(object?.lockIds) ? object.lockIds.map((e: any) => BigInt(e.toString())) : [],
-      endEpoch: isSet(object.endEpoch) ? BigInt(object.endEpoch.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: RewardsEstRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    if (message.lockIds) {
-      obj.lockIds = message.lockIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.lockIds = [];
-    }
-    message.endEpoch !== undefined && (obj.endEpoch = (message.endEpoch || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RewardsEstRequest>): RewardsEstRequest {
-    const message = createBaseRewardsEstRequest();
-    message.owner = object.owner ?? "";
-    message.lockIds = object.lockIds?.map(e => BigInt(e.toString())) || [];
-    message.endEpoch = object.endEpoch !== undefined && object.endEpoch !== null ? BigInt(object.endEpoch.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: RewardsEstRequestSDKType): RewardsEstRequest {
-    return {
-      owner: object?.owner,
-      lockIds: Array.isArray(object?.lock_ids) ? object.lock_ids.map((e: any) => e) : [],
-      endEpoch: object?.end_epoch
-    };
-  },
-  toSDK(message: RewardsEstRequest): RewardsEstRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    if (message.lockIds) {
-      obj.lock_ids = message.lockIds.map(e => e);
-    } else {
-      obj.lock_ids = [];
-    }
-    obj.end_epoch = message.endEpoch;
-    return obj;
-  },
-  fromAmino(object: RewardsEstRequestAmino): RewardsEstRequest {
-    return {
-      owner: object.owner,
-      lockIds: Array.isArray(object?.lock_ids) ? object.lock_ids.map((e: any) => BigInt(e)) : [],
-      endEpoch: BigInt(object.end_epoch)
-    };
-  },
-  toAmino(message: RewardsEstRequest): RewardsEstRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    if (message.lockIds) {
-      obj.lock_ids = message.lockIds.map(e => e.toString());
-    } else {
-      obj.lock_ids = [];
-    }
-    obj.end_epoch = message.endEpoch ? message.endEpoch.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RewardsEstRequestAminoMsg): RewardsEstRequest {
-    return RewardsEstRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: RewardsEstRequest): RewardsEstRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/rewards-est-request",
-      value: RewardsEstRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RewardsEstRequestProtoMsg): RewardsEstRequest {
-    return RewardsEstRequest.decode(message.value);
-  },
-  toProto(message: RewardsEstRequest): Uint8Array {
-    return RewardsEstRequest.encode(message).finish();
-  },
-  toProtoMsg(message: RewardsEstRequest): RewardsEstRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.RewardsEstRequest",
-      value: RewardsEstRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseRewardsEstResponse(): RewardsEstResponse {
-  return {
-    coins: []
-  };
-}
-export const RewardsEstResponse = {
-  typeUrl: "/osmosis.incentives.RewardsEstResponse",
-  aminoType: "osmosis/incentives/rewards-est-response",
-  encode(message: RewardsEstResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RewardsEstResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRewardsEstResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RewardsEstResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: RewardsEstResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RewardsEstResponse>): RewardsEstResponse {
-    const message = createBaseRewardsEstResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: RewardsEstResponseSDKType): RewardsEstResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: RewardsEstResponse): RewardsEstResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: RewardsEstResponseAmino): RewardsEstResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: RewardsEstResponse): RewardsEstResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: RewardsEstResponseAminoMsg): RewardsEstResponse {
-    return RewardsEstResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: RewardsEstResponse): RewardsEstResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/rewards-est-response",
-      value: RewardsEstResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RewardsEstResponseProtoMsg): RewardsEstResponse {
-    return RewardsEstResponse.decode(message.value);
-  },
-  toProto(message: RewardsEstResponse): Uint8Array {
-    return RewardsEstResponse.encode(message).finish();
-  },
-  toProtoMsg(message: RewardsEstResponse): RewardsEstResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.RewardsEstResponse",
-      value: RewardsEstResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryLockableDurationsRequest(): QueryLockableDurationsRequest {
-  return {};
-}
-export const QueryLockableDurationsRequest = {
-  typeUrl: "/osmosis.incentives.QueryLockableDurationsRequest",
-  aminoType: "osmosis/incentives/query-lockable-durations-request",
-  encode(_: QueryLockableDurationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryLockableDurationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryLockableDurationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryLockableDurationsRequest {
-    return {};
-  },
-  toJSON(_: QueryLockableDurationsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryLockableDurationsRequest>): QueryLockableDurationsRequest {
-    const message = createBaseQueryLockableDurationsRequest();
-    return message;
-  },
-  fromSDK(_: QueryLockableDurationsRequestSDKType): QueryLockableDurationsRequest {
-    return {};
-  },
-  toSDK(_: QueryLockableDurationsRequest): QueryLockableDurationsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryLockableDurationsRequestAmino): QueryLockableDurationsRequest {
-    return {};
-  },
-  toAmino(_: QueryLockableDurationsRequest): QueryLockableDurationsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryLockableDurationsRequestAminoMsg): QueryLockableDurationsRequest {
-    return QueryLockableDurationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryLockableDurationsRequest): QueryLockableDurationsRequestAminoMsg {
-    return {
-      type: "osmosis/incentives/query-lockable-durations-request",
-      value: QueryLockableDurationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryLockableDurationsRequestProtoMsg): QueryLockableDurationsRequest {
-    return QueryLockableDurationsRequest.decode(message.value);
-  },
-  toProto(message: QueryLockableDurationsRequest): Uint8Array {
-    return QueryLockableDurationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryLockableDurationsRequest): QueryLockableDurationsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.QueryLockableDurationsRequest",
-      value: QueryLockableDurationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryLockableDurationsResponse(): QueryLockableDurationsResponse {
-  return {
-    lockableDurations: []
-  };
-}
-export const QueryLockableDurationsResponse = {
-  typeUrl: "/osmosis.incentives.QueryLockableDurationsResponse",
-  aminoType: "osmosis/incentives/query-lockable-durations-response",
-  encode(message: QueryLockableDurationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryLockableDurationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryLockableDurationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryLockableDurationsResponse): unknown {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryLockableDurationsResponse>): QueryLockableDurationsResponse {
-    const message = createBaseQueryLockableDurationsResponse();
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryLockableDurationsResponseSDKType): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseSDKType {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryLockableDurationsResponseAmino): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseAmino {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryLockableDurationsResponseAminoMsg): QueryLockableDurationsResponse {
-    return QueryLockableDurationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/query-lockable-durations-response",
-      value: QueryLockableDurationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryLockableDurationsResponseProtoMsg): QueryLockableDurationsResponse {
-    return QueryLockableDurationsResponse.decode(message.value);
-  },
-  toProto(message: QueryLockableDurationsResponse): Uint8Array {
-    return QueryLockableDurationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.QueryLockableDurationsResponse",
-      value: QueryLockableDurationsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/tx.amino.ts b/examples/injective/src/codegen/osmosis/incentives/tx.amino.ts
deleted file mode 100644
index 054b416b..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/tx.amino.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MsgCreateGauge, MsgAddToGauge } from "./tx";
-export const AminoConverter = {
-  "/osmosis.incentives.MsgCreateGauge": {
-    aminoType: "osmosis/incentives/create-gauge",
-    toAmino: MsgCreateGauge.toAmino,
-    fromAmino: MsgCreateGauge.fromAmino
-  },
-  "/osmosis.incentives.MsgAddToGauge": {
-    aminoType: "osmosis/incentives/add-to-gauge",
-    toAmino: MsgAddToGauge.toAmino,
-    fromAmino: MsgAddToGauge.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/tx.registry.ts b/examples/injective/src/codegen/osmosis/incentives/tx.registry.ts
deleted file mode 100644
index 2f55e031..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/tx.registry.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateGauge, MsgAddToGauge } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.incentives.MsgCreateGauge", MsgCreateGauge], ["/osmosis.incentives.MsgAddToGauge", MsgAddToGauge]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createGauge(value: MsgCreateGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgCreateGauge",
-        value: MsgCreateGauge.encode(value).finish()
-      };
-    },
-    addToGauge(value: MsgAddToGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgAddToGauge",
-        value: MsgAddToGauge.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createGauge(value: MsgCreateGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgCreateGauge",
-        value
-      };
-    },
-    addToGauge(value: MsgAddToGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgAddToGauge",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createGauge(value: MsgCreateGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgCreateGauge",
-        value: MsgCreateGauge.toJSON(value)
-      };
-    },
-    addToGauge(value: MsgAddToGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgAddToGauge",
-        value: MsgAddToGauge.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createGauge(value: any) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgCreateGauge",
-        value: MsgCreateGauge.fromJSON(value)
-      };
-    },
-    addToGauge(value: any) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgAddToGauge",
-        value: MsgAddToGauge.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createGauge(value: MsgCreateGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgCreateGauge",
-        value: MsgCreateGauge.fromPartial(value)
-      };
-    },
-    addToGauge(value: MsgAddToGauge) {
-      return {
-        typeUrl: "/osmosis.incentives.MsgAddToGauge",
-        value: MsgAddToGauge.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/incentives/tx.rpc.msg.ts
deleted file mode 100644
index ccc8532f..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/tx.rpc.msg.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { MsgCreateGauge, MsgCreateGaugeResponse, MsgAddToGauge, MsgAddToGaugeResponse } from "./tx";
-export interface Msg {
-  createGauge(request: MsgCreateGauge): Promise<MsgCreateGaugeResponse>;
-  addToGauge(request: MsgAddToGauge): Promise<MsgAddToGaugeResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createGauge = this.createGauge.bind(this);
-    this.addToGauge = this.addToGauge.bind(this);
-  }
-  createGauge(request: MsgCreateGauge): Promise<MsgCreateGaugeResponse> {
-    const data = MsgCreateGauge.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Msg", "CreateGauge", data);
-    return promise.then(data => MsgCreateGaugeResponse.decode(new BinaryReader(data)));
-  }
-  addToGauge(request: MsgAddToGauge): Promise<MsgAddToGaugeResponse> {
-    const data = MsgAddToGauge.encode(request).finish();
-    const promise = this.rpc.request("osmosis.incentives.Msg", "AddToGauge", data);
-    return promise.then(data => MsgAddToGaugeResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/incentives/tx.ts b/examples/injective/src/codegen/osmosis/incentives/tx.ts
deleted file mode 100644
index 56df6bb0..00000000
--- a/examples/injective/src/codegen/osmosis/incentives/tx.ts
+++ /dev/null
@@ -1,568 +0,0 @@
-import { QueryCondition, QueryConditionAmino, QueryConditionSDKType } from "../lockup/lock";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../helpers";
-/** MsgCreateGauge creates a gague to distribute rewards to users */
-export interface MsgCreateGauge {
-  /**
-   * is_perpetual shows if it's a perpetual or non-perpetual gauge
-   * Non-perpetual gauges distribute their tokens equally per epoch while the
-   * gauge is in the active period. Perpetual gauges distribute all their tokens
-   * at a single time and only distribute their tokens again once the gauge is
-   * refilled
-   */
-  isPerpetual: boolean;
-  /** owner is the address of gauge creator */
-  owner: string;
-  /**
-   * distribute_to show which lock the gauge should distribute to by time
-   * duration or by timestamp
-   */
-  distributeTo: QueryCondition | undefined;
-  /** coins are coin(s) to be distributed by the gauge */
-  coins: Coin[];
-  /** start_time is the distribution start time */
-  startTime: Date | undefined;
-  /**
-   * num_epochs_paid_over is the number of epochs distribution will be completed
-   * over
-   */
-  numEpochsPaidOver: bigint;
-}
-export interface MsgCreateGaugeProtoMsg {
-  typeUrl: "/osmosis.incentives.MsgCreateGauge";
-  value: Uint8Array;
-}
-/** MsgCreateGauge creates a gague to distribute rewards to users */
-export interface MsgCreateGaugeAmino {
-  /**
-   * is_perpetual shows if it's a perpetual or non-perpetual gauge
-   * Non-perpetual gauges distribute their tokens equally per epoch while the
-   * gauge is in the active period. Perpetual gauges distribute all their tokens
-   * at a single time and only distribute their tokens again once the gauge is
-   * refilled
-   */
-  is_perpetual: boolean;
-  /** owner is the address of gauge creator */
-  owner: string;
-  /**
-   * distribute_to show which lock the gauge should distribute to by time
-   * duration or by timestamp
-   */
-  distribute_to?: QueryConditionAmino | undefined;
-  /** coins are coin(s) to be distributed by the gauge */
-  coins: CoinAmino[];
-  /** start_time is the distribution start time */
-  start_time?: Date | undefined;
-  /**
-   * num_epochs_paid_over is the number of epochs distribution will be completed
-   * over
-   */
-  num_epochs_paid_over: string;
-}
-export interface MsgCreateGaugeAminoMsg {
-  type: "osmosis/incentives/create-gauge";
-  value: MsgCreateGaugeAmino;
-}
-/** MsgCreateGauge creates a gague to distribute rewards to users */
-export interface MsgCreateGaugeSDKType {
-  is_perpetual: boolean;
-  owner: string;
-  distribute_to: QueryConditionSDKType | undefined;
-  coins: CoinSDKType[];
-  start_time: Date | undefined;
-  num_epochs_paid_over: bigint;
-}
-export interface MsgCreateGaugeResponse {}
-export interface MsgCreateGaugeResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.MsgCreateGaugeResponse";
-  value: Uint8Array;
-}
-export interface MsgCreateGaugeResponseAmino {}
-export interface MsgCreateGaugeResponseAminoMsg {
-  type: "osmosis/incentives/create-gauge-response";
-  value: MsgCreateGaugeResponseAmino;
-}
-export interface MsgCreateGaugeResponseSDKType {}
-/** MsgAddToGauge adds coins to a previously created gauge */
-export interface MsgAddToGauge {
-  /** owner is the gauge owner's address */
-  owner: string;
-  /** gauge_id is the ID of gauge that rewards are getting added to */
-  gaugeId: bigint;
-  /** rewards are the coin(s) to add to gauge */
-  rewards: Coin[];
-}
-export interface MsgAddToGaugeProtoMsg {
-  typeUrl: "/osmosis.incentives.MsgAddToGauge";
-  value: Uint8Array;
-}
-/** MsgAddToGauge adds coins to a previously created gauge */
-export interface MsgAddToGaugeAmino {
-  /** owner is the gauge owner's address */
-  owner: string;
-  /** gauge_id is the ID of gauge that rewards are getting added to */
-  gauge_id: string;
-  /** rewards are the coin(s) to add to gauge */
-  rewards: CoinAmino[];
-}
-export interface MsgAddToGaugeAminoMsg {
-  type: "osmosis/incentives/add-to-gauge";
-  value: MsgAddToGaugeAmino;
-}
-/** MsgAddToGauge adds coins to a previously created gauge */
-export interface MsgAddToGaugeSDKType {
-  owner: string;
-  gauge_id: bigint;
-  rewards: CoinSDKType[];
-}
-export interface MsgAddToGaugeResponse {}
-export interface MsgAddToGaugeResponseProtoMsg {
-  typeUrl: "/osmosis.incentives.MsgAddToGaugeResponse";
-  value: Uint8Array;
-}
-export interface MsgAddToGaugeResponseAmino {}
-export interface MsgAddToGaugeResponseAminoMsg {
-  type: "osmosis/incentives/add-to-gauge-response";
-  value: MsgAddToGaugeResponseAmino;
-}
-export interface MsgAddToGaugeResponseSDKType {}
-function createBaseMsgCreateGauge(): MsgCreateGauge {
-  return {
-    isPerpetual: false,
-    owner: "",
-    distributeTo: QueryCondition.fromPartial({}),
-    coins: [],
-    startTime: new Date(),
-    numEpochsPaidOver: BigInt(0)
-  };
-}
-export const MsgCreateGauge = {
-  typeUrl: "/osmosis.incentives.MsgCreateGauge",
-  aminoType: "osmosis/incentives/create-gauge",
-  encode(message: MsgCreateGauge, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.isPerpetual === true) {
-      writer.uint32(8).bool(message.isPerpetual);
-    }
-    if (message.owner !== "") {
-      writer.uint32(18).string(message.owner);
-    }
-    if (message.distributeTo !== undefined) {
-      QueryCondition.encode(message.distributeTo, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.numEpochsPaidOver !== BigInt(0)) {
-      writer.uint32(48).uint64(message.numEpochsPaidOver);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGauge {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGauge();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.isPerpetual = reader.bool();
-          break;
-        case 2:
-          message.owner = reader.string();
-          break;
-        case 3:
-          message.distributeTo = QueryCondition.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.numEpochsPaidOver = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateGauge {
-    return {
-      isPerpetual: isSet(object.isPerpetual) ? Boolean(object.isPerpetual) : false,
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      distributeTo: isSet(object.distributeTo) ? QueryCondition.fromJSON(object.distributeTo) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : [],
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined,
-      numEpochsPaidOver: isSet(object.numEpochsPaidOver) ? BigInt(object.numEpochsPaidOver.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgCreateGauge): unknown {
-    const obj: any = {};
-    message.isPerpetual !== undefined && (obj.isPerpetual = message.isPerpetual);
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.distributeTo !== undefined && (obj.distributeTo = message.distributeTo ? QueryCondition.toJSON(message.distributeTo) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    message.numEpochsPaidOver !== undefined && (obj.numEpochsPaidOver = (message.numEpochsPaidOver || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateGauge>): MsgCreateGauge {
-    const message = createBaseMsgCreateGauge();
-    message.isPerpetual = object.isPerpetual ?? false;
-    message.owner = object.owner ?? "";
-    message.distributeTo = object.distributeTo !== undefined && object.distributeTo !== null ? QueryCondition.fromPartial(object.distributeTo) : undefined;
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    message.startTime = object.startTime ?? undefined;
-    message.numEpochsPaidOver = object.numEpochsPaidOver !== undefined && object.numEpochsPaidOver !== null ? BigInt(object.numEpochsPaidOver.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgCreateGaugeSDKType): MsgCreateGauge {
-    return {
-      isPerpetual: object?.is_perpetual,
-      owner: object?.owner,
-      distributeTo: object.distribute_to ? QueryCondition.fromSDK(object.distribute_to) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : [],
-      startTime: object.start_time ?? undefined,
-      numEpochsPaidOver: object?.num_epochs_paid_over
-    };
-  },
-  toSDK(message: MsgCreateGauge): MsgCreateGaugeSDKType {
-    const obj: any = {};
-    obj.is_perpetual = message.isPerpetual;
-    obj.owner = message.owner;
-    message.distributeTo !== undefined && (obj.distribute_to = message.distributeTo ? QueryCondition.toSDK(message.distributeTo) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    obj.num_epochs_paid_over = message.numEpochsPaidOver;
-    return obj;
-  },
-  fromAmino(object: MsgCreateGaugeAmino): MsgCreateGauge {
-    return {
-      isPerpetual: object.is_perpetual,
-      owner: object.owner,
-      distributeTo: object?.distribute_to ? QueryCondition.fromAmino(object.distribute_to) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : [],
-      startTime: object.start_time,
-      numEpochsPaidOver: BigInt(object.num_epochs_paid_over)
-    };
-  },
-  toAmino(message: MsgCreateGauge): MsgCreateGaugeAmino {
-    const obj: any = {};
-    obj.is_perpetual = message.isPerpetual;
-    obj.owner = message.owner;
-    obj.distribute_to = message.distributeTo ? QueryCondition.toAmino(message.distributeTo) : undefined;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    obj.start_time = message.startTime;
-    obj.num_epochs_paid_over = message.numEpochsPaidOver ? message.numEpochsPaidOver.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGaugeAminoMsg): MsgCreateGauge {
-    return MsgCreateGauge.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGauge): MsgCreateGaugeAminoMsg {
-    return {
-      type: "osmosis/incentives/create-gauge",
-      value: MsgCreateGauge.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGaugeProtoMsg): MsgCreateGauge {
-    return MsgCreateGauge.decode(message.value);
-  },
-  toProto(message: MsgCreateGauge): Uint8Array {
-    return MsgCreateGauge.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGauge): MsgCreateGaugeProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.MsgCreateGauge",
-      value: MsgCreateGauge.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateGaugeResponse(): MsgCreateGaugeResponse {
-  return {};
-}
-export const MsgCreateGaugeResponse = {
-  typeUrl: "/osmosis.incentives.MsgCreateGaugeResponse",
-  aminoType: "osmosis/incentives/create-gauge-response",
-  encode(_: MsgCreateGaugeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateGaugeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateGaugeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgCreateGaugeResponse {
-    return {};
-  },
-  toJSON(_: MsgCreateGaugeResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgCreateGaugeResponse>): MsgCreateGaugeResponse {
-    const message = createBaseMsgCreateGaugeResponse();
-    return message;
-  },
-  fromSDK(_: MsgCreateGaugeResponseSDKType): MsgCreateGaugeResponse {
-    return {};
-  },
-  toSDK(_: MsgCreateGaugeResponse): MsgCreateGaugeResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgCreateGaugeResponseAmino): MsgCreateGaugeResponse {
-    return {};
-  },
-  toAmino(_: MsgCreateGaugeResponse): MsgCreateGaugeResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateGaugeResponseAminoMsg): MsgCreateGaugeResponse {
-    return MsgCreateGaugeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateGaugeResponse): MsgCreateGaugeResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/create-gauge-response",
-      value: MsgCreateGaugeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateGaugeResponseProtoMsg): MsgCreateGaugeResponse {
-    return MsgCreateGaugeResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateGaugeResponse): Uint8Array {
-    return MsgCreateGaugeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateGaugeResponse): MsgCreateGaugeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.MsgCreateGaugeResponse",
-      value: MsgCreateGaugeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgAddToGauge(): MsgAddToGauge {
-  return {
-    owner: "",
-    gaugeId: BigInt(0),
-    rewards: []
-  };
-}
-export const MsgAddToGauge = {
-  typeUrl: "/osmosis.incentives.MsgAddToGauge",
-  aminoType: "osmosis/incentives/add-to-gauge",
-  encode(message: MsgAddToGauge, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.gaugeId);
-    }
-    for (const v of message.rewards) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgAddToGauge {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgAddToGauge();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.gaugeId = reader.uint64();
-          break;
-        case 3:
-          message.rewards.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgAddToGauge {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0),
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgAddToGauge): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgAddToGauge>): MsgAddToGauge {
-    const message = createBaseMsgAddToGauge();
-    message.owner = object.owner ?? "";
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    message.rewards = object.rewards?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgAddToGaugeSDKType): MsgAddToGauge {
-    return {
-      owner: object?.owner,
-      gaugeId: object?.gauge_id,
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgAddToGauge): MsgAddToGaugeSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.gauge_id = message.gaugeId;
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgAddToGaugeAmino): MsgAddToGauge {
-    return {
-      owner: object.owner,
-      gaugeId: BigInt(object.gauge_id),
-      rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgAddToGauge): MsgAddToGaugeAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    if (message.rewards) {
-      obj.rewards = message.rewards.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.rewards = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgAddToGaugeAminoMsg): MsgAddToGauge {
-    return MsgAddToGauge.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgAddToGauge): MsgAddToGaugeAminoMsg {
-    return {
-      type: "osmosis/incentives/add-to-gauge",
-      value: MsgAddToGauge.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgAddToGaugeProtoMsg): MsgAddToGauge {
-    return MsgAddToGauge.decode(message.value);
-  },
-  toProto(message: MsgAddToGauge): Uint8Array {
-    return MsgAddToGauge.encode(message).finish();
-  },
-  toProtoMsg(message: MsgAddToGauge): MsgAddToGaugeProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.MsgAddToGauge",
-      value: MsgAddToGauge.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgAddToGaugeResponse(): MsgAddToGaugeResponse {
-  return {};
-}
-export const MsgAddToGaugeResponse = {
-  typeUrl: "/osmosis.incentives.MsgAddToGaugeResponse",
-  aminoType: "osmosis/incentives/add-to-gauge-response",
-  encode(_: MsgAddToGaugeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgAddToGaugeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgAddToGaugeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgAddToGaugeResponse {
-    return {};
-  },
-  toJSON(_: MsgAddToGaugeResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgAddToGaugeResponse>): MsgAddToGaugeResponse {
-    const message = createBaseMsgAddToGaugeResponse();
-    return message;
-  },
-  fromSDK(_: MsgAddToGaugeResponseSDKType): MsgAddToGaugeResponse {
-    return {};
-  },
-  toSDK(_: MsgAddToGaugeResponse): MsgAddToGaugeResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgAddToGaugeResponseAmino): MsgAddToGaugeResponse {
-    return {};
-  },
-  toAmino(_: MsgAddToGaugeResponse): MsgAddToGaugeResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgAddToGaugeResponseAminoMsg): MsgAddToGaugeResponse {
-    return MsgAddToGaugeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgAddToGaugeResponse): MsgAddToGaugeResponseAminoMsg {
-    return {
-      type: "osmosis/incentives/add-to-gauge-response",
-      value: MsgAddToGaugeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgAddToGaugeResponseProtoMsg): MsgAddToGaugeResponse {
-    return MsgAddToGaugeResponse.decode(message.value);
-  },
-  toProto(message: MsgAddToGaugeResponse): Uint8Array {
-    return MsgAddToGaugeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgAddToGaugeResponse): MsgAddToGaugeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.incentives.MsgAddToGaugeResponse",
-      value: MsgAddToGaugeResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/genesis.ts b/examples/injective/src/codegen/osmosis/lockup/genesis.ts
deleted file mode 100644
index dda21fb5..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/genesis.ts
+++ /dev/null
@@ -1,169 +0,0 @@
-import { PeriodLock, PeriodLockAmino, PeriodLockSDKType, SyntheticLock, SyntheticLockAmino, SyntheticLockSDKType } from "./lock";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/** GenesisState defines the lockup module's genesis state. */
-export interface GenesisState {
-  lastLockId: bigint;
-  locks: PeriodLock[];
-  syntheticLocks: SyntheticLock[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.lockup.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the lockup module's genesis state. */
-export interface GenesisStateAmino {
-  last_lock_id: string;
-  locks: PeriodLockAmino[];
-  synthetic_locks: SyntheticLockAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/lockup/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the lockup module's genesis state. */
-export interface GenesisStateSDKType {
-  last_lock_id: bigint;
-  locks: PeriodLockSDKType[];
-  synthetic_locks: SyntheticLockSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    lastLockId: BigInt(0),
-    locks: [],
-    syntheticLocks: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.lockup.GenesisState",
-  aminoType: "osmosis/lockup/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lastLockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.lastLockId);
-    }
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.syntheticLocks) {
-      SyntheticLock.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lastLockId = reader.uint64();
-          break;
-        case 2:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.syntheticLocks.push(SyntheticLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      lastLockId: isSet(object.lastLockId) ? BigInt(object.lastLockId.toString()) : BigInt(0),
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : [],
-      syntheticLocks: Array.isArray(object?.syntheticLocks) ? object.syntheticLocks.map((e: any) => SyntheticLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.lastLockId !== undefined && (obj.lastLockId = (message.lastLockId || BigInt(0)).toString());
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    if (message.syntheticLocks) {
-      obj.syntheticLocks = message.syntheticLocks.map(e => e ? SyntheticLock.toJSON(e) : undefined);
-    } else {
-      obj.syntheticLocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.lastLockId = object.lastLockId !== undefined && object.lastLockId !== null ? BigInt(object.lastLockId.toString()) : BigInt(0);
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    message.syntheticLocks = object.syntheticLocks?.map(e => SyntheticLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      lastLockId: object?.last_lock_id,
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : [],
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.last_lock_id = message.lastLockId;
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toSDK(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      lastLockId: BigInt(object.last_lock_id),
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : [],
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.last_lock_id = message.lastLockId ? message.lastLockId.toString() : undefined;
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toAmino(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/lockup/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/lock.ts b/examples/injective/src/codegen/osmosis/lockup/lock.ts
deleted file mode 100644
index 939d3d80..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/lock.ts
+++ /dev/null
@@ -1,686 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../helpers";
-/**
- * LockQueryType defines the type of the lock query that can
- * either be by duration or start time of the lock.
- */
-export enum LockQueryType {
-  ByDuration = 0,
-  ByTime = 1,
-  UNRECOGNIZED = -1,
-}
-export const LockQueryTypeSDKType = LockQueryType;
-export const LockQueryTypeAmino = LockQueryType;
-export function lockQueryTypeFromJSON(object: any): LockQueryType {
-  switch (object) {
-    case 0:
-    case "ByDuration":
-      return LockQueryType.ByDuration;
-    case 1:
-    case "ByTime":
-      return LockQueryType.ByTime;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return LockQueryType.UNRECOGNIZED;
-  }
-}
-export function lockQueryTypeToJSON(object: LockQueryType): string {
-  switch (object) {
-    case LockQueryType.ByDuration:
-      return "ByDuration";
-    case LockQueryType.ByTime:
-      return "ByTime";
-    case LockQueryType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/**
- * PeriodLock is a single lock unit by period defined by the x/lockup module.
- * It's a record of a locked coin at a specific time. It stores owner, duration,
- * unlock time and the number of coins locked. A state of a period lock is
- * created upon lock creation, and deleted once the lock has been matured after
- * the `duration` has passed since unbonding started.
- */
-export interface PeriodLock {
-  /**
-   * ID is the unique id of the lock.
-   * The ID of the lock is decided upon lock creation, incrementing by 1 for
-   * every lock.
-   */
-  ID: bigint;
-  /**
-   * Owner is the account address of the lock owner.
-   * Only the owner can modify the state of the lock.
-   */
-  owner: string;
-  /**
-   * Duration is the time needed for a lock to mature after unlocking has
-   * started.
-   */
-  duration: Duration | undefined;
-  /**
-   * EndTime refers to the time at which the lock would mature and get deleted.
-   * This value is first initialized when an unlock has started for the lock,
-   * end time being block time + duration.
-   */
-  endTime: Date | undefined;
-  /** Coins are the tokens locked within the lock, kept in the module account. */
-  coins: Coin[];
-}
-export interface PeriodLockProtoMsg {
-  typeUrl: "/osmosis.lockup.PeriodLock";
-  value: Uint8Array;
-}
-/**
- * PeriodLock is a single lock unit by period defined by the x/lockup module.
- * It's a record of a locked coin at a specific time. It stores owner, duration,
- * unlock time and the number of coins locked. A state of a period lock is
- * created upon lock creation, and deleted once the lock has been matured after
- * the `duration` has passed since unbonding started.
- */
-export interface PeriodLockAmino {
-  /**
-   * ID is the unique id of the lock.
-   * The ID of the lock is decided upon lock creation, incrementing by 1 for
-   * every lock.
-   */
-  ID: string;
-  /**
-   * Owner is the account address of the lock owner.
-   * Only the owner can modify the state of the lock.
-   */
-  owner: string;
-  /**
-   * Duration is the time needed for a lock to mature after unlocking has
-   * started.
-   */
-  duration?: DurationAmino | undefined;
-  /**
-   * EndTime refers to the time at which the lock would mature and get deleted.
-   * This value is first initialized when an unlock has started for the lock,
-   * end time being block time + duration.
-   */
-  end_time?: Date | undefined;
-  /** Coins are the tokens locked within the lock, kept in the module account. */
-  coins: CoinAmino[];
-}
-export interface PeriodLockAminoMsg {
-  type: "osmosis/lockup/period-lock";
-  value: PeriodLockAmino;
-}
-/**
- * PeriodLock is a single lock unit by period defined by the x/lockup module.
- * It's a record of a locked coin at a specific time. It stores owner, duration,
- * unlock time and the number of coins locked. A state of a period lock is
- * created upon lock creation, and deleted once the lock has been matured after
- * the `duration` has passed since unbonding started.
- */
-export interface PeriodLockSDKType {
-  ID: bigint;
-  owner: string;
-  duration: DurationSDKType | undefined;
-  end_time: Date | undefined;
-  coins: CoinSDKType[];
-}
-/**
- * QueryCondition is a struct used for querying locks upon different conditions.
- * Duration field and timestamp fields could be optional, depending on the
- * LockQueryType.
- */
-export interface QueryCondition {
-  /** LockQueryType is a type of lock query, ByLockDuration | ByLockTime */
-  lockQueryType: LockQueryType;
-  /** Denom represents the token denomination we are looking to lock up */
-  denom: string;
-  /**
-   * Duration is used to query locks with longer duration than the specified
-   * duration. Duration field must not be nil when the lock query type is
-   * `ByLockDuration`.
-   */
-  duration: Duration | undefined;
-  /**
-   * Timestamp is used by locks started before the specified duration.
-   * Timestamp field must not be nil when the lock query type is `ByLockTime`.
-   * Querying locks with timestamp is currently not implemented.
-   */
-  timestamp: Date | undefined;
-}
-export interface QueryConditionProtoMsg {
-  typeUrl: "/osmosis.lockup.QueryCondition";
-  value: Uint8Array;
-}
-/**
- * QueryCondition is a struct used for querying locks upon different conditions.
- * Duration field and timestamp fields could be optional, depending on the
- * LockQueryType.
- */
-export interface QueryConditionAmino {
-  /** LockQueryType is a type of lock query, ByLockDuration | ByLockTime */
-  lock_query_type: LockQueryType;
-  /** Denom represents the token denomination we are looking to lock up */
-  denom: string;
-  /**
-   * Duration is used to query locks with longer duration than the specified
-   * duration. Duration field must not be nil when the lock query type is
-   * `ByLockDuration`.
-   */
-  duration?: DurationAmino | undefined;
-  /**
-   * Timestamp is used by locks started before the specified duration.
-   * Timestamp field must not be nil when the lock query type is `ByLockTime`.
-   * Querying locks with timestamp is currently not implemented.
-   */
-  timestamp?: Date | undefined;
-}
-export interface QueryConditionAminoMsg {
-  type: "osmosis/lockup/query-condition";
-  value: QueryConditionAmino;
-}
-/**
- * QueryCondition is a struct used for querying locks upon different conditions.
- * Duration field and timestamp fields could be optional, depending on the
- * LockQueryType.
- */
-export interface QueryConditionSDKType {
-  lock_query_type: LockQueryType;
-  denom: string;
-  duration: DurationSDKType | undefined;
-  timestamp: Date | undefined;
-}
-/**
- * SyntheticLock is creating virtual lockup where new denom is combination of
- * original denom and synthetic suffix. At the time of synthetic lockup creation
- * and deletion, accumulation store is also being updated and on querier side,
- * they can query as freely as native lockup.
- */
-export interface SyntheticLock {
-  /**
-   * Underlying Lock ID is the underlying native lock's id for this synthetic
-   * lockup. A synthetic lock MUST have an underlying lock.
-   */
-  underlyingLockId: bigint;
-  /**
-   * SynthDenom is the synthetic denom that is a combination of
-   * gamm share + bonding status + validator address.
-   */
-  synthDenom: string;
-  /**
-   * used for unbonding synthetic lockups, for active synthetic lockups, this
-   * value is set to uninitialized value
-   */
-  endTime: Date | undefined;
-  /**
-   * Duration is the duration for a synthetic lock to mature
-   * at the point of unbonding has started.
-   */
-  duration: Duration | undefined;
-}
-export interface SyntheticLockProtoMsg {
-  typeUrl: "/osmosis.lockup.SyntheticLock";
-  value: Uint8Array;
-}
-/**
- * SyntheticLock is creating virtual lockup where new denom is combination of
- * original denom and synthetic suffix. At the time of synthetic lockup creation
- * and deletion, accumulation store is also being updated and on querier side,
- * they can query as freely as native lockup.
- */
-export interface SyntheticLockAmino {
-  /**
-   * Underlying Lock ID is the underlying native lock's id for this synthetic
-   * lockup. A synthetic lock MUST have an underlying lock.
-   */
-  underlying_lock_id: string;
-  /**
-   * SynthDenom is the synthetic denom that is a combination of
-   * gamm share + bonding status + validator address.
-   */
-  synth_denom: string;
-  /**
-   * used for unbonding synthetic lockups, for active synthetic lockups, this
-   * value is set to uninitialized value
-   */
-  end_time?: Date | undefined;
-  /**
-   * Duration is the duration for a synthetic lock to mature
-   * at the point of unbonding has started.
-   */
-  duration?: DurationAmino | undefined;
-}
-export interface SyntheticLockAminoMsg {
-  type: "osmosis/lockup/synthetic-lock";
-  value: SyntheticLockAmino;
-}
-/**
- * SyntheticLock is creating virtual lockup where new denom is combination of
- * original denom and synthetic suffix. At the time of synthetic lockup creation
- * and deletion, accumulation store is also being updated and on querier side,
- * they can query as freely as native lockup.
- */
-export interface SyntheticLockSDKType {
-  underlying_lock_id: bigint;
-  synth_denom: string;
-  end_time: Date | undefined;
-  duration: DurationSDKType | undefined;
-}
-function createBasePeriodLock(): PeriodLock {
-  return {
-    ID: BigInt(0),
-    owner: "",
-    duration: Duration.fromPartial({}),
-    endTime: new Date(),
-    coins: []
-  };
-}
-export const PeriodLock = {
-  typeUrl: "/osmosis.lockup.PeriodLock",
-  aminoType: "osmosis/lockup/period-lock",
-  encode(message: PeriodLock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(8).uint64(message.ID);
-    }
-    if (message.owner !== "") {
-      writer.uint32(18).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.endTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.endTime), writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PeriodLock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeriodLock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ID = reader.uint64();
-          break;
-        case 2:
-          message.owner = reader.string();
-          break;
-        case 3:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.endTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PeriodLock {
-    return {
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0),
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      endTime: isSet(object.endTime) ? new Date(object.endTime) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: PeriodLock): unknown {
-    const obj: any = {};
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    message.endTime !== undefined && (obj.endTime = message.endTime.toISOString());
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PeriodLock>): PeriodLock {
-    const message = createBasePeriodLock();
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.endTime = object.endTime ?? undefined;
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: PeriodLockSDKType): PeriodLock {
-    return {
-      ID: object?.ID,
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      endTime: object.end_time ?? undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: PeriodLock): PeriodLockSDKType {
-    const obj: any = {};
-    obj.ID = message.ID;
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    message.endTime !== undefined && (obj.end_time = message.endTime ?? undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PeriodLockAmino): PeriodLock {
-    return {
-      ID: BigInt(object.ID),
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      endTime: object.end_time,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: PeriodLock): PeriodLockAmino {
-    const obj: any = {};
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    obj.end_time = message.endTime;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PeriodLockAminoMsg): PeriodLock {
-    return PeriodLock.fromAmino(object.value);
-  },
-  toAminoMsg(message: PeriodLock): PeriodLockAminoMsg {
-    return {
-      type: "osmosis/lockup/period-lock",
-      value: PeriodLock.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PeriodLockProtoMsg): PeriodLock {
-    return PeriodLock.decode(message.value);
-  },
-  toProto(message: PeriodLock): Uint8Array {
-    return PeriodLock.encode(message).finish();
-  },
-  toProtoMsg(message: PeriodLock): PeriodLockProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.PeriodLock",
-      value: PeriodLock.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryCondition(): QueryCondition {
-  return {
-    lockQueryType: 0,
-    denom: "",
-    duration: Duration.fromPartial({}),
-    timestamp: new Date()
-  };
-}
-export const QueryCondition = {
-  typeUrl: "/osmosis.lockup.QueryCondition",
-  aminoType: "osmosis/lockup/query-condition",
-  encode(message: QueryCondition, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lockQueryType !== 0) {
-      writer.uint32(8).int32(message.lockQueryType);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryCondition {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryCondition();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockQueryType = (reader.int32() as any);
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        case 3:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryCondition {
-    return {
-      lockQueryType: isSet(object.lockQueryType) ? lockQueryTypeFromJSON(object.lockQueryType) : -1,
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: QueryCondition): unknown {
-    const obj: any = {};
-    message.lockQueryType !== undefined && (obj.lockQueryType = lockQueryTypeToJSON(message.lockQueryType));
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryCondition>): QueryCondition {
-    const message = createBaseQueryCondition();
-    message.lockQueryType = object.lockQueryType ?? 0;
-    message.denom = object.denom ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: QueryConditionSDKType): QueryCondition {
-    return {
-      lockQueryType: isSet(object.lock_query_type) ? lockQueryTypeFromJSON(object.lock_query_type) : -1,
-      denom: object?.denom,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: QueryCondition): QueryConditionSDKType {
-    const obj: any = {};
-    message.lockQueryType !== undefined && (obj.lock_query_type = lockQueryTypeToJSON(message.lockQueryType));
-    obj.denom = message.denom;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: QueryConditionAmino): QueryCondition {
-    return {
-      lockQueryType: isSet(object.lock_query_type) ? lockQueryTypeFromJSON(object.lock_query_type) : -1,
-      denom: object.denom,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: QueryCondition): QueryConditionAmino {
-    const obj: any = {};
-    obj.lock_query_type = message.lockQueryType;
-    obj.denom = message.denom;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: QueryConditionAminoMsg): QueryCondition {
-    return QueryCondition.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryCondition): QueryConditionAminoMsg {
-    return {
-      type: "osmosis/lockup/query-condition",
-      value: QueryCondition.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryConditionProtoMsg): QueryCondition {
-    return QueryCondition.decode(message.value);
-  },
-  toProto(message: QueryCondition): Uint8Array {
-    return QueryCondition.encode(message).finish();
-  },
-  toProtoMsg(message: QueryCondition): QueryConditionProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.QueryCondition",
-      value: QueryCondition.encode(message).finish()
-    };
-  }
-};
-function createBaseSyntheticLock(): SyntheticLock {
-  return {
-    underlyingLockId: BigInt(0),
-    synthDenom: "",
-    endTime: new Date(),
-    duration: Duration.fromPartial({})
-  };
-}
-export const SyntheticLock = {
-  typeUrl: "/osmosis.lockup.SyntheticLock",
-  aminoType: "osmosis/lockup/synthetic-lock",
-  encode(message: SyntheticLock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.underlyingLockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.underlyingLockId);
-    }
-    if (message.synthDenom !== "") {
-      writer.uint32(18).string(message.synthDenom);
-    }
-    if (message.endTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.endTime), writer.uint32(26).fork()).ldelim();
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SyntheticLock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSyntheticLock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.underlyingLockId = reader.uint64();
-          break;
-        case 2:
-          message.synthDenom = reader.string();
-          break;
-        case 3:
-          message.endTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SyntheticLock {
-    return {
-      underlyingLockId: isSet(object.underlyingLockId) ? BigInt(object.underlyingLockId.toString()) : BigInt(0),
-      synthDenom: isSet(object.synthDenom) ? String(object.synthDenom) : "",
-      endTime: isSet(object.endTime) ? new Date(object.endTime) : undefined,
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: SyntheticLock): unknown {
-    const obj: any = {};
-    message.underlyingLockId !== undefined && (obj.underlyingLockId = (message.underlyingLockId || BigInt(0)).toString());
-    message.synthDenom !== undefined && (obj.synthDenom = message.synthDenom);
-    message.endTime !== undefined && (obj.endTime = message.endTime.toISOString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SyntheticLock>): SyntheticLock {
-    const message = createBaseSyntheticLock();
-    message.underlyingLockId = object.underlyingLockId !== undefined && object.underlyingLockId !== null ? BigInt(object.underlyingLockId.toString()) : BigInt(0);
-    message.synthDenom = object.synthDenom ?? "";
-    message.endTime = object.endTime ?? undefined;
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: SyntheticLockSDKType): SyntheticLock {
-    return {
-      underlyingLockId: object?.underlying_lock_id,
-      synthDenom: object?.synth_denom,
-      endTime: object.end_time ?? undefined,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: SyntheticLock): SyntheticLockSDKType {
-    const obj: any = {};
-    obj.underlying_lock_id = message.underlyingLockId;
-    obj.synth_denom = message.synthDenom;
-    message.endTime !== undefined && (obj.end_time = message.endTime ?? undefined);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: SyntheticLockAmino): SyntheticLock {
-    return {
-      underlyingLockId: BigInt(object.underlying_lock_id),
-      synthDenom: object.synth_denom,
-      endTime: object.end_time,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: SyntheticLock): SyntheticLockAmino {
-    const obj: any = {};
-    obj.underlying_lock_id = message.underlyingLockId ? message.underlyingLockId.toString() : undefined;
-    obj.synth_denom = message.synthDenom;
-    obj.end_time = message.endTime;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SyntheticLockAminoMsg): SyntheticLock {
-    return SyntheticLock.fromAmino(object.value);
-  },
-  toAminoMsg(message: SyntheticLock): SyntheticLockAminoMsg {
-    return {
-      type: "osmosis/lockup/synthetic-lock",
-      value: SyntheticLock.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SyntheticLockProtoMsg): SyntheticLock {
-    return SyntheticLock.decode(message.value);
-  },
-  toProto(message: SyntheticLock): Uint8Array {
-    return SyntheticLock.encode(message).finish();
-  },
-  toProtoMsg(message: SyntheticLock): SyntheticLockProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.SyntheticLock",
-      value: SyntheticLock.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/params.ts b/examples/injective/src/codegen/osmosis/lockup/params.ts
deleted file mode 100644
index f7392342..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/params.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial } from "../../helpers";
-export interface Params {
-  forceUnlockAllowedAddresses: string[];
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.lockup.Params";
-  value: Uint8Array;
-}
-export interface ParamsAmino {
-  force_unlock_allowed_addresses: string[];
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/lockup/params";
-  value: ParamsAmino;
-}
-export interface ParamsSDKType {
-  force_unlock_allowed_addresses: string[];
-}
-function createBaseParams(): Params {
-  return {
-    forceUnlockAllowedAddresses: []
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.lockup.Params",
-  aminoType: "osmosis/lockup/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.forceUnlockAllowedAddresses) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.forceUnlockAllowedAddresses.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      forceUnlockAllowedAddresses: Array.isArray(object?.forceUnlockAllowedAddresses) ? object.forceUnlockAllowedAddresses.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    if (message.forceUnlockAllowedAddresses) {
-      obj.forceUnlockAllowedAddresses = message.forceUnlockAllowedAddresses.map(e => e);
-    } else {
-      obj.forceUnlockAllowedAddresses = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.forceUnlockAllowedAddresses = object.forceUnlockAllowedAddresses?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      forceUnlockAllowedAddresses: Array.isArray(object?.force_unlock_allowed_addresses) ? object.force_unlock_allowed_addresses.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    if (message.forceUnlockAllowedAddresses) {
-      obj.force_unlock_allowed_addresses = message.forceUnlockAllowedAddresses.map(e => e);
-    } else {
-      obj.force_unlock_allowed_addresses = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      forceUnlockAllowedAddresses: Array.isArray(object?.force_unlock_allowed_addresses) ? object.force_unlock_allowed_addresses.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    if (message.forceUnlockAllowedAddresses) {
-      obj.force_unlock_allowed_addresses = message.forceUnlockAllowedAddresses.map(e => e);
-    } else {
-      obj.force_unlock_allowed_addresses = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/lockup/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/lockup/query.rpc.Query.ts
deleted file mode 100644
index ce89fc2c..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/query.rpc.Query.ts
+++ /dev/null
@@ -1,591 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../mobx";
-import { ModuleBalanceRequest, ModuleBalanceResponse, ModuleLockedAmountRequest, ModuleLockedAmountResponse, AccountUnlockableCoinsRequest, AccountUnlockableCoinsResponse, AccountUnlockingCoinsRequest, AccountUnlockingCoinsResponse, AccountLockedCoinsRequest, AccountLockedCoinsResponse, AccountLockedPastTimeRequest, AccountLockedPastTimeResponse, AccountLockedPastTimeNotUnlockingOnlyRequest, AccountLockedPastTimeNotUnlockingOnlyResponse, AccountUnlockedBeforeTimeRequest, AccountUnlockedBeforeTimeResponse, AccountLockedPastTimeDenomRequest, AccountLockedPastTimeDenomResponse, LockedDenomRequest, LockedDenomResponse, LockedRequest, LockedResponse, SyntheticLockupsByLockupIDRequest, SyntheticLockupsByLockupIDResponse, AccountLockedLongerDurationRequest, AccountLockedLongerDurationResponse, AccountLockedDurationRequest, AccountLockedDurationResponse, AccountLockedLongerDurationNotUnlockingOnlyRequest, AccountLockedLongerDurationNotUnlockingOnlyResponse, AccountLockedLongerDurationDenomRequest, AccountLockedLongerDurationDenomResponse, QueryParamsRequest, QueryParamsResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Return full balance of the module */
-  moduleBalance(request?: ModuleBalanceRequest): Promise<ModuleBalanceResponse>;
-  /** Return locked balance of the module */
-  moduleLockedAmount(request?: ModuleLockedAmountRequest): Promise<ModuleLockedAmountResponse>;
-  /** Returns unlockable coins which are not withdrawn yet */
-  accountUnlockableCoins(request: AccountUnlockableCoinsRequest): Promise<AccountUnlockableCoinsResponse>;
-  /** Returns unlocking coins */
-  accountUnlockingCoins(request: AccountUnlockingCoinsRequest): Promise<AccountUnlockingCoinsResponse>;
-  /** Return a locked coins that can't be withdrawn */
-  accountLockedCoins(request: AccountLockedCoinsRequest): Promise<AccountLockedCoinsResponse>;
-  /** Returns locked records of an account with unlock time beyond timestamp */
-  accountLockedPastTime(request: AccountLockedPastTimeRequest): Promise<AccountLockedPastTimeResponse>;
-  /**
-   * Returns locked records of an account with unlock time beyond timestamp
-   * excluding tokens started unlocking
-   */
-  accountLockedPastTimeNotUnlockingOnly(request: AccountLockedPastTimeNotUnlockingOnlyRequest): Promise<AccountLockedPastTimeNotUnlockingOnlyResponse>;
-  /** Returns unlocked records with unlock time before timestamp */
-  accountUnlockedBeforeTime(request: AccountUnlockedBeforeTimeRequest): Promise<AccountUnlockedBeforeTimeResponse>;
-  /** Returns lock records by address, timestamp, denom */
-  accountLockedPastTimeDenom(request: AccountLockedPastTimeDenomRequest): Promise<AccountLockedPastTimeDenomResponse>;
-  /** Returns total locked per denom with longer past given time */
-  lockedDenom(request: LockedDenomRequest): Promise<LockedDenomResponse>;
-  /** Returns lock record by id */
-  lockedByID(request: LockedRequest): Promise<LockedResponse>;
-  /** Returns synthetic lockups by native lockup id */
-  syntheticLockupsByLockupID(request: SyntheticLockupsByLockupIDRequest): Promise<SyntheticLockupsByLockupIDResponse>;
-  /** Returns account locked records with longer duration */
-  accountLockedLongerDuration(request: AccountLockedLongerDurationRequest): Promise<AccountLockedLongerDurationResponse>;
-  /** Returns account locked records with a specific duration */
-  accountLockedDuration(request: AccountLockedDurationRequest): Promise<AccountLockedDurationResponse>;
-  /**
-   * Returns account locked records with longer duration excluding tokens
-   * started unlocking
-   */
-  accountLockedLongerDurationNotUnlockingOnly(request: AccountLockedLongerDurationNotUnlockingOnlyRequest): Promise<AccountLockedLongerDurationNotUnlockingOnlyResponse>;
-  /** Returns account's locked records for a denom with longer duration */
-  accountLockedLongerDurationDenom(request: AccountLockedLongerDurationDenomRequest): Promise<AccountLockedLongerDurationDenomResponse>;
-  /** Params returns lockup params. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.moduleBalance = this.moduleBalance.bind(this);
-    this.moduleLockedAmount = this.moduleLockedAmount.bind(this);
-    this.accountUnlockableCoins = this.accountUnlockableCoins.bind(this);
-    this.accountUnlockingCoins = this.accountUnlockingCoins.bind(this);
-    this.accountLockedCoins = this.accountLockedCoins.bind(this);
-    this.accountLockedPastTime = this.accountLockedPastTime.bind(this);
-    this.accountLockedPastTimeNotUnlockingOnly = this.accountLockedPastTimeNotUnlockingOnly.bind(this);
-    this.accountUnlockedBeforeTime = this.accountUnlockedBeforeTime.bind(this);
-    this.accountLockedPastTimeDenom = this.accountLockedPastTimeDenom.bind(this);
-    this.lockedDenom = this.lockedDenom.bind(this);
-    this.lockedByID = this.lockedByID.bind(this);
-    this.syntheticLockupsByLockupID = this.syntheticLockupsByLockupID.bind(this);
-    this.accountLockedLongerDuration = this.accountLockedLongerDuration.bind(this);
-    this.accountLockedDuration = this.accountLockedDuration.bind(this);
-    this.accountLockedLongerDurationNotUnlockingOnly = this.accountLockedLongerDurationNotUnlockingOnly.bind(this);
-    this.accountLockedLongerDurationDenom = this.accountLockedLongerDurationDenom.bind(this);
-    this.params = this.params.bind(this);
-  }
-  moduleBalance(request: ModuleBalanceRequest = {}): Promise<ModuleBalanceResponse> {
-    const data = ModuleBalanceRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "ModuleBalance", data);
-    return promise.then(data => ModuleBalanceResponse.decode(new BinaryReader(data)));
-  }
-  moduleLockedAmount(request: ModuleLockedAmountRequest = {}): Promise<ModuleLockedAmountResponse> {
-    const data = ModuleLockedAmountRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "ModuleLockedAmount", data);
-    return promise.then(data => ModuleLockedAmountResponse.decode(new BinaryReader(data)));
-  }
-  accountUnlockableCoins(request: AccountUnlockableCoinsRequest): Promise<AccountUnlockableCoinsResponse> {
-    const data = AccountUnlockableCoinsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountUnlockableCoins", data);
-    return promise.then(data => AccountUnlockableCoinsResponse.decode(new BinaryReader(data)));
-  }
-  accountUnlockingCoins(request: AccountUnlockingCoinsRequest): Promise<AccountUnlockingCoinsResponse> {
-    const data = AccountUnlockingCoinsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountUnlockingCoins", data);
-    return promise.then(data => AccountUnlockingCoinsResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedCoins(request: AccountLockedCoinsRequest): Promise<AccountLockedCoinsResponse> {
-    const data = AccountLockedCoinsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedCoins", data);
-    return promise.then(data => AccountLockedCoinsResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedPastTime(request: AccountLockedPastTimeRequest): Promise<AccountLockedPastTimeResponse> {
-    const data = AccountLockedPastTimeRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedPastTime", data);
-    return promise.then(data => AccountLockedPastTimeResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedPastTimeNotUnlockingOnly(request: AccountLockedPastTimeNotUnlockingOnlyRequest): Promise<AccountLockedPastTimeNotUnlockingOnlyResponse> {
-    const data = AccountLockedPastTimeNotUnlockingOnlyRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedPastTimeNotUnlockingOnly", data);
-    return promise.then(data => AccountLockedPastTimeNotUnlockingOnlyResponse.decode(new BinaryReader(data)));
-  }
-  accountUnlockedBeforeTime(request: AccountUnlockedBeforeTimeRequest): Promise<AccountUnlockedBeforeTimeResponse> {
-    const data = AccountUnlockedBeforeTimeRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountUnlockedBeforeTime", data);
-    return promise.then(data => AccountUnlockedBeforeTimeResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedPastTimeDenom(request: AccountLockedPastTimeDenomRequest): Promise<AccountLockedPastTimeDenomResponse> {
-    const data = AccountLockedPastTimeDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedPastTimeDenom", data);
-    return promise.then(data => AccountLockedPastTimeDenomResponse.decode(new BinaryReader(data)));
-  }
-  lockedDenom(request: LockedDenomRequest): Promise<LockedDenomResponse> {
-    const data = LockedDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "LockedDenom", data);
-    return promise.then(data => LockedDenomResponse.decode(new BinaryReader(data)));
-  }
-  lockedByID(request: LockedRequest): Promise<LockedResponse> {
-    const data = LockedRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "LockedByID", data);
-    return promise.then(data => LockedResponse.decode(new BinaryReader(data)));
-  }
-  syntheticLockupsByLockupID(request: SyntheticLockupsByLockupIDRequest): Promise<SyntheticLockupsByLockupIDResponse> {
-    const data = SyntheticLockupsByLockupIDRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "SyntheticLockupsByLockupID", data);
-    return promise.then(data => SyntheticLockupsByLockupIDResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedLongerDuration(request: AccountLockedLongerDurationRequest): Promise<AccountLockedLongerDurationResponse> {
-    const data = AccountLockedLongerDurationRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedLongerDuration", data);
-    return promise.then(data => AccountLockedLongerDurationResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedDuration(request: AccountLockedDurationRequest): Promise<AccountLockedDurationResponse> {
-    const data = AccountLockedDurationRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedDuration", data);
-    return promise.then(data => AccountLockedDurationResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedLongerDurationNotUnlockingOnly(request: AccountLockedLongerDurationNotUnlockingOnlyRequest): Promise<AccountLockedLongerDurationNotUnlockingOnlyResponse> {
-    const data = AccountLockedLongerDurationNotUnlockingOnlyRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedLongerDurationNotUnlockingOnly", data);
-    return promise.then(data => AccountLockedLongerDurationNotUnlockingOnlyResponse.decode(new BinaryReader(data)));
-  }
-  accountLockedLongerDurationDenom(request: AccountLockedLongerDurationDenomRequest): Promise<AccountLockedLongerDurationDenomResponse> {
-    const data = AccountLockedLongerDurationDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "AccountLockedLongerDurationDenom", data);
-    return promise.then(data => AccountLockedLongerDurationDenomResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    moduleBalance(request?: ModuleBalanceRequest): Promise<ModuleBalanceResponse> {
-      return queryService.moduleBalance(request);
-    },
-    moduleLockedAmount(request?: ModuleLockedAmountRequest): Promise<ModuleLockedAmountResponse> {
-      return queryService.moduleLockedAmount(request);
-    },
-    accountUnlockableCoins(request: AccountUnlockableCoinsRequest): Promise<AccountUnlockableCoinsResponse> {
-      return queryService.accountUnlockableCoins(request);
-    },
-    accountUnlockingCoins(request: AccountUnlockingCoinsRequest): Promise<AccountUnlockingCoinsResponse> {
-      return queryService.accountUnlockingCoins(request);
-    },
-    accountLockedCoins(request: AccountLockedCoinsRequest): Promise<AccountLockedCoinsResponse> {
-      return queryService.accountLockedCoins(request);
-    },
-    accountLockedPastTime(request: AccountLockedPastTimeRequest): Promise<AccountLockedPastTimeResponse> {
-      return queryService.accountLockedPastTime(request);
-    },
-    accountLockedPastTimeNotUnlockingOnly(request: AccountLockedPastTimeNotUnlockingOnlyRequest): Promise<AccountLockedPastTimeNotUnlockingOnlyResponse> {
-      return queryService.accountLockedPastTimeNotUnlockingOnly(request);
-    },
-    accountUnlockedBeforeTime(request: AccountUnlockedBeforeTimeRequest): Promise<AccountUnlockedBeforeTimeResponse> {
-      return queryService.accountUnlockedBeforeTime(request);
-    },
-    accountLockedPastTimeDenom(request: AccountLockedPastTimeDenomRequest): Promise<AccountLockedPastTimeDenomResponse> {
-      return queryService.accountLockedPastTimeDenom(request);
-    },
-    lockedDenom(request: LockedDenomRequest): Promise<LockedDenomResponse> {
-      return queryService.lockedDenom(request);
-    },
-    lockedByID(request: LockedRequest): Promise<LockedResponse> {
-      return queryService.lockedByID(request);
-    },
-    syntheticLockupsByLockupID(request: SyntheticLockupsByLockupIDRequest): Promise<SyntheticLockupsByLockupIDResponse> {
-      return queryService.syntheticLockupsByLockupID(request);
-    },
-    accountLockedLongerDuration(request: AccountLockedLongerDurationRequest): Promise<AccountLockedLongerDurationResponse> {
-      return queryService.accountLockedLongerDuration(request);
-    },
-    accountLockedDuration(request: AccountLockedDurationRequest): Promise<AccountLockedDurationResponse> {
-      return queryService.accountLockedDuration(request);
-    },
-    accountLockedLongerDurationNotUnlockingOnly(request: AccountLockedLongerDurationNotUnlockingOnlyRequest): Promise<AccountLockedLongerDurationNotUnlockingOnlyResponse> {
-      return queryService.accountLockedLongerDurationNotUnlockingOnly(request);
-    },
-    accountLockedLongerDurationDenom(request: AccountLockedLongerDurationDenomRequest): Promise<AccountLockedLongerDurationDenomResponse> {
-      return queryService.accountLockedLongerDurationDenom(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    }
-  };
-};
-export interface UseModuleBalanceQuery<TData> extends ReactQueryParams<ModuleBalanceResponse, TData> {
-  request?: ModuleBalanceRequest;
-}
-export interface UseModuleLockedAmountQuery<TData> extends ReactQueryParams<ModuleLockedAmountResponse, TData> {
-  request?: ModuleLockedAmountRequest;
-}
-export interface UseAccountUnlockableCoinsQuery<TData> extends ReactQueryParams<AccountUnlockableCoinsResponse, TData> {
-  request: AccountUnlockableCoinsRequest;
-}
-export interface UseAccountUnlockingCoinsQuery<TData> extends ReactQueryParams<AccountUnlockingCoinsResponse, TData> {
-  request: AccountUnlockingCoinsRequest;
-}
-export interface UseAccountLockedCoinsQuery<TData> extends ReactQueryParams<AccountLockedCoinsResponse, TData> {
-  request: AccountLockedCoinsRequest;
-}
-export interface UseAccountLockedPastTimeQuery<TData> extends ReactQueryParams<AccountLockedPastTimeResponse, TData> {
-  request: AccountLockedPastTimeRequest;
-}
-export interface UseAccountLockedPastTimeNotUnlockingOnlyQuery<TData> extends ReactQueryParams<AccountLockedPastTimeNotUnlockingOnlyResponse, TData> {
-  request: AccountLockedPastTimeNotUnlockingOnlyRequest;
-}
-export interface UseAccountUnlockedBeforeTimeQuery<TData> extends ReactQueryParams<AccountUnlockedBeforeTimeResponse, TData> {
-  request: AccountUnlockedBeforeTimeRequest;
-}
-export interface UseAccountLockedPastTimeDenomQuery<TData> extends ReactQueryParams<AccountLockedPastTimeDenomResponse, TData> {
-  request: AccountLockedPastTimeDenomRequest;
-}
-export interface UseLockedDenomQuery<TData> extends ReactQueryParams<LockedDenomResponse, TData> {
-  request: LockedDenomRequest;
-}
-export interface UseLockedByIDQuery<TData> extends ReactQueryParams<LockedResponse, TData> {
-  request: LockedRequest;
-}
-export interface UseSyntheticLockupsByLockupIDQuery<TData> extends ReactQueryParams<SyntheticLockupsByLockupIDResponse, TData> {
-  request: SyntheticLockupsByLockupIDRequest;
-}
-export interface UseAccountLockedLongerDurationQuery<TData> extends ReactQueryParams<AccountLockedLongerDurationResponse, TData> {
-  request: AccountLockedLongerDurationRequest;
-}
-export interface UseAccountLockedDurationQuery<TData> extends ReactQueryParams<AccountLockedDurationResponse, TData> {
-  request: AccountLockedDurationRequest;
-}
-export interface UseAccountLockedLongerDurationNotUnlockingOnlyQuery<TData> extends ReactQueryParams<AccountLockedLongerDurationNotUnlockingOnlyResponse, TData> {
-  request: AccountLockedLongerDurationNotUnlockingOnlyRequest;
-}
-export interface UseAccountLockedLongerDurationDenomQuery<TData> extends ReactQueryParams<AccountLockedLongerDurationDenomResponse, TData> {
-  request: AccountLockedLongerDurationDenomRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useModuleBalance = <TData = ModuleBalanceResponse,>({
-    request,
-    options
-  }: UseModuleBalanceQuery<TData>) => {
-    return useQuery<ModuleBalanceResponse, Error, TData>(["moduleBalanceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleBalance(request);
-    }, options);
-  };
-  const useModuleLockedAmount = <TData = ModuleLockedAmountResponse,>({
-    request,
-    options
-  }: UseModuleLockedAmountQuery<TData>) => {
-    return useQuery<ModuleLockedAmountResponse, Error, TData>(["moduleLockedAmountQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.moduleLockedAmount(request);
-    }, options);
-  };
-  const useAccountUnlockableCoins = <TData = AccountUnlockableCoinsResponse,>({
-    request,
-    options
-  }: UseAccountUnlockableCoinsQuery<TData>) => {
-    return useQuery<AccountUnlockableCoinsResponse, Error, TData>(["accountUnlockableCoinsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountUnlockableCoins(request);
-    }, options);
-  };
-  const useAccountUnlockingCoins = <TData = AccountUnlockingCoinsResponse,>({
-    request,
-    options
-  }: UseAccountUnlockingCoinsQuery<TData>) => {
-    return useQuery<AccountUnlockingCoinsResponse, Error, TData>(["accountUnlockingCoinsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountUnlockingCoins(request);
-    }, options);
-  };
-  const useAccountLockedCoins = <TData = AccountLockedCoinsResponse,>({
-    request,
-    options
-  }: UseAccountLockedCoinsQuery<TData>) => {
-    return useQuery<AccountLockedCoinsResponse, Error, TData>(["accountLockedCoinsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedCoins(request);
-    }, options);
-  };
-  const useAccountLockedPastTime = <TData = AccountLockedPastTimeResponse,>({
-    request,
-    options
-  }: UseAccountLockedPastTimeQuery<TData>) => {
-    return useQuery<AccountLockedPastTimeResponse, Error, TData>(["accountLockedPastTimeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedPastTime(request);
-    }, options);
-  };
-  const useAccountLockedPastTimeNotUnlockingOnly = <TData = AccountLockedPastTimeNotUnlockingOnlyResponse,>({
-    request,
-    options
-  }: UseAccountLockedPastTimeNotUnlockingOnlyQuery<TData>) => {
-    return useQuery<AccountLockedPastTimeNotUnlockingOnlyResponse, Error, TData>(["accountLockedPastTimeNotUnlockingOnlyQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedPastTimeNotUnlockingOnly(request);
-    }, options);
-  };
-  const useAccountUnlockedBeforeTime = <TData = AccountUnlockedBeforeTimeResponse,>({
-    request,
-    options
-  }: UseAccountUnlockedBeforeTimeQuery<TData>) => {
-    return useQuery<AccountUnlockedBeforeTimeResponse, Error, TData>(["accountUnlockedBeforeTimeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountUnlockedBeforeTime(request);
-    }, options);
-  };
-  const useAccountLockedPastTimeDenom = <TData = AccountLockedPastTimeDenomResponse,>({
-    request,
-    options
-  }: UseAccountLockedPastTimeDenomQuery<TData>) => {
-    return useQuery<AccountLockedPastTimeDenomResponse, Error, TData>(["accountLockedPastTimeDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedPastTimeDenom(request);
-    }, options);
-  };
-  const useLockedDenom = <TData = LockedDenomResponse,>({
-    request,
-    options
-  }: UseLockedDenomQuery<TData>) => {
-    return useQuery<LockedDenomResponse, Error, TData>(["lockedDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.lockedDenom(request);
-    }, options);
-  };
-  const useLockedByID = <TData = LockedResponse,>({
-    request,
-    options
-  }: UseLockedByIDQuery<TData>) => {
-    return useQuery<LockedResponse, Error, TData>(["lockedByIDQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.lockedByID(request);
-    }, options);
-  };
-  const useSyntheticLockupsByLockupID = <TData = SyntheticLockupsByLockupIDResponse,>({
-    request,
-    options
-  }: UseSyntheticLockupsByLockupIDQuery<TData>) => {
-    return useQuery<SyntheticLockupsByLockupIDResponse, Error, TData>(["syntheticLockupsByLockupIDQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.syntheticLockupsByLockupID(request);
-    }, options);
-  };
-  const useAccountLockedLongerDuration = <TData = AccountLockedLongerDurationResponse,>({
-    request,
-    options
-  }: UseAccountLockedLongerDurationQuery<TData>) => {
-    return useQuery<AccountLockedLongerDurationResponse, Error, TData>(["accountLockedLongerDurationQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedLongerDuration(request);
-    }, options);
-  };
-  const useAccountLockedDuration = <TData = AccountLockedDurationResponse,>({
-    request,
-    options
-  }: UseAccountLockedDurationQuery<TData>) => {
-    return useQuery<AccountLockedDurationResponse, Error, TData>(["accountLockedDurationQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedDuration(request);
-    }, options);
-  };
-  const useAccountLockedLongerDurationNotUnlockingOnly = <TData = AccountLockedLongerDurationNotUnlockingOnlyResponse,>({
-    request,
-    options
-  }: UseAccountLockedLongerDurationNotUnlockingOnlyQuery<TData>) => {
-    return useQuery<AccountLockedLongerDurationNotUnlockingOnlyResponse, Error, TData>(["accountLockedLongerDurationNotUnlockingOnlyQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedLongerDurationNotUnlockingOnly(request);
-    }, options);
-  };
-  const useAccountLockedLongerDurationDenom = <TData = AccountLockedLongerDurationDenomResponse,>({
-    request,
-    options
-  }: UseAccountLockedLongerDurationDenomQuery<TData>) => {
-    return useQuery<AccountLockedLongerDurationDenomResponse, Error, TData>(["accountLockedLongerDurationDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.accountLockedLongerDurationDenom(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  return {
-    /** Return full balance of the module */useModuleBalance,
-    /** Return locked balance of the module */useModuleLockedAmount,
-    /** Returns unlockable coins which are not withdrawn yet */useAccountUnlockableCoins,
-    /** Returns unlocking coins */useAccountUnlockingCoins,
-    /** Return a locked coins that can't be withdrawn */useAccountLockedCoins,
-    /** Returns locked records of an account with unlock time beyond timestamp */useAccountLockedPastTime,
-    /**
-     * Returns locked records of an account with unlock time beyond timestamp
-     * excluding tokens started unlocking
-     */
-    useAccountLockedPastTimeNotUnlockingOnly,
-    /** Returns unlocked records with unlock time before timestamp */useAccountUnlockedBeforeTime,
-    /** Returns lock records by address, timestamp, denom */useAccountLockedPastTimeDenom,
-    /** Returns total locked per denom with longer past given time */useLockedDenom,
-    /** Returns lock record by id */useLockedByID,
-    /** Returns synthetic lockups by native lockup id */useSyntheticLockupsByLockupID,
-    /** Returns account locked records with longer duration */useAccountLockedLongerDuration,
-    /** Returns account locked records with a specific duration */useAccountLockedDuration,
-    /**
-     * Returns account locked records with longer duration excluding tokens
-     * started unlocking
-     */
-    useAccountLockedLongerDurationNotUnlockingOnly,
-    /** Returns account's locked records for a denom with longer duration */useAccountLockedLongerDurationDenom,
-    /** Params returns lockup params. */useParams
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryModuleBalanceStore {
-    store = new QueryStore<ModuleBalanceRequest, ModuleBalanceResponse>(queryService?.moduleBalance);
-    moduleBalance(request: ModuleBalanceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryModuleLockedAmountStore {
-    store = new QueryStore<ModuleLockedAmountRequest, ModuleLockedAmountResponse>(queryService?.moduleLockedAmount);
-    moduleLockedAmount(request: ModuleLockedAmountRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountUnlockableCoinsStore {
-    store = new QueryStore<AccountUnlockableCoinsRequest, AccountUnlockableCoinsResponse>(queryService?.accountUnlockableCoins);
-    accountUnlockableCoins(request: AccountUnlockableCoinsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountUnlockingCoinsStore {
-    store = new QueryStore<AccountUnlockingCoinsRequest, AccountUnlockingCoinsResponse>(queryService?.accountUnlockingCoins);
-    accountUnlockingCoins(request: AccountUnlockingCoinsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedCoinsStore {
-    store = new QueryStore<AccountLockedCoinsRequest, AccountLockedCoinsResponse>(queryService?.accountLockedCoins);
-    accountLockedCoins(request: AccountLockedCoinsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedPastTimeStore {
-    store = new QueryStore<AccountLockedPastTimeRequest, AccountLockedPastTimeResponse>(queryService?.accountLockedPastTime);
-    accountLockedPastTime(request: AccountLockedPastTimeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedPastTimeNotUnlockingOnlyStore {
-    store = new QueryStore<AccountLockedPastTimeNotUnlockingOnlyRequest, AccountLockedPastTimeNotUnlockingOnlyResponse>(queryService?.accountLockedPastTimeNotUnlockingOnly);
-    accountLockedPastTimeNotUnlockingOnly(request: AccountLockedPastTimeNotUnlockingOnlyRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountUnlockedBeforeTimeStore {
-    store = new QueryStore<AccountUnlockedBeforeTimeRequest, AccountUnlockedBeforeTimeResponse>(queryService?.accountUnlockedBeforeTime);
-    accountUnlockedBeforeTime(request: AccountUnlockedBeforeTimeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedPastTimeDenomStore {
-    store = new QueryStore<AccountLockedPastTimeDenomRequest, AccountLockedPastTimeDenomResponse>(queryService?.accountLockedPastTimeDenom);
-    accountLockedPastTimeDenom(request: AccountLockedPastTimeDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryLockedDenomStore {
-    store = new QueryStore<LockedDenomRequest, LockedDenomResponse>(queryService?.lockedDenom);
-    lockedDenom(request: LockedDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryLockedByIDStore {
-    store = new QueryStore<LockedRequest, LockedResponse>(queryService?.lockedByID);
-    lockedByID(request: LockedRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySyntheticLockupsByLockupIDStore {
-    store = new QueryStore<SyntheticLockupsByLockupIDRequest, SyntheticLockupsByLockupIDResponse>(queryService?.syntheticLockupsByLockupID);
-    syntheticLockupsByLockupID(request: SyntheticLockupsByLockupIDRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedLongerDurationStore {
-    store = new QueryStore<AccountLockedLongerDurationRequest, AccountLockedLongerDurationResponse>(queryService?.accountLockedLongerDuration);
-    accountLockedLongerDuration(request: AccountLockedLongerDurationRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedDurationStore {
-    store = new QueryStore<AccountLockedDurationRequest, AccountLockedDurationResponse>(queryService?.accountLockedDuration);
-    accountLockedDuration(request: AccountLockedDurationRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedLongerDurationNotUnlockingOnlyStore {
-    store = new QueryStore<AccountLockedLongerDurationNotUnlockingOnlyRequest, AccountLockedLongerDurationNotUnlockingOnlyResponse>(queryService?.accountLockedLongerDurationNotUnlockingOnly);
-    accountLockedLongerDurationNotUnlockingOnly(request: AccountLockedLongerDurationNotUnlockingOnlyRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAccountLockedLongerDurationDenomStore {
-    store = new QueryStore<AccountLockedLongerDurationDenomRequest, AccountLockedLongerDurationDenomResponse>(queryService?.accountLockedLongerDurationDenom);
-    accountLockedLongerDurationDenom(request: AccountLockedLongerDurationDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Return full balance of the module */QueryModuleBalanceStore,
-    /** Return locked balance of the module */QueryModuleLockedAmountStore,
-    /** Returns unlockable coins which are not withdrawn yet */QueryAccountUnlockableCoinsStore,
-    /** Returns unlocking coins */QueryAccountUnlockingCoinsStore,
-    /** Return a locked coins that can't be withdrawn */QueryAccountLockedCoinsStore,
-    /** Returns locked records of an account with unlock time beyond timestamp */QueryAccountLockedPastTimeStore,
-    /**
-     * Returns locked records of an account with unlock time beyond timestamp
-     * excluding tokens started unlocking
-     */
-    QueryAccountLockedPastTimeNotUnlockingOnlyStore,
-    /** Returns unlocked records with unlock time before timestamp */QueryAccountUnlockedBeforeTimeStore,
-    /** Returns lock records by address, timestamp, denom */QueryAccountLockedPastTimeDenomStore,
-    /** Returns total locked per denom with longer past given time */QueryLockedDenomStore,
-    /** Returns lock record by id */QueryLockedByIDStore,
-    /** Returns synthetic lockups by native lockup id */QuerySyntheticLockupsByLockupIDStore,
-    /** Returns account locked records with longer duration */QueryAccountLockedLongerDurationStore,
-    /** Returns account locked records with a specific duration */QueryAccountLockedDurationStore,
-    /**
-     * Returns account locked records with longer duration excluding tokens
-     * started unlocking
-     */
-    QueryAccountLockedLongerDurationNotUnlockingOnlyStore,
-    /** Returns account's locked records for a denom with longer duration */QueryAccountLockedLongerDurationDenomStore,
-    /** Params returns lockup params. */QueryParamsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/query.ts b/examples/injective/src/codegen/osmosis/lockup/query.ts
deleted file mode 100644
index 78b565e7..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/query.ts
+++ /dev/null
@@ -1,3860 +0,0 @@
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { PeriodLock, PeriodLockAmino, PeriodLockSDKType, SyntheticLock, SyntheticLockAmino, SyntheticLockSDKType } from "./lock";
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial, isSet, toTimestamp, fromTimestamp } from "../../helpers";
-export interface ModuleBalanceRequest {}
-export interface ModuleBalanceRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.ModuleBalanceRequest";
-  value: Uint8Array;
-}
-export interface ModuleBalanceRequestAmino {}
-export interface ModuleBalanceRequestAminoMsg {
-  type: "osmosis/lockup/module-balance-request";
-  value: ModuleBalanceRequestAmino;
-}
-export interface ModuleBalanceRequestSDKType {}
-export interface ModuleBalanceResponse {
-  coins: Coin[];
-}
-export interface ModuleBalanceResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.ModuleBalanceResponse";
-  value: Uint8Array;
-}
-export interface ModuleBalanceResponseAmino {
-  coins: CoinAmino[];
-}
-export interface ModuleBalanceResponseAminoMsg {
-  type: "osmosis/lockup/module-balance-response";
-  value: ModuleBalanceResponseAmino;
-}
-export interface ModuleBalanceResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface ModuleLockedAmountRequest {}
-export interface ModuleLockedAmountRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.ModuleLockedAmountRequest";
-  value: Uint8Array;
-}
-export interface ModuleLockedAmountRequestAmino {}
-export interface ModuleLockedAmountRequestAminoMsg {
-  type: "osmosis/lockup/module-locked-amount-request";
-  value: ModuleLockedAmountRequestAmino;
-}
-export interface ModuleLockedAmountRequestSDKType {}
-export interface ModuleLockedAmountResponse {
-  coins: Coin[];
-}
-export interface ModuleLockedAmountResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.ModuleLockedAmountResponse";
-  value: Uint8Array;
-}
-export interface ModuleLockedAmountResponseAmino {
-  coins: CoinAmino[];
-}
-export interface ModuleLockedAmountResponseAminoMsg {
-  type: "osmosis/lockup/module-locked-amount-response";
-  value: ModuleLockedAmountResponseAmino;
-}
-export interface ModuleLockedAmountResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface AccountUnlockableCoinsRequest {
-  owner: string;
-}
-export interface AccountUnlockableCoinsRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockableCoinsRequest";
-  value: Uint8Array;
-}
-export interface AccountUnlockableCoinsRequestAmino {
-  owner: string;
-}
-export interface AccountUnlockableCoinsRequestAminoMsg {
-  type: "osmosis/lockup/account-unlockable-coins-request";
-  value: AccountUnlockableCoinsRequestAmino;
-}
-export interface AccountUnlockableCoinsRequestSDKType {
-  owner: string;
-}
-export interface AccountUnlockableCoinsResponse {
-  coins: Coin[];
-}
-export interface AccountUnlockableCoinsResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockableCoinsResponse";
-  value: Uint8Array;
-}
-export interface AccountUnlockableCoinsResponseAmino {
-  coins: CoinAmino[];
-}
-export interface AccountUnlockableCoinsResponseAminoMsg {
-  type: "osmosis/lockup/account-unlockable-coins-response";
-  value: AccountUnlockableCoinsResponseAmino;
-}
-export interface AccountUnlockableCoinsResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface AccountUnlockingCoinsRequest {
-  owner: string;
-}
-export interface AccountUnlockingCoinsRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockingCoinsRequest";
-  value: Uint8Array;
-}
-export interface AccountUnlockingCoinsRequestAmino {
-  owner: string;
-}
-export interface AccountUnlockingCoinsRequestAminoMsg {
-  type: "osmosis/lockup/account-unlocking-coins-request";
-  value: AccountUnlockingCoinsRequestAmino;
-}
-export interface AccountUnlockingCoinsRequestSDKType {
-  owner: string;
-}
-export interface AccountUnlockingCoinsResponse {
-  coins: Coin[];
-}
-export interface AccountUnlockingCoinsResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockingCoinsResponse";
-  value: Uint8Array;
-}
-export interface AccountUnlockingCoinsResponseAmino {
-  coins: CoinAmino[];
-}
-export interface AccountUnlockingCoinsResponseAminoMsg {
-  type: "osmosis/lockup/account-unlocking-coins-response";
-  value: AccountUnlockingCoinsResponseAmino;
-}
-export interface AccountUnlockingCoinsResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface AccountLockedCoinsRequest {
-  owner: string;
-}
-export interface AccountLockedCoinsRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedCoinsRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedCoinsRequestAmino {
-  owner: string;
-}
-export interface AccountLockedCoinsRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-coins-request";
-  value: AccountLockedCoinsRequestAmino;
-}
-export interface AccountLockedCoinsRequestSDKType {
-  owner: string;
-}
-export interface AccountLockedCoinsResponse {
-  coins: Coin[];
-}
-export interface AccountLockedCoinsResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedCoinsResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedCoinsResponseAmino {
-  coins: CoinAmino[];
-}
-export interface AccountLockedCoinsResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-coins-response";
-  value: AccountLockedCoinsResponseAmino;
-}
-export interface AccountLockedCoinsResponseSDKType {
-  coins: CoinSDKType[];
-}
-export interface AccountLockedPastTimeRequest {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountLockedPastTimeRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeRequestAmino {
-  owner: string;
-  timestamp?: Date | undefined;
-}
-export interface AccountLockedPastTimeRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-request";
-  value: AccountLockedPastTimeRequestAmino;
-}
-export interface AccountLockedPastTimeRequestSDKType {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountLockedPastTimeResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedPastTimeResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedPastTimeResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-response";
-  value: AccountLockedPastTimeResponseAmino;
-}
-export interface AccountLockedPastTimeResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyRequest {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyRequestAmino {
-  owner: string;
-  timestamp?: Date | undefined;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-not-unlocking-only-request";
-  value: AccountLockedPastTimeNotUnlockingOnlyRequestAmino;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyRequestSDKType {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-not-unlocking-only-response";
-  value: AccountLockedPastTimeNotUnlockingOnlyResponseAmino;
-}
-export interface AccountLockedPastTimeNotUnlockingOnlyResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountUnlockedBeforeTimeRequest {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountUnlockedBeforeTimeRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeRequest";
-  value: Uint8Array;
-}
-export interface AccountUnlockedBeforeTimeRequestAmino {
-  owner: string;
-  timestamp?: Date | undefined;
-}
-export interface AccountUnlockedBeforeTimeRequestAminoMsg {
-  type: "osmosis/lockup/account-unlocked-before-time-request";
-  value: AccountUnlockedBeforeTimeRequestAmino;
-}
-export interface AccountUnlockedBeforeTimeRequestSDKType {
-  owner: string;
-  timestamp: Date | undefined;
-}
-export interface AccountUnlockedBeforeTimeResponse {
-  locks: PeriodLock[];
-}
-export interface AccountUnlockedBeforeTimeResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeResponse";
-  value: Uint8Array;
-}
-export interface AccountUnlockedBeforeTimeResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountUnlockedBeforeTimeResponseAminoMsg {
-  type: "osmosis/lockup/account-unlocked-before-time-response";
-  value: AccountUnlockedBeforeTimeResponseAmino;
-}
-export interface AccountUnlockedBeforeTimeResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountLockedPastTimeDenomRequest {
-  owner: string;
-  timestamp: Date | undefined;
-  denom: string;
-}
-export interface AccountLockedPastTimeDenomRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeDenomRequestAmino {
-  owner: string;
-  timestamp?: Date | undefined;
-  denom: string;
-}
-export interface AccountLockedPastTimeDenomRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-denom-request";
-  value: AccountLockedPastTimeDenomRequestAmino;
-}
-export interface AccountLockedPastTimeDenomRequestSDKType {
-  owner: string;
-  timestamp: Date | undefined;
-  denom: string;
-}
-export interface AccountLockedPastTimeDenomResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedPastTimeDenomResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedPastTimeDenomResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedPastTimeDenomResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-past-time-denom-response";
-  value: AccountLockedPastTimeDenomResponseAmino;
-}
-export interface AccountLockedPastTimeDenomResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface LockedDenomRequest {
-  denom: string;
-  duration: Duration | undefined;
-}
-export interface LockedDenomRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.LockedDenomRequest";
-  value: Uint8Array;
-}
-export interface LockedDenomRequestAmino {
-  denom: string;
-  duration?: DurationAmino | undefined;
-}
-export interface LockedDenomRequestAminoMsg {
-  type: "osmosis/lockup/locked-denom-request";
-  value: LockedDenomRequestAmino;
-}
-export interface LockedDenomRequestSDKType {
-  denom: string;
-  duration: DurationSDKType | undefined;
-}
-export interface LockedDenomResponse {
-  amount: string;
-}
-export interface LockedDenomResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.LockedDenomResponse";
-  value: Uint8Array;
-}
-export interface LockedDenomResponseAmino {
-  amount: string;
-}
-export interface LockedDenomResponseAminoMsg {
-  type: "osmosis/lockup/locked-denom-response";
-  value: LockedDenomResponseAmino;
-}
-export interface LockedDenomResponseSDKType {
-  amount: string;
-}
-export interface LockedRequest {
-  lockId: bigint;
-}
-export interface LockedRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.LockedRequest";
-  value: Uint8Array;
-}
-export interface LockedRequestAmino {
-  lock_id: string;
-}
-export interface LockedRequestAminoMsg {
-  type: "osmosis/lockup/locked-request";
-  value: LockedRequestAmino;
-}
-export interface LockedRequestSDKType {
-  lock_id: bigint;
-}
-export interface LockedResponse {
-  lock: PeriodLock | undefined;
-}
-export interface LockedResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.LockedResponse";
-  value: Uint8Array;
-}
-export interface LockedResponseAmino {
-  lock?: PeriodLockAmino | undefined;
-}
-export interface LockedResponseAminoMsg {
-  type: "osmosis/lockup/locked-response";
-  value: LockedResponseAmino;
-}
-export interface LockedResponseSDKType {
-  lock: PeriodLockSDKType | undefined;
-}
-export interface SyntheticLockupsByLockupIDRequest {
-  lockId: bigint;
-}
-export interface SyntheticLockupsByLockupIDRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDRequest";
-  value: Uint8Array;
-}
-export interface SyntheticLockupsByLockupIDRequestAmino {
-  lock_id: string;
-}
-export interface SyntheticLockupsByLockupIDRequestAminoMsg {
-  type: "osmosis/lockup/synthetic-lockups-by-lockup-id-request";
-  value: SyntheticLockupsByLockupIDRequestAmino;
-}
-export interface SyntheticLockupsByLockupIDRequestSDKType {
-  lock_id: bigint;
-}
-export interface SyntheticLockupsByLockupIDResponse {
-  syntheticLocks: SyntheticLock[];
-}
-export interface SyntheticLockupsByLockupIDResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDResponse";
-  value: Uint8Array;
-}
-export interface SyntheticLockupsByLockupIDResponseAmino {
-  synthetic_locks: SyntheticLockAmino[];
-}
-export interface SyntheticLockupsByLockupIDResponseAminoMsg {
-  type: "osmosis/lockup/synthetic-lockups-by-lockup-id-response";
-  value: SyntheticLockupsByLockupIDResponseAmino;
-}
-export interface SyntheticLockupsByLockupIDResponseSDKType {
-  synthetic_locks: SyntheticLockSDKType[];
-}
-export interface AccountLockedLongerDurationRequest {
-  owner: string;
-  duration: Duration | undefined;
-}
-export interface AccountLockedLongerDurationRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationRequestAmino {
-  owner: string;
-  duration?: DurationAmino | undefined;
-}
-export interface AccountLockedLongerDurationRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-request";
-  value: AccountLockedLongerDurationRequestAmino;
-}
-export interface AccountLockedLongerDurationRequestSDKType {
-  owner: string;
-  duration: DurationSDKType | undefined;
-}
-export interface AccountLockedLongerDurationResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedLongerDurationResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedLongerDurationResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-response";
-  value: AccountLockedLongerDurationResponseAmino;
-}
-export interface AccountLockedLongerDurationResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountLockedDurationRequest {
-  owner: string;
-  duration: Duration | undefined;
-}
-export interface AccountLockedDurationRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedDurationRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedDurationRequestAmino {
-  owner: string;
-  duration?: DurationAmino | undefined;
-}
-export interface AccountLockedDurationRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-duration-request";
-  value: AccountLockedDurationRequestAmino;
-}
-export interface AccountLockedDurationRequestSDKType {
-  owner: string;
-  duration: DurationSDKType | undefined;
-}
-export interface AccountLockedDurationResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedDurationResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedDurationResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedDurationResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedDurationResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-duration-response";
-  value: AccountLockedDurationResponseAmino;
-}
-export interface AccountLockedDurationResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyRequest {
-  owner: string;
-  duration: Duration | undefined;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyRequestAmino {
-  owner: string;
-  duration?: DurationAmino | undefined;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-request";
-  value: AccountLockedLongerDurationNotUnlockingOnlyRequestAmino;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyRequestSDKType {
-  owner: string;
-  duration: DurationSDKType | undefined;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-response";
-  value: AccountLockedLongerDurationNotUnlockingOnlyResponseAmino;
-}
-export interface AccountLockedLongerDurationNotUnlockingOnlyResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface AccountLockedLongerDurationDenomRequest {
-  owner: string;
-  duration: Duration | undefined;
-  denom: string;
-}
-export interface AccountLockedLongerDurationDenomRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomRequest";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationDenomRequestAmino {
-  owner: string;
-  duration?: DurationAmino | undefined;
-  denom: string;
-}
-export interface AccountLockedLongerDurationDenomRequestAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-denom-request";
-  value: AccountLockedLongerDurationDenomRequestAmino;
-}
-export interface AccountLockedLongerDurationDenomRequestSDKType {
-  owner: string;
-  duration: DurationSDKType | undefined;
-  denom: string;
-}
-export interface AccountLockedLongerDurationDenomResponse {
-  locks: PeriodLock[];
-}
-export interface AccountLockedLongerDurationDenomResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomResponse";
-  value: Uint8Array;
-}
-export interface AccountLockedLongerDurationDenomResponseAmino {
-  locks: PeriodLockAmino[];
-}
-export interface AccountLockedLongerDurationDenomResponseAminoMsg {
-  type: "osmosis/lockup/account-locked-longer-duration-denom-response";
-  value: AccountLockedLongerDurationDenomResponseAmino;
-}
-export interface AccountLockedLongerDurationDenomResponseSDKType {
-  locks: PeriodLockSDKType[];
-}
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.lockup.QueryParamsRequest";
-  value: Uint8Array;
-}
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/lockup/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-export interface QueryParamsRequestSDKType {}
-export interface QueryParamsResponse {
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.QueryParamsResponse";
-  value: Uint8Array;
-}
-export interface QueryParamsResponseAmino {
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/lockup/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-function createBaseModuleBalanceRequest(): ModuleBalanceRequest {
-  return {};
-}
-export const ModuleBalanceRequest = {
-  typeUrl: "/osmosis.lockup.ModuleBalanceRequest",
-  aminoType: "osmosis/lockup/module-balance-request",
-  encode(_: ModuleBalanceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleBalanceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleBalanceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ModuleBalanceRequest {
-    return {};
-  },
-  toJSON(_: ModuleBalanceRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ModuleBalanceRequest>): ModuleBalanceRequest {
-    const message = createBaseModuleBalanceRequest();
-    return message;
-  },
-  fromSDK(_: ModuleBalanceRequestSDKType): ModuleBalanceRequest {
-    return {};
-  },
-  toSDK(_: ModuleBalanceRequest): ModuleBalanceRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ModuleBalanceRequestAmino): ModuleBalanceRequest {
-    return {};
-  },
-  toAmino(_: ModuleBalanceRequest): ModuleBalanceRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ModuleBalanceRequestAminoMsg): ModuleBalanceRequest {
-    return ModuleBalanceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleBalanceRequest): ModuleBalanceRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/module-balance-request",
-      value: ModuleBalanceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleBalanceRequestProtoMsg): ModuleBalanceRequest {
-    return ModuleBalanceRequest.decode(message.value);
-  },
-  toProto(message: ModuleBalanceRequest): Uint8Array {
-    return ModuleBalanceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleBalanceRequest): ModuleBalanceRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.ModuleBalanceRequest",
-      value: ModuleBalanceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleBalanceResponse(): ModuleBalanceResponse {
-  return {
-    coins: []
-  };
-}
-export const ModuleBalanceResponse = {
-  typeUrl: "/osmosis.lockup.ModuleBalanceResponse",
-  aminoType: "osmosis/lockup/module-balance-response",
-  encode(message: ModuleBalanceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleBalanceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleBalanceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleBalanceResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ModuleBalanceResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleBalanceResponse>): ModuleBalanceResponse {
-    const message = createBaseModuleBalanceResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ModuleBalanceResponseSDKType): ModuleBalanceResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ModuleBalanceResponse): ModuleBalanceResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModuleBalanceResponseAmino): ModuleBalanceResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ModuleBalanceResponse): ModuleBalanceResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModuleBalanceResponseAminoMsg): ModuleBalanceResponse {
-    return ModuleBalanceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleBalanceResponse): ModuleBalanceResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/module-balance-response",
-      value: ModuleBalanceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleBalanceResponseProtoMsg): ModuleBalanceResponse {
-    return ModuleBalanceResponse.decode(message.value);
-  },
-  toProto(message: ModuleBalanceResponse): Uint8Array {
-    return ModuleBalanceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleBalanceResponse): ModuleBalanceResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.ModuleBalanceResponse",
-      value: ModuleBalanceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleLockedAmountRequest(): ModuleLockedAmountRequest {
-  return {};
-}
-export const ModuleLockedAmountRequest = {
-  typeUrl: "/osmosis.lockup.ModuleLockedAmountRequest",
-  aminoType: "osmosis/lockup/module-locked-amount-request",
-  encode(_: ModuleLockedAmountRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleLockedAmountRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleLockedAmountRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ModuleLockedAmountRequest {
-    return {};
-  },
-  toJSON(_: ModuleLockedAmountRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ModuleLockedAmountRequest>): ModuleLockedAmountRequest {
-    const message = createBaseModuleLockedAmountRequest();
-    return message;
-  },
-  fromSDK(_: ModuleLockedAmountRequestSDKType): ModuleLockedAmountRequest {
-    return {};
-  },
-  toSDK(_: ModuleLockedAmountRequest): ModuleLockedAmountRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ModuleLockedAmountRequestAmino): ModuleLockedAmountRequest {
-    return {};
-  },
-  toAmino(_: ModuleLockedAmountRequest): ModuleLockedAmountRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ModuleLockedAmountRequestAminoMsg): ModuleLockedAmountRequest {
-    return ModuleLockedAmountRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleLockedAmountRequest): ModuleLockedAmountRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/module-locked-amount-request",
-      value: ModuleLockedAmountRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleLockedAmountRequestProtoMsg): ModuleLockedAmountRequest {
-    return ModuleLockedAmountRequest.decode(message.value);
-  },
-  toProto(message: ModuleLockedAmountRequest): Uint8Array {
-    return ModuleLockedAmountRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleLockedAmountRequest): ModuleLockedAmountRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.ModuleLockedAmountRequest",
-      value: ModuleLockedAmountRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseModuleLockedAmountResponse(): ModuleLockedAmountResponse {
-  return {
-    coins: []
-  };
-}
-export const ModuleLockedAmountResponse = {
-  typeUrl: "/osmosis.lockup.ModuleLockedAmountResponse",
-  aminoType: "osmosis/lockup/module-locked-amount-response",
-  encode(message: ModuleLockedAmountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ModuleLockedAmountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseModuleLockedAmountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ModuleLockedAmountResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ModuleLockedAmountResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ModuleLockedAmountResponse>): ModuleLockedAmountResponse {
-    const message = createBaseModuleLockedAmountResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ModuleLockedAmountResponseSDKType): ModuleLockedAmountResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ModuleLockedAmountResponse): ModuleLockedAmountResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ModuleLockedAmountResponseAmino): ModuleLockedAmountResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ModuleLockedAmountResponse): ModuleLockedAmountResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ModuleLockedAmountResponseAminoMsg): ModuleLockedAmountResponse {
-    return ModuleLockedAmountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ModuleLockedAmountResponse): ModuleLockedAmountResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/module-locked-amount-response",
-      value: ModuleLockedAmountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ModuleLockedAmountResponseProtoMsg): ModuleLockedAmountResponse {
-    return ModuleLockedAmountResponse.decode(message.value);
-  },
-  toProto(message: ModuleLockedAmountResponse): Uint8Array {
-    return ModuleLockedAmountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ModuleLockedAmountResponse): ModuleLockedAmountResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.ModuleLockedAmountResponse",
-      value: ModuleLockedAmountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockableCoinsRequest(): AccountUnlockableCoinsRequest {
-  return {
-    owner: ""
-  };
-}
-export const AccountUnlockableCoinsRequest = {
-  typeUrl: "/osmosis.lockup.AccountUnlockableCoinsRequest",
-  aminoType: "osmosis/lockup/account-unlockable-coins-request",
-  encode(message: AccountUnlockableCoinsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockableCoinsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockableCoinsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockableCoinsRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: AccountUnlockableCoinsRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockableCoinsRequest>): AccountUnlockableCoinsRequest {
-    const message = createBaseAccountUnlockableCoinsRequest();
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: AccountUnlockableCoinsRequestSDKType): AccountUnlockableCoinsRequest {
-    return {
-      owner: object?.owner
-    };
-  },
-  toSDK(message: AccountUnlockableCoinsRequest): AccountUnlockableCoinsRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: AccountUnlockableCoinsRequestAmino): AccountUnlockableCoinsRequest {
-    return {
-      owner: object.owner
-    };
-  },
-  toAmino(message: AccountUnlockableCoinsRequest): AccountUnlockableCoinsRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockableCoinsRequestAminoMsg): AccountUnlockableCoinsRequest {
-    return AccountUnlockableCoinsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockableCoinsRequest): AccountUnlockableCoinsRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlockable-coins-request",
-      value: AccountUnlockableCoinsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockableCoinsRequestProtoMsg): AccountUnlockableCoinsRequest {
-    return AccountUnlockableCoinsRequest.decode(message.value);
-  },
-  toProto(message: AccountUnlockableCoinsRequest): Uint8Array {
-    return AccountUnlockableCoinsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockableCoinsRequest): AccountUnlockableCoinsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockableCoinsRequest",
-      value: AccountUnlockableCoinsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockableCoinsResponse(): AccountUnlockableCoinsResponse {
-  return {
-    coins: []
-  };
-}
-export const AccountUnlockableCoinsResponse = {
-  typeUrl: "/osmosis.lockup.AccountUnlockableCoinsResponse",
-  aminoType: "osmosis/lockup/account-unlockable-coins-response",
-  encode(message: AccountUnlockableCoinsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockableCoinsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockableCoinsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockableCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountUnlockableCoinsResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockableCoinsResponse>): AccountUnlockableCoinsResponse {
-    const message = createBaseAccountUnlockableCoinsResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountUnlockableCoinsResponseSDKType): AccountUnlockableCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountUnlockableCoinsResponse): AccountUnlockableCoinsResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountUnlockableCoinsResponseAmino): AccountUnlockableCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountUnlockableCoinsResponse): AccountUnlockableCoinsResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockableCoinsResponseAminoMsg): AccountUnlockableCoinsResponse {
-    return AccountUnlockableCoinsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockableCoinsResponse): AccountUnlockableCoinsResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlockable-coins-response",
-      value: AccountUnlockableCoinsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockableCoinsResponseProtoMsg): AccountUnlockableCoinsResponse {
-    return AccountUnlockableCoinsResponse.decode(message.value);
-  },
-  toProto(message: AccountUnlockableCoinsResponse): Uint8Array {
-    return AccountUnlockableCoinsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockableCoinsResponse): AccountUnlockableCoinsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockableCoinsResponse",
-      value: AccountUnlockableCoinsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockingCoinsRequest(): AccountUnlockingCoinsRequest {
-  return {
-    owner: ""
-  };
-}
-export const AccountUnlockingCoinsRequest = {
-  typeUrl: "/osmosis.lockup.AccountUnlockingCoinsRequest",
-  aminoType: "osmosis/lockup/account-unlocking-coins-request",
-  encode(message: AccountUnlockingCoinsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockingCoinsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockingCoinsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockingCoinsRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: AccountUnlockingCoinsRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockingCoinsRequest>): AccountUnlockingCoinsRequest {
-    const message = createBaseAccountUnlockingCoinsRequest();
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: AccountUnlockingCoinsRequestSDKType): AccountUnlockingCoinsRequest {
-    return {
-      owner: object?.owner
-    };
-  },
-  toSDK(message: AccountUnlockingCoinsRequest): AccountUnlockingCoinsRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: AccountUnlockingCoinsRequestAmino): AccountUnlockingCoinsRequest {
-    return {
-      owner: object.owner
-    };
-  },
-  toAmino(message: AccountUnlockingCoinsRequest): AccountUnlockingCoinsRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockingCoinsRequestAminoMsg): AccountUnlockingCoinsRequest {
-    return AccountUnlockingCoinsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockingCoinsRequest): AccountUnlockingCoinsRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlocking-coins-request",
-      value: AccountUnlockingCoinsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockingCoinsRequestProtoMsg): AccountUnlockingCoinsRequest {
-    return AccountUnlockingCoinsRequest.decode(message.value);
-  },
-  toProto(message: AccountUnlockingCoinsRequest): Uint8Array {
-    return AccountUnlockingCoinsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockingCoinsRequest): AccountUnlockingCoinsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockingCoinsRequest",
-      value: AccountUnlockingCoinsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockingCoinsResponse(): AccountUnlockingCoinsResponse {
-  return {
-    coins: []
-  };
-}
-export const AccountUnlockingCoinsResponse = {
-  typeUrl: "/osmosis.lockup.AccountUnlockingCoinsResponse",
-  aminoType: "osmosis/lockup/account-unlocking-coins-response",
-  encode(message: AccountUnlockingCoinsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockingCoinsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockingCoinsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockingCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountUnlockingCoinsResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockingCoinsResponse>): AccountUnlockingCoinsResponse {
-    const message = createBaseAccountUnlockingCoinsResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountUnlockingCoinsResponseSDKType): AccountUnlockingCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountUnlockingCoinsResponse): AccountUnlockingCoinsResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountUnlockingCoinsResponseAmino): AccountUnlockingCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountUnlockingCoinsResponse): AccountUnlockingCoinsResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockingCoinsResponseAminoMsg): AccountUnlockingCoinsResponse {
-    return AccountUnlockingCoinsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockingCoinsResponse): AccountUnlockingCoinsResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlocking-coins-response",
-      value: AccountUnlockingCoinsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockingCoinsResponseProtoMsg): AccountUnlockingCoinsResponse {
-    return AccountUnlockingCoinsResponse.decode(message.value);
-  },
-  toProto(message: AccountUnlockingCoinsResponse): Uint8Array {
-    return AccountUnlockingCoinsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockingCoinsResponse): AccountUnlockingCoinsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockingCoinsResponse",
-      value: AccountUnlockingCoinsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedCoinsRequest(): AccountLockedCoinsRequest {
-  return {
-    owner: ""
-  };
-}
-export const AccountLockedCoinsRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedCoinsRequest",
-  aminoType: "osmosis/lockup/account-locked-coins-request",
-  encode(message: AccountLockedCoinsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedCoinsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedCoinsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedCoinsRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: AccountLockedCoinsRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedCoinsRequest>): AccountLockedCoinsRequest {
-    const message = createBaseAccountLockedCoinsRequest();
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: AccountLockedCoinsRequestSDKType): AccountLockedCoinsRequest {
-    return {
-      owner: object?.owner
-    };
-  },
-  toSDK(message: AccountLockedCoinsRequest): AccountLockedCoinsRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: AccountLockedCoinsRequestAmino): AccountLockedCoinsRequest {
-    return {
-      owner: object.owner
-    };
-  },
-  toAmino(message: AccountLockedCoinsRequest): AccountLockedCoinsRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedCoinsRequestAminoMsg): AccountLockedCoinsRequest {
-    return AccountLockedCoinsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedCoinsRequest): AccountLockedCoinsRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-coins-request",
-      value: AccountLockedCoinsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedCoinsRequestProtoMsg): AccountLockedCoinsRequest {
-    return AccountLockedCoinsRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedCoinsRequest): Uint8Array {
-    return AccountLockedCoinsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedCoinsRequest): AccountLockedCoinsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedCoinsRequest",
-      value: AccountLockedCoinsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedCoinsResponse(): AccountLockedCoinsResponse {
-  return {
-    coins: []
-  };
-}
-export const AccountLockedCoinsResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedCoinsResponse",
-  aminoType: "osmosis/lockup/account-locked-coins-response",
-  encode(message: AccountLockedCoinsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedCoinsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedCoinsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedCoinsResponse): unknown {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedCoinsResponse>): AccountLockedCoinsResponse {
-    const message = createBaseAccountLockedCoinsResponse();
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedCoinsResponseSDKType): AccountLockedCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedCoinsResponse): AccountLockedCoinsResponseSDKType {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedCoinsResponseAmino): AccountLockedCoinsResponse {
-    return {
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedCoinsResponse): AccountLockedCoinsResponseAmino {
-    const obj: any = {};
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedCoinsResponseAminoMsg): AccountLockedCoinsResponse {
-    return AccountLockedCoinsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedCoinsResponse): AccountLockedCoinsResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-coins-response",
-      value: AccountLockedCoinsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedCoinsResponseProtoMsg): AccountLockedCoinsResponse {
-    return AccountLockedCoinsResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedCoinsResponse): Uint8Array {
-    return AccountLockedCoinsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedCoinsResponse): AccountLockedCoinsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedCoinsResponse",
-      value: AccountLockedCoinsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeRequest(): AccountLockedPastTimeRequest {
-  return {
-    owner: "",
-    timestamp: new Date()
-  };
-}
-export const AccountLockedPastTimeRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeRequest",
-  aminoType: "osmosis/lockup/account-locked-past-time-request",
-  encode(message: AccountLockedPastTimeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: AccountLockedPastTimeRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeRequest>): AccountLockedPastTimeRequest {
-    const message = createBaseAccountLockedPastTimeRequest();
-    message.owner = object.owner ?? "";
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeRequestSDKType): AccountLockedPastTimeRequest {
-    return {
-      owner: object?.owner,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: AccountLockedPastTimeRequest): AccountLockedPastTimeRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeRequestAmino): AccountLockedPastTimeRequest {
-    return {
-      owner: object.owner,
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: AccountLockedPastTimeRequest): AccountLockedPastTimeRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeRequestAminoMsg): AccountLockedPastTimeRequest {
-    return AccountLockedPastTimeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeRequest): AccountLockedPastTimeRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-request",
-      value: AccountLockedPastTimeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeRequestProtoMsg): AccountLockedPastTimeRequest {
-    return AccountLockedPastTimeRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeRequest): Uint8Array {
-    return AccountLockedPastTimeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeRequest): AccountLockedPastTimeRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeRequest",
-      value: AccountLockedPastTimeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeResponse(): AccountLockedPastTimeResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedPastTimeResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeResponse",
-  aminoType: "osmosis/lockup/account-locked-past-time-response",
-  encode(message: AccountLockedPastTimeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedPastTimeResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeResponse>): AccountLockedPastTimeResponse {
-    const message = createBaseAccountLockedPastTimeResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeResponseSDKType): AccountLockedPastTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedPastTimeResponse): AccountLockedPastTimeResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeResponseAmino): AccountLockedPastTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedPastTimeResponse): AccountLockedPastTimeResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeResponseAminoMsg): AccountLockedPastTimeResponse {
-    return AccountLockedPastTimeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeResponse): AccountLockedPastTimeResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-response",
-      value: AccountLockedPastTimeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeResponseProtoMsg): AccountLockedPastTimeResponse {
-    return AccountLockedPastTimeResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeResponse): Uint8Array {
-    return AccountLockedPastTimeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeResponse): AccountLockedPastTimeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeResponse",
-      value: AccountLockedPastTimeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeNotUnlockingOnlyRequest(): AccountLockedPastTimeNotUnlockingOnlyRequest {
-  return {
-    owner: "",
-    timestamp: new Date()
-  };
-}
-export const AccountLockedPastTimeNotUnlockingOnlyRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyRequest",
-  aminoType: "osmosis/lockup/account-locked-past-time-not-unlocking-only-request",
-  encode(message: AccountLockedPastTimeNotUnlockingOnlyRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeNotUnlockingOnlyRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: AccountLockedPastTimeNotUnlockingOnlyRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeNotUnlockingOnlyRequest>): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    const message = createBaseAccountLockedPastTimeNotUnlockingOnlyRequest();
-    message.owner = object.owner ?? "";
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeNotUnlockingOnlyRequestSDKType): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    return {
-      owner: object?.owner,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: AccountLockedPastTimeNotUnlockingOnlyRequest): AccountLockedPastTimeNotUnlockingOnlyRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeNotUnlockingOnlyRequestAmino): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    return {
-      owner: object.owner,
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: AccountLockedPastTimeNotUnlockingOnlyRequest): AccountLockedPastTimeNotUnlockingOnlyRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeNotUnlockingOnlyRequestAminoMsg): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    return AccountLockedPastTimeNotUnlockingOnlyRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeNotUnlockingOnlyRequest): AccountLockedPastTimeNotUnlockingOnlyRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-not-unlocking-only-request",
-      value: AccountLockedPastTimeNotUnlockingOnlyRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeNotUnlockingOnlyRequestProtoMsg): AccountLockedPastTimeNotUnlockingOnlyRequest {
-    return AccountLockedPastTimeNotUnlockingOnlyRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeNotUnlockingOnlyRequest): Uint8Array {
-    return AccountLockedPastTimeNotUnlockingOnlyRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeNotUnlockingOnlyRequest): AccountLockedPastTimeNotUnlockingOnlyRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyRequest",
-      value: AccountLockedPastTimeNotUnlockingOnlyRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeNotUnlockingOnlyResponse(): AccountLockedPastTimeNotUnlockingOnlyResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedPastTimeNotUnlockingOnlyResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyResponse",
-  aminoType: "osmosis/lockup/account-locked-past-time-not-unlocking-only-response",
-  encode(message: AccountLockedPastTimeNotUnlockingOnlyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeNotUnlockingOnlyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedPastTimeNotUnlockingOnlyResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeNotUnlockingOnlyResponse>): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    const message = createBaseAccountLockedPastTimeNotUnlockingOnlyResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeNotUnlockingOnlyResponseSDKType): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedPastTimeNotUnlockingOnlyResponse): AccountLockedPastTimeNotUnlockingOnlyResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeNotUnlockingOnlyResponseAmino): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedPastTimeNotUnlockingOnlyResponse): AccountLockedPastTimeNotUnlockingOnlyResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeNotUnlockingOnlyResponseAminoMsg): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    return AccountLockedPastTimeNotUnlockingOnlyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeNotUnlockingOnlyResponse): AccountLockedPastTimeNotUnlockingOnlyResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-not-unlocking-only-response",
-      value: AccountLockedPastTimeNotUnlockingOnlyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeNotUnlockingOnlyResponseProtoMsg): AccountLockedPastTimeNotUnlockingOnlyResponse {
-    return AccountLockedPastTimeNotUnlockingOnlyResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeNotUnlockingOnlyResponse): Uint8Array {
-    return AccountLockedPastTimeNotUnlockingOnlyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeNotUnlockingOnlyResponse): AccountLockedPastTimeNotUnlockingOnlyResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeNotUnlockingOnlyResponse",
-      value: AccountLockedPastTimeNotUnlockingOnlyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockedBeforeTimeRequest(): AccountUnlockedBeforeTimeRequest {
-  return {
-    owner: "",
-    timestamp: new Date()
-  };
-}
-export const AccountUnlockedBeforeTimeRequest = {
-  typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeRequest",
-  aminoType: "osmosis/lockup/account-unlocked-before-time-request",
-  encode(message: AccountUnlockedBeforeTimeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockedBeforeTimeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockedBeforeTimeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockedBeforeTimeRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: AccountUnlockedBeforeTimeRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockedBeforeTimeRequest>): AccountUnlockedBeforeTimeRequest {
-    const message = createBaseAccountUnlockedBeforeTimeRequest();
-    message.owner = object.owner ?? "";
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: AccountUnlockedBeforeTimeRequestSDKType): AccountUnlockedBeforeTimeRequest {
-    return {
-      owner: object?.owner,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: AccountUnlockedBeforeTimeRequest): AccountUnlockedBeforeTimeRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: AccountUnlockedBeforeTimeRequestAmino): AccountUnlockedBeforeTimeRequest {
-    return {
-      owner: object.owner,
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: AccountUnlockedBeforeTimeRequest): AccountUnlockedBeforeTimeRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockedBeforeTimeRequestAminoMsg): AccountUnlockedBeforeTimeRequest {
-    return AccountUnlockedBeforeTimeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockedBeforeTimeRequest): AccountUnlockedBeforeTimeRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlocked-before-time-request",
-      value: AccountUnlockedBeforeTimeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockedBeforeTimeRequestProtoMsg): AccountUnlockedBeforeTimeRequest {
-    return AccountUnlockedBeforeTimeRequest.decode(message.value);
-  },
-  toProto(message: AccountUnlockedBeforeTimeRequest): Uint8Array {
-    return AccountUnlockedBeforeTimeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockedBeforeTimeRequest): AccountUnlockedBeforeTimeRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeRequest",
-      value: AccountUnlockedBeforeTimeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountUnlockedBeforeTimeResponse(): AccountUnlockedBeforeTimeResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountUnlockedBeforeTimeResponse = {
-  typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeResponse",
-  aminoType: "osmosis/lockup/account-unlocked-before-time-response",
-  encode(message: AccountUnlockedBeforeTimeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountUnlockedBeforeTimeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountUnlockedBeforeTimeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountUnlockedBeforeTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountUnlockedBeforeTimeResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountUnlockedBeforeTimeResponse>): AccountUnlockedBeforeTimeResponse {
-    const message = createBaseAccountUnlockedBeforeTimeResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountUnlockedBeforeTimeResponseSDKType): AccountUnlockedBeforeTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountUnlockedBeforeTimeResponse): AccountUnlockedBeforeTimeResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountUnlockedBeforeTimeResponseAmino): AccountUnlockedBeforeTimeResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountUnlockedBeforeTimeResponse): AccountUnlockedBeforeTimeResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountUnlockedBeforeTimeResponseAminoMsg): AccountUnlockedBeforeTimeResponse {
-    return AccountUnlockedBeforeTimeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountUnlockedBeforeTimeResponse): AccountUnlockedBeforeTimeResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-unlocked-before-time-response",
-      value: AccountUnlockedBeforeTimeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountUnlockedBeforeTimeResponseProtoMsg): AccountUnlockedBeforeTimeResponse {
-    return AccountUnlockedBeforeTimeResponse.decode(message.value);
-  },
-  toProto(message: AccountUnlockedBeforeTimeResponse): Uint8Array {
-    return AccountUnlockedBeforeTimeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountUnlockedBeforeTimeResponse): AccountUnlockedBeforeTimeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountUnlockedBeforeTimeResponse",
-      value: AccountUnlockedBeforeTimeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeDenomRequest(): AccountLockedPastTimeDenomRequest {
-  return {
-    owner: "",
-    timestamp: new Date(),
-    denom: ""
-  };
-}
-export const AccountLockedPastTimeDenomRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomRequest",
-  aminoType: "osmosis/lockup/account-locked-past-time-denom-request",
-  encode(message: AccountLockedPastTimeDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.denom !== "") {
-      writer.uint32(26).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeDenomRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined,
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: AccountLockedPastTimeDenomRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeDenomRequest>): AccountLockedPastTimeDenomRequest {
-    const message = createBaseAccountLockedPastTimeDenomRequest();
-    message.owner = object.owner ?? "";
-    message.timestamp = object.timestamp ?? undefined;
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeDenomRequestSDKType): AccountLockedPastTimeDenomRequest {
-    return {
-      owner: object?.owner,
-      timestamp: object.timestamp ?? undefined,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: AccountLockedPastTimeDenomRequest): AccountLockedPastTimeDenomRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeDenomRequestAmino): AccountLockedPastTimeDenomRequest {
-    return {
-      owner: object.owner,
-      timestamp: object.timestamp,
-      denom: object.denom
-    };
-  },
-  toAmino(message: AccountLockedPastTimeDenomRequest): AccountLockedPastTimeDenomRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.timestamp = message.timestamp;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeDenomRequestAminoMsg): AccountLockedPastTimeDenomRequest {
-    return AccountLockedPastTimeDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeDenomRequest): AccountLockedPastTimeDenomRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-denom-request",
-      value: AccountLockedPastTimeDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeDenomRequestProtoMsg): AccountLockedPastTimeDenomRequest {
-    return AccountLockedPastTimeDenomRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeDenomRequest): Uint8Array {
-    return AccountLockedPastTimeDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeDenomRequest): AccountLockedPastTimeDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomRequest",
-      value: AccountLockedPastTimeDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedPastTimeDenomResponse(): AccountLockedPastTimeDenomResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedPastTimeDenomResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomResponse",
-  aminoType: "osmosis/lockup/account-locked-past-time-denom-response",
-  encode(message: AccountLockedPastTimeDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedPastTimeDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedPastTimeDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedPastTimeDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedPastTimeDenomResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedPastTimeDenomResponse>): AccountLockedPastTimeDenomResponse {
-    const message = createBaseAccountLockedPastTimeDenomResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedPastTimeDenomResponseSDKType): AccountLockedPastTimeDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedPastTimeDenomResponse): AccountLockedPastTimeDenomResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedPastTimeDenomResponseAmino): AccountLockedPastTimeDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedPastTimeDenomResponse): AccountLockedPastTimeDenomResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedPastTimeDenomResponseAminoMsg): AccountLockedPastTimeDenomResponse {
-    return AccountLockedPastTimeDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedPastTimeDenomResponse): AccountLockedPastTimeDenomResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-past-time-denom-response",
-      value: AccountLockedPastTimeDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedPastTimeDenomResponseProtoMsg): AccountLockedPastTimeDenomResponse {
-    return AccountLockedPastTimeDenomResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedPastTimeDenomResponse): Uint8Array {
-    return AccountLockedPastTimeDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedPastTimeDenomResponse): AccountLockedPastTimeDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedPastTimeDenomResponse",
-      value: AccountLockedPastTimeDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseLockedDenomRequest(): LockedDenomRequest {
-  return {
-    denom: "",
-    duration: Duration.fromPartial({})
-  };
-}
-export const LockedDenomRequest = {
-  typeUrl: "/osmosis.lockup.LockedDenomRequest",
-  aminoType: "osmosis/lockup/locked-denom-request",
-  encode(message: LockedDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockedDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockedDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockedDenomRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: LockedDenomRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockedDenomRequest>): LockedDenomRequest {
-    const message = createBaseLockedDenomRequest();
-    message.denom = object.denom ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: LockedDenomRequestSDKType): LockedDenomRequest {
-    return {
-      denom: object?.denom,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: LockedDenomRequest): LockedDenomRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: LockedDenomRequestAmino): LockedDenomRequest {
-    return {
-      denom: object.denom,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: LockedDenomRequest): LockedDenomRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LockedDenomRequestAminoMsg): LockedDenomRequest {
-    return LockedDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockedDenomRequest): LockedDenomRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/locked-denom-request",
-      value: LockedDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockedDenomRequestProtoMsg): LockedDenomRequest {
-    return LockedDenomRequest.decode(message.value);
-  },
-  toProto(message: LockedDenomRequest): Uint8Array {
-    return LockedDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: LockedDenomRequest): LockedDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.LockedDenomRequest",
-      value: LockedDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseLockedDenomResponse(): LockedDenomResponse {
-  return {
-    amount: ""
-  };
-}
-export const LockedDenomResponse = {
-  typeUrl: "/osmosis.lockup.LockedDenomResponse",
-  aminoType: "osmosis/lockup/locked-denom-response",
-  encode(message: LockedDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.amount !== "") {
-      writer.uint32(10).string(message.amount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockedDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockedDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockedDenomResponse {
-    return {
-      amount: isSet(object.amount) ? String(object.amount) : ""
-    };
-  },
-  toJSON(message: LockedDenomResponse): unknown {
-    const obj: any = {};
-    message.amount !== undefined && (obj.amount = message.amount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockedDenomResponse>): LockedDenomResponse {
-    const message = createBaseLockedDenomResponse();
-    message.amount = object.amount ?? "";
-    return message;
-  },
-  fromSDK(object: LockedDenomResponseSDKType): LockedDenomResponse {
-    return {
-      amount: object?.amount
-    };
-  },
-  toSDK(message: LockedDenomResponse): LockedDenomResponseSDKType {
-    const obj: any = {};
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAmino(object: LockedDenomResponseAmino): LockedDenomResponse {
-    return {
-      amount: object.amount
-    };
-  },
-  toAmino(message: LockedDenomResponse): LockedDenomResponseAmino {
-    const obj: any = {};
-    obj.amount = message.amount;
-    return obj;
-  },
-  fromAminoMsg(object: LockedDenomResponseAminoMsg): LockedDenomResponse {
-    return LockedDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockedDenomResponse): LockedDenomResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/locked-denom-response",
-      value: LockedDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockedDenomResponseProtoMsg): LockedDenomResponse {
-    return LockedDenomResponse.decode(message.value);
-  },
-  toProto(message: LockedDenomResponse): Uint8Array {
-    return LockedDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: LockedDenomResponse): LockedDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.LockedDenomResponse",
-      value: LockedDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseLockedRequest(): LockedRequest {
-  return {
-    lockId: BigInt(0)
-  };
-}
-export const LockedRequest = {
-  typeUrl: "/osmosis.lockup.LockedRequest",
-  aminoType: "osmosis/lockup/locked-request",
-  encode(message: LockedRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.lockId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockedRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockedRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockedRequest {
-    return {
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: LockedRequest): unknown {
-    const obj: any = {};
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockedRequest>): LockedRequest {
-    const message = createBaseLockedRequest();
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: LockedRequestSDKType): LockedRequest {
-    return {
-      lockId: object?.lock_id
-    };
-  },
-  toSDK(message: LockedRequest): LockedRequestSDKType {
-    const obj: any = {};
-    obj.lock_id = message.lockId;
-    return obj;
-  },
-  fromAmino(object: LockedRequestAmino): LockedRequest {
-    return {
-      lockId: BigInt(object.lock_id)
-    };
-  },
-  toAmino(message: LockedRequest): LockedRequestAmino {
-    const obj: any = {};
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LockedRequestAminoMsg): LockedRequest {
-    return LockedRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockedRequest): LockedRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/locked-request",
-      value: LockedRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockedRequestProtoMsg): LockedRequest {
-    return LockedRequest.decode(message.value);
-  },
-  toProto(message: LockedRequest): Uint8Array {
-    return LockedRequest.encode(message).finish();
-  },
-  toProtoMsg(message: LockedRequest): LockedRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.LockedRequest",
-      value: LockedRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseLockedResponse(): LockedResponse {
-  return {
-    lock: PeriodLock.fromPartial({})
-  };
-}
-export const LockedResponse = {
-  typeUrl: "/osmosis.lockup.LockedResponse",
-  aminoType: "osmosis/lockup/locked-response",
-  encode(message: LockedResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lock !== undefined) {
-      PeriodLock.encode(message.lock, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockedResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockedResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lock = PeriodLock.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockedResponse {
-    return {
-      lock: isSet(object.lock) ? PeriodLock.fromJSON(object.lock) : undefined
-    };
-  },
-  toJSON(message: LockedResponse): unknown {
-    const obj: any = {};
-    message.lock !== undefined && (obj.lock = message.lock ? PeriodLock.toJSON(message.lock) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockedResponse>): LockedResponse {
-    const message = createBaseLockedResponse();
-    message.lock = object.lock !== undefined && object.lock !== null ? PeriodLock.fromPartial(object.lock) : undefined;
-    return message;
-  },
-  fromSDK(object: LockedResponseSDKType): LockedResponse {
-    return {
-      lock: object.lock ? PeriodLock.fromSDK(object.lock) : undefined
-    };
-  },
-  toSDK(message: LockedResponse): LockedResponseSDKType {
-    const obj: any = {};
-    message.lock !== undefined && (obj.lock = message.lock ? PeriodLock.toSDK(message.lock) : undefined);
-    return obj;
-  },
-  fromAmino(object: LockedResponseAmino): LockedResponse {
-    return {
-      lock: object?.lock ? PeriodLock.fromAmino(object.lock) : undefined
-    };
-  },
-  toAmino(message: LockedResponse): LockedResponseAmino {
-    const obj: any = {};
-    obj.lock = message.lock ? PeriodLock.toAmino(message.lock) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LockedResponseAminoMsg): LockedResponse {
-    return LockedResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockedResponse): LockedResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/locked-response",
-      value: LockedResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockedResponseProtoMsg): LockedResponse {
-    return LockedResponse.decode(message.value);
-  },
-  toProto(message: LockedResponse): Uint8Array {
-    return LockedResponse.encode(message).finish();
-  },
-  toProtoMsg(message: LockedResponse): LockedResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.LockedResponse",
-      value: LockedResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSyntheticLockupsByLockupIDRequest(): SyntheticLockupsByLockupIDRequest {
-  return {
-    lockId: BigInt(0)
-  };
-}
-export const SyntheticLockupsByLockupIDRequest = {
-  typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDRequest",
-  aminoType: "osmosis/lockup/synthetic-lockups-by-lockup-id-request",
-  encode(message: SyntheticLockupsByLockupIDRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.lockId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SyntheticLockupsByLockupIDRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSyntheticLockupsByLockupIDRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SyntheticLockupsByLockupIDRequest {
-    return {
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SyntheticLockupsByLockupIDRequest): unknown {
-    const obj: any = {};
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SyntheticLockupsByLockupIDRequest>): SyntheticLockupsByLockupIDRequest {
-    const message = createBaseSyntheticLockupsByLockupIDRequest();
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SyntheticLockupsByLockupIDRequestSDKType): SyntheticLockupsByLockupIDRequest {
-    return {
-      lockId: object?.lock_id
-    };
-  },
-  toSDK(message: SyntheticLockupsByLockupIDRequest): SyntheticLockupsByLockupIDRequestSDKType {
-    const obj: any = {};
-    obj.lock_id = message.lockId;
-    return obj;
-  },
-  fromAmino(object: SyntheticLockupsByLockupIDRequestAmino): SyntheticLockupsByLockupIDRequest {
-    return {
-      lockId: BigInt(object.lock_id)
-    };
-  },
-  toAmino(message: SyntheticLockupsByLockupIDRequest): SyntheticLockupsByLockupIDRequestAmino {
-    const obj: any = {};
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SyntheticLockupsByLockupIDRequestAminoMsg): SyntheticLockupsByLockupIDRequest {
-    return SyntheticLockupsByLockupIDRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SyntheticLockupsByLockupIDRequest): SyntheticLockupsByLockupIDRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/synthetic-lockups-by-lockup-id-request",
-      value: SyntheticLockupsByLockupIDRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SyntheticLockupsByLockupIDRequestProtoMsg): SyntheticLockupsByLockupIDRequest {
-    return SyntheticLockupsByLockupIDRequest.decode(message.value);
-  },
-  toProto(message: SyntheticLockupsByLockupIDRequest): Uint8Array {
-    return SyntheticLockupsByLockupIDRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SyntheticLockupsByLockupIDRequest): SyntheticLockupsByLockupIDRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDRequest",
-      value: SyntheticLockupsByLockupIDRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSyntheticLockupsByLockupIDResponse(): SyntheticLockupsByLockupIDResponse {
-  return {
-    syntheticLocks: []
-  };
-}
-export const SyntheticLockupsByLockupIDResponse = {
-  typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDResponse",
-  aminoType: "osmosis/lockup/synthetic-lockups-by-lockup-id-response",
-  encode(message: SyntheticLockupsByLockupIDResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.syntheticLocks) {
-      SyntheticLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SyntheticLockupsByLockupIDResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSyntheticLockupsByLockupIDResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.syntheticLocks.push(SyntheticLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SyntheticLockupsByLockupIDResponse {
-    return {
-      syntheticLocks: Array.isArray(object?.syntheticLocks) ? object.syntheticLocks.map((e: any) => SyntheticLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SyntheticLockupsByLockupIDResponse): unknown {
-    const obj: any = {};
-    if (message.syntheticLocks) {
-      obj.syntheticLocks = message.syntheticLocks.map(e => e ? SyntheticLock.toJSON(e) : undefined);
-    } else {
-      obj.syntheticLocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SyntheticLockupsByLockupIDResponse>): SyntheticLockupsByLockupIDResponse {
-    const message = createBaseSyntheticLockupsByLockupIDResponse();
-    message.syntheticLocks = object.syntheticLocks?.map(e => SyntheticLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SyntheticLockupsByLockupIDResponseSDKType): SyntheticLockupsByLockupIDResponse {
-    return {
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SyntheticLockupsByLockupIDResponse): SyntheticLockupsByLockupIDResponseSDKType {
-    const obj: any = {};
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toSDK(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SyntheticLockupsByLockupIDResponseAmino): SyntheticLockupsByLockupIDResponse {
-    return {
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SyntheticLockupsByLockupIDResponse): SyntheticLockupsByLockupIDResponseAmino {
-    const obj: any = {};
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toAmino(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SyntheticLockupsByLockupIDResponseAminoMsg): SyntheticLockupsByLockupIDResponse {
-    return SyntheticLockupsByLockupIDResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SyntheticLockupsByLockupIDResponse): SyntheticLockupsByLockupIDResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/synthetic-lockups-by-lockup-id-response",
-      value: SyntheticLockupsByLockupIDResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SyntheticLockupsByLockupIDResponseProtoMsg): SyntheticLockupsByLockupIDResponse {
-    return SyntheticLockupsByLockupIDResponse.decode(message.value);
-  },
-  toProto(message: SyntheticLockupsByLockupIDResponse): Uint8Array {
-    return SyntheticLockupsByLockupIDResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SyntheticLockupsByLockupIDResponse): SyntheticLockupsByLockupIDResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.SyntheticLockupsByLockupIDResponse",
-      value: SyntheticLockupsByLockupIDResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationRequest(): AccountLockedLongerDurationRequest {
-  return {
-    owner: "",
-    duration: Duration.fromPartial({})
-  };
-}
-export const AccountLockedLongerDurationRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationRequest",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-request",
-  encode(message: AccountLockedLongerDurationRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationRequest>): AccountLockedLongerDurationRequest {
-    const message = createBaseAccountLockedLongerDurationRequest();
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationRequestSDKType): AccountLockedLongerDurationRequest {
-    return {
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationRequest): AccountLockedLongerDurationRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationRequestAmino): AccountLockedLongerDurationRequest {
-    return {
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationRequest): AccountLockedLongerDurationRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationRequestAminoMsg): AccountLockedLongerDurationRequest {
-    return AccountLockedLongerDurationRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationRequest): AccountLockedLongerDurationRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-request",
-      value: AccountLockedLongerDurationRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationRequestProtoMsg): AccountLockedLongerDurationRequest {
-    return AccountLockedLongerDurationRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationRequest): Uint8Array {
-    return AccountLockedLongerDurationRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationRequest): AccountLockedLongerDurationRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationRequest",
-      value: AccountLockedLongerDurationRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationResponse(): AccountLockedLongerDurationResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedLongerDurationResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationResponse",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-response",
-  encode(message: AccountLockedLongerDurationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationResponse>): AccountLockedLongerDurationResponse {
-    const message = createBaseAccountLockedLongerDurationResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationResponseSDKType): AccountLockedLongerDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationResponse): AccountLockedLongerDurationResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationResponseAmino): AccountLockedLongerDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationResponse): AccountLockedLongerDurationResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationResponseAminoMsg): AccountLockedLongerDurationResponse {
-    return AccountLockedLongerDurationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationResponse): AccountLockedLongerDurationResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-response",
-      value: AccountLockedLongerDurationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationResponseProtoMsg): AccountLockedLongerDurationResponse {
-    return AccountLockedLongerDurationResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationResponse): Uint8Array {
-    return AccountLockedLongerDurationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationResponse): AccountLockedLongerDurationResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationResponse",
-      value: AccountLockedLongerDurationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedDurationRequest(): AccountLockedDurationRequest {
-  return {
-    owner: "",
-    duration: Duration.fromPartial({})
-  };
-}
-export const AccountLockedDurationRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedDurationRequest",
-  aminoType: "osmosis/lockup/account-locked-duration-request",
-  encode(message: AccountLockedDurationRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedDurationRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedDurationRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedDurationRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: AccountLockedDurationRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedDurationRequest>): AccountLockedDurationRequest {
-    const message = createBaseAccountLockedDurationRequest();
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: AccountLockedDurationRequestSDKType): AccountLockedDurationRequest {
-    return {
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: AccountLockedDurationRequest): AccountLockedDurationRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: AccountLockedDurationRequestAmino): AccountLockedDurationRequest {
-    return {
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: AccountLockedDurationRequest): AccountLockedDurationRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedDurationRequestAminoMsg): AccountLockedDurationRequest {
-    return AccountLockedDurationRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedDurationRequest): AccountLockedDurationRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-duration-request",
-      value: AccountLockedDurationRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedDurationRequestProtoMsg): AccountLockedDurationRequest {
-    return AccountLockedDurationRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedDurationRequest): Uint8Array {
-    return AccountLockedDurationRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedDurationRequest): AccountLockedDurationRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedDurationRequest",
-      value: AccountLockedDurationRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedDurationResponse(): AccountLockedDurationResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedDurationResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedDurationResponse",
-  aminoType: "osmosis/lockup/account-locked-duration-response",
-  encode(message: AccountLockedDurationResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedDurationResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedDurationResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedDurationResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedDurationResponse>): AccountLockedDurationResponse {
-    const message = createBaseAccountLockedDurationResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedDurationResponseSDKType): AccountLockedDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedDurationResponse): AccountLockedDurationResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedDurationResponseAmino): AccountLockedDurationResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedDurationResponse): AccountLockedDurationResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedDurationResponseAminoMsg): AccountLockedDurationResponse {
-    return AccountLockedDurationResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedDurationResponse): AccountLockedDurationResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-duration-response",
-      value: AccountLockedDurationResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedDurationResponseProtoMsg): AccountLockedDurationResponse {
-    return AccountLockedDurationResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedDurationResponse): Uint8Array {
-    return AccountLockedDurationResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedDurationResponse): AccountLockedDurationResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedDurationResponse",
-      value: AccountLockedDurationResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationNotUnlockingOnlyRequest(): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-  return {
-    owner: "",
-    duration: Duration.fromPartial({})
-  };
-}
-export const AccountLockedLongerDurationNotUnlockingOnlyRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyRequest",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-request",
-  encode(message: AccountLockedLongerDurationNotUnlockingOnlyRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationNotUnlockingOnlyRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationNotUnlockingOnlyRequest>): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    const message = createBaseAccountLockedLongerDurationNotUnlockingOnlyRequest();
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationNotUnlockingOnlyRequestSDKType): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    return {
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): AccountLockedLongerDurationNotUnlockingOnlyRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationNotUnlockingOnlyRequestAmino): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    return {
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): AccountLockedLongerDurationNotUnlockingOnlyRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationNotUnlockingOnlyRequestAminoMsg): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    return AccountLockedLongerDurationNotUnlockingOnlyRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): AccountLockedLongerDurationNotUnlockingOnlyRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-request",
-      value: AccountLockedLongerDurationNotUnlockingOnlyRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyRequestProtoMsg): AccountLockedLongerDurationNotUnlockingOnlyRequest {
-    return AccountLockedLongerDurationNotUnlockingOnlyRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): Uint8Array {
-    return AccountLockedLongerDurationNotUnlockingOnlyRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyRequest): AccountLockedLongerDurationNotUnlockingOnlyRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyRequest",
-      value: AccountLockedLongerDurationNotUnlockingOnlyRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationNotUnlockingOnlyResponse(): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedLongerDurationNotUnlockingOnlyResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyResponse",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-response",
-  encode(message: AccountLockedLongerDurationNotUnlockingOnlyResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationNotUnlockingOnlyResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationNotUnlockingOnlyResponse>): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    const message = createBaseAccountLockedLongerDurationNotUnlockingOnlyResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationNotUnlockingOnlyResponseSDKType): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): AccountLockedLongerDurationNotUnlockingOnlyResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationNotUnlockingOnlyResponseAmino): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): AccountLockedLongerDurationNotUnlockingOnlyResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationNotUnlockingOnlyResponseAminoMsg): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    return AccountLockedLongerDurationNotUnlockingOnlyResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): AccountLockedLongerDurationNotUnlockingOnlyResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-not-unlocking-only-response",
-      value: AccountLockedLongerDurationNotUnlockingOnlyResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyResponseProtoMsg): AccountLockedLongerDurationNotUnlockingOnlyResponse {
-    return AccountLockedLongerDurationNotUnlockingOnlyResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): Uint8Array {
-    return AccountLockedLongerDurationNotUnlockingOnlyResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationNotUnlockingOnlyResponse): AccountLockedLongerDurationNotUnlockingOnlyResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationNotUnlockingOnlyResponse",
-      value: AccountLockedLongerDurationNotUnlockingOnlyResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationDenomRequest(): AccountLockedLongerDurationDenomRequest {
-  return {
-    owner: "",
-    duration: Duration.fromPartial({}),
-    denom: ""
-  };
-}
-export const AccountLockedLongerDurationDenomRequest = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomRequest",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-denom-request",
-  encode(message: AccountLockedLongerDurationDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.denom !== "") {
-      writer.uint32(26).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationDenomRequest {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationDenomRequest): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationDenomRequest>): AccountLockedLongerDurationDenomRequest {
-    const message = createBaseAccountLockedLongerDurationDenomRequest();
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationDenomRequestSDKType): AccountLockedLongerDurationDenomRequest {
-    return {
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationDenomRequest): AccountLockedLongerDurationDenomRequestSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationDenomRequestAmino): AccountLockedLongerDurationDenomRequest {
-    return {
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      denom: object.denom
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationDenomRequest): AccountLockedLongerDurationDenomRequestAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationDenomRequestAminoMsg): AccountLockedLongerDurationDenomRequest {
-    return AccountLockedLongerDurationDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationDenomRequest): AccountLockedLongerDurationDenomRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-denom-request",
-      value: AccountLockedLongerDurationDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationDenomRequestProtoMsg): AccountLockedLongerDurationDenomRequest {
-    return AccountLockedLongerDurationDenomRequest.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationDenomRequest): Uint8Array {
-    return AccountLockedLongerDurationDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationDenomRequest): AccountLockedLongerDurationDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomRequest",
-      value: AccountLockedLongerDurationDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAccountLockedLongerDurationDenomResponse(): AccountLockedLongerDurationDenomResponse {
-  return {
-    locks: []
-  };
-}
-export const AccountLockedLongerDurationDenomResponse = {
-  typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomResponse",
-  aminoType: "osmosis/lockup/account-locked-longer-duration-denom-response",
-  encode(message: AccountLockedLongerDurationDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.locks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AccountLockedLongerDurationDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAccountLockedLongerDurationDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.locks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AccountLockedLongerDurationDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AccountLockedLongerDurationDenomResponse): unknown {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AccountLockedLongerDurationDenomResponse>): AccountLockedLongerDurationDenomResponse {
-    const message = createBaseAccountLockedLongerDurationDenomResponse();
-    message.locks = object.locks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AccountLockedLongerDurationDenomResponseSDKType): AccountLockedLongerDurationDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AccountLockedLongerDurationDenomResponse): AccountLockedLongerDurationDenomResponseSDKType {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AccountLockedLongerDurationDenomResponseAmino): AccountLockedLongerDurationDenomResponse {
-    return {
-      locks: Array.isArray(object?.locks) ? object.locks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AccountLockedLongerDurationDenomResponse): AccountLockedLongerDurationDenomResponseAmino {
-    const obj: any = {};
-    if (message.locks) {
-      obj.locks = message.locks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AccountLockedLongerDurationDenomResponseAminoMsg): AccountLockedLongerDurationDenomResponse {
-    return AccountLockedLongerDurationDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AccountLockedLongerDurationDenomResponse): AccountLockedLongerDurationDenomResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/account-locked-longer-duration-denom-response",
-      value: AccountLockedLongerDurationDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AccountLockedLongerDurationDenomResponseProtoMsg): AccountLockedLongerDurationDenomResponse {
-    return AccountLockedLongerDurationDenomResponse.decode(message.value);
-  },
-  toProto(message: AccountLockedLongerDurationDenomResponse): Uint8Array {
-    return AccountLockedLongerDurationDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AccountLockedLongerDurationDenomResponse): AccountLockedLongerDurationDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.AccountLockedLongerDurationDenomResponse",
-      value: AccountLockedLongerDurationDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.lockup.QueryParamsRequest",
-  aminoType: "osmosis/lockup/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/lockup/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.lockup.QueryParamsResponse",
-  aminoType: "osmosis/lockup/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/tx.amino.ts b/examples/injective/src/codegen/osmosis/lockup/tx.amino.ts
deleted file mode 100644
index 31d040f1..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/tx.amino.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { MsgLockTokens, MsgBeginUnlockingAll, MsgBeginUnlocking, MsgExtendLockup, MsgForceUnlock } from "./tx";
-export const AminoConverter = {
-  "/osmosis.lockup.MsgLockTokens": {
-    aminoType: "osmosis/lockup/lock-tokens",
-    toAmino: MsgLockTokens.toAmino,
-    fromAmino: MsgLockTokens.fromAmino
-  },
-  "/osmosis.lockup.MsgBeginUnlockingAll": {
-    aminoType: "osmosis/lockup/begin-unlock-tokens",
-    toAmino: MsgBeginUnlockingAll.toAmino,
-    fromAmino: MsgBeginUnlockingAll.fromAmino
-  },
-  "/osmosis.lockup.MsgBeginUnlocking": {
-    aminoType: "osmosis/lockup/begin-unlock-period-lock",
-    toAmino: MsgBeginUnlocking.toAmino,
-    fromAmino: MsgBeginUnlocking.fromAmino
-  },
-  "/osmosis.lockup.MsgExtendLockup": {
-    aminoType: "osmosis/lockup/extend-lockup",
-    toAmino: MsgExtendLockup.toAmino,
-    fromAmino: MsgExtendLockup.fromAmino
-  },
-  "/osmosis.lockup.MsgForceUnlock": {
-    aminoType: "osmosis/lockup/force-unlock",
-    toAmino: MsgForceUnlock.toAmino,
-    fromAmino: MsgForceUnlock.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/tx.registry.ts b/examples/injective/src/codegen/osmosis/lockup/tx.registry.ts
deleted file mode 100644
index 5fda9d18..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/tx.registry.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgLockTokens, MsgBeginUnlockingAll, MsgBeginUnlocking, MsgExtendLockup, MsgForceUnlock } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.lockup.MsgLockTokens", MsgLockTokens], ["/osmosis.lockup.MsgBeginUnlockingAll", MsgBeginUnlockingAll], ["/osmosis.lockup.MsgBeginUnlocking", MsgBeginUnlocking], ["/osmosis.lockup.MsgExtendLockup", MsgExtendLockup], ["/osmosis.lockup.MsgForceUnlock", MsgForceUnlock]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    lockTokens(value: MsgLockTokens) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgLockTokens",
-        value: MsgLockTokens.encode(value).finish()
-      };
-    },
-    beginUnlockingAll(value: MsgBeginUnlockingAll) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-        value: MsgBeginUnlockingAll.encode(value).finish()
-      };
-    },
-    beginUnlocking(value: MsgBeginUnlocking) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-        value: MsgBeginUnlocking.encode(value).finish()
-      };
-    },
-    extendLockup(value: MsgExtendLockup) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgExtendLockup",
-        value: MsgExtendLockup.encode(value).finish()
-      };
-    },
-    forceUnlock(value: MsgForceUnlock) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgForceUnlock",
-        value: MsgForceUnlock.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    lockTokens(value: MsgLockTokens) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgLockTokens",
-        value
-      };
-    },
-    beginUnlockingAll(value: MsgBeginUnlockingAll) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-        value
-      };
-    },
-    beginUnlocking(value: MsgBeginUnlocking) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-        value
-      };
-    },
-    extendLockup(value: MsgExtendLockup) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgExtendLockup",
-        value
-      };
-    },
-    forceUnlock(value: MsgForceUnlock) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgForceUnlock",
-        value
-      };
-    }
-  },
-  toJSON: {
-    lockTokens(value: MsgLockTokens) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgLockTokens",
-        value: MsgLockTokens.toJSON(value)
-      };
-    },
-    beginUnlockingAll(value: MsgBeginUnlockingAll) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-        value: MsgBeginUnlockingAll.toJSON(value)
-      };
-    },
-    beginUnlocking(value: MsgBeginUnlocking) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-        value: MsgBeginUnlocking.toJSON(value)
-      };
-    },
-    extendLockup(value: MsgExtendLockup) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgExtendLockup",
-        value: MsgExtendLockup.toJSON(value)
-      };
-    },
-    forceUnlock(value: MsgForceUnlock) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgForceUnlock",
-        value: MsgForceUnlock.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    lockTokens(value: any) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgLockTokens",
-        value: MsgLockTokens.fromJSON(value)
-      };
-    },
-    beginUnlockingAll(value: any) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-        value: MsgBeginUnlockingAll.fromJSON(value)
-      };
-    },
-    beginUnlocking(value: any) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-        value: MsgBeginUnlocking.fromJSON(value)
-      };
-    },
-    extendLockup(value: any) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgExtendLockup",
-        value: MsgExtendLockup.fromJSON(value)
-      };
-    },
-    forceUnlock(value: any) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgForceUnlock",
-        value: MsgForceUnlock.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    lockTokens(value: MsgLockTokens) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgLockTokens",
-        value: MsgLockTokens.fromPartial(value)
-      };
-    },
-    beginUnlockingAll(value: MsgBeginUnlockingAll) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-        value: MsgBeginUnlockingAll.fromPartial(value)
-      };
-    },
-    beginUnlocking(value: MsgBeginUnlocking) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-        value: MsgBeginUnlocking.fromPartial(value)
-      };
-    },
-    extendLockup(value: MsgExtendLockup) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgExtendLockup",
-        value: MsgExtendLockup.fromPartial(value)
-      };
-    },
-    forceUnlock(value: MsgForceUnlock) {
-      return {
-        typeUrl: "/osmosis.lockup.MsgForceUnlock",
-        value: MsgForceUnlock.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/lockup/tx.rpc.msg.ts
deleted file mode 100644
index ea0398b1..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/tx.rpc.msg.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { MsgLockTokens, MsgLockTokensResponse, MsgBeginUnlockingAll, MsgBeginUnlockingAllResponse, MsgBeginUnlocking, MsgBeginUnlockingResponse, MsgExtendLockup, MsgExtendLockupResponse, MsgForceUnlock, MsgForceUnlockResponse } from "./tx";
-/** Msg defines the Msg service. */
-export interface Msg {
-  /** LockTokens lock tokens */
-  lockTokens(request: MsgLockTokens): Promise<MsgLockTokensResponse>;
-  /** BeginUnlockingAll begin unlocking all tokens */
-  beginUnlockingAll(request: MsgBeginUnlockingAll): Promise<MsgBeginUnlockingAllResponse>;
-  /** MsgBeginUnlocking begins unlocking tokens by lock ID */
-  beginUnlocking(request: MsgBeginUnlocking): Promise<MsgBeginUnlockingResponse>;
-  /** MsgEditLockup edits the existing lockups by lock ID */
-  extendLockup(request: MsgExtendLockup): Promise<MsgExtendLockupResponse>;
-  forceUnlock(request: MsgForceUnlock): Promise<MsgForceUnlockResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.lockTokens = this.lockTokens.bind(this);
-    this.beginUnlockingAll = this.beginUnlockingAll.bind(this);
-    this.beginUnlocking = this.beginUnlocking.bind(this);
-    this.extendLockup = this.extendLockup.bind(this);
-    this.forceUnlock = this.forceUnlock.bind(this);
-  }
-  lockTokens(request: MsgLockTokens): Promise<MsgLockTokensResponse> {
-    const data = MsgLockTokens.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Msg", "LockTokens", data);
-    return promise.then(data => MsgLockTokensResponse.decode(new BinaryReader(data)));
-  }
-  beginUnlockingAll(request: MsgBeginUnlockingAll): Promise<MsgBeginUnlockingAllResponse> {
-    const data = MsgBeginUnlockingAll.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Msg", "BeginUnlockingAll", data);
-    return promise.then(data => MsgBeginUnlockingAllResponse.decode(new BinaryReader(data)));
-  }
-  beginUnlocking(request: MsgBeginUnlocking): Promise<MsgBeginUnlockingResponse> {
-    const data = MsgBeginUnlocking.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Msg", "BeginUnlocking", data);
-    return promise.then(data => MsgBeginUnlockingResponse.decode(new BinaryReader(data)));
-  }
-  extendLockup(request: MsgExtendLockup): Promise<MsgExtendLockupResponse> {
-    const data = MsgExtendLockup.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Msg", "ExtendLockup", data);
-    return promise.then(data => MsgExtendLockupResponse.decode(new BinaryReader(data)));
-  }
-  forceUnlock(request: MsgForceUnlock): Promise<MsgForceUnlockResponse> {
-    const data = MsgForceUnlock.encode(request).finish();
-    const promise = this.rpc.request("osmosis.lockup.Msg", "ForceUnlock", data);
-    return promise.then(data => MsgForceUnlockResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/lockup/tx.ts b/examples/injective/src/codegen/osmosis/lockup/tx.ts
deleted file mode 100644
index 1bb76c57..00000000
--- a/examples/injective/src/codegen/osmosis/lockup/tx.ts
+++ /dev/null
@@ -1,1275 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { PeriodLock, PeriodLockAmino, PeriodLockSDKType } from "./lock";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-export interface MsgLockTokens {
-  owner: string;
-  duration: Duration | undefined;
-  coins: Coin[];
-}
-export interface MsgLockTokensProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgLockTokens";
-  value: Uint8Array;
-}
-export interface MsgLockTokensAmino {
-  owner: string;
-  duration?: DurationAmino | undefined;
-  coins: CoinAmino[];
-}
-export interface MsgLockTokensAminoMsg {
-  type: "osmosis/lockup/lock-tokens";
-  value: MsgLockTokensAmino;
-}
-export interface MsgLockTokensSDKType {
-  owner: string;
-  duration: DurationSDKType | undefined;
-  coins: CoinSDKType[];
-}
-export interface MsgLockTokensResponse {
-  ID: bigint;
-}
-export interface MsgLockTokensResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgLockTokensResponse";
-  value: Uint8Array;
-}
-export interface MsgLockTokensResponseAmino {
-  ID: string;
-}
-export interface MsgLockTokensResponseAminoMsg {
-  type: "osmosis/lockup/lock-tokens-response";
-  value: MsgLockTokensResponseAmino;
-}
-export interface MsgLockTokensResponseSDKType {
-  ID: bigint;
-}
-export interface MsgBeginUnlockingAll {
-  owner: string;
-}
-export interface MsgBeginUnlockingAllProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll";
-  value: Uint8Array;
-}
-export interface MsgBeginUnlockingAllAmino {
-  owner: string;
-}
-export interface MsgBeginUnlockingAllAminoMsg {
-  type: "osmosis/lockup/begin-unlock-tokens";
-  value: MsgBeginUnlockingAllAmino;
-}
-export interface MsgBeginUnlockingAllSDKType {
-  owner: string;
-}
-export interface MsgBeginUnlockingAllResponse {
-  unlocks: PeriodLock[];
-}
-export interface MsgBeginUnlockingAllResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingAllResponse";
-  value: Uint8Array;
-}
-export interface MsgBeginUnlockingAllResponseAmino {
-  unlocks: PeriodLockAmino[];
-}
-export interface MsgBeginUnlockingAllResponseAminoMsg {
-  type: "osmosis/lockup/begin-unlocking-all-response";
-  value: MsgBeginUnlockingAllResponseAmino;
-}
-export interface MsgBeginUnlockingAllResponseSDKType {
-  unlocks: PeriodLockSDKType[];
-}
-export interface MsgBeginUnlocking {
-  owner: string;
-  ID: bigint;
-  /** Amount of unlocking coins. Unlock all if not set. */
-  coins: Coin[];
-}
-export interface MsgBeginUnlockingProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlocking";
-  value: Uint8Array;
-}
-export interface MsgBeginUnlockingAmino {
-  owner: string;
-  ID: string;
-  /** Amount of unlocking coins. Unlock all if not set. */
-  coins: CoinAmino[];
-}
-export interface MsgBeginUnlockingAminoMsg {
-  type: "osmosis/lockup/begin-unlock-period-lock";
-  value: MsgBeginUnlockingAmino;
-}
-export interface MsgBeginUnlockingSDKType {
-  owner: string;
-  ID: bigint;
-  coins: CoinSDKType[];
-}
-export interface MsgBeginUnlockingResponse {
-  success: boolean;
-}
-export interface MsgBeginUnlockingResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingResponse";
-  value: Uint8Array;
-}
-export interface MsgBeginUnlockingResponseAmino {
-  success: boolean;
-}
-export interface MsgBeginUnlockingResponseAminoMsg {
-  type: "osmosis/lockup/begin-unlocking-response";
-  value: MsgBeginUnlockingResponseAmino;
-}
-export interface MsgBeginUnlockingResponseSDKType {
-  success: boolean;
-}
-/**
- * MsgExtendLockup extends the existing lockup's duration.
- * The new duration is longer than the original.
- */
-export interface MsgExtendLockup {
-  owner: string;
-  ID: bigint;
-  /**
-   * duration to be set. fails if lower than the current duration, or is
-   * unlocking
-   */
-  duration: Duration | undefined;
-}
-export interface MsgExtendLockupProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgExtendLockup";
-  value: Uint8Array;
-}
-/**
- * MsgExtendLockup extends the existing lockup's duration.
- * The new duration is longer than the original.
- */
-export interface MsgExtendLockupAmino {
-  owner: string;
-  ID: string;
-  /**
-   * duration to be set. fails if lower than the current duration, or is
-   * unlocking
-   */
-  duration?: DurationAmino | undefined;
-}
-export interface MsgExtendLockupAminoMsg {
-  type: "osmosis/lockup/extend-lockup";
-  value: MsgExtendLockupAmino;
-}
-/**
- * MsgExtendLockup extends the existing lockup's duration.
- * The new duration is longer than the original.
- */
-export interface MsgExtendLockupSDKType {
-  owner: string;
-  ID: bigint;
-  duration: DurationSDKType | undefined;
-}
-export interface MsgExtendLockupResponse {
-  success: boolean;
-}
-export interface MsgExtendLockupResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgExtendLockupResponse";
-  value: Uint8Array;
-}
-export interface MsgExtendLockupResponseAmino {
-  success: boolean;
-}
-export interface MsgExtendLockupResponseAminoMsg {
-  type: "osmosis/lockup/extend-lockup-response";
-  value: MsgExtendLockupResponseAmino;
-}
-export interface MsgExtendLockupResponseSDKType {
-  success: boolean;
-}
-/**
- * MsgForceUnlock unlocks locks immediately for
- * addresses registered via governance.
- */
-export interface MsgForceUnlock {
-  owner: string;
-  ID: bigint;
-  /** Amount of unlocking coins. Unlock all if not set. */
-  coins: Coin[];
-}
-export interface MsgForceUnlockProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgForceUnlock";
-  value: Uint8Array;
-}
-/**
- * MsgForceUnlock unlocks locks immediately for
- * addresses registered via governance.
- */
-export interface MsgForceUnlockAmino {
-  owner: string;
-  ID: string;
-  /** Amount of unlocking coins. Unlock all if not set. */
-  coins: CoinAmino[];
-}
-export interface MsgForceUnlockAminoMsg {
-  type: "osmosis/lockup/force-unlock";
-  value: MsgForceUnlockAmino;
-}
-/**
- * MsgForceUnlock unlocks locks immediately for
- * addresses registered via governance.
- */
-export interface MsgForceUnlockSDKType {
-  owner: string;
-  ID: bigint;
-  coins: CoinSDKType[];
-}
-export interface MsgForceUnlockResponse {
-  success: boolean;
-}
-export interface MsgForceUnlockResponseProtoMsg {
-  typeUrl: "/osmosis.lockup.MsgForceUnlockResponse";
-  value: Uint8Array;
-}
-export interface MsgForceUnlockResponseAmino {
-  success: boolean;
-}
-export interface MsgForceUnlockResponseAminoMsg {
-  type: "osmosis/lockup/force-unlock-response";
-  value: MsgForceUnlockResponseAmino;
-}
-export interface MsgForceUnlockResponseSDKType {
-  success: boolean;
-}
-function createBaseMsgLockTokens(): MsgLockTokens {
-  return {
-    owner: "",
-    duration: Duration.fromPartial({}),
-    coins: []
-  };
-}
-export const MsgLockTokens = {
-  typeUrl: "/osmosis.lockup.MsgLockTokens",
-  aminoType: "osmosis/lockup/lock-tokens",
-  encode(message: MsgLockTokens, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLockTokens {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLockTokens();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgLockTokens {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgLockTokens): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgLockTokens>): MsgLockTokens {
-    const message = createBaseMsgLockTokens();
-    message.owner = object.owner ?? "";
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgLockTokensSDKType): MsgLockTokens {
-    return {
-      owner: object?.owner,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgLockTokens): MsgLockTokensSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgLockTokensAmino): MsgLockTokens {
-    return {
-      owner: object.owner,
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgLockTokens): MsgLockTokensAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgLockTokensAminoMsg): MsgLockTokens {
-    return MsgLockTokens.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLockTokens): MsgLockTokensAminoMsg {
-    return {
-      type: "osmosis/lockup/lock-tokens",
-      value: MsgLockTokens.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLockTokensProtoMsg): MsgLockTokens {
-    return MsgLockTokens.decode(message.value);
-  },
-  toProto(message: MsgLockTokens): Uint8Array {
-    return MsgLockTokens.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLockTokens): MsgLockTokensProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgLockTokens",
-      value: MsgLockTokens.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgLockTokensResponse(): MsgLockTokensResponse {
-  return {
-    ID: BigInt(0)
-  };
-}
-export const MsgLockTokensResponse = {
-  typeUrl: "/osmosis.lockup.MsgLockTokensResponse",
-  aminoType: "osmosis/lockup/lock-tokens-response",
-  encode(message: MsgLockTokensResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(8).uint64(message.ID);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLockTokensResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLockTokensResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ID = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgLockTokensResponse {
-    return {
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgLockTokensResponse): unknown {
-    const obj: any = {};
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgLockTokensResponse>): MsgLockTokensResponse {
-    const message = createBaseMsgLockTokensResponse();
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgLockTokensResponseSDKType): MsgLockTokensResponse {
-    return {
-      ID: object?.ID
-    };
-  },
-  toSDK(message: MsgLockTokensResponse): MsgLockTokensResponseSDKType {
-    const obj: any = {};
-    obj.ID = message.ID;
-    return obj;
-  },
-  fromAmino(object: MsgLockTokensResponseAmino): MsgLockTokensResponse {
-    return {
-      ID: BigInt(object.ID)
-    };
-  },
-  toAmino(message: MsgLockTokensResponse): MsgLockTokensResponseAmino {
-    const obj: any = {};
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgLockTokensResponseAminoMsg): MsgLockTokensResponse {
-    return MsgLockTokensResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLockTokensResponse): MsgLockTokensResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/lock-tokens-response",
-      value: MsgLockTokensResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLockTokensResponseProtoMsg): MsgLockTokensResponse {
-    return MsgLockTokensResponse.decode(message.value);
-  },
-  toProto(message: MsgLockTokensResponse): Uint8Array {
-    return MsgLockTokensResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLockTokensResponse): MsgLockTokensResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgLockTokensResponse",
-      value: MsgLockTokensResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginUnlockingAll(): MsgBeginUnlockingAll {
-  return {
-    owner: ""
-  };
-}
-export const MsgBeginUnlockingAll = {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-  aminoType: "osmosis/lockup/begin-unlock-tokens",
-  encode(message: MsgBeginUnlockingAll, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginUnlockingAll {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginUnlockingAll();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginUnlockingAll {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : ""
-    };
-  },
-  toJSON(message: MsgBeginUnlockingAll): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginUnlockingAll>): MsgBeginUnlockingAll {
-    const message = createBaseMsgBeginUnlockingAll();
-    message.owner = object.owner ?? "";
-    return message;
-  },
-  fromSDK(object: MsgBeginUnlockingAllSDKType): MsgBeginUnlockingAll {
-    return {
-      owner: object?.owner
-    };
-  },
-  toSDK(message: MsgBeginUnlockingAll): MsgBeginUnlockingAllSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAmino(object: MsgBeginUnlockingAllAmino): MsgBeginUnlockingAll {
-    return {
-      owner: object.owner
-    };
-  },
-  toAmino(message: MsgBeginUnlockingAll): MsgBeginUnlockingAllAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginUnlockingAllAminoMsg): MsgBeginUnlockingAll {
-    return MsgBeginUnlockingAll.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginUnlockingAll): MsgBeginUnlockingAllAminoMsg {
-    return {
-      type: "osmosis/lockup/begin-unlock-tokens",
-      value: MsgBeginUnlockingAll.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginUnlockingAllProtoMsg): MsgBeginUnlockingAll {
-    return MsgBeginUnlockingAll.decode(message.value);
-  },
-  toProto(message: MsgBeginUnlockingAll): Uint8Array {
-    return MsgBeginUnlockingAll.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginUnlockingAll): MsgBeginUnlockingAllProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgBeginUnlockingAll",
-      value: MsgBeginUnlockingAll.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginUnlockingAllResponse(): MsgBeginUnlockingAllResponse {
-  return {
-    unlocks: []
-  };
-}
-export const MsgBeginUnlockingAllResponse = {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingAllResponse",
-  aminoType: "osmosis/lockup/begin-unlocking-all-response",
-  encode(message: MsgBeginUnlockingAllResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.unlocks) {
-      PeriodLock.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginUnlockingAllResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginUnlockingAllResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.unlocks.push(PeriodLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginUnlockingAllResponse {
-    return {
-      unlocks: Array.isArray(object?.unlocks) ? object.unlocks.map((e: any) => PeriodLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgBeginUnlockingAllResponse): unknown {
-    const obj: any = {};
-    if (message.unlocks) {
-      obj.unlocks = message.unlocks.map(e => e ? PeriodLock.toJSON(e) : undefined);
-    } else {
-      obj.unlocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginUnlockingAllResponse>): MsgBeginUnlockingAllResponse {
-    const message = createBaseMsgBeginUnlockingAllResponse();
-    message.unlocks = object.unlocks?.map(e => PeriodLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgBeginUnlockingAllResponseSDKType): MsgBeginUnlockingAllResponse {
-    return {
-      unlocks: Array.isArray(object?.unlocks) ? object.unlocks.map((e: any) => PeriodLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgBeginUnlockingAllResponse): MsgBeginUnlockingAllResponseSDKType {
-    const obj: any = {};
-    if (message.unlocks) {
-      obj.unlocks = message.unlocks.map(e => e ? PeriodLock.toSDK(e) : undefined);
-    } else {
-      obj.unlocks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgBeginUnlockingAllResponseAmino): MsgBeginUnlockingAllResponse {
-    return {
-      unlocks: Array.isArray(object?.unlocks) ? object.unlocks.map((e: any) => PeriodLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgBeginUnlockingAllResponse): MsgBeginUnlockingAllResponseAmino {
-    const obj: any = {};
-    if (message.unlocks) {
-      obj.unlocks = message.unlocks.map(e => e ? PeriodLock.toAmino(e) : undefined);
-    } else {
-      obj.unlocks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginUnlockingAllResponseAminoMsg): MsgBeginUnlockingAllResponse {
-    return MsgBeginUnlockingAllResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginUnlockingAllResponse): MsgBeginUnlockingAllResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/begin-unlocking-all-response",
-      value: MsgBeginUnlockingAllResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginUnlockingAllResponseProtoMsg): MsgBeginUnlockingAllResponse {
-    return MsgBeginUnlockingAllResponse.decode(message.value);
-  },
-  toProto(message: MsgBeginUnlockingAllResponse): Uint8Array {
-    return MsgBeginUnlockingAllResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginUnlockingAllResponse): MsgBeginUnlockingAllResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgBeginUnlockingAllResponse",
-      value: MsgBeginUnlockingAllResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginUnlocking(): MsgBeginUnlocking {
-  return {
-    owner: "",
-    ID: BigInt(0),
-    coins: []
-  };
-}
-export const MsgBeginUnlocking = {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-  aminoType: "osmosis/lockup/begin-unlock-period-lock",
-  encode(message: MsgBeginUnlocking, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(16).uint64(message.ID);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginUnlocking {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginUnlocking();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.ID = reader.uint64();
-          break;
-        case 3:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginUnlocking {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0),
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgBeginUnlocking): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginUnlocking>): MsgBeginUnlocking {
-    const message = createBaseMsgBeginUnlocking();
-    message.owner = object.owner ?? "";
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgBeginUnlockingSDKType): MsgBeginUnlocking {
-    return {
-      owner: object?.owner,
-      ID: object?.ID,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgBeginUnlocking): MsgBeginUnlockingSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgBeginUnlockingAmino): MsgBeginUnlocking {
-    return {
-      owner: object.owner,
-      ID: BigInt(object.ID),
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgBeginUnlocking): MsgBeginUnlockingAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginUnlockingAminoMsg): MsgBeginUnlocking {
-    return MsgBeginUnlocking.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginUnlocking): MsgBeginUnlockingAminoMsg {
-    return {
-      type: "osmosis/lockup/begin-unlock-period-lock",
-      value: MsgBeginUnlocking.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginUnlockingProtoMsg): MsgBeginUnlocking {
-    return MsgBeginUnlocking.decode(message.value);
-  },
-  toProto(message: MsgBeginUnlocking): Uint8Array {
-    return MsgBeginUnlocking.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginUnlocking): MsgBeginUnlockingProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgBeginUnlocking",
-      value: MsgBeginUnlocking.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBeginUnlockingResponse(): MsgBeginUnlockingResponse {
-  return {
-    success: false
-  };
-}
-export const MsgBeginUnlockingResponse = {
-  typeUrl: "/osmosis.lockup.MsgBeginUnlockingResponse",
-  aminoType: "osmosis/lockup/begin-unlocking-response",
-  encode(message: MsgBeginUnlockingResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.success === true) {
-      writer.uint32(8).bool(message.success);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBeginUnlockingResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBeginUnlockingResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.success = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBeginUnlockingResponse {
-    return {
-      success: isSet(object.success) ? Boolean(object.success) : false
-    };
-  },
-  toJSON(message: MsgBeginUnlockingResponse): unknown {
-    const obj: any = {};
-    message.success !== undefined && (obj.success = message.success);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBeginUnlockingResponse>): MsgBeginUnlockingResponse {
-    const message = createBaseMsgBeginUnlockingResponse();
-    message.success = object.success ?? false;
-    return message;
-  },
-  fromSDK(object: MsgBeginUnlockingResponseSDKType): MsgBeginUnlockingResponse {
-    return {
-      success: object?.success
-    };
-  },
-  toSDK(message: MsgBeginUnlockingResponse): MsgBeginUnlockingResponseSDKType {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAmino(object: MsgBeginUnlockingResponseAmino): MsgBeginUnlockingResponse {
-    return {
-      success: object.success
-    };
-  },
-  toAmino(message: MsgBeginUnlockingResponse): MsgBeginUnlockingResponseAmino {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAminoMsg(object: MsgBeginUnlockingResponseAminoMsg): MsgBeginUnlockingResponse {
-    return MsgBeginUnlockingResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBeginUnlockingResponse): MsgBeginUnlockingResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/begin-unlocking-response",
-      value: MsgBeginUnlockingResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBeginUnlockingResponseProtoMsg): MsgBeginUnlockingResponse {
-    return MsgBeginUnlockingResponse.decode(message.value);
-  },
-  toProto(message: MsgBeginUnlockingResponse): Uint8Array {
-    return MsgBeginUnlockingResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBeginUnlockingResponse): MsgBeginUnlockingResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgBeginUnlockingResponse",
-      value: MsgBeginUnlockingResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExtendLockup(): MsgExtendLockup {
-  return {
-    owner: "",
-    ID: BigInt(0),
-    duration: Duration.fromPartial({})
-  };
-}
-export const MsgExtendLockup = {
-  typeUrl: "/osmosis.lockup.MsgExtendLockup",
-  aminoType: "osmosis/lockup/extend-lockup",
-  encode(message: MsgExtendLockup, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(16).uint64(message.ID);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExtendLockup {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExtendLockup();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.ID = reader.uint64();
-          break;
-        case 3:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExtendLockup {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0),
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: MsgExtendLockup): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExtendLockup>): MsgExtendLockup {
-    const message = createBaseMsgExtendLockup();
-    message.owner = object.owner ?? "";
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgExtendLockupSDKType): MsgExtendLockup {
-    return {
-      owner: object?.owner,
-      ID: object?.ID,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: MsgExtendLockup): MsgExtendLockupSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgExtendLockupAmino): MsgExtendLockup {
-    return {
-      owner: object.owner,
-      ID: BigInt(object.ID),
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: MsgExtendLockup): MsgExtendLockupAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExtendLockupAminoMsg): MsgExtendLockup {
-    return MsgExtendLockup.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExtendLockup): MsgExtendLockupAminoMsg {
-    return {
-      type: "osmosis/lockup/extend-lockup",
-      value: MsgExtendLockup.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExtendLockupProtoMsg): MsgExtendLockup {
-    return MsgExtendLockup.decode(message.value);
-  },
-  toProto(message: MsgExtendLockup): Uint8Array {
-    return MsgExtendLockup.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExtendLockup): MsgExtendLockupProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgExtendLockup",
-      value: MsgExtendLockup.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgExtendLockupResponse(): MsgExtendLockupResponse {
-  return {
-    success: false
-  };
-}
-export const MsgExtendLockupResponse = {
-  typeUrl: "/osmosis.lockup.MsgExtendLockupResponse",
-  aminoType: "osmosis/lockup/extend-lockup-response",
-  encode(message: MsgExtendLockupResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.success === true) {
-      writer.uint32(8).bool(message.success);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgExtendLockupResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgExtendLockupResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.success = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgExtendLockupResponse {
-    return {
-      success: isSet(object.success) ? Boolean(object.success) : false
-    };
-  },
-  toJSON(message: MsgExtendLockupResponse): unknown {
-    const obj: any = {};
-    message.success !== undefined && (obj.success = message.success);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgExtendLockupResponse>): MsgExtendLockupResponse {
-    const message = createBaseMsgExtendLockupResponse();
-    message.success = object.success ?? false;
-    return message;
-  },
-  fromSDK(object: MsgExtendLockupResponseSDKType): MsgExtendLockupResponse {
-    return {
-      success: object?.success
-    };
-  },
-  toSDK(message: MsgExtendLockupResponse): MsgExtendLockupResponseSDKType {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAmino(object: MsgExtendLockupResponseAmino): MsgExtendLockupResponse {
-    return {
-      success: object.success
-    };
-  },
-  toAmino(message: MsgExtendLockupResponse): MsgExtendLockupResponseAmino {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAminoMsg(object: MsgExtendLockupResponseAminoMsg): MsgExtendLockupResponse {
-    return MsgExtendLockupResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgExtendLockupResponse): MsgExtendLockupResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/extend-lockup-response",
-      value: MsgExtendLockupResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgExtendLockupResponseProtoMsg): MsgExtendLockupResponse {
-    return MsgExtendLockupResponse.decode(message.value);
-  },
-  toProto(message: MsgExtendLockupResponse): Uint8Array {
-    return MsgExtendLockupResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgExtendLockupResponse): MsgExtendLockupResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgExtendLockupResponse",
-      value: MsgExtendLockupResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgForceUnlock(): MsgForceUnlock {
-  return {
-    owner: "",
-    ID: BigInt(0),
-    coins: []
-  };
-}
-export const MsgForceUnlock = {
-  typeUrl: "/osmosis.lockup.MsgForceUnlock",
-  aminoType: "osmosis/lockup/force-unlock",
-  encode(message: MsgForceUnlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.owner !== "") {
-      writer.uint32(10).string(message.owner);
-    }
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(16).uint64(message.ID);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgForceUnlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgForceUnlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.owner = reader.string();
-          break;
-        case 2:
-          message.ID = reader.uint64();
-          break;
-        case 3:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgForceUnlock {
-    return {
-      owner: isSet(object.owner) ? String(object.owner) : "",
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0),
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: MsgForceUnlock): unknown {
-    const obj: any = {};
-    message.owner !== undefined && (obj.owner = message.owner);
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgForceUnlock>): MsgForceUnlock {
-    const message = createBaseMsgForceUnlock();
-    message.owner = object.owner ?? "";
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: MsgForceUnlockSDKType): MsgForceUnlock {
-    return {
-      owner: object?.owner,
-      ID: object?.ID,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: MsgForceUnlock): MsgForceUnlockSDKType {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgForceUnlockAmino): MsgForceUnlock {
-    return {
-      owner: object.owner,
-      ID: BigInt(object.ID),
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: MsgForceUnlock): MsgForceUnlockAmino {
-    const obj: any = {};
-    obj.owner = message.owner;
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgForceUnlockAminoMsg): MsgForceUnlock {
-    return MsgForceUnlock.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgForceUnlock): MsgForceUnlockAminoMsg {
-    return {
-      type: "osmosis/lockup/force-unlock",
-      value: MsgForceUnlock.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgForceUnlockProtoMsg): MsgForceUnlock {
-    return MsgForceUnlock.decode(message.value);
-  },
-  toProto(message: MsgForceUnlock): Uint8Array {
-    return MsgForceUnlock.encode(message).finish();
-  },
-  toProtoMsg(message: MsgForceUnlock): MsgForceUnlockProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgForceUnlock",
-      value: MsgForceUnlock.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgForceUnlockResponse(): MsgForceUnlockResponse {
-  return {
-    success: false
-  };
-}
-export const MsgForceUnlockResponse = {
-  typeUrl: "/osmosis.lockup.MsgForceUnlockResponse",
-  aminoType: "osmosis/lockup/force-unlock-response",
-  encode(message: MsgForceUnlockResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.success === true) {
-      writer.uint32(8).bool(message.success);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgForceUnlockResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgForceUnlockResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.success = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgForceUnlockResponse {
-    return {
-      success: isSet(object.success) ? Boolean(object.success) : false
-    };
-  },
-  toJSON(message: MsgForceUnlockResponse): unknown {
-    const obj: any = {};
-    message.success !== undefined && (obj.success = message.success);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgForceUnlockResponse>): MsgForceUnlockResponse {
-    const message = createBaseMsgForceUnlockResponse();
-    message.success = object.success ?? false;
-    return message;
-  },
-  fromSDK(object: MsgForceUnlockResponseSDKType): MsgForceUnlockResponse {
-    return {
-      success: object?.success
-    };
-  },
-  toSDK(message: MsgForceUnlockResponse): MsgForceUnlockResponseSDKType {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAmino(object: MsgForceUnlockResponseAmino): MsgForceUnlockResponse {
-    return {
-      success: object.success
-    };
-  },
-  toAmino(message: MsgForceUnlockResponse): MsgForceUnlockResponseAmino {
-    const obj: any = {};
-    obj.success = message.success;
-    return obj;
-  },
-  fromAminoMsg(object: MsgForceUnlockResponseAminoMsg): MsgForceUnlockResponse {
-    return MsgForceUnlockResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgForceUnlockResponse): MsgForceUnlockResponseAminoMsg {
-    return {
-      type: "osmosis/lockup/force-unlock-response",
-      value: MsgForceUnlockResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgForceUnlockResponseProtoMsg): MsgForceUnlockResponse {
-    return MsgForceUnlockResponse.decode(message.value);
-  },
-  toProto(message: MsgForceUnlockResponse): Uint8Array {
-    return MsgForceUnlockResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgForceUnlockResponse): MsgForceUnlockResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.lockup.MsgForceUnlockResponse",
-      value: MsgForceUnlockResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/mint/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/mint/v1beta1/genesis.ts
deleted file mode 100644
index 9ebd5901..00000000
--- a/examples/injective/src/codegen/osmosis/mint/v1beta1/genesis.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-import { Minter, MinterAmino, MinterSDKType, Params, ParamsAmino, ParamsSDKType } from "./mint";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisState {
-  /** minter is an abstraction for holding current rewards information. */
-  minter: Minter | undefined;
-  /** params defines all the paramaters of the mint module. */
-  params: Params | undefined;
-  /**
-   * reduction_started_epoch is the first epoch in which the reduction of mint
-   * begins.
-   */
-  reductionStartedEpoch: bigint;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisStateAmino {
-  /** minter is an abstraction for holding current rewards information. */
-  minter?: MinterAmino | undefined;
-  /** params defines all the paramaters of the mint module. */
-  params?: ParamsAmino | undefined;
-  /**
-   * reduction_started_epoch is the first epoch in which the reduction of mint
-   * begins.
-   */
-  reduction_started_epoch: string;
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/mint/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the mint module's genesis state. */
-export interface GenesisStateSDKType {
-  minter: MinterSDKType | undefined;
-  params: ParamsSDKType | undefined;
-  reduction_started_epoch: bigint;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    minter: Minter.fromPartial({}),
-    params: Params.fromPartial({}),
-    reductionStartedEpoch: BigInt(0)
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.mint.v1beta1.GenesisState",
-  aminoType: "osmosis/mint/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.minter !== undefined) {
-      Minter.encode(message.minter, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.reductionStartedEpoch !== BigInt(0)) {
-      writer.uint32(24).int64(message.reductionStartedEpoch);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minter = Minter.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.reductionStartedEpoch = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      minter: isSet(object.minter) ? Minter.fromJSON(object.minter) : undefined,
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      reductionStartedEpoch: isSet(object.reductionStartedEpoch) ? BigInt(object.reductionStartedEpoch.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.minter !== undefined && (obj.minter = message.minter ? Minter.toJSON(message.minter) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    message.reductionStartedEpoch !== undefined && (obj.reductionStartedEpoch = (message.reductionStartedEpoch || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.minter = object.minter !== undefined && object.minter !== null ? Minter.fromPartial(object.minter) : undefined;
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.reductionStartedEpoch = object.reductionStartedEpoch !== undefined && object.reductionStartedEpoch !== null ? BigInt(object.reductionStartedEpoch.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      minter: object.minter ? Minter.fromSDK(object.minter) : undefined,
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      reductionStartedEpoch: object?.reduction_started_epoch
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.minter !== undefined && (obj.minter = message.minter ? Minter.toSDK(message.minter) : undefined);
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    obj.reduction_started_epoch = message.reductionStartedEpoch;
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      minter: object?.minter ? Minter.fromAmino(object.minter) : undefined,
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      reductionStartedEpoch: BigInt(object.reduction_started_epoch)
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.minter = message.minter ? Minter.toAmino(message.minter) : undefined;
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    obj.reduction_started_epoch = message.reductionStartedEpoch ? message.reductionStartedEpoch.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/mint/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/mint/v1beta1/mint.ts b/examples/injective/src/codegen/osmosis/mint/v1beta1/mint.ts
deleted file mode 100644
index 98ede5ee..00000000
--- a/examples/injective/src/codegen/osmosis/mint/v1beta1/mint.ts
+++ /dev/null
@@ -1,744 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Minter represents the minting state. */
-export interface Minter {
-  /** epoch_provisions represent rewards for the current epoch. */
-  epochProvisions: string;
-}
-export interface MinterProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.Minter";
-  value: Uint8Array;
-}
-/** Minter represents the minting state. */
-export interface MinterAmino {
-  /** epoch_provisions represent rewards for the current epoch. */
-  epoch_provisions: string;
-}
-export interface MinterAminoMsg {
-  type: "osmosis/mint/minter";
-  value: MinterAmino;
-}
-/** Minter represents the minting state. */
-export interface MinterSDKType {
-  epoch_provisions: string;
-}
-/**
- * WeightedAddress represents an address with a weight assigned to it.
- * The weight is used to determine the proportion of the total minted
- * tokens to be minted to the address.
- */
-export interface WeightedAddress {
-  address: string;
-  weight: string;
-}
-export interface WeightedAddressProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.WeightedAddress";
-  value: Uint8Array;
-}
-/**
- * WeightedAddress represents an address with a weight assigned to it.
- * The weight is used to determine the proportion of the total minted
- * tokens to be minted to the address.
- */
-export interface WeightedAddressAmino {
-  address: string;
-  weight: string;
-}
-export interface WeightedAddressAminoMsg {
-  type: "osmosis/mint/weighted-address";
-  value: WeightedAddressAmino;
-}
-/**
- * WeightedAddress represents an address with a weight assigned to it.
- * The weight is used to determine the proportion of the total minted
- * tokens to be minted to the address.
- */
-export interface WeightedAddressSDKType {
-  address: string;
-  weight: string;
-}
-/**
- * DistributionProportions defines the distribution proportions of the minted
- * denom. In other words, defines which stakeholders will receive the minted
- * denoms and how much.
- */
-export interface DistributionProportions {
-  /**
-   * staking defines the proportion of the minted mint_denom that is to be
-   * allocated as staking rewards.
-   */
-  staking: string;
-  /**
-   * pool_incentives defines the proportion of the minted mint_denom that is
-   * to be allocated as pool incentives.
-   */
-  poolIncentives: string;
-  /**
-   * developer_rewards defines the proportion of the minted mint_denom that is
-   * to be allocated to developer rewards address.
-   */
-  developerRewards: string;
-  /**
-   * community_pool defines the proportion of the minted mint_denom that is
-   * to be allocated to the community pool.
-   */
-  communityPool: string;
-}
-export interface DistributionProportionsProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.DistributionProportions";
-  value: Uint8Array;
-}
-/**
- * DistributionProportions defines the distribution proportions of the minted
- * denom. In other words, defines which stakeholders will receive the minted
- * denoms and how much.
- */
-export interface DistributionProportionsAmino {
-  /**
-   * staking defines the proportion of the minted mint_denom that is to be
-   * allocated as staking rewards.
-   */
-  staking: string;
-  /**
-   * pool_incentives defines the proportion of the minted mint_denom that is
-   * to be allocated as pool incentives.
-   */
-  pool_incentives: string;
-  /**
-   * developer_rewards defines the proportion of the minted mint_denom that is
-   * to be allocated to developer rewards address.
-   */
-  developer_rewards: string;
-  /**
-   * community_pool defines the proportion of the minted mint_denom that is
-   * to be allocated to the community pool.
-   */
-  community_pool: string;
-}
-export interface DistributionProportionsAminoMsg {
-  type: "osmosis/mint/distribution-proportions";
-  value: DistributionProportionsAmino;
-}
-/**
- * DistributionProportions defines the distribution proportions of the minted
- * denom. In other words, defines which stakeholders will receive the minted
- * denoms and how much.
- */
-export interface DistributionProportionsSDKType {
-  staking: string;
-  pool_incentives: string;
-  developer_rewards: string;
-  community_pool: string;
-}
-/** Params holds parameters for the x/mint module. */
-export interface Params {
-  /** mint_denom is the denom of the coin to mint. */
-  mintDenom: string;
-  /** genesis_epoch_provisions epoch provisions from the first epoch. */
-  genesisEpochProvisions: string;
-  /** epoch_identifier mint epoch identifier e.g. (day, week). */
-  epochIdentifier: string;
-  /**
-   * reduction_period_in_epochs the number of epochs it takes
-   * to reduce the rewards.
-   */
-  reductionPeriodInEpochs: bigint;
-  /**
-   * reduction_factor is the reduction multiplier to execute
-   * at the end of each period set by reduction_period_in_epochs.
-   */
-  reductionFactor: string;
-  /**
-   * distribution_proportions defines the distribution proportions of the minted
-   * denom. In other words, defines which stakeholders will receive the minted
-   * denoms and how much.
-   */
-  distributionProportions: DistributionProportions | undefined;
-  /**
-   * weighted_developer_rewards_receivers is the address to receive developer
-   * rewards with weights assignedt to each address. The final amount that each
-   * address receives is: epoch_provisions *
-   * distribution_proportions.developer_rewards * Address's Weight.
-   */
-  weightedDeveloperRewardsReceivers: WeightedAddress[];
-  /**
-   * minting_rewards_distribution_start_epoch start epoch to distribute minting
-   * rewards
-   */
-  mintingRewardsDistributionStartEpoch: bigint;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the x/mint module. */
-export interface ParamsAmino {
-  /** mint_denom is the denom of the coin to mint. */
-  mint_denom: string;
-  /** genesis_epoch_provisions epoch provisions from the first epoch. */
-  genesis_epoch_provisions: string;
-  /** epoch_identifier mint epoch identifier e.g. (day, week). */
-  epoch_identifier: string;
-  /**
-   * reduction_period_in_epochs the number of epochs it takes
-   * to reduce the rewards.
-   */
-  reduction_period_in_epochs: string;
-  /**
-   * reduction_factor is the reduction multiplier to execute
-   * at the end of each period set by reduction_period_in_epochs.
-   */
-  reduction_factor: string;
-  /**
-   * distribution_proportions defines the distribution proportions of the minted
-   * denom. In other words, defines which stakeholders will receive the minted
-   * denoms and how much.
-   */
-  distribution_proportions?: DistributionProportionsAmino | undefined;
-  /**
-   * weighted_developer_rewards_receivers is the address to receive developer
-   * rewards with weights assignedt to each address. The final amount that each
-   * address receives is: epoch_provisions *
-   * distribution_proportions.developer_rewards * Address's Weight.
-   */
-  weighted_developer_rewards_receivers: WeightedAddressAmino[];
-  /**
-   * minting_rewards_distribution_start_epoch start epoch to distribute minting
-   * rewards
-   */
-  minting_rewards_distribution_start_epoch: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/mint/params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the x/mint module. */
-export interface ParamsSDKType {
-  mint_denom: string;
-  genesis_epoch_provisions: string;
-  epoch_identifier: string;
-  reduction_period_in_epochs: bigint;
-  reduction_factor: string;
-  distribution_proportions: DistributionProportionsSDKType | undefined;
-  weighted_developer_rewards_receivers: WeightedAddressSDKType[];
-  minting_rewards_distribution_start_epoch: bigint;
-}
-function createBaseMinter(): Minter {
-  return {
-    epochProvisions: ""
-  };
-}
-export const Minter = {
-  typeUrl: "/osmosis.mint.v1beta1.Minter",
-  aminoType: "osmosis/mint/minter",
-  encode(message: Minter, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.epochProvisions !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.epochProvisions, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Minter {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMinter();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.epochProvisions = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Minter {
-    return {
-      epochProvisions: isSet(object.epochProvisions) ? String(object.epochProvisions) : ""
-    };
-  },
-  toJSON(message: Minter): unknown {
-    const obj: any = {};
-    message.epochProvisions !== undefined && (obj.epochProvisions = message.epochProvisions);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Minter>): Minter {
-    const message = createBaseMinter();
-    message.epochProvisions = object.epochProvisions ?? "";
-    return message;
-  },
-  fromSDK(object: MinterSDKType): Minter {
-    return {
-      epochProvisions: object?.epoch_provisions
-    };
-  },
-  toSDK(message: Minter): MinterSDKType {
-    const obj: any = {};
-    obj.epoch_provisions = message.epochProvisions;
-    return obj;
-  },
-  fromAmino(object: MinterAmino): Minter {
-    return {
-      epochProvisions: object.epoch_provisions
-    };
-  },
-  toAmino(message: Minter): MinterAmino {
-    const obj: any = {};
-    obj.epoch_provisions = message.epochProvisions;
-    return obj;
-  },
-  fromAminoMsg(object: MinterAminoMsg): Minter {
-    return Minter.fromAmino(object.value);
-  },
-  toAminoMsg(message: Minter): MinterAminoMsg {
-    return {
-      type: "osmosis/mint/minter",
-      value: Minter.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MinterProtoMsg): Minter {
-    return Minter.decode(message.value);
-  },
-  toProto(message: Minter): Uint8Array {
-    return Minter.encode(message).finish();
-  },
-  toProtoMsg(message: Minter): MinterProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.Minter",
-      value: Minter.encode(message).finish()
-    };
-  }
-};
-function createBaseWeightedAddress(): WeightedAddress {
-  return {
-    address: "",
-    weight: ""
-  };
-}
-export const WeightedAddress = {
-  typeUrl: "/osmosis.mint.v1beta1.WeightedAddress",
-  aminoType: "osmosis/mint/weighted-address",
-  encode(message: WeightedAddress, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.weight, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): WeightedAddress {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseWeightedAddress();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.weight = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): WeightedAddress {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      weight: isSet(object.weight) ? String(object.weight) : ""
-    };
-  },
-  toJSON(message: WeightedAddress): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.weight !== undefined && (obj.weight = message.weight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<WeightedAddress>): WeightedAddress {
-    const message = createBaseWeightedAddress();
-    message.address = object.address ?? "";
-    message.weight = object.weight ?? "";
-    return message;
-  },
-  fromSDK(object: WeightedAddressSDKType): WeightedAddress {
-    return {
-      address: object?.address,
-      weight: object?.weight
-    };
-  },
-  toSDK(message: WeightedAddress): WeightedAddressSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAmino(object: WeightedAddressAmino): WeightedAddress {
-    return {
-      address: object.address,
-      weight: object.weight
-    };
-  },
-  toAmino(message: WeightedAddress): WeightedAddressAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAminoMsg(object: WeightedAddressAminoMsg): WeightedAddress {
-    return WeightedAddress.fromAmino(object.value);
-  },
-  toAminoMsg(message: WeightedAddress): WeightedAddressAminoMsg {
-    return {
-      type: "osmosis/mint/weighted-address",
-      value: WeightedAddress.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: WeightedAddressProtoMsg): WeightedAddress {
-    return WeightedAddress.decode(message.value);
-  },
-  toProto(message: WeightedAddress): Uint8Array {
-    return WeightedAddress.encode(message).finish();
-  },
-  toProtoMsg(message: WeightedAddress): WeightedAddressProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.WeightedAddress",
-      value: WeightedAddress.encode(message).finish()
-    };
-  }
-};
-function createBaseDistributionProportions(): DistributionProportions {
-  return {
-    staking: "",
-    poolIncentives: "",
-    developerRewards: "",
-    communityPool: ""
-  };
-}
-export const DistributionProportions = {
-  typeUrl: "/osmosis.mint.v1beta1.DistributionProportions",
-  aminoType: "osmosis/mint/distribution-proportions",
-  encode(message: DistributionProportions, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.staking !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.staking, 18).atomics);
-    }
-    if (message.poolIncentives !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.poolIncentives, 18).atomics);
-    }
-    if (message.developerRewards !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.developerRewards, 18).atomics);
-    }
-    if (message.communityPool !== "") {
-      writer.uint32(34).string(Decimal.fromUserInput(message.communityPool, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DistributionProportions {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDistributionProportions();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.staking = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 2:
-          message.poolIncentives = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.developerRewards = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 4:
-          message.communityPool = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DistributionProportions {
-    return {
-      staking: isSet(object.staking) ? String(object.staking) : "",
-      poolIncentives: isSet(object.poolIncentives) ? String(object.poolIncentives) : "",
-      developerRewards: isSet(object.developerRewards) ? String(object.developerRewards) : "",
-      communityPool: isSet(object.communityPool) ? String(object.communityPool) : ""
-    };
-  },
-  toJSON(message: DistributionProportions): unknown {
-    const obj: any = {};
-    message.staking !== undefined && (obj.staking = message.staking);
-    message.poolIncentives !== undefined && (obj.poolIncentives = message.poolIncentives);
-    message.developerRewards !== undefined && (obj.developerRewards = message.developerRewards);
-    message.communityPool !== undefined && (obj.communityPool = message.communityPool);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DistributionProportions>): DistributionProportions {
-    const message = createBaseDistributionProportions();
-    message.staking = object.staking ?? "";
-    message.poolIncentives = object.poolIncentives ?? "";
-    message.developerRewards = object.developerRewards ?? "";
-    message.communityPool = object.communityPool ?? "";
-    return message;
-  },
-  fromSDK(object: DistributionProportionsSDKType): DistributionProportions {
-    return {
-      staking: object?.staking,
-      poolIncentives: object?.pool_incentives,
-      developerRewards: object?.developer_rewards,
-      communityPool: object?.community_pool
-    };
-  },
-  toSDK(message: DistributionProportions): DistributionProportionsSDKType {
-    const obj: any = {};
-    obj.staking = message.staking;
-    obj.pool_incentives = message.poolIncentives;
-    obj.developer_rewards = message.developerRewards;
-    obj.community_pool = message.communityPool;
-    return obj;
-  },
-  fromAmino(object: DistributionProportionsAmino): DistributionProportions {
-    return {
-      staking: object.staking,
-      poolIncentives: object.pool_incentives,
-      developerRewards: object.developer_rewards,
-      communityPool: object.community_pool
-    };
-  },
-  toAmino(message: DistributionProportions): DistributionProportionsAmino {
-    const obj: any = {};
-    obj.staking = message.staking;
-    obj.pool_incentives = message.poolIncentives;
-    obj.developer_rewards = message.developerRewards;
-    obj.community_pool = message.communityPool;
-    return obj;
-  },
-  fromAminoMsg(object: DistributionProportionsAminoMsg): DistributionProportions {
-    return DistributionProportions.fromAmino(object.value);
-  },
-  toAminoMsg(message: DistributionProportions): DistributionProportionsAminoMsg {
-    return {
-      type: "osmosis/mint/distribution-proportions",
-      value: DistributionProportions.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DistributionProportionsProtoMsg): DistributionProportions {
-    return DistributionProportions.decode(message.value);
-  },
-  toProto(message: DistributionProportions): Uint8Array {
-    return DistributionProportions.encode(message).finish();
-  },
-  toProtoMsg(message: DistributionProportions): DistributionProportionsProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.DistributionProportions",
-      value: DistributionProportions.encode(message).finish()
-    };
-  }
-};
-function createBaseParams(): Params {
-  return {
-    mintDenom: "",
-    genesisEpochProvisions: "",
-    epochIdentifier: "",
-    reductionPeriodInEpochs: BigInt(0),
-    reductionFactor: "",
-    distributionProportions: DistributionProportions.fromPartial({}),
-    weightedDeveloperRewardsReceivers: [],
-    mintingRewardsDistributionStartEpoch: BigInt(0)
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.mint.v1beta1.Params",
-  aminoType: "osmosis/mint/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.mintDenom !== "") {
-      writer.uint32(10).string(message.mintDenom);
-    }
-    if (message.genesisEpochProvisions !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.genesisEpochProvisions, 18).atomics);
-    }
-    if (message.epochIdentifier !== "") {
-      writer.uint32(26).string(message.epochIdentifier);
-    }
-    if (message.reductionPeriodInEpochs !== BigInt(0)) {
-      writer.uint32(32).int64(message.reductionPeriodInEpochs);
-    }
-    if (message.reductionFactor !== "") {
-      writer.uint32(42).string(Decimal.fromUserInput(message.reductionFactor, 18).atomics);
-    }
-    if (message.distributionProportions !== undefined) {
-      DistributionProportions.encode(message.distributionProportions, writer.uint32(50).fork()).ldelim();
-    }
-    for (const v of message.weightedDeveloperRewardsReceivers) {
-      WeightedAddress.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.mintingRewardsDistributionStartEpoch !== BigInt(0)) {
-      writer.uint32(64).int64(message.mintingRewardsDistributionStartEpoch);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.mintDenom = reader.string();
-          break;
-        case 2:
-          message.genesisEpochProvisions = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 3:
-          message.epochIdentifier = reader.string();
-          break;
-        case 4:
-          message.reductionPeriodInEpochs = reader.int64();
-          break;
-        case 5:
-          message.reductionFactor = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 6:
-          message.distributionProportions = DistributionProportions.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.weightedDeveloperRewardsReceivers.push(WeightedAddress.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.mintingRewardsDistributionStartEpoch = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      mintDenom: isSet(object.mintDenom) ? String(object.mintDenom) : "",
-      genesisEpochProvisions: isSet(object.genesisEpochProvisions) ? String(object.genesisEpochProvisions) : "",
-      epochIdentifier: isSet(object.epochIdentifier) ? String(object.epochIdentifier) : "",
-      reductionPeriodInEpochs: isSet(object.reductionPeriodInEpochs) ? BigInt(object.reductionPeriodInEpochs.toString()) : BigInt(0),
-      reductionFactor: isSet(object.reductionFactor) ? String(object.reductionFactor) : "",
-      distributionProportions: isSet(object.distributionProportions) ? DistributionProportions.fromJSON(object.distributionProportions) : undefined,
-      weightedDeveloperRewardsReceivers: Array.isArray(object?.weightedDeveloperRewardsReceivers) ? object.weightedDeveloperRewardsReceivers.map((e: any) => WeightedAddress.fromJSON(e)) : [],
-      mintingRewardsDistributionStartEpoch: isSet(object.mintingRewardsDistributionStartEpoch) ? BigInt(object.mintingRewardsDistributionStartEpoch.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);
-    message.genesisEpochProvisions !== undefined && (obj.genesisEpochProvisions = message.genesisEpochProvisions);
-    message.epochIdentifier !== undefined && (obj.epochIdentifier = message.epochIdentifier);
-    message.reductionPeriodInEpochs !== undefined && (obj.reductionPeriodInEpochs = (message.reductionPeriodInEpochs || BigInt(0)).toString());
-    message.reductionFactor !== undefined && (obj.reductionFactor = message.reductionFactor);
-    message.distributionProportions !== undefined && (obj.distributionProportions = message.distributionProportions ? DistributionProportions.toJSON(message.distributionProportions) : undefined);
-    if (message.weightedDeveloperRewardsReceivers) {
-      obj.weightedDeveloperRewardsReceivers = message.weightedDeveloperRewardsReceivers.map(e => e ? WeightedAddress.toJSON(e) : undefined);
-    } else {
-      obj.weightedDeveloperRewardsReceivers = [];
-    }
-    message.mintingRewardsDistributionStartEpoch !== undefined && (obj.mintingRewardsDistributionStartEpoch = (message.mintingRewardsDistributionStartEpoch || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.mintDenom = object.mintDenom ?? "";
-    message.genesisEpochProvisions = object.genesisEpochProvisions ?? "";
-    message.epochIdentifier = object.epochIdentifier ?? "";
-    message.reductionPeriodInEpochs = object.reductionPeriodInEpochs !== undefined && object.reductionPeriodInEpochs !== null ? BigInt(object.reductionPeriodInEpochs.toString()) : BigInt(0);
-    message.reductionFactor = object.reductionFactor ?? "";
-    message.distributionProportions = object.distributionProportions !== undefined && object.distributionProportions !== null ? DistributionProportions.fromPartial(object.distributionProportions) : undefined;
-    message.weightedDeveloperRewardsReceivers = object.weightedDeveloperRewardsReceivers?.map(e => WeightedAddress.fromPartial(e)) || [];
-    message.mintingRewardsDistributionStartEpoch = object.mintingRewardsDistributionStartEpoch !== undefined && object.mintingRewardsDistributionStartEpoch !== null ? BigInt(object.mintingRewardsDistributionStartEpoch.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      mintDenom: object?.mint_denom,
-      genesisEpochProvisions: object?.genesis_epoch_provisions,
-      epochIdentifier: object?.epoch_identifier,
-      reductionPeriodInEpochs: object?.reduction_period_in_epochs,
-      reductionFactor: object?.reduction_factor,
-      distributionProportions: object.distribution_proportions ? DistributionProportions.fromSDK(object.distribution_proportions) : undefined,
-      weightedDeveloperRewardsReceivers: Array.isArray(object?.weighted_developer_rewards_receivers) ? object.weighted_developer_rewards_receivers.map((e: any) => WeightedAddress.fromSDK(e)) : [],
-      mintingRewardsDistributionStartEpoch: object?.minting_rewards_distribution_start_epoch
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.mint_denom = message.mintDenom;
-    obj.genesis_epoch_provisions = message.genesisEpochProvisions;
-    obj.epoch_identifier = message.epochIdentifier;
-    obj.reduction_period_in_epochs = message.reductionPeriodInEpochs;
-    obj.reduction_factor = message.reductionFactor;
-    message.distributionProportions !== undefined && (obj.distribution_proportions = message.distributionProportions ? DistributionProportions.toSDK(message.distributionProportions) : undefined);
-    if (message.weightedDeveloperRewardsReceivers) {
-      obj.weighted_developer_rewards_receivers = message.weightedDeveloperRewardsReceivers.map(e => e ? WeightedAddress.toSDK(e) : undefined);
-    } else {
-      obj.weighted_developer_rewards_receivers = [];
-    }
-    obj.minting_rewards_distribution_start_epoch = message.mintingRewardsDistributionStartEpoch;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      mintDenom: object.mint_denom,
-      genesisEpochProvisions: object.genesis_epoch_provisions,
-      epochIdentifier: object.epoch_identifier,
-      reductionPeriodInEpochs: BigInt(object.reduction_period_in_epochs),
-      reductionFactor: object.reduction_factor,
-      distributionProportions: object?.distribution_proportions ? DistributionProportions.fromAmino(object.distribution_proportions) : undefined,
-      weightedDeveloperRewardsReceivers: Array.isArray(object?.weighted_developer_rewards_receivers) ? object.weighted_developer_rewards_receivers.map((e: any) => WeightedAddress.fromAmino(e)) : [],
-      mintingRewardsDistributionStartEpoch: BigInt(object.minting_rewards_distribution_start_epoch)
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.mint_denom = message.mintDenom;
-    obj.genesis_epoch_provisions = message.genesisEpochProvisions;
-    obj.epoch_identifier = message.epochIdentifier;
-    obj.reduction_period_in_epochs = message.reductionPeriodInEpochs ? message.reductionPeriodInEpochs.toString() : undefined;
-    obj.reduction_factor = message.reductionFactor;
-    obj.distribution_proportions = message.distributionProportions ? DistributionProportions.toAmino(message.distributionProportions) : undefined;
-    if (message.weightedDeveloperRewardsReceivers) {
-      obj.weighted_developer_rewards_receivers = message.weightedDeveloperRewardsReceivers.map(e => e ? WeightedAddress.toAmino(e) : undefined);
-    } else {
-      obj.weighted_developer_rewards_receivers = [];
-    }
-    obj.minting_rewards_distribution_start_epoch = message.mintingRewardsDistributionStartEpoch ? message.mintingRewardsDistributionStartEpoch.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/mint/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/mint/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/mint/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index f583b79a..00000000
--- a/examples/injective/src/codegen/osmosis/mint/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QueryEpochProvisionsRequest, QueryEpochProvisionsResponse } from "./query";
-/** Query provides defines the gRPC querier service. */
-export interface Query {
-  /** Params returns the total set of minting parameters. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** EpochProvisions returns the current minting epoch provisions value. */
-  epochProvisions(request?: QueryEpochProvisionsRequest): Promise<QueryEpochProvisionsResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.epochProvisions = this.epochProvisions.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.mint.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  epochProvisions(request: QueryEpochProvisionsRequest = {}): Promise<QueryEpochProvisionsResponse> {
-    const data = QueryEpochProvisionsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.mint.v1beta1.Query", "EpochProvisions", data);
-    return promise.then(data => QueryEpochProvisionsResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    epochProvisions(request?: QueryEpochProvisionsRequest): Promise<QueryEpochProvisionsResponse> {
-      return queryService.epochProvisions(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseEpochProvisionsQuery<TData> extends ReactQueryParams<QueryEpochProvisionsResponse, TData> {
-  request?: QueryEpochProvisionsRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useEpochProvisions = <TData = QueryEpochProvisionsResponse,>({
-    request,
-    options
-  }: UseEpochProvisionsQuery<TData>) => {
-    return useQuery<QueryEpochProvisionsResponse, Error, TData>(["epochProvisionsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.epochProvisions(request);
-    }, options);
-  };
-  return {
-    /** Params returns the total set of minting parameters. */useParams,
-    /** EpochProvisions returns the current minting epoch provisions value. */useEpochProvisions
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryEpochProvisionsStore {
-    store = new QueryStore<QueryEpochProvisionsRequest, QueryEpochProvisionsResponse>(queryService?.epochProvisions);
-    epochProvisions(request: QueryEpochProvisionsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Params returns the total set of minting parameters. */QueryParamsStore,
-    /** EpochProvisions returns the current minting epoch provisions value. */QueryEpochProvisionsStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/mint/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/mint/v1beta1/query.ts
deleted file mode 100644
index ce5f8b09..00000000
--- a/examples/injective/src/codegen/osmosis/mint/v1beta1/query.ts
+++ /dev/null
@@ -1,409 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./mint";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/mint/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/mint/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/**
- * QueryEpochProvisionsRequest is the request type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsRequest {}
-export interface QueryEpochProvisionsRequestProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsRequest";
-  value: Uint8Array;
-}
-/**
- * QueryEpochProvisionsRequest is the request type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsRequestAmino {}
-export interface QueryEpochProvisionsRequestAminoMsg {
-  type: "osmosis/mint/query-epoch-provisions-request";
-  value: QueryEpochProvisionsRequestAmino;
-}
-/**
- * QueryEpochProvisionsRequest is the request type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsRequestSDKType {}
-/**
- * QueryEpochProvisionsResponse is the response type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsResponse {
-  /** epoch_provisions is the current minting per epoch provisions value. */
-  epochProvisions: Uint8Array;
-}
-export interface QueryEpochProvisionsResponseProtoMsg {
-  typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsResponse";
-  value: Uint8Array;
-}
-/**
- * QueryEpochProvisionsResponse is the response type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsResponseAmino {
-  /** epoch_provisions is the current minting per epoch provisions value. */
-  epoch_provisions: Uint8Array;
-}
-export interface QueryEpochProvisionsResponseAminoMsg {
-  type: "osmosis/mint/query-epoch-provisions-response";
-  value: QueryEpochProvisionsResponseAmino;
-}
-/**
- * QueryEpochProvisionsResponse is the response type for the
- * Query/EpochProvisions RPC method.
- */
-export interface QueryEpochProvisionsResponseSDKType {
-  epoch_provisions: Uint8Array;
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.mint.v1beta1.QueryParamsRequest",
-  aminoType: "osmosis/mint/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/mint/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.mint.v1beta1.QueryParamsResponse",
-  aminoType: "osmosis/mint/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/mint/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryEpochProvisionsRequest(): QueryEpochProvisionsRequest {
-  return {};
-}
-export const QueryEpochProvisionsRequest = {
-  typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsRequest",
-  aminoType: "osmosis/mint/query-epoch-provisions-request",
-  encode(_: QueryEpochProvisionsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEpochProvisionsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEpochProvisionsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryEpochProvisionsRequest {
-    return {};
-  },
-  toJSON(_: QueryEpochProvisionsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryEpochProvisionsRequest>): QueryEpochProvisionsRequest {
-    const message = createBaseQueryEpochProvisionsRequest();
-    return message;
-  },
-  fromSDK(_: QueryEpochProvisionsRequestSDKType): QueryEpochProvisionsRequest {
-    return {};
-  },
-  toSDK(_: QueryEpochProvisionsRequest): QueryEpochProvisionsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryEpochProvisionsRequestAmino): QueryEpochProvisionsRequest {
-    return {};
-  },
-  toAmino(_: QueryEpochProvisionsRequest): QueryEpochProvisionsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryEpochProvisionsRequestAminoMsg): QueryEpochProvisionsRequest {
-    return QueryEpochProvisionsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEpochProvisionsRequest): QueryEpochProvisionsRequestAminoMsg {
-    return {
-      type: "osmosis/mint/query-epoch-provisions-request",
-      value: QueryEpochProvisionsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEpochProvisionsRequestProtoMsg): QueryEpochProvisionsRequest {
-    return QueryEpochProvisionsRequest.decode(message.value);
-  },
-  toProto(message: QueryEpochProvisionsRequest): Uint8Array {
-    return QueryEpochProvisionsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEpochProvisionsRequest): QueryEpochProvisionsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsRequest",
-      value: QueryEpochProvisionsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryEpochProvisionsResponse(): QueryEpochProvisionsResponse {
-  return {
-    epochProvisions: new Uint8Array()
-  };
-}
-export const QueryEpochProvisionsResponse = {
-  typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsResponse",
-  aminoType: "osmosis/mint/query-epoch-provisions-response",
-  encode(message: QueryEpochProvisionsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.epochProvisions.length !== 0) {
-      writer.uint32(10).bytes(message.epochProvisions);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryEpochProvisionsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryEpochProvisionsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.epochProvisions = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryEpochProvisionsResponse {
-    return {
-      epochProvisions: isSet(object.epochProvisions) ? bytesFromBase64(object.epochProvisions) : new Uint8Array()
-    };
-  },
-  toJSON(message: QueryEpochProvisionsResponse): unknown {
-    const obj: any = {};
-    message.epochProvisions !== undefined && (obj.epochProvisions = base64FromBytes(message.epochProvisions !== undefined ? message.epochProvisions : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryEpochProvisionsResponse>): QueryEpochProvisionsResponse {
-    const message = createBaseQueryEpochProvisionsResponse();
-    message.epochProvisions = object.epochProvisions ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: QueryEpochProvisionsResponseSDKType): QueryEpochProvisionsResponse {
-    return {
-      epochProvisions: object?.epoch_provisions
-    };
-  },
-  toSDK(message: QueryEpochProvisionsResponse): QueryEpochProvisionsResponseSDKType {
-    const obj: any = {};
-    obj.epoch_provisions = message.epochProvisions;
-    return obj;
-  },
-  fromAmino(object: QueryEpochProvisionsResponseAmino): QueryEpochProvisionsResponse {
-    return {
-      epochProvisions: object.epoch_provisions
-    };
-  },
-  toAmino(message: QueryEpochProvisionsResponse): QueryEpochProvisionsResponseAmino {
-    const obj: any = {};
-    obj.epoch_provisions = message.epochProvisions;
-    return obj;
-  },
-  fromAminoMsg(object: QueryEpochProvisionsResponseAminoMsg): QueryEpochProvisionsResponse {
-    return QueryEpochProvisionsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryEpochProvisionsResponse): QueryEpochProvisionsResponseAminoMsg {
-    return {
-      type: "osmosis/mint/query-epoch-provisions-response",
-      value: QueryEpochProvisionsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryEpochProvisionsResponseProtoMsg): QueryEpochProvisionsResponse {
-    return QueryEpochProvisionsResponse.decode(message.value);
-  },
-  toProto(message: QueryEpochProvisionsResponse): Uint8Array {
-    return QueryEpochProvisionsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryEpochProvisionsResponse): QueryEpochProvisionsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.mint.v1beta1.QueryEpochProvisionsResponse",
-      value: QueryEpochProvisionsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/genesis.ts
deleted file mode 100644
index 94faa8c2..00000000
--- a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/genesis.ts
+++ /dev/null
@@ -1,177 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType, DistrInfo, DistrInfoAmino, DistrInfoSDKType, PoolToGauges, PoolToGaugesAmino, PoolToGaugesSDKType } from "./incentives";
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the pool incentives module's genesis state. */
-export interface GenesisState {
-  /** params defines all the paramaters of the module. */
-  params: Params | undefined;
-  lockableDurations: Duration[];
-  distrInfo?: DistrInfo | undefined;
-  poolToGauges?: PoolToGauges | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the pool incentives module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines all the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-  lockable_durations: DurationAmino[];
-  distr_info?: DistrInfoAmino | undefined;
-  pool_to_gauges?: PoolToGaugesAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/poolincentives/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the pool incentives module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  lockable_durations: DurationSDKType[];
-  distr_info?: DistrInfoSDKType | undefined;
-  pool_to_gauges?: PoolToGaugesSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    lockableDurations: [],
-    distrInfo: undefined,
-    poolToGauges: undefined
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.GenesisState",
-  aminoType: "osmosis/poolincentives/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.distrInfo !== undefined) {
-      DistrInfo.encode(message.distrInfo, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.poolToGauges !== undefined) {
-      PoolToGauges.encode(message.poolToGauges, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.distrInfo = DistrInfo.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.poolToGauges = PoolToGauges.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : [],
-      distrInfo: isSet(object.distrInfo) ? DistrInfo.fromJSON(object.distrInfo) : undefined,
-      poolToGauges: isSet(object.poolToGauges) ? PoolToGauges.fromJSON(object.poolToGauges) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    message.distrInfo !== undefined && (obj.distrInfo = message.distrInfo ? DistrInfo.toJSON(message.distrInfo) : undefined);
-    message.poolToGauges !== undefined && (obj.poolToGauges = message.poolToGauges ? PoolToGauges.toJSON(message.poolToGauges) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    message.distrInfo = object.distrInfo !== undefined && object.distrInfo !== null ? DistrInfo.fromPartial(object.distrInfo) : undefined;
-    message.poolToGauges = object.poolToGauges !== undefined && object.poolToGauges !== null ? PoolToGauges.fromPartial(object.poolToGauges) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : [],
-      distrInfo: object.distr_info ? DistrInfo.fromSDK(object.distr_info) : undefined,
-      poolToGauges: object.pool_to_gauges ? PoolToGauges.fromSDK(object.pool_to_gauges) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    message.distrInfo !== undefined && (obj.distr_info = message.distrInfo ? DistrInfo.toSDK(message.distrInfo) : undefined);
-    message.poolToGauges !== undefined && (obj.pool_to_gauges = message.poolToGauges ? PoolToGauges.toSDK(message.poolToGauges) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : [],
-      distrInfo: object?.distr_info ? DistrInfo.fromAmino(object.distr_info) : undefined,
-      poolToGauges: object?.pool_to_gauges ? PoolToGauges.fromAmino(object.pool_to_gauges) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    obj.distr_info = message.distrInfo ? DistrInfo.toAmino(message.distrInfo) : undefined;
-    obj.pool_to_gauges = message.poolToGauges ? PoolToGauges.toAmino(message.poolToGauges) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/poolincentives/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/gov.ts b/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/gov.ts
deleted file mode 100644
index 1d3739cd..00000000
--- a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/gov.ts
+++ /dev/null
@@ -1,359 +0,0 @@
-import { DistrRecord, DistrRecordAmino, DistrRecordSDKType } from "./incentives";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * ReplacePoolIncentivesProposal is a gov Content type for updating the pool
- * incentives. If a ReplacePoolIncentivesProposal passes, the proposal’s records
- * override the existing DistrRecords set in the module. Each record has a
- * specified gauge id and weight, and the incentives are distributed to each
- * gauge according to weight/total_weight. The incentives are put in the fee
- * pool and it is allocated to gauges and community pool by the DistrRecords
- * configuration. Note that gaugeId=0 represents the community pool.
- */
-export interface ReplacePoolIncentivesProposal {
-  title: string;
-  description: string;
-  records: DistrRecord[];
-}
-export interface ReplacePoolIncentivesProposalProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.ReplacePoolIncentivesProposal";
-  value: Uint8Array;
-}
-/**
- * ReplacePoolIncentivesProposal is a gov Content type for updating the pool
- * incentives. If a ReplacePoolIncentivesProposal passes, the proposal’s records
- * override the existing DistrRecords set in the module. Each record has a
- * specified gauge id and weight, and the incentives are distributed to each
- * gauge according to weight/total_weight. The incentives are put in the fee
- * pool and it is allocated to gauges and community pool by the DistrRecords
- * configuration. Note that gaugeId=0 represents the community pool.
- */
-export interface ReplacePoolIncentivesProposalAmino {
-  title: string;
-  description: string;
-  records: DistrRecordAmino[];
-}
-export interface ReplacePoolIncentivesProposalAminoMsg {
-  type: "osmosis/poolincentives/replace-pool-incentives-proposal";
-  value: ReplacePoolIncentivesProposalAmino;
-}
-/**
- * ReplacePoolIncentivesProposal is a gov Content type for updating the pool
- * incentives. If a ReplacePoolIncentivesProposal passes, the proposal’s records
- * override the existing DistrRecords set in the module. Each record has a
- * specified gauge id and weight, and the incentives are distributed to each
- * gauge according to weight/total_weight. The incentives are put in the fee
- * pool and it is allocated to gauges and community pool by the DistrRecords
- * configuration. Note that gaugeId=0 represents the community pool.
- */
-export interface ReplacePoolIncentivesProposalSDKType {
-  title: string;
-  description: string;
-  records: DistrRecordSDKType[];
-}
-/**
- * For example: if the existing DistrRecords were:
- * [(Gauge 0, 5), (Gauge 1, 6), (Gauge 2, 6)]
- * An UpdatePoolIncentivesProposal includes
- * [(Gauge 1, 0), (Gauge 2, 4), (Gauge 3, 10)]
- * This would delete Gauge 1, Edit Gauge 2, and Add Gauge 3
- * The result DistrRecords in state would be:
- * [(Gauge 0, 5), (Gauge 2, 4), (Gauge 3, 10)]
- */
-export interface UpdatePoolIncentivesProposal {
-  title: string;
-  description: string;
-  records: DistrRecord[];
-}
-export interface UpdatePoolIncentivesProposalProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.UpdatePoolIncentivesProposal";
-  value: Uint8Array;
-}
-/**
- * For example: if the existing DistrRecords were:
- * [(Gauge 0, 5), (Gauge 1, 6), (Gauge 2, 6)]
- * An UpdatePoolIncentivesProposal includes
- * [(Gauge 1, 0), (Gauge 2, 4), (Gauge 3, 10)]
- * This would delete Gauge 1, Edit Gauge 2, and Add Gauge 3
- * The result DistrRecords in state would be:
- * [(Gauge 0, 5), (Gauge 2, 4), (Gauge 3, 10)]
- */
-export interface UpdatePoolIncentivesProposalAmino {
-  title: string;
-  description: string;
-  records: DistrRecordAmino[];
-}
-export interface UpdatePoolIncentivesProposalAminoMsg {
-  type: "osmosis/poolincentives/update-pool-incentives-proposal";
-  value: UpdatePoolIncentivesProposalAmino;
-}
-/**
- * For example: if the existing DistrRecords were:
- * [(Gauge 0, 5), (Gauge 1, 6), (Gauge 2, 6)]
- * An UpdatePoolIncentivesProposal includes
- * [(Gauge 1, 0), (Gauge 2, 4), (Gauge 3, 10)]
- * This would delete Gauge 1, Edit Gauge 2, and Add Gauge 3
- * The result DistrRecords in state would be:
- * [(Gauge 0, 5), (Gauge 2, 4), (Gauge 3, 10)]
- */
-export interface UpdatePoolIncentivesProposalSDKType {
-  title: string;
-  description: string;
-  records: DistrRecordSDKType[];
-}
-function createBaseReplacePoolIncentivesProposal(): ReplacePoolIncentivesProposal {
-  return {
-    title: "",
-    description: "",
-    records: []
-  };
-}
-export const ReplacePoolIncentivesProposal = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.ReplacePoolIncentivesProposal",
-  aminoType: "osmosis/poolincentives/replace-pool-incentives-proposal",
-  encode(message: ReplacePoolIncentivesProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    for (const v of message.records) {
-      DistrRecord.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ReplacePoolIncentivesProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseReplacePoolIncentivesProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.records.push(DistrRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ReplacePoolIncentivesProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ReplacePoolIncentivesProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toJSON(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ReplacePoolIncentivesProposal>): ReplacePoolIncentivesProposal {
-    const message = createBaseReplacePoolIncentivesProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.records = object.records?.map(e => DistrRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ReplacePoolIncentivesProposalSDKType): ReplacePoolIncentivesProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ReplacePoolIncentivesProposal): ReplacePoolIncentivesProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toSDK(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ReplacePoolIncentivesProposalAmino): ReplacePoolIncentivesProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ReplacePoolIncentivesProposal): ReplacePoolIncentivesProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toAmino(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ReplacePoolIncentivesProposalAminoMsg): ReplacePoolIncentivesProposal {
-    return ReplacePoolIncentivesProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: ReplacePoolIncentivesProposal): ReplacePoolIncentivesProposalAminoMsg {
-    return {
-      type: "osmosis/poolincentives/replace-pool-incentives-proposal",
-      value: ReplacePoolIncentivesProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ReplacePoolIncentivesProposalProtoMsg): ReplacePoolIncentivesProposal {
-    return ReplacePoolIncentivesProposal.decode(message.value);
-  },
-  toProto(message: ReplacePoolIncentivesProposal): Uint8Array {
-    return ReplacePoolIncentivesProposal.encode(message).finish();
-  },
-  toProtoMsg(message: ReplacePoolIncentivesProposal): ReplacePoolIncentivesProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.ReplacePoolIncentivesProposal",
-      value: ReplacePoolIncentivesProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseUpdatePoolIncentivesProposal(): UpdatePoolIncentivesProposal {
-  return {
-    title: "",
-    description: "",
-    records: []
-  };
-}
-export const UpdatePoolIncentivesProposal = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.UpdatePoolIncentivesProposal",
-  aminoType: "osmosis/poolincentives/update-pool-incentives-proposal",
-  encode(message: UpdatePoolIncentivesProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    for (const v of message.records) {
-      DistrRecord.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpdatePoolIncentivesProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpdatePoolIncentivesProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.records.push(DistrRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpdatePoolIncentivesProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: UpdatePoolIncentivesProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toJSON(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpdatePoolIncentivesProposal>): UpdatePoolIncentivesProposal {
-    const message = createBaseUpdatePoolIncentivesProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.records = object.records?.map(e => DistrRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: UpdatePoolIncentivesProposalSDKType): UpdatePoolIncentivesProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: UpdatePoolIncentivesProposal): UpdatePoolIncentivesProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toSDK(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAmino(object: UpdatePoolIncentivesProposalAmino): UpdatePoolIncentivesProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: UpdatePoolIncentivesProposal): UpdatePoolIncentivesProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toAmino(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: UpdatePoolIncentivesProposalAminoMsg): UpdatePoolIncentivesProposal {
-    return UpdatePoolIncentivesProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpdatePoolIncentivesProposal): UpdatePoolIncentivesProposalAminoMsg {
-    return {
-      type: "osmosis/poolincentives/update-pool-incentives-proposal",
-      value: UpdatePoolIncentivesProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpdatePoolIncentivesProposalProtoMsg): UpdatePoolIncentivesProposal {
-    return UpdatePoolIncentivesProposal.decode(message.value);
-  },
-  toProto(message: UpdatePoolIncentivesProposal): Uint8Array {
-    return UpdatePoolIncentivesProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UpdatePoolIncentivesProposal): UpdatePoolIncentivesProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.UpdatePoolIncentivesProposal",
-      value: UpdatePoolIncentivesProposal.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/incentives.ts b/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/incentives.ts
deleted file mode 100644
index 9c5eeb9b..00000000
--- a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/incentives.ts
+++ /dev/null
@@ -1,749 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-export interface Params {
-  /**
-   * minted_denom is the denomination of the coin expected to be minted by the
-   * minting module. Pool-incentives module doesn’t actually mint the coin
-   * itself, but rather manages the distribution of coins that matches the
-   * defined minted_denom.
-   */
-  mintedDenom: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.Params";
-  value: Uint8Array;
-}
-export interface ParamsAmino {
-  /**
-   * minted_denom is the denomination of the coin expected to be minted by the
-   * minting module. Pool-incentives module doesn’t actually mint the coin
-   * itself, but rather manages the distribution of coins that matches the
-   * defined minted_denom.
-   */
-  minted_denom: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/poolincentives/params";
-  value: ParamsAmino;
-}
-export interface ParamsSDKType {
-  minted_denom: string;
-}
-export interface LockableDurationsInfo {
-  lockableDurations: Duration[];
-}
-export interface LockableDurationsInfoProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.LockableDurationsInfo";
-  value: Uint8Array;
-}
-export interface LockableDurationsInfoAmino {
-  lockable_durations: DurationAmino[];
-}
-export interface LockableDurationsInfoAminoMsg {
-  type: "osmosis/poolincentives/lockable-durations-info";
-  value: LockableDurationsInfoAmino;
-}
-export interface LockableDurationsInfoSDKType {
-  lockable_durations: DurationSDKType[];
-}
-export interface DistrInfo {
-  totalWeight: string;
-  records: DistrRecord[];
-}
-export interface DistrInfoProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.DistrInfo";
-  value: Uint8Array;
-}
-export interface DistrInfoAmino {
-  total_weight: string;
-  records: DistrRecordAmino[];
-}
-export interface DistrInfoAminoMsg {
-  type: "osmosis/poolincentives/distr-info";
-  value: DistrInfoAmino;
-}
-export interface DistrInfoSDKType {
-  total_weight: string;
-  records: DistrRecordSDKType[];
-}
-export interface DistrRecord {
-  gaugeId: bigint;
-  weight: string;
-}
-export interface DistrRecordProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.DistrRecord";
-  value: Uint8Array;
-}
-export interface DistrRecordAmino {
-  gauge_id: string;
-  weight: string;
-}
-export interface DistrRecordAminoMsg {
-  type: "osmosis/poolincentives/distr-record";
-  value: DistrRecordAmino;
-}
-export interface DistrRecordSDKType {
-  gauge_id: bigint;
-  weight: string;
-}
-export interface PoolToGauge {
-  poolId: bigint;
-  gaugeId: bigint;
-  duration: Duration | undefined;
-}
-export interface PoolToGaugeProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauge";
-  value: Uint8Array;
-}
-export interface PoolToGaugeAmino {
-  pool_id: string;
-  gauge_id: string;
-  duration?: DurationAmino | undefined;
-}
-export interface PoolToGaugeAminoMsg {
-  type: "osmosis/poolincentives/pool-to-gauge";
-  value: PoolToGaugeAmino;
-}
-export interface PoolToGaugeSDKType {
-  pool_id: bigint;
-  gauge_id: bigint;
-  duration: DurationSDKType | undefined;
-}
-export interface PoolToGauges {
-  poolToGauge: PoolToGauge[];
-}
-export interface PoolToGaugesProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauges";
-  value: Uint8Array;
-}
-export interface PoolToGaugesAmino {
-  pool_to_gauge: PoolToGaugeAmino[];
-}
-export interface PoolToGaugesAminoMsg {
-  type: "osmosis/poolincentives/pool-to-gauges";
-  value: PoolToGaugesAmino;
-}
-export interface PoolToGaugesSDKType {
-  pool_to_gauge: PoolToGaugeSDKType[];
-}
-function createBaseParams(): Params {
-  return {
-    mintedDenom: ""
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.Params",
-  aminoType: "osmosis/poolincentives/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.mintedDenom !== "") {
-      writer.uint32(10).string(message.mintedDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.mintedDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      mintedDenom: isSet(object.mintedDenom) ? String(object.mintedDenom) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.mintedDenom !== undefined && (obj.mintedDenom = message.mintedDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.mintedDenom = object.mintedDenom ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      mintedDenom: object?.minted_denom
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.minted_denom = message.mintedDenom;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      mintedDenom: object.minted_denom
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.minted_denom = message.mintedDenom;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/poolincentives/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseLockableDurationsInfo(): LockableDurationsInfo {
-  return {
-    lockableDurations: []
-  };
-}
-export const LockableDurationsInfo = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.LockableDurationsInfo",
-  aminoType: "osmosis/poolincentives/lockable-durations-info",
-  encode(message: LockableDurationsInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockableDurationsInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockableDurationsInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: LockableDurationsInfo): unknown {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockableDurationsInfo>): LockableDurationsInfo {
-    const message = createBaseLockableDurationsInfo();
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: LockableDurationsInfoSDKType): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: LockableDurationsInfo): LockableDurationsInfoSDKType {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAmino(object: LockableDurationsInfoAmino): LockableDurationsInfo {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: LockableDurationsInfo): LockableDurationsInfoAmino {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: LockableDurationsInfoAminoMsg): LockableDurationsInfo {
-    return LockableDurationsInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockableDurationsInfo): LockableDurationsInfoAminoMsg {
-    return {
-      type: "osmosis/poolincentives/lockable-durations-info",
-      value: LockableDurationsInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockableDurationsInfoProtoMsg): LockableDurationsInfo {
-    return LockableDurationsInfo.decode(message.value);
-  },
-  toProto(message: LockableDurationsInfo): Uint8Array {
-    return LockableDurationsInfo.encode(message).finish();
-  },
-  toProtoMsg(message: LockableDurationsInfo): LockableDurationsInfoProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.LockableDurationsInfo",
-      value: LockableDurationsInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseDistrInfo(): DistrInfo {
-  return {
-    totalWeight: "",
-    records: []
-  };
-}
-export const DistrInfo = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.DistrInfo",
-  aminoType: "osmosis/poolincentives/distr-info",
-  encode(message: DistrInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.totalWeight !== "") {
-      writer.uint32(10).string(message.totalWeight);
-    }
-    for (const v of message.records) {
-      DistrRecord.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DistrInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDistrInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.totalWeight = reader.string();
-          break;
-        case 2:
-          message.records.push(DistrRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DistrInfo {
-    return {
-      totalWeight: isSet(object.totalWeight) ? String(object.totalWeight) : "",
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: DistrInfo): unknown {
-    const obj: any = {};
-    message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight);
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toJSON(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DistrInfo>): DistrInfo {
-    const message = createBaseDistrInfo();
-    message.totalWeight = object.totalWeight ?? "";
-    message.records = object.records?.map(e => DistrRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: DistrInfoSDKType): DistrInfo {
-    return {
-      totalWeight: object?.total_weight,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: DistrInfo): DistrInfoSDKType {
-    const obj: any = {};
-    obj.total_weight = message.totalWeight;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toSDK(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DistrInfoAmino): DistrInfo {
-    return {
-      totalWeight: object.total_weight,
-      records: Array.isArray(object?.records) ? object.records.map((e: any) => DistrRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: DistrInfo): DistrInfoAmino {
-    const obj: any = {};
-    obj.total_weight = message.totalWeight;
-    if (message.records) {
-      obj.records = message.records.map(e => e ? DistrRecord.toAmino(e) : undefined);
-    } else {
-      obj.records = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DistrInfoAminoMsg): DistrInfo {
-    return DistrInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: DistrInfo): DistrInfoAminoMsg {
-    return {
-      type: "osmosis/poolincentives/distr-info",
-      value: DistrInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DistrInfoProtoMsg): DistrInfo {
-    return DistrInfo.decode(message.value);
-  },
-  toProto(message: DistrInfo): Uint8Array {
-    return DistrInfo.encode(message).finish();
-  },
-  toProtoMsg(message: DistrInfo): DistrInfoProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.DistrInfo",
-      value: DistrInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseDistrRecord(): DistrRecord {
-  return {
-    gaugeId: BigInt(0),
-    weight: ""
-  };
-}
-export const DistrRecord = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.DistrRecord",
-  aminoType: "osmosis/poolincentives/distr-record",
-  encode(message: DistrRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.gaugeId);
-    }
-    if (message.weight !== "") {
-      writer.uint32(18).string(message.weight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DistrRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDistrRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gaugeId = reader.uint64();
-          break;
-        case 2:
-          message.weight = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DistrRecord {
-    return {
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0),
-      weight: isSet(object.weight) ? String(object.weight) : ""
-    };
-  },
-  toJSON(message: DistrRecord): unknown {
-    const obj: any = {};
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    message.weight !== undefined && (obj.weight = message.weight);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DistrRecord>): DistrRecord {
-    const message = createBaseDistrRecord();
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    message.weight = object.weight ?? "";
-    return message;
-  },
-  fromSDK(object: DistrRecordSDKType): DistrRecord {
-    return {
-      gaugeId: object?.gauge_id,
-      weight: object?.weight
-    };
-  },
-  toSDK(message: DistrRecord): DistrRecordSDKType {
-    const obj: any = {};
-    obj.gauge_id = message.gaugeId;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAmino(object: DistrRecordAmino): DistrRecord {
-    return {
-      gaugeId: BigInt(object.gauge_id),
-      weight: object.weight
-    };
-  },
-  toAmino(message: DistrRecord): DistrRecordAmino {
-    const obj: any = {};
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    obj.weight = message.weight;
-    return obj;
-  },
-  fromAminoMsg(object: DistrRecordAminoMsg): DistrRecord {
-    return DistrRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: DistrRecord): DistrRecordAminoMsg {
-    return {
-      type: "osmosis/poolincentives/distr-record",
-      value: DistrRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DistrRecordProtoMsg): DistrRecord {
-    return DistrRecord.decode(message.value);
-  },
-  toProto(message: DistrRecord): Uint8Array {
-    return DistrRecord.encode(message).finish();
-  },
-  toProtoMsg(message: DistrRecord): DistrRecordProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.DistrRecord",
-      value: DistrRecord.encode(message).finish()
-    };
-  }
-};
-function createBasePoolToGauge(): PoolToGauge {
-  return {
-    poolId: BigInt(0),
-    gaugeId: BigInt(0),
-    duration: Duration.fromPartial({})
-  };
-}
-export const PoolToGauge = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauge",
-  aminoType: "osmosis/poolincentives/pool-to-gauge",
-  encode(message: PoolToGauge, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.gaugeId);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PoolToGauge {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePoolToGauge();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.gaugeId = reader.uint64();
-          break;
-        case 3:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PoolToGauge {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0),
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined
-    };
-  },
-  toJSON(message: PoolToGauge): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PoolToGauge>): PoolToGauge {
-    const message = createBasePoolToGauge();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    return message;
-  },
-  fromSDK(object: PoolToGaugeSDKType): PoolToGauge {
-    return {
-      poolId: object?.pool_id,
-      gaugeId: object?.gauge_id,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined
-    };
-  },
-  toSDK(message: PoolToGauge): PoolToGaugeSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.gauge_id = message.gaugeId;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    return obj;
-  },
-  fromAmino(object: PoolToGaugeAmino): PoolToGauge {
-    return {
-      poolId: BigInt(object.pool_id),
-      gaugeId: BigInt(object.gauge_id),
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined
-    };
-  },
-  toAmino(message: PoolToGauge): PoolToGaugeAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PoolToGaugeAminoMsg): PoolToGauge {
-    return PoolToGauge.fromAmino(object.value);
-  },
-  toAminoMsg(message: PoolToGauge): PoolToGaugeAminoMsg {
-    return {
-      type: "osmosis/poolincentives/pool-to-gauge",
-      value: PoolToGauge.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolToGaugeProtoMsg): PoolToGauge {
-    return PoolToGauge.decode(message.value);
-  },
-  toProto(message: PoolToGauge): Uint8Array {
-    return PoolToGauge.encode(message).finish();
-  },
-  toProtoMsg(message: PoolToGauge): PoolToGaugeProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauge",
-      value: PoolToGauge.encode(message).finish()
-    };
-  }
-};
-function createBasePoolToGauges(): PoolToGauges {
-  return {
-    poolToGauge: []
-  };
-}
-export const PoolToGauges = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauges",
-  aminoType: "osmosis/poolincentives/pool-to-gauges",
-  encode(message: PoolToGauges, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.poolToGauge) {
-      PoolToGauge.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PoolToGauges {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePoolToGauges();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.poolToGauge.push(PoolToGauge.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PoolToGauges {
-    return {
-      poolToGauge: Array.isArray(object?.poolToGauge) ? object.poolToGauge.map((e: any) => PoolToGauge.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: PoolToGauges): unknown {
-    const obj: any = {};
-    if (message.poolToGauge) {
-      obj.poolToGauge = message.poolToGauge.map(e => e ? PoolToGauge.toJSON(e) : undefined);
-    } else {
-      obj.poolToGauge = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PoolToGauges>): PoolToGauges {
-    const message = createBasePoolToGauges();
-    message.poolToGauge = object.poolToGauge?.map(e => PoolToGauge.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: PoolToGaugesSDKType): PoolToGauges {
-    return {
-      poolToGauge: Array.isArray(object?.pool_to_gauge) ? object.pool_to_gauge.map((e: any) => PoolToGauge.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: PoolToGauges): PoolToGaugesSDKType {
-    const obj: any = {};
-    if (message.poolToGauge) {
-      obj.pool_to_gauge = message.poolToGauge.map(e => e ? PoolToGauge.toSDK(e) : undefined);
-    } else {
-      obj.pool_to_gauge = [];
-    }
-    return obj;
-  },
-  fromAmino(object: PoolToGaugesAmino): PoolToGauges {
-    return {
-      poolToGauge: Array.isArray(object?.pool_to_gauge) ? object.pool_to_gauge.map((e: any) => PoolToGauge.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: PoolToGauges): PoolToGaugesAmino {
-    const obj: any = {};
-    if (message.poolToGauge) {
-      obj.pool_to_gauge = message.poolToGauge.map(e => e ? PoolToGauge.toAmino(e) : undefined);
-    } else {
-      obj.pool_to_gauge = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: PoolToGaugesAminoMsg): PoolToGauges {
-    return PoolToGauges.fromAmino(object.value);
-  },
-  toAminoMsg(message: PoolToGauges): PoolToGaugesAminoMsg {
-    return {
-      type: "osmosis/poolincentives/pool-to-gauges",
-      value: PoolToGauges.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: PoolToGaugesProtoMsg): PoolToGauges {
-    return PoolToGauges.decode(message.value);
-  },
-  toProto(message: PoolToGauges): Uint8Array {
-    return PoolToGauges.encode(message).finish();
-  },
-  toProtoMsg(message: PoolToGauges): PoolToGaugesProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.PoolToGauges",
-      value: PoolToGauges.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index be9c4bc2..00000000
--- a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,227 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryGaugeIdsRequest, QueryGaugeIdsResponse, QueryDistrInfoRequest, QueryDistrInfoResponse, QueryParamsRequest, QueryParamsResponse, QueryLockableDurationsRequest, QueryLockableDurationsResponse, QueryIncentivizedPoolsRequest, QueryIncentivizedPoolsResponse, QueryExternalIncentiveGaugesRequest, QueryExternalIncentiveGaugesResponse } from "./query";
-export interface Query {
-  /** GaugeIds takes the pool id and returns the matching gauge ids and durations */
-  gaugeIds(request: QueryGaugeIdsRequest): Promise<QueryGaugeIdsResponse>;
-  /** DistrInfo returns the pool's matching gauge ids and weights. */
-  distrInfo(request?: QueryDistrInfoRequest): Promise<QueryDistrInfoResponse>;
-  /** Params returns pool incentives params. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /** LockableDurations returns lock durations for pools. */
-  lockableDurations(request?: QueryLockableDurationsRequest): Promise<QueryLockableDurationsResponse>;
-  /** IncentivizedPools returns currently incentivized pools */
-  incentivizedPools(request?: QueryIncentivizedPoolsRequest): Promise<QueryIncentivizedPoolsResponse>;
-  /** ExternalIncentiveGauges returns external incentive gauges. */
-  externalIncentiveGauges(request?: QueryExternalIncentiveGaugesRequest): Promise<QueryExternalIncentiveGaugesResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.gaugeIds = this.gaugeIds.bind(this);
-    this.distrInfo = this.distrInfo.bind(this);
-    this.params = this.params.bind(this);
-    this.lockableDurations = this.lockableDurations.bind(this);
-    this.incentivizedPools = this.incentivizedPools.bind(this);
-    this.externalIncentiveGauges = this.externalIncentiveGauges.bind(this);
-  }
-  gaugeIds(request: QueryGaugeIdsRequest): Promise<QueryGaugeIdsResponse> {
-    const data = QueryGaugeIdsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "GaugeIds", data);
-    return promise.then(data => QueryGaugeIdsResponse.decode(new BinaryReader(data)));
-  }
-  distrInfo(request: QueryDistrInfoRequest = {}): Promise<QueryDistrInfoResponse> {
-    const data = QueryDistrInfoRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "DistrInfo", data);
-    return promise.then(data => QueryDistrInfoResponse.decode(new BinaryReader(data)));
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  lockableDurations(request: QueryLockableDurationsRequest = {}): Promise<QueryLockableDurationsResponse> {
-    const data = QueryLockableDurationsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "LockableDurations", data);
-    return promise.then(data => QueryLockableDurationsResponse.decode(new BinaryReader(data)));
-  }
-  incentivizedPools(request: QueryIncentivizedPoolsRequest = {}): Promise<QueryIncentivizedPoolsResponse> {
-    const data = QueryIncentivizedPoolsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "IncentivizedPools", data);
-    return promise.then(data => QueryIncentivizedPoolsResponse.decode(new BinaryReader(data)));
-  }
-  externalIncentiveGauges(request: QueryExternalIncentiveGaugesRequest = {}): Promise<QueryExternalIncentiveGaugesResponse> {
-    const data = QueryExternalIncentiveGaugesRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.poolincentives.v1beta1.Query", "ExternalIncentiveGauges", data);
-    return promise.then(data => QueryExternalIncentiveGaugesResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    gaugeIds(request: QueryGaugeIdsRequest): Promise<QueryGaugeIdsResponse> {
-      return queryService.gaugeIds(request);
-    },
-    distrInfo(request?: QueryDistrInfoRequest): Promise<QueryDistrInfoResponse> {
-      return queryService.distrInfo(request);
-    },
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    lockableDurations(request?: QueryLockableDurationsRequest): Promise<QueryLockableDurationsResponse> {
-      return queryService.lockableDurations(request);
-    },
-    incentivizedPools(request?: QueryIncentivizedPoolsRequest): Promise<QueryIncentivizedPoolsResponse> {
-      return queryService.incentivizedPools(request);
-    },
-    externalIncentiveGauges(request?: QueryExternalIncentiveGaugesRequest): Promise<QueryExternalIncentiveGaugesResponse> {
-      return queryService.externalIncentiveGauges(request);
-    }
-  };
-};
-export interface UseGaugeIdsQuery<TData> extends ReactQueryParams<QueryGaugeIdsResponse, TData> {
-  request: QueryGaugeIdsRequest;
-}
-export interface UseDistrInfoQuery<TData> extends ReactQueryParams<QueryDistrInfoResponse, TData> {
-  request?: QueryDistrInfoRequest;
-}
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseLockableDurationsQuery<TData> extends ReactQueryParams<QueryLockableDurationsResponse, TData> {
-  request?: QueryLockableDurationsRequest;
-}
-export interface UseIncentivizedPoolsQuery<TData> extends ReactQueryParams<QueryIncentivizedPoolsResponse, TData> {
-  request?: QueryIncentivizedPoolsRequest;
-}
-export interface UseExternalIncentiveGaugesQuery<TData> extends ReactQueryParams<QueryExternalIncentiveGaugesResponse, TData> {
-  request?: QueryExternalIncentiveGaugesRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useGaugeIds = <TData = QueryGaugeIdsResponse,>({
-    request,
-    options
-  }: UseGaugeIdsQuery<TData>) => {
-    return useQuery<QueryGaugeIdsResponse, Error, TData>(["gaugeIdsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.gaugeIds(request);
-    }, options);
-  };
-  const useDistrInfo = <TData = QueryDistrInfoResponse,>({
-    request,
-    options
-  }: UseDistrInfoQuery<TData>) => {
-    return useQuery<QueryDistrInfoResponse, Error, TData>(["distrInfoQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.distrInfo(request);
-    }, options);
-  };
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useLockableDurations = <TData = QueryLockableDurationsResponse,>({
-    request,
-    options
-  }: UseLockableDurationsQuery<TData>) => {
-    return useQuery<QueryLockableDurationsResponse, Error, TData>(["lockableDurationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.lockableDurations(request);
-    }, options);
-  };
-  const useIncentivizedPools = <TData = QueryIncentivizedPoolsResponse,>({
-    request,
-    options
-  }: UseIncentivizedPoolsQuery<TData>) => {
-    return useQuery<QueryIncentivizedPoolsResponse, Error, TData>(["incentivizedPoolsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.incentivizedPools(request);
-    }, options);
-  };
-  const useExternalIncentiveGauges = <TData = QueryExternalIncentiveGaugesResponse,>({
-    request,
-    options
-  }: UseExternalIncentiveGaugesQuery<TData>) => {
-    return useQuery<QueryExternalIncentiveGaugesResponse, Error, TData>(["externalIncentiveGaugesQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.externalIncentiveGauges(request);
-    }, options);
-  };
-  return {
-    /** GaugeIds takes the pool id and returns the matching gauge ids and durations */useGaugeIds,
-    /** DistrInfo returns the pool's matching gauge ids and weights. */useDistrInfo,
-    /** Params returns pool incentives params. */useParams,
-    /** LockableDurations returns lock durations for pools. */useLockableDurations,
-    /** IncentivizedPools returns currently incentivized pools */useIncentivizedPools,
-    /** ExternalIncentiveGauges returns external incentive gauges. */useExternalIncentiveGauges
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryGaugeIdsStore {
-    store = new QueryStore<QueryGaugeIdsRequest, QueryGaugeIdsResponse>(queryService?.gaugeIds);
-    gaugeIds(request: QueryGaugeIdsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDistrInfoStore {
-    store = new QueryStore<QueryDistrInfoRequest, QueryDistrInfoResponse>(queryService?.distrInfo);
-    distrInfo(request: QueryDistrInfoRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryLockableDurationsStore {
-    store = new QueryStore<QueryLockableDurationsRequest, QueryLockableDurationsResponse>(queryService?.lockableDurations);
-    lockableDurations(request: QueryLockableDurationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryIncentivizedPoolsStore {
-    store = new QueryStore<QueryIncentivizedPoolsRequest, QueryIncentivizedPoolsResponse>(queryService?.incentivizedPools);
-    incentivizedPools(request: QueryIncentivizedPoolsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryExternalIncentiveGaugesStore {
-    store = new QueryStore<QueryExternalIncentiveGaugesRequest, QueryExternalIncentiveGaugesResponse>(queryService?.externalIncentiveGauges);
-    externalIncentiveGauges(request: QueryExternalIncentiveGaugesRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** GaugeIds takes the pool id and returns the matching gauge ids and durations */QueryGaugeIdsStore,
-    /** DistrInfo returns the pool's matching gauge ids and weights. */QueryDistrInfoStore,
-    /** Params returns pool incentives params. */QueryParamsStore,
-    /** LockableDurations returns lock durations for pools. */QueryLockableDurationsStore,
-    /** IncentivizedPools returns currently incentivized pools */QueryIncentivizedPoolsStore,
-    /** ExternalIncentiveGauges returns external incentive gauges. */QueryExternalIncentiveGaugesStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.ts
deleted file mode 100644
index b9ccdeab..00000000
--- a/examples/injective/src/codegen/osmosis/pool-incentives/v1beta1/query.ts
+++ /dev/null
@@ -1,1471 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { DistrInfo, DistrInfoAmino, DistrInfoSDKType, Params, ParamsAmino, ParamsSDKType } from "./incentives";
-import { Gauge, GaugeAmino, GaugeSDKType } from "../../incentives/gauge";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-export interface QueryGaugeIdsRequest {
-  poolId: bigint;
-}
-export interface QueryGaugeIdsRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsRequest";
-  value: Uint8Array;
-}
-export interface QueryGaugeIdsRequestAmino {
-  pool_id: string;
-}
-export interface QueryGaugeIdsRequestAminoMsg {
-  type: "osmosis/poolincentives/query-gauge-ids-request";
-  value: QueryGaugeIdsRequestAmino;
-}
-export interface QueryGaugeIdsRequestSDKType {
-  pool_id: bigint;
-}
-export interface QueryGaugeIdsResponse {
-  gaugeIdsWithDuration: QueryGaugeIdsResponse_GaugeIdWithDuration[];
-}
-export interface QueryGaugeIdsResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsResponse";
-  value: Uint8Array;
-}
-export interface QueryGaugeIdsResponseAmino {
-  gauge_ids_with_duration: QueryGaugeIdsResponse_GaugeIdWithDurationAmino[];
-}
-export interface QueryGaugeIdsResponseAminoMsg {
-  type: "osmosis/poolincentives/query-gauge-ids-response";
-  value: QueryGaugeIdsResponseAmino;
-}
-export interface QueryGaugeIdsResponseSDKType {
-  gauge_ids_with_duration: QueryGaugeIdsResponse_GaugeIdWithDurationSDKType[];
-}
-export interface QueryGaugeIdsResponse_GaugeIdWithDuration {
-  gaugeId: bigint;
-  duration: Duration | undefined;
-  gaugeIncentivePercentage: string;
-}
-export interface QueryGaugeIdsResponse_GaugeIdWithDurationProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.GaugeIdWithDuration";
-  value: Uint8Array;
-}
-export interface QueryGaugeIdsResponse_GaugeIdWithDurationAmino {
-  gauge_id: string;
-  duration?: DurationAmino | undefined;
-  gauge_incentive_percentage: string;
-}
-export interface QueryGaugeIdsResponse_GaugeIdWithDurationAminoMsg {
-  type: "osmosis/poolincentives/gauge-id-with-duration";
-  value: QueryGaugeIdsResponse_GaugeIdWithDurationAmino;
-}
-export interface QueryGaugeIdsResponse_GaugeIdWithDurationSDKType {
-  gauge_id: bigint;
-  duration: DurationSDKType | undefined;
-  gauge_incentive_percentage: string;
-}
-export interface QueryDistrInfoRequest {}
-export interface QueryDistrInfoRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoRequest";
-  value: Uint8Array;
-}
-export interface QueryDistrInfoRequestAmino {}
-export interface QueryDistrInfoRequestAminoMsg {
-  type: "osmosis/poolincentives/query-distr-info-request";
-  value: QueryDistrInfoRequestAmino;
-}
-export interface QueryDistrInfoRequestSDKType {}
-export interface QueryDistrInfoResponse {
-  distrInfo: DistrInfo | undefined;
-}
-export interface QueryDistrInfoResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoResponse";
-  value: Uint8Array;
-}
-export interface QueryDistrInfoResponseAmino {
-  distr_info?: DistrInfoAmino | undefined;
-}
-export interface QueryDistrInfoResponseAminoMsg {
-  type: "osmosis/poolincentives/query-distr-info-response";
-  value: QueryDistrInfoResponseAmino;
-}
-export interface QueryDistrInfoResponseSDKType {
-  distr_info: DistrInfoSDKType | undefined;
-}
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/poolincentives/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-export interface QueryParamsRequestSDKType {}
-export interface QueryParamsResponse {
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-export interface QueryParamsResponseAmino {
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/poolincentives/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-export interface QueryLockableDurationsRequest {}
-export interface QueryLockableDurationsRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsRequest";
-  value: Uint8Array;
-}
-export interface QueryLockableDurationsRequestAmino {}
-export interface QueryLockableDurationsRequestAminoMsg {
-  type: "osmosis/poolincentives/query-lockable-durations-request";
-  value: QueryLockableDurationsRequestAmino;
-}
-export interface QueryLockableDurationsRequestSDKType {}
-export interface QueryLockableDurationsResponse {
-  lockableDurations: Duration[];
-}
-export interface QueryLockableDurationsResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsResponse";
-  value: Uint8Array;
-}
-export interface QueryLockableDurationsResponseAmino {
-  lockable_durations: DurationAmino[];
-}
-export interface QueryLockableDurationsResponseAminoMsg {
-  type: "osmosis/poolincentives/query-lockable-durations-response";
-  value: QueryLockableDurationsResponseAmino;
-}
-export interface QueryLockableDurationsResponseSDKType {
-  lockable_durations: DurationSDKType[];
-}
-export interface QueryIncentivizedPoolsRequest {}
-export interface QueryIncentivizedPoolsRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsRequest";
-  value: Uint8Array;
-}
-export interface QueryIncentivizedPoolsRequestAmino {}
-export interface QueryIncentivizedPoolsRequestAminoMsg {
-  type: "osmosis/poolincentives/query-incentivized-pools-request";
-  value: QueryIncentivizedPoolsRequestAmino;
-}
-export interface QueryIncentivizedPoolsRequestSDKType {}
-export interface IncentivizedPool {
-  poolId: bigint;
-  lockableDuration: Duration | undefined;
-  gaugeId: bigint;
-}
-export interface IncentivizedPoolProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.IncentivizedPool";
-  value: Uint8Array;
-}
-export interface IncentivizedPoolAmino {
-  pool_id: string;
-  lockable_duration?: DurationAmino | undefined;
-  gauge_id: string;
-}
-export interface IncentivizedPoolAminoMsg {
-  type: "osmosis/poolincentives/incentivized-pool";
-  value: IncentivizedPoolAmino;
-}
-export interface IncentivizedPoolSDKType {
-  pool_id: bigint;
-  lockable_duration: DurationSDKType | undefined;
-  gauge_id: bigint;
-}
-export interface QueryIncentivizedPoolsResponse {
-  incentivizedPools: IncentivizedPool[];
-}
-export interface QueryIncentivizedPoolsResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsResponse";
-  value: Uint8Array;
-}
-export interface QueryIncentivizedPoolsResponseAmino {
-  incentivized_pools: IncentivizedPoolAmino[];
-}
-export interface QueryIncentivizedPoolsResponseAminoMsg {
-  type: "osmosis/poolincentives/query-incentivized-pools-response";
-  value: QueryIncentivizedPoolsResponseAmino;
-}
-export interface QueryIncentivizedPoolsResponseSDKType {
-  incentivized_pools: IncentivizedPoolSDKType[];
-}
-export interface QueryExternalIncentiveGaugesRequest {}
-export interface QueryExternalIncentiveGaugesRequestProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesRequest";
-  value: Uint8Array;
-}
-export interface QueryExternalIncentiveGaugesRequestAmino {}
-export interface QueryExternalIncentiveGaugesRequestAminoMsg {
-  type: "osmosis/poolincentives/query-external-incentive-gauges-request";
-  value: QueryExternalIncentiveGaugesRequestAmino;
-}
-export interface QueryExternalIncentiveGaugesRequestSDKType {}
-export interface QueryExternalIncentiveGaugesResponse {
-  data: Gauge[];
-}
-export interface QueryExternalIncentiveGaugesResponseProtoMsg {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesResponse";
-  value: Uint8Array;
-}
-export interface QueryExternalIncentiveGaugesResponseAmino {
-  data: GaugeAmino[];
-}
-export interface QueryExternalIncentiveGaugesResponseAminoMsg {
-  type: "osmosis/poolincentives/query-external-incentive-gauges-response";
-  value: QueryExternalIncentiveGaugesResponseAmino;
-}
-export interface QueryExternalIncentiveGaugesResponseSDKType {
-  data: GaugeSDKType[];
-}
-function createBaseQueryGaugeIdsRequest(): QueryGaugeIdsRequest {
-  return {
-    poolId: BigInt(0)
-  };
-}
-export const QueryGaugeIdsRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsRequest",
-  aminoType: "osmosis/poolincentives/query-gauge-ids-request",
-  encode(message: QueryGaugeIdsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGaugeIdsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGaugeIdsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGaugeIdsRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryGaugeIdsRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGaugeIdsRequest>): QueryGaugeIdsRequest {
-    const message = createBaseQueryGaugeIdsRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryGaugeIdsRequestSDKType): QueryGaugeIdsRequest {
-    return {
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: QueryGaugeIdsRequest): QueryGaugeIdsRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: QueryGaugeIdsRequestAmino): QueryGaugeIdsRequest {
-    return {
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: QueryGaugeIdsRequest): QueryGaugeIdsRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGaugeIdsRequestAminoMsg): QueryGaugeIdsRequest {
-    return QueryGaugeIdsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGaugeIdsRequest): QueryGaugeIdsRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-gauge-ids-request",
-      value: QueryGaugeIdsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGaugeIdsRequestProtoMsg): QueryGaugeIdsRequest {
-    return QueryGaugeIdsRequest.decode(message.value);
-  },
-  toProto(message: QueryGaugeIdsRequest): Uint8Array {
-    return QueryGaugeIdsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGaugeIdsRequest): QueryGaugeIdsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsRequest",
-      value: QueryGaugeIdsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGaugeIdsResponse(): QueryGaugeIdsResponse {
-  return {
-    gaugeIdsWithDuration: []
-  };
-}
-export const QueryGaugeIdsResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsResponse",
-  aminoType: "osmosis/poolincentives/query-gauge-ids-response",
-  encode(message: QueryGaugeIdsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.gaugeIdsWithDuration) {
-      QueryGaugeIdsResponse_GaugeIdWithDuration.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGaugeIdsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGaugeIdsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gaugeIdsWithDuration.push(QueryGaugeIdsResponse_GaugeIdWithDuration.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGaugeIdsResponse {
-    return {
-      gaugeIdsWithDuration: Array.isArray(object?.gaugeIdsWithDuration) ? object.gaugeIdsWithDuration.map((e: any) => QueryGaugeIdsResponse_GaugeIdWithDuration.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryGaugeIdsResponse): unknown {
-    const obj: any = {};
-    if (message.gaugeIdsWithDuration) {
-      obj.gaugeIdsWithDuration = message.gaugeIdsWithDuration.map(e => e ? QueryGaugeIdsResponse_GaugeIdWithDuration.toJSON(e) : undefined);
-    } else {
-      obj.gaugeIdsWithDuration = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGaugeIdsResponse>): QueryGaugeIdsResponse {
-    const message = createBaseQueryGaugeIdsResponse();
-    message.gaugeIdsWithDuration = object.gaugeIdsWithDuration?.map(e => QueryGaugeIdsResponse_GaugeIdWithDuration.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryGaugeIdsResponseSDKType): QueryGaugeIdsResponse {
-    return {
-      gaugeIdsWithDuration: Array.isArray(object?.gauge_ids_with_duration) ? object.gauge_ids_with_duration.map((e: any) => QueryGaugeIdsResponse_GaugeIdWithDuration.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryGaugeIdsResponse): QueryGaugeIdsResponseSDKType {
-    const obj: any = {};
-    if (message.gaugeIdsWithDuration) {
-      obj.gauge_ids_with_duration = message.gaugeIdsWithDuration.map(e => e ? QueryGaugeIdsResponse_GaugeIdWithDuration.toSDK(e) : undefined);
-    } else {
-      obj.gauge_ids_with_duration = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryGaugeIdsResponseAmino): QueryGaugeIdsResponse {
-    return {
-      gaugeIdsWithDuration: Array.isArray(object?.gauge_ids_with_duration) ? object.gauge_ids_with_duration.map((e: any) => QueryGaugeIdsResponse_GaugeIdWithDuration.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryGaugeIdsResponse): QueryGaugeIdsResponseAmino {
-    const obj: any = {};
-    if (message.gaugeIdsWithDuration) {
-      obj.gauge_ids_with_duration = message.gaugeIdsWithDuration.map(e => e ? QueryGaugeIdsResponse_GaugeIdWithDuration.toAmino(e) : undefined);
-    } else {
-      obj.gauge_ids_with_duration = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryGaugeIdsResponseAminoMsg): QueryGaugeIdsResponse {
-    return QueryGaugeIdsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGaugeIdsResponse): QueryGaugeIdsResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-gauge-ids-response",
-      value: QueryGaugeIdsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGaugeIdsResponseProtoMsg): QueryGaugeIdsResponse {
-    return QueryGaugeIdsResponse.decode(message.value);
-  },
-  toProto(message: QueryGaugeIdsResponse): Uint8Array {
-    return QueryGaugeIdsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGaugeIdsResponse): QueryGaugeIdsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryGaugeIdsResponse",
-      value: QueryGaugeIdsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryGaugeIdsResponse_GaugeIdWithDuration(): QueryGaugeIdsResponse_GaugeIdWithDuration {
-  return {
-    gaugeId: BigInt(0),
-    duration: Duration.fromPartial({}),
-    gaugeIncentivePercentage: ""
-  };
-}
-export const QueryGaugeIdsResponse_GaugeIdWithDuration = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.GaugeIdWithDuration",
-  aminoType: "osmosis/poolincentives/gauge-id-with-duration",
-  encode(message: QueryGaugeIdsResponse_GaugeIdWithDuration, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.gaugeId);
-    }
-    if (message.duration !== undefined) {
-      Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.gaugeIncentivePercentage !== "") {
-      writer.uint32(26).string(message.gaugeIncentivePercentage);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryGaugeIdsResponse_GaugeIdWithDuration();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.gaugeId = reader.uint64();
-          break;
-        case 2:
-          message.duration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.gaugeIncentivePercentage = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    return {
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0),
-      duration: isSet(object.duration) ? Duration.fromJSON(object.duration) : undefined,
-      gaugeIncentivePercentage: isSet(object.gaugeIncentivePercentage) ? String(object.gaugeIncentivePercentage) : ""
-    };
-  },
-  toJSON(message: QueryGaugeIdsResponse_GaugeIdWithDuration): unknown {
-    const obj: any = {};
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined);
-    message.gaugeIncentivePercentage !== undefined && (obj.gaugeIncentivePercentage = message.gaugeIncentivePercentage);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryGaugeIdsResponse_GaugeIdWithDuration>): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    const message = createBaseQueryGaugeIdsResponse_GaugeIdWithDuration();
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    message.duration = object.duration !== undefined && object.duration !== null ? Duration.fromPartial(object.duration) : undefined;
-    message.gaugeIncentivePercentage = object.gaugeIncentivePercentage ?? "";
-    return message;
-  },
-  fromSDK(object: QueryGaugeIdsResponse_GaugeIdWithDurationSDKType): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    return {
-      gaugeId: object?.gauge_id,
-      duration: object.duration ? Duration.fromSDK(object.duration) : undefined,
-      gaugeIncentivePercentage: object?.gauge_incentive_percentage
-    };
-  },
-  toSDK(message: QueryGaugeIdsResponse_GaugeIdWithDuration): QueryGaugeIdsResponse_GaugeIdWithDurationSDKType {
-    const obj: any = {};
-    obj.gauge_id = message.gaugeId;
-    message.duration !== undefined && (obj.duration = message.duration ? Duration.toSDK(message.duration) : undefined);
-    obj.gauge_incentive_percentage = message.gaugeIncentivePercentage;
-    return obj;
-  },
-  fromAmino(object: QueryGaugeIdsResponse_GaugeIdWithDurationAmino): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    return {
-      gaugeId: BigInt(object.gauge_id),
-      duration: object?.duration ? Duration.fromAmino(object.duration) : undefined,
-      gaugeIncentivePercentage: object.gauge_incentive_percentage
-    };
-  },
-  toAmino(message: QueryGaugeIdsResponse_GaugeIdWithDuration): QueryGaugeIdsResponse_GaugeIdWithDurationAmino {
-    const obj: any = {};
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    obj.duration = message.duration ? Duration.toAmino(message.duration) : undefined;
-    obj.gauge_incentive_percentage = message.gaugeIncentivePercentage;
-    return obj;
-  },
-  fromAminoMsg(object: QueryGaugeIdsResponse_GaugeIdWithDurationAminoMsg): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    return QueryGaugeIdsResponse_GaugeIdWithDuration.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryGaugeIdsResponse_GaugeIdWithDuration): QueryGaugeIdsResponse_GaugeIdWithDurationAminoMsg {
-    return {
-      type: "osmosis/poolincentives/gauge-id-with-duration",
-      value: QueryGaugeIdsResponse_GaugeIdWithDuration.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryGaugeIdsResponse_GaugeIdWithDurationProtoMsg): QueryGaugeIdsResponse_GaugeIdWithDuration {
-    return QueryGaugeIdsResponse_GaugeIdWithDuration.decode(message.value);
-  },
-  toProto(message: QueryGaugeIdsResponse_GaugeIdWithDuration): Uint8Array {
-    return QueryGaugeIdsResponse_GaugeIdWithDuration.encode(message).finish();
-  },
-  toProtoMsg(message: QueryGaugeIdsResponse_GaugeIdWithDuration): QueryGaugeIdsResponse_GaugeIdWithDurationProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.GaugeIdWithDuration",
-      value: QueryGaugeIdsResponse_GaugeIdWithDuration.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDistrInfoRequest(): QueryDistrInfoRequest {
-  return {};
-}
-export const QueryDistrInfoRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoRequest",
-  aminoType: "osmosis/poolincentives/query-distr-info-request",
-  encode(_: QueryDistrInfoRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDistrInfoRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDistrInfoRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryDistrInfoRequest {
-    return {};
-  },
-  toJSON(_: QueryDistrInfoRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryDistrInfoRequest>): QueryDistrInfoRequest {
-    const message = createBaseQueryDistrInfoRequest();
-    return message;
-  },
-  fromSDK(_: QueryDistrInfoRequestSDKType): QueryDistrInfoRequest {
-    return {};
-  },
-  toSDK(_: QueryDistrInfoRequest): QueryDistrInfoRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryDistrInfoRequestAmino): QueryDistrInfoRequest {
-    return {};
-  },
-  toAmino(_: QueryDistrInfoRequest): QueryDistrInfoRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryDistrInfoRequestAminoMsg): QueryDistrInfoRequest {
-    return QueryDistrInfoRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDistrInfoRequest): QueryDistrInfoRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-distr-info-request",
-      value: QueryDistrInfoRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDistrInfoRequestProtoMsg): QueryDistrInfoRequest {
-    return QueryDistrInfoRequest.decode(message.value);
-  },
-  toProto(message: QueryDistrInfoRequest): Uint8Array {
-    return QueryDistrInfoRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDistrInfoRequest): QueryDistrInfoRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoRequest",
-      value: QueryDistrInfoRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDistrInfoResponse(): QueryDistrInfoResponse {
-  return {
-    distrInfo: DistrInfo.fromPartial({})
-  };
-}
-export const QueryDistrInfoResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoResponse",
-  aminoType: "osmosis/poolincentives/query-distr-info-response",
-  encode(message: QueryDistrInfoResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.distrInfo !== undefined) {
-      DistrInfo.encode(message.distrInfo, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDistrInfoResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDistrInfoResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.distrInfo = DistrInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDistrInfoResponse {
-    return {
-      distrInfo: isSet(object.distrInfo) ? DistrInfo.fromJSON(object.distrInfo) : undefined
-    };
-  },
-  toJSON(message: QueryDistrInfoResponse): unknown {
-    const obj: any = {};
-    message.distrInfo !== undefined && (obj.distrInfo = message.distrInfo ? DistrInfo.toJSON(message.distrInfo) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDistrInfoResponse>): QueryDistrInfoResponse {
-    const message = createBaseQueryDistrInfoResponse();
-    message.distrInfo = object.distrInfo !== undefined && object.distrInfo !== null ? DistrInfo.fromPartial(object.distrInfo) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDistrInfoResponseSDKType): QueryDistrInfoResponse {
-    return {
-      distrInfo: object.distr_info ? DistrInfo.fromSDK(object.distr_info) : undefined
-    };
-  },
-  toSDK(message: QueryDistrInfoResponse): QueryDistrInfoResponseSDKType {
-    const obj: any = {};
-    message.distrInfo !== undefined && (obj.distr_info = message.distrInfo ? DistrInfo.toSDK(message.distrInfo) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDistrInfoResponseAmino): QueryDistrInfoResponse {
-    return {
-      distrInfo: object?.distr_info ? DistrInfo.fromAmino(object.distr_info) : undefined
-    };
-  },
-  toAmino(message: QueryDistrInfoResponse): QueryDistrInfoResponseAmino {
-    const obj: any = {};
-    obj.distr_info = message.distrInfo ? DistrInfo.toAmino(message.distrInfo) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDistrInfoResponseAminoMsg): QueryDistrInfoResponse {
-    return QueryDistrInfoResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDistrInfoResponse): QueryDistrInfoResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-distr-info-response",
-      value: QueryDistrInfoResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDistrInfoResponseProtoMsg): QueryDistrInfoResponse {
-    return QueryDistrInfoResponse.decode(message.value);
-  },
-  toProto(message: QueryDistrInfoResponse): Uint8Array {
-    return QueryDistrInfoResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDistrInfoResponse): QueryDistrInfoResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryDistrInfoResponse",
-      value: QueryDistrInfoResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsRequest",
-  aminoType: "osmosis/poolincentives/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsResponse",
-  aminoType: "osmosis/poolincentives/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryLockableDurationsRequest(): QueryLockableDurationsRequest {
-  return {};
-}
-export const QueryLockableDurationsRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsRequest",
-  aminoType: "osmosis/poolincentives/query-lockable-durations-request",
-  encode(_: QueryLockableDurationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryLockableDurationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryLockableDurationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryLockableDurationsRequest {
-    return {};
-  },
-  toJSON(_: QueryLockableDurationsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryLockableDurationsRequest>): QueryLockableDurationsRequest {
-    const message = createBaseQueryLockableDurationsRequest();
-    return message;
-  },
-  fromSDK(_: QueryLockableDurationsRequestSDKType): QueryLockableDurationsRequest {
-    return {};
-  },
-  toSDK(_: QueryLockableDurationsRequest): QueryLockableDurationsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryLockableDurationsRequestAmino): QueryLockableDurationsRequest {
-    return {};
-  },
-  toAmino(_: QueryLockableDurationsRequest): QueryLockableDurationsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryLockableDurationsRequestAminoMsg): QueryLockableDurationsRequest {
-    return QueryLockableDurationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryLockableDurationsRequest): QueryLockableDurationsRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-lockable-durations-request",
-      value: QueryLockableDurationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryLockableDurationsRequestProtoMsg): QueryLockableDurationsRequest {
-    return QueryLockableDurationsRequest.decode(message.value);
-  },
-  toProto(message: QueryLockableDurationsRequest): Uint8Array {
-    return QueryLockableDurationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryLockableDurationsRequest): QueryLockableDurationsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsRequest",
-      value: QueryLockableDurationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryLockableDurationsResponse(): QueryLockableDurationsResponse {
-  return {
-    lockableDurations: []
-  };
-}
-export const QueryLockableDurationsResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsResponse",
-  aminoType: "osmosis/poolincentives/query-lockable-durations-response",
-  encode(message: QueryLockableDurationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.lockableDurations) {
-      Duration.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryLockableDurationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryLockableDurationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockableDurations.push(Duration.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockableDurations) ? object.lockableDurations.map((e: any) => Duration.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryLockableDurationsResponse): unknown {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockableDurations = message.lockableDurations.map(e => e ? Duration.toJSON(e) : undefined);
-    } else {
-      obj.lockableDurations = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryLockableDurationsResponse>): QueryLockableDurationsResponse {
-    const message = createBaseQueryLockableDurationsResponse();
-    message.lockableDurations = object.lockableDurations?.map(e => Duration.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryLockableDurationsResponseSDKType): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseSDKType {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toSDK(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryLockableDurationsResponseAmino): QueryLockableDurationsResponse {
-    return {
-      lockableDurations: Array.isArray(object?.lockable_durations) ? object.lockable_durations.map((e: any) => Duration.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseAmino {
-    const obj: any = {};
-    if (message.lockableDurations) {
-      obj.lockable_durations = message.lockableDurations.map(e => e ? Duration.toAmino(e) : undefined);
-    } else {
-      obj.lockable_durations = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryLockableDurationsResponseAminoMsg): QueryLockableDurationsResponse {
-    return QueryLockableDurationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-lockable-durations-response",
-      value: QueryLockableDurationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryLockableDurationsResponseProtoMsg): QueryLockableDurationsResponse {
-    return QueryLockableDurationsResponse.decode(message.value);
-  },
-  toProto(message: QueryLockableDurationsResponse): Uint8Array {
-    return QueryLockableDurationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryLockableDurationsResponse): QueryLockableDurationsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryLockableDurationsResponse",
-      value: QueryLockableDurationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryIncentivizedPoolsRequest(): QueryIncentivizedPoolsRequest {
-  return {};
-}
-export const QueryIncentivizedPoolsRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsRequest",
-  aminoType: "osmosis/poolincentives/query-incentivized-pools-request",
-  encode(_: QueryIncentivizedPoolsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryIncentivizedPoolsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryIncentivizedPoolsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryIncentivizedPoolsRequest {
-    return {};
-  },
-  toJSON(_: QueryIncentivizedPoolsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryIncentivizedPoolsRequest>): QueryIncentivizedPoolsRequest {
-    const message = createBaseQueryIncentivizedPoolsRequest();
-    return message;
-  },
-  fromSDK(_: QueryIncentivizedPoolsRequestSDKType): QueryIncentivizedPoolsRequest {
-    return {};
-  },
-  toSDK(_: QueryIncentivizedPoolsRequest): QueryIncentivizedPoolsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryIncentivizedPoolsRequestAmino): QueryIncentivizedPoolsRequest {
-    return {};
-  },
-  toAmino(_: QueryIncentivizedPoolsRequest): QueryIncentivizedPoolsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryIncentivizedPoolsRequestAminoMsg): QueryIncentivizedPoolsRequest {
-    return QueryIncentivizedPoolsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryIncentivizedPoolsRequest): QueryIncentivizedPoolsRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-incentivized-pools-request",
-      value: QueryIncentivizedPoolsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryIncentivizedPoolsRequestProtoMsg): QueryIncentivizedPoolsRequest {
-    return QueryIncentivizedPoolsRequest.decode(message.value);
-  },
-  toProto(message: QueryIncentivizedPoolsRequest): Uint8Array {
-    return QueryIncentivizedPoolsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryIncentivizedPoolsRequest): QueryIncentivizedPoolsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsRequest",
-      value: QueryIncentivizedPoolsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseIncentivizedPool(): IncentivizedPool {
-  return {
-    poolId: BigInt(0),
-    lockableDuration: Duration.fromPartial({}),
-    gaugeId: BigInt(0)
-  };
-}
-export const IncentivizedPool = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.IncentivizedPool",
-  aminoType: "osmosis/poolincentives/incentivized-pool",
-  encode(message: IncentivizedPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.lockableDuration !== undefined) {
-      Duration.encode(message.lockableDuration, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(24).uint64(message.gaugeId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): IncentivizedPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseIncentivizedPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.lockableDuration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.gaugeId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): IncentivizedPool {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      lockableDuration: isSet(object.lockableDuration) ? Duration.fromJSON(object.lockableDuration) : undefined,
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: IncentivizedPool): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.lockableDuration !== undefined && (obj.lockableDuration = message.lockableDuration ? Duration.toJSON(message.lockableDuration) : undefined);
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<IncentivizedPool>): IncentivizedPool {
-    const message = createBaseIncentivizedPool();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.lockableDuration = object.lockableDuration !== undefined && object.lockableDuration !== null ? Duration.fromPartial(object.lockableDuration) : undefined;
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: IncentivizedPoolSDKType): IncentivizedPool {
-    return {
-      poolId: object?.pool_id,
-      lockableDuration: object.lockable_duration ? Duration.fromSDK(object.lockable_duration) : undefined,
-      gaugeId: object?.gauge_id
-    };
-  },
-  toSDK(message: IncentivizedPool): IncentivizedPoolSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    message.lockableDuration !== undefined && (obj.lockable_duration = message.lockableDuration ? Duration.toSDK(message.lockableDuration) : undefined);
-    obj.gauge_id = message.gaugeId;
-    return obj;
-  },
-  fromAmino(object: IncentivizedPoolAmino): IncentivizedPool {
-    return {
-      poolId: BigInt(object.pool_id),
-      lockableDuration: object?.lockable_duration ? Duration.fromAmino(object.lockable_duration) : undefined,
-      gaugeId: BigInt(object.gauge_id)
-    };
-  },
-  toAmino(message: IncentivizedPool): IncentivizedPoolAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.lockable_duration = message.lockableDuration ? Duration.toAmino(message.lockableDuration) : undefined;
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: IncentivizedPoolAminoMsg): IncentivizedPool {
-    return IncentivizedPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: IncentivizedPool): IncentivizedPoolAminoMsg {
-    return {
-      type: "osmosis/poolincentives/incentivized-pool",
-      value: IncentivizedPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: IncentivizedPoolProtoMsg): IncentivizedPool {
-    return IncentivizedPool.decode(message.value);
-  },
-  toProto(message: IncentivizedPool): Uint8Array {
-    return IncentivizedPool.encode(message).finish();
-  },
-  toProtoMsg(message: IncentivizedPool): IncentivizedPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.IncentivizedPool",
-      value: IncentivizedPool.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryIncentivizedPoolsResponse(): QueryIncentivizedPoolsResponse {
-  return {
-    incentivizedPools: []
-  };
-}
-export const QueryIncentivizedPoolsResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsResponse",
-  aminoType: "osmosis/poolincentives/query-incentivized-pools-response",
-  encode(message: QueryIncentivizedPoolsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.incentivizedPools) {
-      IncentivizedPool.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryIncentivizedPoolsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryIncentivizedPoolsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.incentivizedPools.push(IncentivizedPool.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryIncentivizedPoolsResponse {
-    return {
-      incentivizedPools: Array.isArray(object?.incentivizedPools) ? object.incentivizedPools.map((e: any) => IncentivizedPool.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryIncentivizedPoolsResponse): unknown {
-    const obj: any = {};
-    if (message.incentivizedPools) {
-      obj.incentivizedPools = message.incentivizedPools.map(e => e ? IncentivizedPool.toJSON(e) : undefined);
-    } else {
-      obj.incentivizedPools = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryIncentivizedPoolsResponse>): QueryIncentivizedPoolsResponse {
-    const message = createBaseQueryIncentivizedPoolsResponse();
-    message.incentivizedPools = object.incentivizedPools?.map(e => IncentivizedPool.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryIncentivizedPoolsResponseSDKType): QueryIncentivizedPoolsResponse {
-    return {
-      incentivizedPools: Array.isArray(object?.incentivized_pools) ? object.incentivized_pools.map((e: any) => IncentivizedPool.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryIncentivizedPoolsResponse): QueryIncentivizedPoolsResponseSDKType {
-    const obj: any = {};
-    if (message.incentivizedPools) {
-      obj.incentivized_pools = message.incentivizedPools.map(e => e ? IncentivizedPool.toSDK(e) : undefined);
-    } else {
-      obj.incentivized_pools = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryIncentivizedPoolsResponseAmino): QueryIncentivizedPoolsResponse {
-    return {
-      incentivizedPools: Array.isArray(object?.incentivized_pools) ? object.incentivized_pools.map((e: any) => IncentivizedPool.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryIncentivizedPoolsResponse): QueryIncentivizedPoolsResponseAmino {
-    const obj: any = {};
-    if (message.incentivizedPools) {
-      obj.incentivized_pools = message.incentivizedPools.map(e => e ? IncentivizedPool.toAmino(e) : undefined);
-    } else {
-      obj.incentivized_pools = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryIncentivizedPoolsResponseAminoMsg): QueryIncentivizedPoolsResponse {
-    return QueryIncentivizedPoolsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryIncentivizedPoolsResponse): QueryIncentivizedPoolsResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-incentivized-pools-response",
-      value: QueryIncentivizedPoolsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryIncentivizedPoolsResponseProtoMsg): QueryIncentivizedPoolsResponse {
-    return QueryIncentivizedPoolsResponse.decode(message.value);
-  },
-  toProto(message: QueryIncentivizedPoolsResponse): Uint8Array {
-    return QueryIncentivizedPoolsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryIncentivizedPoolsResponse): QueryIncentivizedPoolsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryIncentivizedPoolsResponse",
-      value: QueryIncentivizedPoolsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryExternalIncentiveGaugesRequest(): QueryExternalIncentiveGaugesRequest {
-  return {};
-}
-export const QueryExternalIncentiveGaugesRequest = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesRequest",
-  aminoType: "osmosis/poolincentives/query-external-incentive-gauges-request",
-  encode(_: QueryExternalIncentiveGaugesRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryExternalIncentiveGaugesRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryExternalIncentiveGaugesRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryExternalIncentiveGaugesRequest {
-    return {};
-  },
-  toJSON(_: QueryExternalIncentiveGaugesRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryExternalIncentiveGaugesRequest>): QueryExternalIncentiveGaugesRequest {
-    const message = createBaseQueryExternalIncentiveGaugesRequest();
-    return message;
-  },
-  fromSDK(_: QueryExternalIncentiveGaugesRequestSDKType): QueryExternalIncentiveGaugesRequest {
-    return {};
-  },
-  toSDK(_: QueryExternalIncentiveGaugesRequest): QueryExternalIncentiveGaugesRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryExternalIncentiveGaugesRequestAmino): QueryExternalIncentiveGaugesRequest {
-    return {};
-  },
-  toAmino(_: QueryExternalIncentiveGaugesRequest): QueryExternalIncentiveGaugesRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryExternalIncentiveGaugesRequestAminoMsg): QueryExternalIncentiveGaugesRequest {
-    return QueryExternalIncentiveGaugesRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryExternalIncentiveGaugesRequest): QueryExternalIncentiveGaugesRequestAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-external-incentive-gauges-request",
-      value: QueryExternalIncentiveGaugesRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryExternalIncentiveGaugesRequestProtoMsg): QueryExternalIncentiveGaugesRequest {
-    return QueryExternalIncentiveGaugesRequest.decode(message.value);
-  },
-  toProto(message: QueryExternalIncentiveGaugesRequest): Uint8Array {
-    return QueryExternalIncentiveGaugesRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryExternalIncentiveGaugesRequest): QueryExternalIncentiveGaugesRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesRequest",
-      value: QueryExternalIncentiveGaugesRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryExternalIncentiveGaugesResponse(): QueryExternalIncentiveGaugesResponse {
-  return {
-    data: []
-  };
-}
-export const QueryExternalIncentiveGaugesResponse = {
-  typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesResponse",
-  aminoType: "osmosis/poolincentives/query-external-incentive-gauges-response",
-  encode(message: QueryExternalIncentiveGaugesResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.data) {
-      Gauge.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryExternalIncentiveGaugesResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryExternalIncentiveGaugesResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data.push(Gauge.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryExternalIncentiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryExternalIncentiveGaugesResponse): unknown {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toJSON(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryExternalIncentiveGaugesResponse>): QueryExternalIncentiveGaugesResponse {
-    const message = createBaseQueryExternalIncentiveGaugesResponse();
-    message.data = object.data?.map(e => Gauge.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryExternalIncentiveGaugesResponseSDKType): QueryExternalIncentiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryExternalIncentiveGaugesResponse): QueryExternalIncentiveGaugesResponseSDKType {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toSDK(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryExternalIncentiveGaugesResponseAmino): QueryExternalIncentiveGaugesResponse {
-    return {
-      data: Array.isArray(object?.data) ? object.data.map((e: any) => Gauge.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryExternalIncentiveGaugesResponse): QueryExternalIncentiveGaugesResponseAmino {
-    const obj: any = {};
-    if (message.data) {
-      obj.data = message.data.map(e => e ? Gauge.toAmino(e) : undefined);
-    } else {
-      obj.data = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryExternalIncentiveGaugesResponseAminoMsg): QueryExternalIncentiveGaugesResponse {
-    return QueryExternalIncentiveGaugesResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryExternalIncentiveGaugesResponse): QueryExternalIncentiveGaugesResponseAminoMsg {
-    return {
-      type: "osmosis/poolincentives/query-external-incentive-gauges-response",
-      value: QueryExternalIncentiveGaugesResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryExternalIncentiveGaugesResponseProtoMsg): QueryExternalIncentiveGaugesResponse {
-    return QueryExternalIncentiveGaugesResponse.decode(message.value);
-  },
-  toProto(message: QueryExternalIncentiveGaugesResponse): Uint8Array {
-    return QueryExternalIncentiveGaugesResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryExternalIncentiveGaugesResponse): QueryExternalIncentiveGaugesResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.poolincentives.v1beta1.QueryExternalIncentiveGaugesResponse",
-      value: QueryExternalIncentiveGaugesResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/rpc.query.ts b/examples/injective/src/codegen/osmosis/rpc.query.ts
deleted file mode 100644
index d5ea1d41..00000000
--- a/examples/injective/src/codegen/osmosis/rpc.query.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc";
-import { QueryClient } from "@cosmjs/stargate";
-export const createRPCQueryClient = async ({
-  rpcEndpoint
-}: {
-  rpcEndpoint: string | HttpEndpoint;
-}) => {
-  const tmClient = await Tendermint34Client.connect(rpcEndpoint);
-  const client = new QueryClient(tmClient);
-  return {
-    cosmos: {
-      app: {
-        v1alpha1: (await import("../cosmos/app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      auth: {
-        v1beta1: (await import("../cosmos/auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      authz: {
-        v1beta1: (await import("../cosmos/authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      bank: {
-        v1beta1: (await import("../cosmos/bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      base: {
-        tendermint: {
-          v1beta1: (await import("../cosmos/base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client)
-        }
-      },
-      distribution: {
-        v1beta1: (await import("../cosmos/distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      evidence: {
-        v1beta1: (await import("../cosmos/evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      feegrant: {
-        v1beta1: (await import("../cosmos/feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      gov: {
-        v1: (await import("../cosmos/gov/v1/query.rpc.Query")).createRpcQueryExtension(client),
-        v1beta1: (await import("../cosmos/gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      group: {
-        v1: (await import("../cosmos/group/v1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      mint: {
-        v1beta1: (await import("../cosmos/mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      nft: {
-        v1beta1: (await import("../cosmos/nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      params: {
-        v1beta1: (await import("../cosmos/params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      slashing: {
-        v1beta1: (await import("../cosmos/slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      staking: {
-        v1beta1: (await import("../cosmos/staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      tx: {
-        v1beta1: (await import("../cosmos/tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client)
-      },
-      upgrade: {
-        v1beta1: (await import("../cosmos/upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    },
-    osmosis: {
-      claim: {
-        v1beta1: (await import("./claim/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      epochs: {
-        v1beta1: (await import("./epochs/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      gamm: {
-        v1beta1: (await import("./gamm/v1beta1/query.rpc.Query")).createRpcQueryExtension(client),
-        v2: (await import("./gamm/v2/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      ibcratelimit: {
-        v1beta1: (await import("./ibc-rate-limit/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      incentives: (await import("./incentives/query.rpc.Query")).createRpcQueryExtension(client),
-      lockup: (await import("./lockup/query.rpc.Query")).createRpcQueryExtension(client),
-      mint: {
-        v1beta1: (await import("./mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      poolincentives: {
-        v1beta1: (await import("./pool-incentives/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      superfluid: (await import("./superfluid/query.rpc.Query")).createRpcQueryExtension(client),
-      tokenfactory: {
-        v1beta1: (await import("./tokenfactory/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      twap: {
-        v1beta1: (await import("./twap/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      },
-      txfees: {
-        v1beta1: (await import("./txfees/v1beta1/query.rpc.Query")).createRpcQueryExtension(client)
-      }
-    }
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/rpc.tx.ts b/examples/injective/src/codegen/osmosis/rpc.tx.ts
deleted file mode 100644
index 8d4b6b8b..00000000
--- a/examples/injective/src/codegen/osmosis/rpc.tx.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Rpc } from "../helpers";
-export const createRPCMsgClient = async ({
-  rpc
-}: {
-  rpc: Rpc;
-}) => ({
-  cosmos: {
-    authz: {
-      v1beta1: new (await import("../cosmos/authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    bank: {
-      v1beta1: new (await import("../cosmos/bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    crisis: {
-      v1beta1: new (await import("../cosmos/crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    distribution: {
-      v1beta1: new (await import("../cosmos/distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    evidence: {
-      v1beta1: new (await import("../cosmos/evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    feegrant: {
-      v1beta1: new (await import("../cosmos/feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    gov: {
-      v1: new (await import("../cosmos/gov/v1/tx.rpc.msg")).MsgClientImpl(rpc),
-      v1beta1: new (await import("../cosmos/gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    group: {
-      v1: new (await import("../cosmos/group/v1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    nft: {
-      v1beta1: new (await import("../cosmos/nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    slashing: {
-      v1beta1: new (await import("../cosmos/slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    staking: {
-      v1beta1: new (await import("../cosmos/staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    upgrade: {
-      v1beta1: new (await import("../cosmos/upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    vesting: {
-      v1beta1: new (await import("../cosmos/vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  },
-  osmosis: {
-    gamm: {
-      poolmodels: {
-        balancer: {
-          v1beta1: new (await import("./gamm/pool-models/balancer/tx/tx.rpc.msg")).MsgClientImpl(rpc)
-        },
-        stableswap: {
-          v1beta1: new (await import("./gamm/pool-models/stableswap/tx.rpc.msg")).MsgClientImpl(rpc)
-        }
-      },
-      v1beta1: new (await import("./gamm/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    },
-    incentives: new (await import("./incentives/tx.rpc.msg")).MsgClientImpl(rpc),
-    lockup: new (await import("./lockup/tx.rpc.msg")).MsgClientImpl(rpc),
-    superfluid: new (await import("./superfluid/tx.rpc.msg")).MsgClientImpl(rpc),
-    tokenfactory: {
-      v1beta1: new (await import("./tokenfactory/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc)
-    }
-  }
-});
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/sumtree/v1beta1/tree.ts b/examples/injective/src/codegen/osmosis/sumtree/v1beta1/tree.ts
deleted file mode 100644
index 64f0cd43..00000000
--- a/examples/injective/src/codegen/osmosis/sumtree/v1beta1/tree.ts
+++ /dev/null
@@ -1,346 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers";
-export interface Node {
-  children: Child[];
-}
-export interface NodeProtoMsg {
-  typeUrl: "/osmosis.store.v1beta1.Node";
-  value: Uint8Array;
-}
-export interface NodeAmino {
-  children: ChildAmino[];
-}
-export interface NodeAminoMsg {
-  type: "osmosis/store/node";
-  value: NodeAmino;
-}
-export interface NodeSDKType {
-  children: ChildSDKType[];
-}
-export interface Child {
-  index: Uint8Array;
-  accumulation: string;
-}
-export interface ChildProtoMsg {
-  typeUrl: "/osmosis.store.v1beta1.Child";
-  value: Uint8Array;
-}
-export interface ChildAmino {
-  index: Uint8Array;
-  accumulation: string;
-}
-export interface ChildAminoMsg {
-  type: "osmosis/store/child";
-  value: ChildAmino;
-}
-export interface ChildSDKType {
-  index: Uint8Array;
-  accumulation: string;
-}
-export interface Leaf {
-  leaf: Child | undefined;
-}
-export interface LeafProtoMsg {
-  typeUrl: "/osmosis.store.v1beta1.Leaf";
-  value: Uint8Array;
-}
-export interface LeafAmino {
-  leaf?: ChildAmino | undefined;
-}
-export interface LeafAminoMsg {
-  type: "osmosis/store/leaf";
-  value: LeafAmino;
-}
-export interface LeafSDKType {
-  leaf: ChildSDKType | undefined;
-}
-function createBaseNode(): Node {
-  return {
-    children: []
-  };
-}
-export const Node = {
-  typeUrl: "/osmosis.store.v1beta1.Node",
-  aminoType: "osmosis/store/node",
-  encode(message: Node, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.children) {
-      Child.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Node {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNode();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.children.push(Child.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Node {
-    return {
-      children: Array.isArray(object?.children) ? object.children.map((e: any) => Child.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Node): unknown {
-    const obj: any = {};
-    if (message.children) {
-      obj.children = message.children.map(e => e ? Child.toJSON(e) : undefined);
-    } else {
-      obj.children = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Node>): Node {
-    const message = createBaseNode();
-    message.children = object.children?.map(e => Child.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: NodeSDKType): Node {
-    return {
-      children: Array.isArray(object?.children) ? object.children.map((e: any) => Child.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Node): NodeSDKType {
-    const obj: any = {};
-    if (message.children) {
-      obj.children = message.children.map(e => e ? Child.toSDK(e) : undefined);
-    } else {
-      obj.children = [];
-    }
-    return obj;
-  },
-  fromAmino(object: NodeAmino): Node {
-    return {
-      children: Array.isArray(object?.children) ? object.children.map((e: any) => Child.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Node): NodeAmino {
-    const obj: any = {};
-    if (message.children) {
-      obj.children = message.children.map(e => e ? Child.toAmino(e) : undefined);
-    } else {
-      obj.children = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: NodeAminoMsg): Node {
-    return Node.fromAmino(object.value);
-  },
-  toAminoMsg(message: Node): NodeAminoMsg {
-    return {
-      type: "osmosis/store/node",
-      value: Node.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: NodeProtoMsg): Node {
-    return Node.decode(message.value);
-  },
-  toProto(message: Node): Uint8Array {
-    return Node.encode(message).finish();
-  },
-  toProtoMsg(message: Node): NodeProtoMsg {
-    return {
-      typeUrl: "/osmosis.store.v1beta1.Node",
-      value: Node.encode(message).finish()
-    };
-  }
-};
-function createBaseChild(): Child {
-  return {
-    index: new Uint8Array(),
-    accumulation: ""
-  };
-}
-export const Child = {
-  typeUrl: "/osmosis.store.v1beta1.Child",
-  aminoType: "osmosis/store/child",
-  encode(message: Child, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index.length !== 0) {
-      writer.uint32(10).bytes(message.index);
-    }
-    if (message.accumulation !== "") {
-      writer.uint32(18).string(message.accumulation);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Child {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseChild();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.bytes();
-          break;
-        case 2:
-          message.accumulation = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Child {
-    return {
-      index: isSet(object.index) ? bytesFromBase64(object.index) : new Uint8Array(),
-      accumulation: isSet(object.accumulation) ? String(object.accumulation) : ""
-    };
-  },
-  toJSON(message: Child): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = base64FromBytes(message.index !== undefined ? message.index : new Uint8Array()));
-    message.accumulation !== undefined && (obj.accumulation = message.accumulation);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Child>): Child {
-    const message = createBaseChild();
-    message.index = object.index ?? new Uint8Array();
-    message.accumulation = object.accumulation ?? "";
-    return message;
-  },
-  fromSDK(object: ChildSDKType): Child {
-    return {
-      index: object?.index,
-      accumulation: object?.accumulation
-    };
-  },
-  toSDK(message: Child): ChildSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.accumulation = message.accumulation;
-    return obj;
-  },
-  fromAmino(object: ChildAmino): Child {
-    return {
-      index: object.index,
-      accumulation: object.accumulation
-    };
-  },
-  toAmino(message: Child): ChildAmino {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.accumulation = message.accumulation;
-    return obj;
-  },
-  fromAminoMsg(object: ChildAminoMsg): Child {
-    return Child.fromAmino(object.value);
-  },
-  toAminoMsg(message: Child): ChildAminoMsg {
-    return {
-      type: "osmosis/store/child",
-      value: Child.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ChildProtoMsg): Child {
-    return Child.decode(message.value);
-  },
-  toProto(message: Child): Uint8Array {
-    return Child.encode(message).finish();
-  },
-  toProtoMsg(message: Child): ChildProtoMsg {
-    return {
-      typeUrl: "/osmosis.store.v1beta1.Child",
-      value: Child.encode(message).finish()
-    };
-  }
-};
-function createBaseLeaf(): Leaf {
-  return {
-    leaf: Child.fromPartial({})
-  };
-}
-export const Leaf = {
-  typeUrl: "/osmosis.store.v1beta1.Leaf",
-  aminoType: "osmosis/store/leaf",
-  encode(message: Leaf, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.leaf !== undefined) {
-      Child.encode(message.leaf, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Leaf {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLeaf();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.leaf = Child.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Leaf {
-    return {
-      leaf: isSet(object.leaf) ? Child.fromJSON(object.leaf) : undefined
-    };
-  },
-  toJSON(message: Leaf): unknown {
-    const obj: any = {};
-    message.leaf !== undefined && (obj.leaf = message.leaf ? Child.toJSON(message.leaf) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Leaf>): Leaf {
-    const message = createBaseLeaf();
-    message.leaf = object.leaf !== undefined && object.leaf !== null ? Child.fromPartial(object.leaf) : undefined;
-    return message;
-  },
-  fromSDK(object: LeafSDKType): Leaf {
-    return {
-      leaf: object.leaf ? Child.fromSDK(object.leaf) : undefined
-    };
-  },
-  toSDK(message: Leaf): LeafSDKType {
-    const obj: any = {};
-    message.leaf !== undefined && (obj.leaf = message.leaf ? Child.toSDK(message.leaf) : undefined);
-    return obj;
-  },
-  fromAmino(object: LeafAmino): Leaf {
-    return {
-      leaf: object?.leaf ? Child.fromAmino(object.leaf) : undefined
-    };
-  },
-  toAmino(message: Leaf): LeafAmino {
-    const obj: any = {};
-    obj.leaf = message.leaf ? Child.toAmino(message.leaf) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LeafAminoMsg): Leaf {
-    return Leaf.fromAmino(object.value);
-  },
-  toAminoMsg(message: Leaf): LeafAminoMsg {
-    return {
-      type: "osmosis/store/leaf",
-      value: Leaf.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LeafProtoMsg): Leaf {
-    return Leaf.decode(message.value);
-  },
-  toProto(message: Leaf): Uint8Array {
-    return Leaf.encode(message).finish();
-  },
-  toProtoMsg(message: Leaf): LeafProtoMsg {
-    return {
-      typeUrl: "/osmosis.store.v1beta1.Leaf",
-      value: Leaf.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/genesis.ts b/examples/injective/src/codegen/osmosis/superfluid/genesis.ts
deleted file mode 100644
index 9712cd13..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/genesis.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { SuperfluidAsset, SuperfluidAssetAmino, SuperfluidAssetSDKType, OsmoEquivalentMultiplierRecord, OsmoEquivalentMultiplierRecordAmino, OsmoEquivalentMultiplierRecordSDKType, SuperfluidIntermediaryAccount, SuperfluidIntermediaryAccountAmino, SuperfluidIntermediaryAccountSDKType, LockIdIntermediaryAccountConnection, LockIdIntermediaryAccountConnectionAmino, LockIdIntermediaryAccountConnectionSDKType } from "./superfluid";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/** GenesisState defines the module's genesis state. */
-export interface GenesisState {
-  params: Params | undefined;
-  /**
-   * superfluid_assets defines the registered superfluid assets that have been
-   * registered via governance.
-   */
-  superfluidAssets: SuperfluidAsset[];
-  /**
-   * osmo_equivalent_multipliers is the records of osmo equivalent amount of
-   * each superfluid registered pool, updated every epoch.
-   */
-  osmoEquivalentMultipliers: OsmoEquivalentMultiplierRecord[];
-  /**
-   * intermediary_accounts is a secondary account for superfluid staking that
-   * plays an intermediary role between validators and the delegators.
-   */
-  intermediaryAccounts: SuperfluidIntermediaryAccount[];
-  intemediaryAccountConnections: LockIdIntermediaryAccountConnection[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.superfluid.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the module's genesis state. */
-export interface GenesisStateAmino {
-  params?: ParamsAmino | undefined;
-  /**
-   * superfluid_assets defines the registered superfluid assets that have been
-   * registered via governance.
-   */
-  superfluid_assets: SuperfluidAssetAmino[];
-  /**
-   * osmo_equivalent_multipliers is the records of osmo equivalent amount of
-   * each superfluid registered pool, updated every epoch.
-   */
-  osmo_equivalent_multipliers: OsmoEquivalentMultiplierRecordAmino[];
-  /**
-   * intermediary_accounts is a secondary account for superfluid staking that
-   * plays an intermediary role between validators and the delegators.
-   */
-  intermediary_accounts: SuperfluidIntermediaryAccountAmino[];
-  intemediary_account_connections: LockIdIntermediaryAccountConnectionAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  superfluid_assets: SuperfluidAssetSDKType[];
-  osmo_equivalent_multipliers: OsmoEquivalentMultiplierRecordSDKType[];
-  intermediary_accounts: SuperfluidIntermediaryAccountSDKType[];
-  intemediary_account_connections: LockIdIntermediaryAccountConnectionSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    superfluidAssets: [],
-    osmoEquivalentMultipliers: [],
-    intermediaryAccounts: [],
-    intemediaryAccountConnections: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.superfluid.GenesisState",
-  aminoType: "osmosis/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.superfluidAssets) {
-      SuperfluidAsset.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.osmoEquivalentMultipliers) {
-      OsmoEquivalentMultiplierRecord.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.intermediaryAccounts) {
-      SuperfluidIntermediaryAccount.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    for (const v of message.intemediaryAccountConnections) {
-      LockIdIntermediaryAccountConnection.encode(v!, writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.superfluidAssets.push(SuperfluidAsset.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.osmoEquivalentMultipliers.push(OsmoEquivalentMultiplierRecord.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.intermediaryAccounts.push(SuperfluidIntermediaryAccount.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.intemediaryAccountConnections.push(LockIdIntermediaryAccountConnection.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      superfluidAssets: Array.isArray(object?.superfluidAssets) ? object.superfluidAssets.map((e: any) => SuperfluidAsset.fromJSON(e)) : [],
-      osmoEquivalentMultipliers: Array.isArray(object?.osmoEquivalentMultipliers) ? object.osmoEquivalentMultipliers.map((e: any) => OsmoEquivalentMultiplierRecord.fromJSON(e)) : [],
-      intermediaryAccounts: Array.isArray(object?.intermediaryAccounts) ? object.intermediaryAccounts.map((e: any) => SuperfluidIntermediaryAccount.fromJSON(e)) : [],
-      intemediaryAccountConnections: Array.isArray(object?.intemediaryAccountConnections) ? object.intemediaryAccountConnections.map((e: any) => LockIdIntermediaryAccountConnection.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.superfluidAssets) {
-      obj.superfluidAssets = message.superfluidAssets.map(e => e ? SuperfluidAsset.toJSON(e) : undefined);
-    } else {
-      obj.superfluidAssets = [];
-    }
-    if (message.osmoEquivalentMultipliers) {
-      obj.osmoEquivalentMultipliers = message.osmoEquivalentMultipliers.map(e => e ? OsmoEquivalentMultiplierRecord.toJSON(e) : undefined);
-    } else {
-      obj.osmoEquivalentMultipliers = [];
-    }
-    if (message.intermediaryAccounts) {
-      obj.intermediaryAccounts = message.intermediaryAccounts.map(e => e ? SuperfluidIntermediaryAccount.toJSON(e) : undefined);
-    } else {
-      obj.intermediaryAccounts = [];
-    }
-    if (message.intemediaryAccountConnections) {
-      obj.intemediaryAccountConnections = message.intemediaryAccountConnections.map(e => e ? LockIdIntermediaryAccountConnection.toJSON(e) : undefined);
-    } else {
-      obj.intemediaryAccountConnections = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.superfluidAssets = object.superfluidAssets?.map(e => SuperfluidAsset.fromPartial(e)) || [];
-    message.osmoEquivalentMultipliers = object.osmoEquivalentMultipliers?.map(e => OsmoEquivalentMultiplierRecord.fromPartial(e)) || [];
-    message.intermediaryAccounts = object.intermediaryAccounts?.map(e => SuperfluidIntermediaryAccount.fromPartial(e)) || [];
-    message.intemediaryAccountConnections = object.intemediaryAccountConnections?.map(e => LockIdIntermediaryAccountConnection.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      superfluidAssets: Array.isArray(object?.superfluid_assets) ? object.superfluid_assets.map((e: any) => SuperfluidAsset.fromSDK(e)) : [],
-      osmoEquivalentMultipliers: Array.isArray(object?.osmo_equivalent_multipliers) ? object.osmo_equivalent_multipliers.map((e: any) => OsmoEquivalentMultiplierRecord.fromSDK(e)) : [],
-      intermediaryAccounts: Array.isArray(object?.intermediary_accounts) ? object.intermediary_accounts.map((e: any) => SuperfluidIntermediaryAccount.fromSDK(e)) : [],
-      intemediaryAccountConnections: Array.isArray(object?.intemediary_account_connections) ? object.intemediary_account_connections.map((e: any) => LockIdIntermediaryAccountConnection.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.superfluidAssets) {
-      obj.superfluid_assets = message.superfluidAssets.map(e => e ? SuperfluidAsset.toSDK(e) : undefined);
-    } else {
-      obj.superfluid_assets = [];
-    }
-    if (message.osmoEquivalentMultipliers) {
-      obj.osmo_equivalent_multipliers = message.osmoEquivalentMultipliers.map(e => e ? OsmoEquivalentMultiplierRecord.toSDK(e) : undefined);
-    } else {
-      obj.osmo_equivalent_multipliers = [];
-    }
-    if (message.intermediaryAccounts) {
-      obj.intermediary_accounts = message.intermediaryAccounts.map(e => e ? SuperfluidIntermediaryAccount.toSDK(e) : undefined);
-    } else {
-      obj.intermediary_accounts = [];
-    }
-    if (message.intemediaryAccountConnections) {
-      obj.intemediary_account_connections = message.intemediaryAccountConnections.map(e => e ? LockIdIntermediaryAccountConnection.toSDK(e) : undefined);
-    } else {
-      obj.intemediary_account_connections = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      superfluidAssets: Array.isArray(object?.superfluid_assets) ? object.superfluid_assets.map((e: any) => SuperfluidAsset.fromAmino(e)) : [],
-      osmoEquivalentMultipliers: Array.isArray(object?.osmo_equivalent_multipliers) ? object.osmo_equivalent_multipliers.map((e: any) => OsmoEquivalentMultiplierRecord.fromAmino(e)) : [],
-      intermediaryAccounts: Array.isArray(object?.intermediary_accounts) ? object.intermediary_accounts.map((e: any) => SuperfluidIntermediaryAccount.fromAmino(e)) : [],
-      intemediaryAccountConnections: Array.isArray(object?.intemediary_account_connections) ? object.intemediary_account_connections.map((e: any) => LockIdIntermediaryAccountConnection.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.superfluidAssets) {
-      obj.superfluid_assets = message.superfluidAssets.map(e => e ? SuperfluidAsset.toAmino(e) : undefined);
-    } else {
-      obj.superfluid_assets = [];
-    }
-    if (message.osmoEquivalentMultipliers) {
-      obj.osmo_equivalent_multipliers = message.osmoEquivalentMultipliers.map(e => e ? OsmoEquivalentMultiplierRecord.toAmino(e) : undefined);
-    } else {
-      obj.osmo_equivalent_multipliers = [];
-    }
-    if (message.intermediaryAccounts) {
-      obj.intermediary_accounts = message.intermediaryAccounts.map(e => e ? SuperfluidIntermediaryAccount.toAmino(e) : undefined);
-    } else {
-      obj.intermediary_accounts = [];
-    }
-    if (message.intemediaryAccountConnections) {
-      obj.intemediary_account_connections = message.intemediaryAccountConnections.map(e => e ? LockIdIntermediaryAccountConnection.toAmino(e) : undefined);
-    } else {
-      obj.intemediary_account_connections = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/params.ts b/examples/injective/src/codegen/osmosis/superfluid/params.ts
deleted file mode 100644
index 2da18cd5..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/params.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { Decimal } from "@cosmjs/math";
-import { isSet, DeepPartial } from "../../helpers";
-/** Params holds parameters for the superfluid module */
-export interface Params {
-  /**
-   * minimum_risk_factor is to be cut on OSMO equivalent value of lp tokens for
-   * superfluid staking, default: 5%. The minimum risk factor works
-   * to counter-balance the staked amount on chain's exposure to various asset
-   * volatilities, and have base staking be 'resistant' to volatility.
-   */
-  minimumRiskFactor: string;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.superfluid.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the superfluid module */
-export interface ParamsAmino {
-  /**
-   * minimum_risk_factor is to be cut on OSMO equivalent value of lp tokens for
-   * superfluid staking, default: 5%. The minimum risk factor works
-   * to counter-balance the staked amount on chain's exposure to various asset
-   * volatilities, and have base staking be 'resistant' to volatility.
-   */
-  minimum_risk_factor: string;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the superfluid module */
-export interface ParamsSDKType {
-  minimum_risk_factor: string;
-}
-function createBaseParams(): Params {
-  return {
-    minimumRiskFactor: ""
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.superfluid.Params",
-  aminoType: "osmosis/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.minimumRiskFactor !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.minimumRiskFactor, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.minimumRiskFactor = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      minimumRiskFactor: isSet(object.minimumRiskFactor) ? String(object.minimumRiskFactor) : ""
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.minimumRiskFactor !== undefined && (obj.minimumRiskFactor = message.minimumRiskFactor);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.minimumRiskFactor = object.minimumRiskFactor ?? "";
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      minimumRiskFactor: object?.minimum_risk_factor
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.minimum_risk_factor = message.minimumRiskFactor;
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      minimumRiskFactor: object.minimum_risk_factor
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.minimum_risk_factor = message.minimumRiskFactor;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/superfluid/query.rpc.Query.ts
deleted file mode 100644
index 051bf42f..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/query.rpc.Query.ts
+++ /dev/null
@@ -1,567 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, AssetTypeRequest, AssetTypeResponse, AllAssetsRequest, AllAssetsResponse, AssetMultiplierRequest, AssetMultiplierResponse, AllIntermediaryAccountsRequest, AllIntermediaryAccountsResponse, ConnectedIntermediaryAccountRequest, ConnectedIntermediaryAccountResponse, QueryTotalDelegationByValidatorForDenomRequest, QueryTotalDelegationByValidatorForDenomResponse, TotalSuperfluidDelegationsRequest, TotalSuperfluidDelegationsResponse, SuperfluidDelegationAmountRequest, SuperfluidDelegationAmountResponse, SuperfluidDelegationsByDelegatorRequest, SuperfluidDelegationsByDelegatorResponse, SuperfluidUndelegationsByDelegatorRequest, SuperfluidUndelegationsByDelegatorResponse, SuperfluidDelegationsByValidatorDenomRequest, SuperfluidDelegationsByValidatorDenomResponse, EstimateSuperfluidDelegatedAmountByValidatorDenomRequest, EstimateSuperfluidDelegatedAmountByValidatorDenomResponse, QueryTotalDelegationByDelegatorRequest, QueryTotalDelegationByDelegatorResponse, QueryUnpoolWhitelistRequest, QueryUnpoolWhitelistResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /** Params returns the total set of superfluid parameters. */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /**
-   * Returns superfluid asset type, whether if it's a native asset or an lp
-   * share.
-   */
-  assetType(request: AssetTypeRequest): Promise<AssetTypeResponse>;
-  /** Returns all registered superfluid assets. */
-  allAssets(request?: AllAssetsRequest): Promise<AllAssetsResponse>;
-  /** Returns the osmo equivalent multiplier used in the most recent epoch. */
-  assetMultiplier(request: AssetMultiplierRequest): Promise<AssetMultiplierResponse>;
-  /** Returns all superfluid intermediary accounts. */
-  allIntermediaryAccounts(request?: AllIntermediaryAccountsRequest): Promise<AllIntermediaryAccountsResponse>;
-  /** Returns intermediary account connected to a superfluid staked lock by id */
-  connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest): Promise<ConnectedIntermediaryAccountResponse>;
-  /** Returns the amount of delegations of specific denom for all validators */
-  totalDelegationByValidatorForDenom(request: QueryTotalDelegationByValidatorForDenomRequest): Promise<QueryTotalDelegationByValidatorForDenomResponse>;
-  /**
-   * Returns the total amount of osmo superfluidly staked.
-   * Response is denominated in uosmo.
-   */
-  totalSuperfluidDelegations(request?: TotalSuperfluidDelegationsRequest): Promise<TotalSuperfluidDelegationsResponse>;
-  /**
-   * Returns the coins superfluid delegated for the delegator, validator, denom
-   * triplet
-   */
-  superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest): Promise<SuperfluidDelegationAmountResponse>;
-  /** Returns all the delegated superfluid poistions for a specific delegator. */
-  superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest): Promise<SuperfluidDelegationsByDelegatorResponse>;
-  /** Returns all the undelegating superfluid poistions for a specific delegator. */
-  superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest): Promise<SuperfluidUndelegationsByDelegatorResponse>;
-  /**
-   * Returns all the superfluid positions of a specific denom delegated to one
-   * validator
-   */
-  superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest): Promise<SuperfluidDelegationsByValidatorDenomResponse>;
-  /**
-   * Returns the amount of a specific denom delegated to a specific validator
-   * This is labeled an estimate, because the way it calculates the amount can
-   * lead rounding errors from the true delegated amount
-   */
-  estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Promise<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse>;
-  /** Returns the specified delegations for a specific delegator */
-  totalDelegationByDelegator(request: QueryTotalDelegationByDelegatorRequest): Promise<QueryTotalDelegationByDelegatorResponse>;
-  /** Returns a list of whitelisted pool ids to unpool. */
-  unpoolWhitelist(request?: QueryUnpoolWhitelistRequest): Promise<QueryUnpoolWhitelistResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.assetType = this.assetType.bind(this);
-    this.allAssets = this.allAssets.bind(this);
-    this.assetMultiplier = this.assetMultiplier.bind(this);
-    this.allIntermediaryAccounts = this.allIntermediaryAccounts.bind(this);
-    this.connectedIntermediaryAccount = this.connectedIntermediaryAccount.bind(this);
-    this.totalDelegationByValidatorForDenom = this.totalDelegationByValidatorForDenom.bind(this);
-    this.totalSuperfluidDelegations = this.totalSuperfluidDelegations.bind(this);
-    this.superfluidDelegationAmount = this.superfluidDelegationAmount.bind(this);
-    this.superfluidDelegationsByDelegator = this.superfluidDelegationsByDelegator.bind(this);
-    this.superfluidUndelegationsByDelegator = this.superfluidUndelegationsByDelegator.bind(this);
-    this.superfluidDelegationsByValidatorDenom = this.superfluidDelegationsByValidatorDenom.bind(this);
-    this.estimateSuperfluidDelegatedAmountByValidatorDenom = this.estimateSuperfluidDelegatedAmountByValidatorDenom.bind(this);
-    this.totalDelegationByDelegator = this.totalDelegationByDelegator.bind(this);
-    this.unpoolWhitelist = this.unpoolWhitelist.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  assetType(request: AssetTypeRequest): Promise<AssetTypeResponse> {
-    const data = AssetTypeRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "AssetType", data);
-    return promise.then(data => AssetTypeResponse.decode(new BinaryReader(data)));
-  }
-  allAssets(request: AllAssetsRequest = {}): Promise<AllAssetsResponse> {
-    const data = AllAssetsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "AllAssets", data);
-    return promise.then(data => AllAssetsResponse.decode(new BinaryReader(data)));
-  }
-  assetMultiplier(request: AssetMultiplierRequest): Promise<AssetMultiplierResponse> {
-    const data = AssetMultiplierRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "AssetMultiplier", data);
-    return promise.then(data => AssetMultiplierResponse.decode(new BinaryReader(data)));
-  }
-  allIntermediaryAccounts(request: AllIntermediaryAccountsRequest = {
-    pagination: undefined
-  }): Promise<AllIntermediaryAccountsResponse> {
-    const data = AllIntermediaryAccountsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "AllIntermediaryAccounts", data);
-    return promise.then(data => AllIntermediaryAccountsResponse.decode(new BinaryReader(data)));
-  }
-  connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest): Promise<ConnectedIntermediaryAccountResponse> {
-    const data = ConnectedIntermediaryAccountRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "ConnectedIntermediaryAccount", data);
-    return promise.then(data => ConnectedIntermediaryAccountResponse.decode(new BinaryReader(data)));
-  }
-  totalDelegationByValidatorForDenom(request: QueryTotalDelegationByValidatorForDenomRequest): Promise<QueryTotalDelegationByValidatorForDenomResponse> {
-    const data = QueryTotalDelegationByValidatorForDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "TotalDelegationByValidatorForDenom", data);
-    return promise.then(data => QueryTotalDelegationByValidatorForDenomResponse.decode(new BinaryReader(data)));
-  }
-  totalSuperfluidDelegations(request: TotalSuperfluidDelegationsRequest = {}): Promise<TotalSuperfluidDelegationsResponse> {
-    const data = TotalSuperfluidDelegationsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "TotalSuperfluidDelegations", data);
-    return promise.then(data => TotalSuperfluidDelegationsResponse.decode(new BinaryReader(data)));
-  }
-  superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest): Promise<SuperfluidDelegationAmountResponse> {
-    const data = SuperfluidDelegationAmountRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationAmount", data);
-    return promise.then(data => SuperfluidDelegationAmountResponse.decode(new BinaryReader(data)));
-  }
-  superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest): Promise<SuperfluidDelegationsByDelegatorResponse> {
-    const data = SuperfluidDelegationsByDelegatorRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationsByDelegator", data);
-    return promise.then(data => SuperfluidDelegationsByDelegatorResponse.decode(new BinaryReader(data)));
-  }
-  superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest): Promise<SuperfluidUndelegationsByDelegatorResponse> {
-    const data = SuperfluidUndelegationsByDelegatorRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidUndelegationsByDelegator", data);
-    return promise.then(data => SuperfluidUndelegationsByDelegatorResponse.decode(new BinaryReader(data)));
-  }
-  superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest): Promise<SuperfluidDelegationsByValidatorDenomResponse> {
-    const data = SuperfluidDelegationsByValidatorDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationsByValidatorDenom", data);
-    return promise.then(data => SuperfluidDelegationsByValidatorDenomResponse.decode(new BinaryReader(data)));
-  }
-  estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Promise<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse> {
-    const data = EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "EstimateSuperfluidDelegatedAmountByValidatorDenom", data);
-    return promise.then(data => EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.decode(new BinaryReader(data)));
-  }
-  totalDelegationByDelegator(request: QueryTotalDelegationByDelegatorRequest): Promise<QueryTotalDelegationByDelegatorResponse> {
-    const data = QueryTotalDelegationByDelegatorRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "TotalDelegationByDelegator", data);
-    return promise.then(data => QueryTotalDelegationByDelegatorResponse.decode(new BinaryReader(data)));
-  }
-  unpoolWhitelist(request: QueryUnpoolWhitelistRequest = {}): Promise<QueryUnpoolWhitelistResponse> {
-    const data = QueryUnpoolWhitelistRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Query", "UnpoolWhitelist", data);
-    return promise.then(data => QueryUnpoolWhitelistResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    assetType(request: AssetTypeRequest): Promise<AssetTypeResponse> {
-      return queryService.assetType(request);
-    },
-    allAssets(request?: AllAssetsRequest): Promise<AllAssetsResponse> {
-      return queryService.allAssets(request);
-    },
-    assetMultiplier(request: AssetMultiplierRequest): Promise<AssetMultiplierResponse> {
-      return queryService.assetMultiplier(request);
-    },
-    allIntermediaryAccounts(request?: AllIntermediaryAccountsRequest): Promise<AllIntermediaryAccountsResponse> {
-      return queryService.allIntermediaryAccounts(request);
-    },
-    connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest): Promise<ConnectedIntermediaryAccountResponse> {
-      return queryService.connectedIntermediaryAccount(request);
-    },
-    totalDelegationByValidatorForDenom(request: QueryTotalDelegationByValidatorForDenomRequest): Promise<QueryTotalDelegationByValidatorForDenomResponse> {
-      return queryService.totalDelegationByValidatorForDenom(request);
-    },
-    totalSuperfluidDelegations(request?: TotalSuperfluidDelegationsRequest): Promise<TotalSuperfluidDelegationsResponse> {
-      return queryService.totalSuperfluidDelegations(request);
-    },
-    superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest): Promise<SuperfluidDelegationAmountResponse> {
-      return queryService.superfluidDelegationAmount(request);
-    },
-    superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest): Promise<SuperfluidDelegationsByDelegatorResponse> {
-      return queryService.superfluidDelegationsByDelegator(request);
-    },
-    superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest): Promise<SuperfluidUndelegationsByDelegatorResponse> {
-      return queryService.superfluidUndelegationsByDelegator(request);
-    },
-    superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest): Promise<SuperfluidDelegationsByValidatorDenomResponse> {
-      return queryService.superfluidDelegationsByValidatorDenom(request);
-    },
-    estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Promise<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse> {
-      return queryService.estimateSuperfluidDelegatedAmountByValidatorDenom(request);
-    },
-    totalDelegationByDelegator(request: QueryTotalDelegationByDelegatorRequest): Promise<QueryTotalDelegationByDelegatorResponse> {
-      return queryService.totalDelegationByDelegator(request);
-    },
-    unpoolWhitelist(request?: QueryUnpoolWhitelistRequest): Promise<QueryUnpoolWhitelistResponse> {
-      return queryService.unpoolWhitelist(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseAssetTypeQuery<TData> extends ReactQueryParams<AssetTypeResponse, TData> {
-  request: AssetTypeRequest;
-}
-export interface UseAllAssetsQuery<TData> extends ReactQueryParams<AllAssetsResponse, TData> {
-  request?: AllAssetsRequest;
-}
-export interface UseAssetMultiplierQuery<TData> extends ReactQueryParams<AssetMultiplierResponse, TData> {
-  request: AssetMultiplierRequest;
-}
-export interface UseAllIntermediaryAccountsQuery<TData> extends ReactQueryParams<AllIntermediaryAccountsResponse, TData> {
-  request?: AllIntermediaryAccountsRequest;
-}
-export interface UseConnectedIntermediaryAccountQuery<TData> extends ReactQueryParams<ConnectedIntermediaryAccountResponse, TData> {
-  request: ConnectedIntermediaryAccountRequest;
-}
-export interface UseTotalDelegationByValidatorForDenomQuery<TData> extends ReactQueryParams<QueryTotalDelegationByValidatorForDenomResponse, TData> {
-  request: QueryTotalDelegationByValidatorForDenomRequest;
-}
-export interface UseTotalSuperfluidDelegationsQuery<TData> extends ReactQueryParams<TotalSuperfluidDelegationsResponse, TData> {
-  request?: TotalSuperfluidDelegationsRequest;
-}
-export interface UseSuperfluidDelegationAmountQuery<TData> extends ReactQueryParams<SuperfluidDelegationAmountResponse, TData> {
-  request: SuperfluidDelegationAmountRequest;
-}
-export interface UseSuperfluidDelegationsByDelegatorQuery<TData> extends ReactQueryParams<SuperfluidDelegationsByDelegatorResponse, TData> {
-  request: SuperfluidDelegationsByDelegatorRequest;
-}
-export interface UseSuperfluidUndelegationsByDelegatorQuery<TData> extends ReactQueryParams<SuperfluidUndelegationsByDelegatorResponse, TData> {
-  request: SuperfluidUndelegationsByDelegatorRequest;
-}
-export interface UseSuperfluidDelegationsByValidatorDenomQuery<TData> extends ReactQueryParams<SuperfluidDelegationsByValidatorDenomResponse, TData> {
-  request: SuperfluidDelegationsByValidatorDenomRequest;
-}
-export interface UseEstimateSuperfluidDelegatedAmountByValidatorDenomQuery<TData> extends ReactQueryParams<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse, TData> {
-  request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest;
-}
-export interface UseTotalDelegationByDelegatorQuery<TData> extends ReactQueryParams<QueryTotalDelegationByDelegatorResponse, TData> {
-  request: QueryTotalDelegationByDelegatorRequest;
-}
-export interface UseUnpoolWhitelistQuery<TData> extends ReactQueryParams<QueryUnpoolWhitelistResponse, TData> {
-  request?: QueryUnpoolWhitelistRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useAssetType = <TData = AssetTypeResponse,>({
-    request,
-    options
-  }: UseAssetTypeQuery<TData>) => {
-    return useQuery<AssetTypeResponse, Error, TData>(["assetTypeQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.assetType(request);
-    }, options);
-  };
-  const useAllAssets = <TData = AllAssetsResponse,>({
-    request,
-    options
-  }: UseAllAssetsQuery<TData>) => {
-    return useQuery<AllAssetsResponse, Error, TData>(["allAssetsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allAssets(request);
-    }, options);
-  };
-  const useAssetMultiplier = <TData = AssetMultiplierResponse,>({
-    request,
-    options
-  }: UseAssetMultiplierQuery<TData>) => {
-    return useQuery<AssetMultiplierResponse, Error, TData>(["assetMultiplierQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.assetMultiplier(request);
-    }, options);
-  };
-  const useAllIntermediaryAccounts = <TData = AllIntermediaryAccountsResponse,>({
-    request,
-    options
-  }: UseAllIntermediaryAccountsQuery<TData>) => {
-    return useQuery<AllIntermediaryAccountsResponse, Error, TData>(["allIntermediaryAccountsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.allIntermediaryAccounts(request);
-    }, options);
-  };
-  const useConnectedIntermediaryAccount = <TData = ConnectedIntermediaryAccountResponse,>({
-    request,
-    options
-  }: UseConnectedIntermediaryAccountQuery<TData>) => {
-    return useQuery<ConnectedIntermediaryAccountResponse, Error, TData>(["connectedIntermediaryAccountQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.connectedIntermediaryAccount(request);
-    }, options);
-  };
-  const useTotalDelegationByValidatorForDenom = <TData = QueryTotalDelegationByValidatorForDenomResponse,>({
-    request,
-    options
-  }: UseTotalDelegationByValidatorForDenomQuery<TData>) => {
-    return useQuery<QueryTotalDelegationByValidatorForDenomResponse, Error, TData>(["totalDelegationByValidatorForDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalDelegationByValidatorForDenom(request);
-    }, options);
-  };
-  const useTotalSuperfluidDelegations = <TData = TotalSuperfluidDelegationsResponse,>({
-    request,
-    options
-  }: UseTotalSuperfluidDelegationsQuery<TData>) => {
-    return useQuery<TotalSuperfluidDelegationsResponse, Error, TData>(["totalSuperfluidDelegationsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalSuperfluidDelegations(request);
-    }, options);
-  };
-  const useSuperfluidDelegationAmount = <TData = SuperfluidDelegationAmountResponse,>({
-    request,
-    options
-  }: UseSuperfluidDelegationAmountQuery<TData>) => {
-    return useQuery<SuperfluidDelegationAmountResponse, Error, TData>(["superfluidDelegationAmountQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.superfluidDelegationAmount(request);
-    }, options);
-  };
-  const useSuperfluidDelegationsByDelegator = <TData = SuperfluidDelegationsByDelegatorResponse,>({
-    request,
-    options
-  }: UseSuperfluidDelegationsByDelegatorQuery<TData>) => {
-    return useQuery<SuperfluidDelegationsByDelegatorResponse, Error, TData>(["superfluidDelegationsByDelegatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.superfluidDelegationsByDelegator(request);
-    }, options);
-  };
-  const useSuperfluidUndelegationsByDelegator = <TData = SuperfluidUndelegationsByDelegatorResponse,>({
-    request,
-    options
-  }: UseSuperfluidUndelegationsByDelegatorQuery<TData>) => {
-    return useQuery<SuperfluidUndelegationsByDelegatorResponse, Error, TData>(["superfluidUndelegationsByDelegatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.superfluidUndelegationsByDelegator(request);
-    }, options);
-  };
-  const useSuperfluidDelegationsByValidatorDenom = <TData = SuperfluidDelegationsByValidatorDenomResponse,>({
-    request,
-    options
-  }: UseSuperfluidDelegationsByValidatorDenomQuery<TData>) => {
-    return useQuery<SuperfluidDelegationsByValidatorDenomResponse, Error, TData>(["superfluidDelegationsByValidatorDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.superfluidDelegationsByValidatorDenom(request);
-    }, options);
-  };
-  const useEstimateSuperfluidDelegatedAmountByValidatorDenom = <TData = EstimateSuperfluidDelegatedAmountByValidatorDenomResponse,>({
-    request,
-    options
-  }: UseEstimateSuperfluidDelegatedAmountByValidatorDenomQuery<TData>) => {
-    return useQuery<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse, Error, TData>(["estimateSuperfluidDelegatedAmountByValidatorDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.estimateSuperfluidDelegatedAmountByValidatorDenom(request);
-    }, options);
-  };
-  const useTotalDelegationByDelegator = <TData = QueryTotalDelegationByDelegatorResponse,>({
-    request,
-    options
-  }: UseTotalDelegationByDelegatorQuery<TData>) => {
-    return useQuery<QueryTotalDelegationByDelegatorResponse, Error, TData>(["totalDelegationByDelegatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.totalDelegationByDelegator(request);
-    }, options);
-  };
-  const useUnpoolWhitelist = <TData = QueryUnpoolWhitelistResponse,>({
-    request,
-    options
-  }: UseUnpoolWhitelistQuery<TData>) => {
-    return useQuery<QueryUnpoolWhitelistResponse, Error, TData>(["unpoolWhitelistQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.unpoolWhitelist(request);
-    }, options);
-  };
-  return {
-    /** Params returns the total set of superfluid parameters. */useParams,
-    /**
-     * Returns superfluid asset type, whether if it's a native asset or an lp
-     * share.
-     */
-    useAssetType,
-    /** Returns all registered superfluid assets. */useAllAssets,
-    /** Returns the osmo equivalent multiplier used in the most recent epoch. */useAssetMultiplier,
-    /** Returns all superfluid intermediary accounts. */useAllIntermediaryAccounts,
-    /** Returns intermediary account connected to a superfluid staked lock by id */useConnectedIntermediaryAccount,
-    /** Returns the amount of delegations of specific denom for all validators */useTotalDelegationByValidatorForDenom,
-    /**
-     * Returns the total amount of osmo superfluidly staked.
-     * Response is denominated in uosmo.
-     */
-    useTotalSuperfluidDelegations,
-    /**
-     * Returns the coins superfluid delegated for the delegator, validator, denom
-     * triplet
-     */
-    useSuperfluidDelegationAmount,
-    /** Returns all the delegated superfluid poistions for a specific delegator. */useSuperfluidDelegationsByDelegator,
-    /** Returns all the undelegating superfluid poistions for a specific delegator. */useSuperfluidUndelegationsByDelegator,
-    /**
-     * Returns all the superfluid positions of a specific denom delegated to one
-     * validator
-     */
-    useSuperfluidDelegationsByValidatorDenom,
-    /**
-     * Returns the amount of a specific denom delegated to a specific validator
-     * This is labeled an estimate, because the way it calculates the amount can
-     * lead rounding errors from the true delegated amount
-     */
-    useEstimateSuperfluidDelegatedAmountByValidatorDenom,
-    /** Returns the specified delegations for a specific delegator */useTotalDelegationByDelegator,
-    /** Returns a list of whitelisted pool ids to unpool. */useUnpoolWhitelist
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAssetTypeStore {
-    store = new QueryStore<AssetTypeRequest, AssetTypeResponse>(queryService?.assetType);
-    assetType(request: AssetTypeRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllAssetsStore {
-    store = new QueryStore<AllAssetsRequest, AllAssetsResponse>(queryService?.allAssets);
-    allAssets(request: AllAssetsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAssetMultiplierStore {
-    store = new QueryStore<AssetMultiplierRequest, AssetMultiplierResponse>(queryService?.assetMultiplier);
-    assetMultiplier(request: AssetMultiplierRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryAllIntermediaryAccountsStore {
-    store = new QueryStore<AllIntermediaryAccountsRequest, AllIntermediaryAccountsResponse>(queryService?.allIntermediaryAccounts);
-    allIntermediaryAccounts(request: AllIntermediaryAccountsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryConnectedIntermediaryAccountStore {
-    store = new QueryStore<ConnectedIntermediaryAccountRequest, ConnectedIntermediaryAccountResponse>(queryService?.connectedIntermediaryAccount);
-    connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalDelegationByValidatorForDenomStore {
-    store = new QueryStore<QueryTotalDelegationByValidatorForDenomRequest, QueryTotalDelegationByValidatorForDenomResponse>(queryService?.totalDelegationByValidatorForDenom);
-    totalDelegationByValidatorForDenom(request: QueryTotalDelegationByValidatorForDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalSuperfluidDelegationsStore {
-    store = new QueryStore<TotalSuperfluidDelegationsRequest, TotalSuperfluidDelegationsResponse>(queryService?.totalSuperfluidDelegations);
-    totalSuperfluidDelegations(request: TotalSuperfluidDelegationsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySuperfluidDelegationAmountStore {
-    store = new QueryStore<SuperfluidDelegationAmountRequest, SuperfluidDelegationAmountResponse>(queryService?.superfluidDelegationAmount);
-    superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySuperfluidDelegationsByDelegatorStore {
-    store = new QueryStore<SuperfluidDelegationsByDelegatorRequest, SuperfluidDelegationsByDelegatorResponse>(queryService?.superfluidDelegationsByDelegator);
-    superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySuperfluidUndelegationsByDelegatorStore {
-    store = new QueryStore<SuperfluidUndelegationsByDelegatorRequest, SuperfluidUndelegationsByDelegatorResponse>(queryService?.superfluidUndelegationsByDelegator);
-    superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QuerySuperfluidDelegationsByValidatorDenomStore {
-    store = new QueryStore<SuperfluidDelegationsByValidatorDenomRequest, SuperfluidDelegationsByValidatorDenomResponse>(queryService?.superfluidDelegationsByValidatorDenom);
-    superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryEstimateSuperfluidDelegatedAmountByValidatorDenomStore {
-    store = new QueryStore<EstimateSuperfluidDelegatedAmountByValidatorDenomRequest, EstimateSuperfluidDelegatedAmountByValidatorDenomResponse>(queryService?.estimateSuperfluidDelegatedAmountByValidatorDenom);
-    estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryTotalDelegationByDelegatorStore {
-    store = new QueryStore<QueryTotalDelegationByDelegatorRequest, QueryTotalDelegationByDelegatorResponse>(queryService?.totalDelegationByDelegator);
-    totalDelegationByDelegator(request: QueryTotalDelegationByDelegatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryUnpoolWhitelistStore {
-    store = new QueryStore<QueryUnpoolWhitelistRequest, QueryUnpoolWhitelistResponse>(queryService?.unpoolWhitelist);
-    unpoolWhitelist(request: QueryUnpoolWhitelistRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /** Params returns the total set of superfluid parameters. */QueryParamsStore,
-    /**
-     * Returns superfluid asset type, whether if it's a native asset or an lp
-     * share.
-     */
-    QueryAssetTypeStore,
-    /** Returns all registered superfluid assets. */QueryAllAssetsStore,
-    /** Returns the osmo equivalent multiplier used in the most recent epoch. */QueryAssetMultiplierStore,
-    /** Returns all superfluid intermediary accounts. */QueryAllIntermediaryAccountsStore,
-    /** Returns intermediary account connected to a superfluid staked lock by id */QueryConnectedIntermediaryAccountStore,
-    /** Returns the amount of delegations of specific denom for all validators */QueryTotalDelegationByValidatorForDenomStore,
-    /**
-     * Returns the total amount of osmo superfluidly staked.
-     * Response is denominated in uosmo.
-     */
-    QueryTotalSuperfluidDelegationsStore,
-    /**
-     * Returns the coins superfluid delegated for the delegator, validator, denom
-     * triplet
-     */
-    QuerySuperfluidDelegationAmountStore,
-    /** Returns all the delegated superfluid poistions for a specific delegator. */QuerySuperfluidDelegationsByDelegatorStore,
-    /** Returns all the undelegating superfluid poistions for a specific delegator. */QuerySuperfluidUndelegationsByDelegatorStore,
-    /**
-     * Returns all the superfluid positions of a specific denom delegated to one
-     * validator
-     */
-    QuerySuperfluidDelegationsByValidatorDenomStore,
-    /**
-     * Returns the amount of a specific denom delegated to a specific validator
-     * This is labeled an estimate, because the way it calculates the amount can
-     * lead rounding errors from the true delegated amount
-     */
-    QueryEstimateSuperfluidDelegatedAmountByValidatorDenomStore,
-    /** Returns the specified delegations for a specific delegator */QueryTotalDelegationByDelegatorStore,
-    /** Returns a list of whitelisted pool ids to unpool. */QueryUnpoolWhitelistStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/query.ts b/examples/injective/src/codegen/osmosis/superfluid/query.ts
deleted file mode 100644
index 7c189857..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/query.ts
+++ /dev/null
@@ -1,3769 +0,0 @@
-import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../cosmos/base/query/v1beta1/pagination";
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { SuperfluidAssetType, SuperfluidAsset, SuperfluidAssetAmino, SuperfluidAssetSDKType, OsmoEquivalentMultiplierRecord, OsmoEquivalentMultiplierRecordAmino, OsmoEquivalentMultiplierRecordSDKType, SuperfluidDelegationRecord, SuperfluidDelegationRecordAmino, SuperfluidDelegationRecordSDKType, superfluidAssetTypeFromJSON, superfluidAssetTypeToJSON } from "./superfluid";
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { SyntheticLock, SyntheticLockAmino, SyntheticLockSDKType } from "../lockup/lock";
-import { DelegationResponse, DelegationResponseAmino, DelegationResponseSDKType } from "../../cosmos/staking/v1beta1/staking";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { DeepPartial, isSet } from "../../helpers";
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryParamsRequest";
-  value: Uint8Array;
-}
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-export interface QueryParamsRequestSDKType {}
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryParamsResponse";
-  value: Uint8Array;
-}
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-export interface AssetTypeRequest {
-  denom: string;
-}
-export interface AssetTypeRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.AssetTypeRequest";
-  value: Uint8Array;
-}
-export interface AssetTypeRequestAmino {
-  denom: string;
-}
-export interface AssetTypeRequestAminoMsg {
-  type: "osmosis/asset-type-request";
-  value: AssetTypeRequestAmino;
-}
-export interface AssetTypeRequestSDKType {
-  denom: string;
-}
-export interface AssetTypeResponse {
-  assetType: SuperfluidAssetType;
-}
-export interface AssetTypeResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.AssetTypeResponse";
-  value: Uint8Array;
-}
-export interface AssetTypeResponseAmino {
-  asset_type: SuperfluidAssetType;
-}
-export interface AssetTypeResponseAminoMsg {
-  type: "osmosis/asset-type-response";
-  value: AssetTypeResponseAmino;
-}
-export interface AssetTypeResponseSDKType {
-  asset_type: SuperfluidAssetType;
-}
-export interface AllAssetsRequest {}
-export interface AllAssetsRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.AllAssetsRequest";
-  value: Uint8Array;
-}
-export interface AllAssetsRequestAmino {}
-export interface AllAssetsRequestAminoMsg {
-  type: "osmosis/all-assets-request";
-  value: AllAssetsRequestAmino;
-}
-export interface AllAssetsRequestSDKType {}
-export interface AllAssetsResponse {
-  assets: SuperfluidAsset[];
-}
-export interface AllAssetsResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.AllAssetsResponse";
-  value: Uint8Array;
-}
-export interface AllAssetsResponseAmino {
-  assets: SuperfluidAssetAmino[];
-}
-export interface AllAssetsResponseAminoMsg {
-  type: "osmosis/all-assets-response";
-  value: AllAssetsResponseAmino;
-}
-export interface AllAssetsResponseSDKType {
-  assets: SuperfluidAssetSDKType[];
-}
-export interface AssetMultiplierRequest {
-  denom: string;
-}
-export interface AssetMultiplierRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.AssetMultiplierRequest";
-  value: Uint8Array;
-}
-export interface AssetMultiplierRequestAmino {
-  denom: string;
-}
-export interface AssetMultiplierRequestAminoMsg {
-  type: "osmosis/asset-multiplier-request";
-  value: AssetMultiplierRequestAmino;
-}
-export interface AssetMultiplierRequestSDKType {
-  denom: string;
-}
-export interface AssetMultiplierResponse {
-  osmoEquivalentMultiplier: OsmoEquivalentMultiplierRecord | undefined;
-}
-export interface AssetMultiplierResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.AssetMultiplierResponse";
-  value: Uint8Array;
-}
-export interface AssetMultiplierResponseAmino {
-  osmo_equivalent_multiplier?: OsmoEquivalentMultiplierRecordAmino | undefined;
-}
-export interface AssetMultiplierResponseAminoMsg {
-  type: "osmosis/asset-multiplier-response";
-  value: AssetMultiplierResponseAmino;
-}
-export interface AssetMultiplierResponseSDKType {
-  osmo_equivalent_multiplier: OsmoEquivalentMultiplierRecordSDKType | undefined;
-}
-export interface SuperfluidIntermediaryAccountInfo {
-  denom: string;
-  valAddr: string;
-  gaugeId: bigint;
-  address: string;
-}
-export interface SuperfluidIntermediaryAccountInfoProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccountInfo";
-  value: Uint8Array;
-}
-export interface SuperfluidIntermediaryAccountInfoAmino {
-  denom: string;
-  val_addr: string;
-  gauge_id: string;
-  address: string;
-}
-export interface SuperfluidIntermediaryAccountInfoAminoMsg {
-  type: "osmosis/superfluid-intermediary-account-info";
-  value: SuperfluidIntermediaryAccountInfoAmino;
-}
-export interface SuperfluidIntermediaryAccountInfoSDKType {
-  denom: string;
-  val_addr: string;
-  gauge_id: bigint;
-  address: string;
-}
-export interface AllIntermediaryAccountsRequest {
-  pagination: PageRequest | undefined;
-}
-export interface AllIntermediaryAccountsRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsRequest";
-  value: Uint8Array;
-}
-export interface AllIntermediaryAccountsRequestAmino {
-  pagination?: PageRequestAmino | undefined;
-}
-export interface AllIntermediaryAccountsRequestAminoMsg {
-  type: "osmosis/all-intermediary-accounts-request";
-  value: AllIntermediaryAccountsRequestAmino;
-}
-export interface AllIntermediaryAccountsRequestSDKType {
-  pagination: PageRequestSDKType | undefined;
-}
-export interface AllIntermediaryAccountsResponse {
-  accounts: SuperfluidIntermediaryAccountInfo[];
-  pagination: PageResponse | undefined;
-}
-export interface AllIntermediaryAccountsResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsResponse";
-  value: Uint8Array;
-}
-export interface AllIntermediaryAccountsResponseAmino {
-  accounts: SuperfluidIntermediaryAccountInfoAmino[];
-  pagination?: PageResponseAmino | undefined;
-}
-export interface AllIntermediaryAccountsResponseAminoMsg {
-  type: "osmosis/all-intermediary-accounts-response";
-  value: AllIntermediaryAccountsResponseAmino;
-}
-export interface AllIntermediaryAccountsResponseSDKType {
-  accounts: SuperfluidIntermediaryAccountInfoSDKType[];
-  pagination: PageResponseSDKType | undefined;
-}
-export interface ConnectedIntermediaryAccountRequest {
-  lockId: bigint;
-}
-export interface ConnectedIntermediaryAccountRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountRequest";
-  value: Uint8Array;
-}
-export interface ConnectedIntermediaryAccountRequestAmino {
-  lock_id: string;
-}
-export interface ConnectedIntermediaryAccountRequestAminoMsg {
-  type: "osmosis/connected-intermediary-account-request";
-  value: ConnectedIntermediaryAccountRequestAmino;
-}
-export interface ConnectedIntermediaryAccountRequestSDKType {
-  lock_id: bigint;
-}
-export interface ConnectedIntermediaryAccountResponse {
-  account: SuperfluidIntermediaryAccountInfo | undefined;
-}
-export interface ConnectedIntermediaryAccountResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountResponse";
-  value: Uint8Array;
-}
-export interface ConnectedIntermediaryAccountResponseAmino {
-  account?: SuperfluidIntermediaryAccountInfoAmino | undefined;
-}
-export interface ConnectedIntermediaryAccountResponseAminoMsg {
-  type: "osmosis/connected-intermediary-account-response";
-  value: ConnectedIntermediaryAccountResponseAmino;
-}
-export interface ConnectedIntermediaryAccountResponseSDKType {
-  account: SuperfluidIntermediaryAccountInfoSDKType | undefined;
-}
-export interface QueryTotalDelegationByValidatorForDenomRequest {
-  denom: string;
-}
-export interface QueryTotalDelegationByValidatorForDenomRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomRequest";
-  value: Uint8Array;
-}
-export interface QueryTotalDelegationByValidatorForDenomRequestAmino {
-  denom: string;
-}
-export interface QueryTotalDelegationByValidatorForDenomRequestAminoMsg {
-  type: "osmosis/query-total-delegation-by-validator-for-denom-request";
-  value: QueryTotalDelegationByValidatorForDenomRequestAmino;
-}
-export interface QueryTotalDelegationByValidatorForDenomRequestSDKType {
-  denom: string;
-}
-export interface QueryTotalDelegationByValidatorForDenomResponse {
-  assets: Delegations[];
-}
-export interface QueryTotalDelegationByValidatorForDenomResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalDelegationByValidatorForDenomResponseAmino {
-  assets: DelegationsAmino[];
-}
-export interface QueryTotalDelegationByValidatorForDenomResponseAminoMsg {
-  type: "osmosis/query-total-delegation-by-validator-for-denom-response";
-  value: QueryTotalDelegationByValidatorForDenomResponseAmino;
-}
-export interface QueryTotalDelegationByValidatorForDenomResponseSDKType {
-  assets: DelegationsSDKType[];
-}
-export interface Delegations {
-  valAddr: string;
-  amountSfsd: string;
-  osmoEquivalent: string;
-}
-export interface DelegationsProtoMsg {
-  typeUrl: "/osmosis.superfluid.Delegations";
-  value: Uint8Array;
-}
-export interface DelegationsAmino {
-  val_addr: string;
-  amount_sfsd: string;
-  osmo_equivalent: string;
-}
-export interface DelegationsAminoMsg {
-  type: "osmosis/delegations";
-  value: DelegationsAmino;
-}
-export interface DelegationsSDKType {
-  val_addr: string;
-  amount_sfsd: string;
-  osmo_equivalent: string;
-}
-export interface TotalSuperfluidDelegationsRequest {}
-export interface TotalSuperfluidDelegationsRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsRequest";
-  value: Uint8Array;
-}
-export interface TotalSuperfluidDelegationsRequestAmino {}
-export interface TotalSuperfluidDelegationsRequestAminoMsg {
-  type: "osmosis/total-superfluid-delegations-request";
-  value: TotalSuperfluidDelegationsRequestAmino;
-}
-export interface TotalSuperfluidDelegationsRequestSDKType {}
-export interface TotalSuperfluidDelegationsResponse {
-  totalDelegations: string;
-}
-export interface TotalSuperfluidDelegationsResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsResponse";
-  value: Uint8Array;
-}
-export interface TotalSuperfluidDelegationsResponseAmino {
-  total_delegations: string;
-}
-export interface TotalSuperfluidDelegationsResponseAminoMsg {
-  type: "osmosis/total-superfluid-delegations-response";
-  value: TotalSuperfluidDelegationsResponseAmino;
-}
-export interface TotalSuperfluidDelegationsResponseSDKType {
-  total_delegations: string;
-}
-export interface SuperfluidDelegationAmountRequest {
-  delegatorAddress: string;
-  validatorAddress: string;
-  denom: string;
-}
-export interface SuperfluidDelegationAmountRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountRequest";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationAmountRequestAmino {
-  delegator_address: string;
-  validator_address: string;
-  denom: string;
-}
-export interface SuperfluidDelegationAmountRequestAminoMsg {
-  type: "osmosis/superfluid-delegation-amount-request";
-  value: SuperfluidDelegationAmountRequestAmino;
-}
-export interface SuperfluidDelegationAmountRequestSDKType {
-  delegator_address: string;
-  validator_address: string;
-  denom: string;
-}
-export interface SuperfluidDelegationAmountResponse {
-  amount: Coin[];
-}
-export interface SuperfluidDelegationAmountResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountResponse";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationAmountResponseAmino {
-  amount: CoinAmino[];
-}
-export interface SuperfluidDelegationAmountResponseAminoMsg {
-  type: "osmosis/superfluid-delegation-amount-response";
-  value: SuperfluidDelegationAmountResponseAmino;
-}
-export interface SuperfluidDelegationAmountResponseSDKType {
-  amount: CoinSDKType[];
-}
-export interface SuperfluidDelegationsByDelegatorRequest {
-  delegatorAddress: string;
-}
-export interface SuperfluidDelegationsByDelegatorRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorRequest";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationsByDelegatorRequestAmino {
-  delegator_address: string;
-}
-export interface SuperfluidDelegationsByDelegatorRequestAminoMsg {
-  type: "osmosis/superfluid-delegations-by-delegator-request";
-  value: SuperfluidDelegationsByDelegatorRequestAmino;
-}
-export interface SuperfluidDelegationsByDelegatorRequestSDKType {
-  delegator_address: string;
-}
-export interface SuperfluidDelegationsByDelegatorResponse {
-  superfluidDelegationRecords: SuperfluidDelegationRecord[];
-  totalDelegatedCoins: Coin[];
-  totalEquivalentStakedAmount: Coin | undefined;
-}
-export interface SuperfluidDelegationsByDelegatorResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorResponse";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationsByDelegatorResponseAmino {
-  superfluid_delegation_records: SuperfluidDelegationRecordAmino[];
-  total_delegated_coins: CoinAmino[];
-  total_equivalent_staked_amount?: CoinAmino | undefined;
-}
-export interface SuperfluidDelegationsByDelegatorResponseAminoMsg {
-  type: "osmosis/superfluid-delegations-by-delegator-response";
-  value: SuperfluidDelegationsByDelegatorResponseAmino;
-}
-export interface SuperfluidDelegationsByDelegatorResponseSDKType {
-  superfluid_delegation_records: SuperfluidDelegationRecordSDKType[];
-  total_delegated_coins: CoinSDKType[];
-  total_equivalent_staked_amount: CoinSDKType | undefined;
-}
-export interface SuperfluidUndelegationsByDelegatorRequest {
-  delegatorAddress: string;
-  denom: string;
-}
-export interface SuperfluidUndelegationsByDelegatorRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorRequest";
-  value: Uint8Array;
-}
-export interface SuperfluidUndelegationsByDelegatorRequestAmino {
-  delegator_address: string;
-  denom: string;
-}
-export interface SuperfluidUndelegationsByDelegatorRequestAminoMsg {
-  type: "osmosis/superfluid-undelegations-by-delegator-request";
-  value: SuperfluidUndelegationsByDelegatorRequestAmino;
-}
-export interface SuperfluidUndelegationsByDelegatorRequestSDKType {
-  delegator_address: string;
-  denom: string;
-}
-export interface SuperfluidUndelegationsByDelegatorResponse {
-  superfluidDelegationRecords: SuperfluidDelegationRecord[];
-  totalUndelegatedCoins: Coin[];
-  syntheticLocks: SyntheticLock[];
-}
-export interface SuperfluidUndelegationsByDelegatorResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorResponse";
-  value: Uint8Array;
-}
-export interface SuperfluidUndelegationsByDelegatorResponseAmino {
-  superfluid_delegation_records: SuperfluidDelegationRecordAmino[];
-  total_undelegated_coins: CoinAmino[];
-  synthetic_locks: SyntheticLockAmino[];
-}
-export interface SuperfluidUndelegationsByDelegatorResponseAminoMsg {
-  type: "osmosis/superfluid-undelegations-by-delegator-response";
-  value: SuperfluidUndelegationsByDelegatorResponseAmino;
-}
-export interface SuperfluidUndelegationsByDelegatorResponseSDKType {
-  superfluid_delegation_records: SuperfluidDelegationRecordSDKType[];
-  total_undelegated_coins: CoinSDKType[];
-  synthetic_locks: SyntheticLockSDKType[];
-}
-export interface SuperfluidDelegationsByValidatorDenomRequest {
-  validatorAddress: string;
-  denom: string;
-}
-export interface SuperfluidDelegationsByValidatorDenomRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomRequest";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationsByValidatorDenomRequestAmino {
-  validator_address: string;
-  denom: string;
-}
-export interface SuperfluidDelegationsByValidatorDenomRequestAminoMsg {
-  type: "osmosis/superfluid-delegations-by-validator-denom-request";
-  value: SuperfluidDelegationsByValidatorDenomRequestAmino;
-}
-export interface SuperfluidDelegationsByValidatorDenomRequestSDKType {
-  validator_address: string;
-  denom: string;
-}
-export interface SuperfluidDelegationsByValidatorDenomResponse {
-  superfluidDelegationRecords: SuperfluidDelegationRecord[];
-}
-export interface SuperfluidDelegationsByValidatorDenomResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomResponse";
-  value: Uint8Array;
-}
-export interface SuperfluidDelegationsByValidatorDenomResponseAmino {
-  superfluid_delegation_records: SuperfluidDelegationRecordAmino[];
-}
-export interface SuperfluidDelegationsByValidatorDenomResponseAminoMsg {
-  type: "osmosis/superfluid-delegations-by-validator-denom-response";
-  value: SuperfluidDelegationsByValidatorDenomResponseAmino;
-}
-export interface SuperfluidDelegationsByValidatorDenomResponseSDKType {
-  superfluid_delegation_records: SuperfluidDelegationRecordSDKType[];
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-  validatorAddress: string;
-  denom: string;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomRequest";
-  value: Uint8Array;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAmino {
-  validator_address: string;
-  denom: string;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAminoMsg {
-  type: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-request";
-  value: EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAmino;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomRequestSDKType {
-  validator_address: string;
-  denom: string;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-  totalDelegatedCoins: Coin[];
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomResponse";
-  value: Uint8Array;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAmino {
-  total_delegated_coins: CoinAmino[];
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAminoMsg {
-  type: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-response";
-  value: EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAmino;
-}
-export interface EstimateSuperfluidDelegatedAmountByValidatorDenomResponseSDKType {
-  total_delegated_coins: CoinSDKType[];
-}
-export interface QueryTotalDelegationByDelegatorRequest {
-  delegatorAddress: string;
-}
-export interface QueryTotalDelegationByDelegatorRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorRequest";
-  value: Uint8Array;
-}
-export interface QueryTotalDelegationByDelegatorRequestAmino {
-  delegator_address: string;
-}
-export interface QueryTotalDelegationByDelegatorRequestAminoMsg {
-  type: "osmosis/query-total-delegation-by-delegator-request";
-  value: QueryTotalDelegationByDelegatorRequestAmino;
-}
-export interface QueryTotalDelegationByDelegatorRequestSDKType {
-  delegator_address: string;
-}
-export interface QueryTotalDelegationByDelegatorResponse {
-  superfluidDelegationRecords: SuperfluidDelegationRecord[];
-  delegationResponse: DelegationResponse[];
-  totalDelegatedCoins: Coin[];
-  totalEquivalentStakedAmount: Coin | undefined;
-}
-export interface QueryTotalDelegationByDelegatorResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorResponse";
-  value: Uint8Array;
-}
-export interface QueryTotalDelegationByDelegatorResponseAmino {
-  superfluid_delegation_records: SuperfluidDelegationRecordAmino[];
-  delegation_response: DelegationResponseAmino[];
-  total_delegated_coins: CoinAmino[];
-  total_equivalent_staked_amount?: CoinAmino | undefined;
-}
-export interface QueryTotalDelegationByDelegatorResponseAminoMsg {
-  type: "osmosis/query-total-delegation-by-delegator-response";
-  value: QueryTotalDelegationByDelegatorResponseAmino;
-}
-export interface QueryTotalDelegationByDelegatorResponseSDKType {
-  superfluid_delegation_records: SuperfluidDelegationRecordSDKType[];
-  delegation_response: DelegationResponseSDKType[];
-  total_delegated_coins: CoinSDKType[];
-  total_equivalent_staked_amount: CoinSDKType | undefined;
-}
-export interface QueryUnpoolWhitelistRequest {}
-export interface QueryUnpoolWhitelistRequestProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistRequest";
-  value: Uint8Array;
-}
-export interface QueryUnpoolWhitelistRequestAmino {}
-export interface QueryUnpoolWhitelistRequestAminoMsg {
-  type: "osmosis/query-unpool-whitelist-request";
-  value: QueryUnpoolWhitelistRequestAmino;
-}
-export interface QueryUnpoolWhitelistRequestSDKType {}
-export interface QueryUnpoolWhitelistResponse {
-  poolIds: bigint[];
-}
-export interface QueryUnpoolWhitelistResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistResponse";
-  value: Uint8Array;
-}
-export interface QueryUnpoolWhitelistResponseAmino {
-  pool_ids: string[];
-}
-export interface QueryUnpoolWhitelistResponseAminoMsg {
-  type: "osmosis/query-unpool-whitelist-response";
-  value: QueryUnpoolWhitelistResponseAmino;
-}
-export interface QueryUnpoolWhitelistResponseSDKType {
-  pool_ids: bigint[];
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.superfluid.QueryParamsRequest",
-  aminoType: "osmosis/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.superfluid.QueryParamsResponse",
-  aminoType: "osmosis/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAssetTypeRequest(): AssetTypeRequest {
-  return {
-    denom: ""
-  };
-}
-export const AssetTypeRequest = {
-  typeUrl: "/osmosis.superfluid.AssetTypeRequest",
-  aminoType: "osmosis/asset-type-request",
-  encode(message: AssetTypeRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AssetTypeRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAssetTypeRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AssetTypeRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: AssetTypeRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AssetTypeRequest>): AssetTypeRequest {
-    const message = createBaseAssetTypeRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: AssetTypeRequestSDKType): AssetTypeRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: AssetTypeRequest): AssetTypeRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: AssetTypeRequestAmino): AssetTypeRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: AssetTypeRequest): AssetTypeRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: AssetTypeRequestAminoMsg): AssetTypeRequest {
-    return AssetTypeRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AssetTypeRequest): AssetTypeRequestAminoMsg {
-    return {
-      type: "osmosis/asset-type-request",
-      value: AssetTypeRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AssetTypeRequestProtoMsg): AssetTypeRequest {
-    return AssetTypeRequest.decode(message.value);
-  },
-  toProto(message: AssetTypeRequest): Uint8Array {
-    return AssetTypeRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AssetTypeRequest): AssetTypeRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AssetTypeRequest",
-      value: AssetTypeRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAssetTypeResponse(): AssetTypeResponse {
-  return {
-    assetType: 0
-  };
-}
-export const AssetTypeResponse = {
-  typeUrl: "/osmosis.superfluid.AssetTypeResponse",
-  aminoType: "osmosis/asset-type-response",
-  encode(message: AssetTypeResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.assetType !== 0) {
-      writer.uint32(8).int32(message.assetType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AssetTypeResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAssetTypeResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.assetType = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AssetTypeResponse {
-    return {
-      assetType: isSet(object.assetType) ? superfluidAssetTypeFromJSON(object.assetType) : -1
-    };
-  },
-  toJSON(message: AssetTypeResponse): unknown {
-    const obj: any = {};
-    message.assetType !== undefined && (obj.assetType = superfluidAssetTypeToJSON(message.assetType));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AssetTypeResponse>): AssetTypeResponse {
-    const message = createBaseAssetTypeResponse();
-    message.assetType = object.assetType ?? 0;
-    return message;
-  },
-  fromSDK(object: AssetTypeResponseSDKType): AssetTypeResponse {
-    return {
-      assetType: isSet(object.asset_type) ? superfluidAssetTypeFromJSON(object.asset_type) : -1
-    };
-  },
-  toSDK(message: AssetTypeResponse): AssetTypeResponseSDKType {
-    const obj: any = {};
-    message.assetType !== undefined && (obj.asset_type = superfluidAssetTypeToJSON(message.assetType));
-    return obj;
-  },
-  fromAmino(object: AssetTypeResponseAmino): AssetTypeResponse {
-    return {
-      assetType: isSet(object.asset_type) ? superfluidAssetTypeFromJSON(object.asset_type) : -1
-    };
-  },
-  toAmino(message: AssetTypeResponse): AssetTypeResponseAmino {
-    const obj: any = {};
-    obj.asset_type = message.assetType;
-    return obj;
-  },
-  fromAminoMsg(object: AssetTypeResponseAminoMsg): AssetTypeResponse {
-    return AssetTypeResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AssetTypeResponse): AssetTypeResponseAminoMsg {
-    return {
-      type: "osmosis/asset-type-response",
-      value: AssetTypeResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AssetTypeResponseProtoMsg): AssetTypeResponse {
-    return AssetTypeResponse.decode(message.value);
-  },
-  toProto(message: AssetTypeResponse): Uint8Array {
-    return AssetTypeResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AssetTypeResponse): AssetTypeResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AssetTypeResponse",
-      value: AssetTypeResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAllAssetsRequest(): AllAssetsRequest {
-  return {};
-}
-export const AllAssetsRequest = {
-  typeUrl: "/osmosis.superfluid.AllAssetsRequest",
-  aminoType: "osmosis/all-assets-request",
-  encode(_: AllAssetsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AllAssetsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAllAssetsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): AllAssetsRequest {
-    return {};
-  },
-  toJSON(_: AllAssetsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<AllAssetsRequest>): AllAssetsRequest {
-    const message = createBaseAllAssetsRequest();
-    return message;
-  },
-  fromSDK(_: AllAssetsRequestSDKType): AllAssetsRequest {
-    return {};
-  },
-  toSDK(_: AllAssetsRequest): AllAssetsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: AllAssetsRequestAmino): AllAssetsRequest {
-    return {};
-  },
-  toAmino(_: AllAssetsRequest): AllAssetsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: AllAssetsRequestAminoMsg): AllAssetsRequest {
-    return AllAssetsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AllAssetsRequest): AllAssetsRequestAminoMsg {
-    return {
-      type: "osmosis/all-assets-request",
-      value: AllAssetsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AllAssetsRequestProtoMsg): AllAssetsRequest {
-    return AllAssetsRequest.decode(message.value);
-  },
-  toProto(message: AllAssetsRequest): Uint8Array {
-    return AllAssetsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AllAssetsRequest): AllAssetsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AllAssetsRequest",
-      value: AllAssetsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAllAssetsResponse(): AllAssetsResponse {
-  return {
-    assets: []
-  };
-}
-export const AllAssetsResponse = {
-  typeUrl: "/osmosis.superfluid.AllAssetsResponse",
-  aminoType: "osmosis/all-assets-response",
-  encode(message: AllAssetsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.assets) {
-      SuperfluidAsset.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AllAssetsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAllAssetsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.assets.push(SuperfluidAsset.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AllAssetsResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: AllAssetsResponse): unknown {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toJSON(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AllAssetsResponse>): AllAssetsResponse {
-    const message = createBaseAllAssetsResponse();
-    message.assets = object.assets?.map(e => SuperfluidAsset.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: AllAssetsResponseSDKType): AllAssetsResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: AllAssetsResponse): AllAssetsResponseSDKType {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toSDK(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAmino(object: AllAssetsResponseAmino): AllAssetsResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: AllAssetsResponse): AllAssetsResponseAmino {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toAmino(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: AllAssetsResponseAminoMsg): AllAssetsResponse {
-    return AllAssetsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AllAssetsResponse): AllAssetsResponseAminoMsg {
-    return {
-      type: "osmosis/all-assets-response",
-      value: AllAssetsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AllAssetsResponseProtoMsg): AllAssetsResponse {
-    return AllAssetsResponse.decode(message.value);
-  },
-  toProto(message: AllAssetsResponse): Uint8Array {
-    return AllAssetsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AllAssetsResponse): AllAssetsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AllAssetsResponse",
-      value: AllAssetsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseAssetMultiplierRequest(): AssetMultiplierRequest {
-  return {
-    denom: ""
-  };
-}
-export const AssetMultiplierRequest = {
-  typeUrl: "/osmosis.superfluid.AssetMultiplierRequest",
-  aminoType: "osmosis/asset-multiplier-request",
-  encode(message: AssetMultiplierRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AssetMultiplierRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAssetMultiplierRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AssetMultiplierRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: AssetMultiplierRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AssetMultiplierRequest>): AssetMultiplierRequest {
-    const message = createBaseAssetMultiplierRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: AssetMultiplierRequestSDKType): AssetMultiplierRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: AssetMultiplierRequest): AssetMultiplierRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: AssetMultiplierRequestAmino): AssetMultiplierRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: AssetMultiplierRequest): AssetMultiplierRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: AssetMultiplierRequestAminoMsg): AssetMultiplierRequest {
-    return AssetMultiplierRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AssetMultiplierRequest): AssetMultiplierRequestAminoMsg {
-    return {
-      type: "osmosis/asset-multiplier-request",
-      value: AssetMultiplierRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AssetMultiplierRequestProtoMsg): AssetMultiplierRequest {
-    return AssetMultiplierRequest.decode(message.value);
-  },
-  toProto(message: AssetMultiplierRequest): Uint8Array {
-    return AssetMultiplierRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AssetMultiplierRequest): AssetMultiplierRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AssetMultiplierRequest",
-      value: AssetMultiplierRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAssetMultiplierResponse(): AssetMultiplierResponse {
-  return {
-    osmoEquivalentMultiplier: OsmoEquivalentMultiplierRecord.fromPartial({})
-  };
-}
-export const AssetMultiplierResponse = {
-  typeUrl: "/osmosis.superfluid.AssetMultiplierResponse",
-  aminoType: "osmosis/asset-multiplier-response",
-  encode(message: AssetMultiplierResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.osmoEquivalentMultiplier !== undefined) {
-      OsmoEquivalentMultiplierRecord.encode(message.osmoEquivalentMultiplier, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AssetMultiplierResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAssetMultiplierResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.osmoEquivalentMultiplier = OsmoEquivalentMultiplierRecord.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AssetMultiplierResponse {
-    return {
-      osmoEquivalentMultiplier: isSet(object.osmoEquivalentMultiplier) ? OsmoEquivalentMultiplierRecord.fromJSON(object.osmoEquivalentMultiplier) : undefined
-    };
-  },
-  toJSON(message: AssetMultiplierResponse): unknown {
-    const obj: any = {};
-    message.osmoEquivalentMultiplier !== undefined && (obj.osmoEquivalentMultiplier = message.osmoEquivalentMultiplier ? OsmoEquivalentMultiplierRecord.toJSON(message.osmoEquivalentMultiplier) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AssetMultiplierResponse>): AssetMultiplierResponse {
-    const message = createBaseAssetMultiplierResponse();
-    message.osmoEquivalentMultiplier = object.osmoEquivalentMultiplier !== undefined && object.osmoEquivalentMultiplier !== null ? OsmoEquivalentMultiplierRecord.fromPartial(object.osmoEquivalentMultiplier) : undefined;
-    return message;
-  },
-  fromSDK(object: AssetMultiplierResponseSDKType): AssetMultiplierResponse {
-    return {
-      osmoEquivalentMultiplier: object.osmo_equivalent_multiplier ? OsmoEquivalentMultiplierRecord.fromSDK(object.osmo_equivalent_multiplier) : undefined
-    };
-  },
-  toSDK(message: AssetMultiplierResponse): AssetMultiplierResponseSDKType {
-    const obj: any = {};
-    message.osmoEquivalentMultiplier !== undefined && (obj.osmo_equivalent_multiplier = message.osmoEquivalentMultiplier ? OsmoEquivalentMultiplierRecord.toSDK(message.osmoEquivalentMultiplier) : undefined);
-    return obj;
-  },
-  fromAmino(object: AssetMultiplierResponseAmino): AssetMultiplierResponse {
-    return {
-      osmoEquivalentMultiplier: object?.osmo_equivalent_multiplier ? OsmoEquivalentMultiplierRecord.fromAmino(object.osmo_equivalent_multiplier) : undefined
-    };
-  },
-  toAmino(message: AssetMultiplierResponse): AssetMultiplierResponseAmino {
-    const obj: any = {};
-    obj.osmo_equivalent_multiplier = message.osmoEquivalentMultiplier ? OsmoEquivalentMultiplierRecord.toAmino(message.osmoEquivalentMultiplier) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AssetMultiplierResponseAminoMsg): AssetMultiplierResponse {
-    return AssetMultiplierResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AssetMultiplierResponse): AssetMultiplierResponseAminoMsg {
-    return {
-      type: "osmosis/asset-multiplier-response",
-      value: AssetMultiplierResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AssetMultiplierResponseProtoMsg): AssetMultiplierResponse {
-    return AssetMultiplierResponse.decode(message.value);
-  },
-  toProto(message: AssetMultiplierResponse): Uint8Array {
-    return AssetMultiplierResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AssetMultiplierResponse): AssetMultiplierResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AssetMultiplierResponse",
-      value: AssetMultiplierResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidIntermediaryAccountInfo(): SuperfluidIntermediaryAccountInfo {
-  return {
-    denom: "",
-    valAddr: "",
-    gaugeId: BigInt(0),
-    address: ""
-  };
-}
-export const SuperfluidIntermediaryAccountInfo = {
-  typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccountInfo",
-  aminoType: "osmosis/superfluid-intermediary-account-info",
-  encode(message: SuperfluidIntermediaryAccountInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.valAddr !== "") {
-      writer.uint32(18).string(message.valAddr);
-    }
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(24).uint64(message.gaugeId);
-    }
-    if (message.address !== "") {
-      writer.uint32(34).string(message.address);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidIntermediaryAccountInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidIntermediaryAccountInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.valAddr = reader.string();
-          break;
-        case 3:
-          message.gaugeId = reader.uint64();
-          break;
-        case 4:
-          message.address = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidIntermediaryAccountInfo {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      valAddr: isSet(object.valAddr) ? String(object.valAddr) : "",
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0),
-      address: isSet(object.address) ? String(object.address) : ""
-    };
-  },
-  toJSON(message: SuperfluidIntermediaryAccountInfo): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.valAddr !== undefined && (obj.valAddr = message.valAddr);
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    message.address !== undefined && (obj.address = message.address);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidIntermediaryAccountInfo>): SuperfluidIntermediaryAccountInfo {
-    const message = createBaseSuperfluidIntermediaryAccountInfo();
-    message.denom = object.denom ?? "";
-    message.valAddr = object.valAddr ?? "";
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    message.address = object.address ?? "";
-    return message;
-  },
-  fromSDK(object: SuperfluidIntermediaryAccountInfoSDKType): SuperfluidIntermediaryAccountInfo {
-    return {
-      denom: object?.denom,
-      valAddr: object?.val_addr,
-      gaugeId: object?.gauge_id,
-      address: object?.address
-    };
-  },
-  toSDK(message: SuperfluidIntermediaryAccountInfo): SuperfluidIntermediaryAccountInfoSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.val_addr = message.valAddr;
-    obj.gauge_id = message.gaugeId;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAmino(object: SuperfluidIntermediaryAccountInfoAmino): SuperfluidIntermediaryAccountInfo {
-    return {
-      denom: object.denom,
-      valAddr: object.val_addr,
-      gaugeId: BigInt(object.gauge_id),
-      address: object.address
-    };
-  },
-  toAmino(message: SuperfluidIntermediaryAccountInfo): SuperfluidIntermediaryAccountInfoAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.val_addr = message.valAddr;
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    obj.address = message.address;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidIntermediaryAccountInfoAminoMsg): SuperfluidIntermediaryAccountInfo {
-    return SuperfluidIntermediaryAccountInfo.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidIntermediaryAccountInfo): SuperfluidIntermediaryAccountInfoAminoMsg {
-    return {
-      type: "osmosis/superfluid-intermediary-account-info",
-      value: SuperfluidIntermediaryAccountInfo.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidIntermediaryAccountInfoProtoMsg): SuperfluidIntermediaryAccountInfo {
-    return SuperfluidIntermediaryAccountInfo.decode(message.value);
-  },
-  toProto(message: SuperfluidIntermediaryAccountInfo): Uint8Array {
-    return SuperfluidIntermediaryAccountInfo.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidIntermediaryAccountInfo): SuperfluidIntermediaryAccountInfoProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccountInfo",
-      value: SuperfluidIntermediaryAccountInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseAllIntermediaryAccountsRequest(): AllIntermediaryAccountsRequest {
-  return {
-    pagination: PageRequest.fromPartial({})
-  };
-}
-export const AllIntermediaryAccountsRequest = {
-  typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsRequest",
-  aminoType: "osmosis/all-intermediary-accounts-request",
-  encode(message: AllIntermediaryAccountsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pagination !== undefined) {
-      PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AllIntermediaryAccountsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAllIntermediaryAccountsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pagination = PageRequest.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AllIntermediaryAccountsRequest {
-    return {
-      pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: AllIntermediaryAccountsRequest): unknown {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AllIntermediaryAccountsRequest>): AllIntermediaryAccountsRequest {
-    const message = createBaseAllIntermediaryAccountsRequest();
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: AllIntermediaryAccountsRequestSDKType): AllIntermediaryAccountsRequest {
-    return {
-      pagination: object.pagination ? PageRequest.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: AllIntermediaryAccountsRequest): AllIntermediaryAccountsRequestSDKType {
-    const obj: any = {};
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: AllIntermediaryAccountsRequestAmino): AllIntermediaryAccountsRequest {
-    return {
-      pagination: object?.pagination ? PageRequest.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: AllIntermediaryAccountsRequest): AllIntermediaryAccountsRequestAmino {
-    const obj: any = {};
-    obj.pagination = message.pagination ? PageRequest.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AllIntermediaryAccountsRequestAminoMsg): AllIntermediaryAccountsRequest {
-    return AllIntermediaryAccountsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: AllIntermediaryAccountsRequest): AllIntermediaryAccountsRequestAminoMsg {
-    return {
-      type: "osmosis/all-intermediary-accounts-request",
-      value: AllIntermediaryAccountsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AllIntermediaryAccountsRequestProtoMsg): AllIntermediaryAccountsRequest {
-    return AllIntermediaryAccountsRequest.decode(message.value);
-  },
-  toProto(message: AllIntermediaryAccountsRequest): Uint8Array {
-    return AllIntermediaryAccountsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: AllIntermediaryAccountsRequest): AllIntermediaryAccountsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsRequest",
-      value: AllIntermediaryAccountsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseAllIntermediaryAccountsResponse(): AllIntermediaryAccountsResponse {
-  return {
-    accounts: [],
-    pagination: PageResponse.fromPartial({})
-  };
-}
-export const AllIntermediaryAccountsResponse = {
-  typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsResponse",
-  aminoType: "osmosis/all-intermediary-accounts-response",
-  encode(message: AllIntermediaryAccountsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.accounts) {
-      SuperfluidIntermediaryAccountInfo.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.pagination !== undefined) {
-      PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): AllIntermediaryAccountsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseAllIntermediaryAccountsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.accounts.push(SuperfluidIntermediaryAccountInfo.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.pagination = PageResponse.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): AllIntermediaryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => SuperfluidIntermediaryAccountInfo.fromJSON(e)) : [],
-      pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined
-    };
-  },
-  toJSON(message: AllIntermediaryAccountsResponse): unknown {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? SuperfluidIntermediaryAccountInfo.toJSON(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<AllIntermediaryAccountsResponse>): AllIntermediaryAccountsResponse {
-    const message = createBaseAllIntermediaryAccountsResponse();
-    message.accounts = object.accounts?.map(e => SuperfluidIntermediaryAccountInfo.fromPartial(e)) || [];
-    message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined;
-    return message;
-  },
-  fromSDK(object: AllIntermediaryAccountsResponseSDKType): AllIntermediaryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => SuperfluidIntermediaryAccountInfo.fromSDK(e)) : [],
-      pagination: object.pagination ? PageResponse.fromSDK(object.pagination) : undefined
-    };
-  },
-  toSDK(message: AllIntermediaryAccountsResponse): AllIntermediaryAccountsResponseSDKType {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? SuperfluidIntermediaryAccountInfo.toSDK(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toSDK(message.pagination) : undefined);
-    return obj;
-  },
-  fromAmino(object: AllIntermediaryAccountsResponseAmino): AllIntermediaryAccountsResponse {
-    return {
-      accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => SuperfluidIntermediaryAccountInfo.fromAmino(e)) : [],
-      pagination: object?.pagination ? PageResponse.fromAmino(object.pagination) : undefined
-    };
-  },
-  toAmino(message: AllIntermediaryAccountsResponse): AllIntermediaryAccountsResponseAmino {
-    const obj: any = {};
-    if (message.accounts) {
-      obj.accounts = message.accounts.map(e => e ? SuperfluidIntermediaryAccountInfo.toAmino(e) : undefined);
-    } else {
-      obj.accounts = [];
-    }
-    obj.pagination = message.pagination ? PageResponse.toAmino(message.pagination) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: AllIntermediaryAccountsResponseAminoMsg): AllIntermediaryAccountsResponse {
-    return AllIntermediaryAccountsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: AllIntermediaryAccountsResponse): AllIntermediaryAccountsResponseAminoMsg {
-    return {
-      type: "osmosis/all-intermediary-accounts-response",
-      value: AllIntermediaryAccountsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: AllIntermediaryAccountsResponseProtoMsg): AllIntermediaryAccountsResponse {
-    return AllIntermediaryAccountsResponse.decode(message.value);
-  },
-  toProto(message: AllIntermediaryAccountsResponse): Uint8Array {
-    return AllIntermediaryAccountsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: AllIntermediaryAccountsResponse): AllIntermediaryAccountsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.AllIntermediaryAccountsResponse",
-      value: AllIntermediaryAccountsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseConnectedIntermediaryAccountRequest(): ConnectedIntermediaryAccountRequest {
-  return {
-    lockId: BigInt(0)
-  };
-}
-export const ConnectedIntermediaryAccountRequest = {
-  typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountRequest",
-  aminoType: "osmosis/connected-intermediary-account-request",
-  encode(message: ConnectedIntermediaryAccountRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.lockId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectedIntermediaryAccountRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectedIntermediaryAccountRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectedIntermediaryAccountRequest {
-    return {
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ConnectedIntermediaryAccountRequest): unknown {
-    const obj: any = {};
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectedIntermediaryAccountRequest>): ConnectedIntermediaryAccountRequest {
-    const message = createBaseConnectedIntermediaryAccountRequest();
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ConnectedIntermediaryAccountRequestSDKType): ConnectedIntermediaryAccountRequest {
-    return {
-      lockId: object?.lock_id
-    };
-  },
-  toSDK(message: ConnectedIntermediaryAccountRequest): ConnectedIntermediaryAccountRequestSDKType {
-    const obj: any = {};
-    obj.lock_id = message.lockId;
-    return obj;
-  },
-  fromAmino(object: ConnectedIntermediaryAccountRequestAmino): ConnectedIntermediaryAccountRequest {
-    return {
-      lockId: BigInt(object.lock_id)
-    };
-  },
-  toAmino(message: ConnectedIntermediaryAccountRequest): ConnectedIntermediaryAccountRequestAmino {
-    const obj: any = {};
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConnectedIntermediaryAccountRequestAminoMsg): ConnectedIntermediaryAccountRequest {
-    return ConnectedIntermediaryAccountRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectedIntermediaryAccountRequest): ConnectedIntermediaryAccountRequestAminoMsg {
-    return {
-      type: "osmosis/connected-intermediary-account-request",
-      value: ConnectedIntermediaryAccountRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectedIntermediaryAccountRequestProtoMsg): ConnectedIntermediaryAccountRequest {
-    return ConnectedIntermediaryAccountRequest.decode(message.value);
-  },
-  toProto(message: ConnectedIntermediaryAccountRequest): Uint8Array {
-    return ConnectedIntermediaryAccountRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectedIntermediaryAccountRequest): ConnectedIntermediaryAccountRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountRequest",
-      value: ConnectedIntermediaryAccountRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseConnectedIntermediaryAccountResponse(): ConnectedIntermediaryAccountResponse {
-  return {
-    account: SuperfluidIntermediaryAccountInfo.fromPartial({})
-  };
-}
-export const ConnectedIntermediaryAccountResponse = {
-  typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountResponse",
-  aminoType: "osmosis/connected-intermediary-account-response",
-  encode(message: ConnectedIntermediaryAccountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.account !== undefined) {
-      SuperfluidIntermediaryAccountInfo.encode(message.account, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConnectedIntermediaryAccountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConnectedIntermediaryAccountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.account = SuperfluidIntermediaryAccountInfo.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConnectedIntermediaryAccountResponse {
-    return {
-      account: isSet(object.account) ? SuperfluidIntermediaryAccountInfo.fromJSON(object.account) : undefined
-    };
-  },
-  toJSON(message: ConnectedIntermediaryAccountResponse): unknown {
-    const obj: any = {};
-    message.account !== undefined && (obj.account = message.account ? SuperfluidIntermediaryAccountInfo.toJSON(message.account) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConnectedIntermediaryAccountResponse>): ConnectedIntermediaryAccountResponse {
-    const message = createBaseConnectedIntermediaryAccountResponse();
-    message.account = object.account !== undefined && object.account !== null ? SuperfluidIntermediaryAccountInfo.fromPartial(object.account) : undefined;
-    return message;
-  },
-  fromSDK(object: ConnectedIntermediaryAccountResponseSDKType): ConnectedIntermediaryAccountResponse {
-    return {
-      account: object.account ? SuperfluidIntermediaryAccountInfo.fromSDK(object.account) : undefined
-    };
-  },
-  toSDK(message: ConnectedIntermediaryAccountResponse): ConnectedIntermediaryAccountResponseSDKType {
-    const obj: any = {};
-    message.account !== undefined && (obj.account = message.account ? SuperfluidIntermediaryAccountInfo.toSDK(message.account) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConnectedIntermediaryAccountResponseAmino): ConnectedIntermediaryAccountResponse {
-    return {
-      account: object?.account ? SuperfluidIntermediaryAccountInfo.fromAmino(object.account) : undefined
-    };
-  },
-  toAmino(message: ConnectedIntermediaryAccountResponse): ConnectedIntermediaryAccountResponseAmino {
-    const obj: any = {};
-    obj.account = message.account ? SuperfluidIntermediaryAccountInfo.toAmino(message.account) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConnectedIntermediaryAccountResponseAminoMsg): ConnectedIntermediaryAccountResponse {
-    return ConnectedIntermediaryAccountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ConnectedIntermediaryAccountResponse): ConnectedIntermediaryAccountResponseAminoMsg {
-    return {
-      type: "osmosis/connected-intermediary-account-response",
-      value: ConnectedIntermediaryAccountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ConnectedIntermediaryAccountResponseProtoMsg): ConnectedIntermediaryAccountResponse {
-    return ConnectedIntermediaryAccountResponse.decode(message.value);
-  },
-  toProto(message: ConnectedIntermediaryAccountResponse): Uint8Array {
-    return ConnectedIntermediaryAccountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ConnectedIntermediaryAccountResponse): ConnectedIntermediaryAccountResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.ConnectedIntermediaryAccountResponse",
-      value: ConnectedIntermediaryAccountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalDelegationByValidatorForDenomRequest(): QueryTotalDelegationByValidatorForDenomRequest {
-  return {
-    denom: ""
-  };
-}
-export const QueryTotalDelegationByValidatorForDenomRequest = {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomRequest",
-  aminoType: "osmosis/query-total-delegation-by-validator-for-denom-request",
-  encode(message: QueryTotalDelegationByValidatorForDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalDelegationByValidatorForDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalDelegationByValidatorForDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalDelegationByValidatorForDenomRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryTotalDelegationByValidatorForDenomRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalDelegationByValidatorForDenomRequest>): QueryTotalDelegationByValidatorForDenomRequest {
-    const message = createBaseQueryTotalDelegationByValidatorForDenomRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryTotalDelegationByValidatorForDenomRequestSDKType): QueryTotalDelegationByValidatorForDenomRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryTotalDelegationByValidatorForDenomRequest): QueryTotalDelegationByValidatorForDenomRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryTotalDelegationByValidatorForDenomRequestAmino): QueryTotalDelegationByValidatorForDenomRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryTotalDelegationByValidatorForDenomRequest): QueryTotalDelegationByValidatorForDenomRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalDelegationByValidatorForDenomRequestAminoMsg): QueryTotalDelegationByValidatorForDenomRequest {
-    return QueryTotalDelegationByValidatorForDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalDelegationByValidatorForDenomRequest): QueryTotalDelegationByValidatorForDenomRequestAminoMsg {
-    return {
-      type: "osmosis/query-total-delegation-by-validator-for-denom-request",
-      value: QueryTotalDelegationByValidatorForDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalDelegationByValidatorForDenomRequestProtoMsg): QueryTotalDelegationByValidatorForDenomRequest {
-    return QueryTotalDelegationByValidatorForDenomRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalDelegationByValidatorForDenomRequest): Uint8Array {
-    return QueryTotalDelegationByValidatorForDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalDelegationByValidatorForDenomRequest): QueryTotalDelegationByValidatorForDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomRequest",
-      value: QueryTotalDelegationByValidatorForDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalDelegationByValidatorForDenomResponse(): QueryTotalDelegationByValidatorForDenomResponse {
-  return {
-    assets: []
-  };
-}
-export const QueryTotalDelegationByValidatorForDenomResponse = {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomResponse",
-  aminoType: "osmosis/query-total-delegation-by-validator-for-denom-response",
-  encode(message: QueryTotalDelegationByValidatorForDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.assets) {
-      Delegations.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalDelegationByValidatorForDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalDelegationByValidatorForDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.assets.push(Delegations.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalDelegationByValidatorForDenomResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => Delegations.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryTotalDelegationByValidatorForDenomResponse): unknown {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? Delegations.toJSON(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalDelegationByValidatorForDenomResponse>): QueryTotalDelegationByValidatorForDenomResponse {
-    const message = createBaseQueryTotalDelegationByValidatorForDenomResponse();
-    message.assets = object.assets?.map(e => Delegations.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryTotalDelegationByValidatorForDenomResponseSDKType): QueryTotalDelegationByValidatorForDenomResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => Delegations.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryTotalDelegationByValidatorForDenomResponse): QueryTotalDelegationByValidatorForDenomResponseSDKType {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? Delegations.toSDK(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryTotalDelegationByValidatorForDenomResponseAmino): QueryTotalDelegationByValidatorForDenomResponse {
-    return {
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => Delegations.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryTotalDelegationByValidatorForDenomResponse): QueryTotalDelegationByValidatorForDenomResponseAmino {
-    const obj: any = {};
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? Delegations.toAmino(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalDelegationByValidatorForDenomResponseAminoMsg): QueryTotalDelegationByValidatorForDenomResponse {
-    return QueryTotalDelegationByValidatorForDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalDelegationByValidatorForDenomResponse): QueryTotalDelegationByValidatorForDenomResponseAminoMsg {
-    return {
-      type: "osmosis/query-total-delegation-by-validator-for-denom-response",
-      value: QueryTotalDelegationByValidatorForDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalDelegationByValidatorForDenomResponseProtoMsg): QueryTotalDelegationByValidatorForDenomResponse {
-    return QueryTotalDelegationByValidatorForDenomResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalDelegationByValidatorForDenomResponse): Uint8Array {
-    return QueryTotalDelegationByValidatorForDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalDelegationByValidatorForDenomResponse): QueryTotalDelegationByValidatorForDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryTotalDelegationByValidatorForDenomResponse",
-      value: QueryTotalDelegationByValidatorForDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseDelegations(): Delegations {
-  return {
-    valAddr: "",
-    amountSfsd: "",
-    osmoEquivalent: ""
-  };
-}
-export const Delegations = {
-  typeUrl: "/osmosis.superfluid.Delegations",
-  aminoType: "osmosis/delegations",
-  encode(message: Delegations, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.valAddr !== "") {
-      writer.uint32(10).string(message.valAddr);
-    }
-    if (message.amountSfsd !== "") {
-      writer.uint32(18).string(message.amountSfsd);
-    }
-    if (message.osmoEquivalent !== "") {
-      writer.uint32(26).string(message.osmoEquivalent);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Delegations {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDelegations();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.valAddr = reader.string();
-          break;
-        case 2:
-          message.amountSfsd = reader.string();
-          break;
-        case 3:
-          message.osmoEquivalent = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Delegations {
-    return {
-      valAddr: isSet(object.valAddr) ? String(object.valAddr) : "",
-      amountSfsd: isSet(object.amountSfsd) ? String(object.amountSfsd) : "",
-      osmoEquivalent: isSet(object.osmoEquivalent) ? String(object.osmoEquivalent) : ""
-    };
-  },
-  toJSON(message: Delegations): unknown {
-    const obj: any = {};
-    message.valAddr !== undefined && (obj.valAddr = message.valAddr);
-    message.amountSfsd !== undefined && (obj.amountSfsd = message.amountSfsd);
-    message.osmoEquivalent !== undefined && (obj.osmoEquivalent = message.osmoEquivalent);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Delegations>): Delegations {
-    const message = createBaseDelegations();
-    message.valAddr = object.valAddr ?? "";
-    message.amountSfsd = object.amountSfsd ?? "";
-    message.osmoEquivalent = object.osmoEquivalent ?? "";
-    return message;
-  },
-  fromSDK(object: DelegationsSDKType): Delegations {
-    return {
-      valAddr: object?.val_addr,
-      amountSfsd: object?.amount_sfsd,
-      osmoEquivalent: object?.osmo_equivalent
-    };
-  },
-  toSDK(message: Delegations): DelegationsSDKType {
-    const obj: any = {};
-    obj.val_addr = message.valAddr;
-    obj.amount_sfsd = message.amountSfsd;
-    obj.osmo_equivalent = message.osmoEquivalent;
-    return obj;
-  },
-  fromAmino(object: DelegationsAmino): Delegations {
-    return {
-      valAddr: object.val_addr,
-      amountSfsd: object.amount_sfsd,
-      osmoEquivalent: object.osmo_equivalent
-    };
-  },
-  toAmino(message: Delegations): DelegationsAmino {
-    const obj: any = {};
-    obj.val_addr = message.valAddr;
-    obj.amount_sfsd = message.amountSfsd;
-    obj.osmo_equivalent = message.osmoEquivalent;
-    return obj;
-  },
-  fromAminoMsg(object: DelegationsAminoMsg): Delegations {
-    return Delegations.fromAmino(object.value);
-  },
-  toAminoMsg(message: Delegations): DelegationsAminoMsg {
-    return {
-      type: "osmosis/delegations",
-      value: Delegations.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DelegationsProtoMsg): Delegations {
-    return Delegations.decode(message.value);
-  },
-  toProto(message: Delegations): Uint8Array {
-    return Delegations.encode(message).finish();
-  },
-  toProtoMsg(message: Delegations): DelegationsProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.Delegations",
-      value: Delegations.encode(message).finish()
-    };
-  }
-};
-function createBaseTotalSuperfluidDelegationsRequest(): TotalSuperfluidDelegationsRequest {
-  return {};
-}
-export const TotalSuperfluidDelegationsRequest = {
-  typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsRequest",
-  aminoType: "osmosis/total-superfluid-delegations-request",
-  encode(_: TotalSuperfluidDelegationsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TotalSuperfluidDelegationsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTotalSuperfluidDelegationsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): TotalSuperfluidDelegationsRequest {
-    return {};
-  },
-  toJSON(_: TotalSuperfluidDelegationsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<TotalSuperfluidDelegationsRequest>): TotalSuperfluidDelegationsRequest {
-    const message = createBaseTotalSuperfluidDelegationsRequest();
-    return message;
-  },
-  fromSDK(_: TotalSuperfluidDelegationsRequestSDKType): TotalSuperfluidDelegationsRequest {
-    return {};
-  },
-  toSDK(_: TotalSuperfluidDelegationsRequest): TotalSuperfluidDelegationsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: TotalSuperfluidDelegationsRequestAmino): TotalSuperfluidDelegationsRequest {
-    return {};
-  },
-  toAmino(_: TotalSuperfluidDelegationsRequest): TotalSuperfluidDelegationsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: TotalSuperfluidDelegationsRequestAminoMsg): TotalSuperfluidDelegationsRequest {
-    return TotalSuperfluidDelegationsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: TotalSuperfluidDelegationsRequest): TotalSuperfluidDelegationsRequestAminoMsg {
-    return {
-      type: "osmosis/total-superfluid-delegations-request",
-      value: TotalSuperfluidDelegationsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TotalSuperfluidDelegationsRequestProtoMsg): TotalSuperfluidDelegationsRequest {
-    return TotalSuperfluidDelegationsRequest.decode(message.value);
-  },
-  toProto(message: TotalSuperfluidDelegationsRequest): Uint8Array {
-    return TotalSuperfluidDelegationsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: TotalSuperfluidDelegationsRequest): TotalSuperfluidDelegationsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsRequest",
-      value: TotalSuperfluidDelegationsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseTotalSuperfluidDelegationsResponse(): TotalSuperfluidDelegationsResponse {
-  return {
-    totalDelegations: ""
-  };
-}
-export const TotalSuperfluidDelegationsResponse = {
-  typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsResponse",
-  aminoType: "osmosis/total-superfluid-delegations-response",
-  encode(message: TotalSuperfluidDelegationsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.totalDelegations !== "") {
-      writer.uint32(10).string(message.totalDelegations);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TotalSuperfluidDelegationsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTotalSuperfluidDelegationsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.totalDelegations = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TotalSuperfluidDelegationsResponse {
-    return {
-      totalDelegations: isSet(object.totalDelegations) ? String(object.totalDelegations) : ""
-    };
-  },
-  toJSON(message: TotalSuperfluidDelegationsResponse): unknown {
-    const obj: any = {};
-    message.totalDelegations !== undefined && (obj.totalDelegations = message.totalDelegations);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TotalSuperfluidDelegationsResponse>): TotalSuperfluidDelegationsResponse {
-    const message = createBaseTotalSuperfluidDelegationsResponse();
-    message.totalDelegations = object.totalDelegations ?? "";
-    return message;
-  },
-  fromSDK(object: TotalSuperfluidDelegationsResponseSDKType): TotalSuperfluidDelegationsResponse {
-    return {
-      totalDelegations: object?.total_delegations
-    };
-  },
-  toSDK(message: TotalSuperfluidDelegationsResponse): TotalSuperfluidDelegationsResponseSDKType {
-    const obj: any = {};
-    obj.total_delegations = message.totalDelegations;
-    return obj;
-  },
-  fromAmino(object: TotalSuperfluidDelegationsResponseAmino): TotalSuperfluidDelegationsResponse {
-    return {
-      totalDelegations: object.total_delegations
-    };
-  },
-  toAmino(message: TotalSuperfluidDelegationsResponse): TotalSuperfluidDelegationsResponseAmino {
-    const obj: any = {};
-    obj.total_delegations = message.totalDelegations;
-    return obj;
-  },
-  fromAminoMsg(object: TotalSuperfluidDelegationsResponseAminoMsg): TotalSuperfluidDelegationsResponse {
-    return TotalSuperfluidDelegationsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: TotalSuperfluidDelegationsResponse): TotalSuperfluidDelegationsResponseAminoMsg {
-    return {
-      type: "osmosis/total-superfluid-delegations-response",
-      value: TotalSuperfluidDelegationsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TotalSuperfluidDelegationsResponseProtoMsg): TotalSuperfluidDelegationsResponse {
-    return TotalSuperfluidDelegationsResponse.decode(message.value);
-  },
-  toProto(message: TotalSuperfluidDelegationsResponse): Uint8Array {
-    return TotalSuperfluidDelegationsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: TotalSuperfluidDelegationsResponse): TotalSuperfluidDelegationsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.TotalSuperfluidDelegationsResponse",
-      value: TotalSuperfluidDelegationsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationAmountRequest(): SuperfluidDelegationAmountRequest {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    denom: ""
-  };
-}
-export const SuperfluidDelegationAmountRequest = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountRequest",
-  aminoType: "osmosis/superfluid-delegation-amount-request",
-  encode(message: SuperfluidDelegationAmountRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.denom !== "") {
-      writer.uint32(26).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationAmountRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationAmountRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationAmountRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: SuperfluidDelegationAmountRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationAmountRequest>): SuperfluidDelegationAmountRequest {
-    const message = createBaseSuperfluidDelegationAmountRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationAmountRequestSDKType): SuperfluidDelegationAmountRequest {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: SuperfluidDelegationAmountRequest): SuperfluidDelegationAmountRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationAmountRequestAmino): SuperfluidDelegationAmountRequest {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      denom: object.denom
-    };
-  },
-  toAmino(message: SuperfluidDelegationAmountRequest): SuperfluidDelegationAmountRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationAmountRequestAminoMsg): SuperfluidDelegationAmountRequest {
-    return SuperfluidDelegationAmountRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationAmountRequest): SuperfluidDelegationAmountRequestAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegation-amount-request",
-      value: SuperfluidDelegationAmountRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationAmountRequestProtoMsg): SuperfluidDelegationAmountRequest {
-    return SuperfluidDelegationAmountRequest.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationAmountRequest): Uint8Array {
-    return SuperfluidDelegationAmountRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationAmountRequest): SuperfluidDelegationAmountRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountRequest",
-      value: SuperfluidDelegationAmountRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationAmountResponse(): SuperfluidDelegationAmountResponse {
-  return {
-    amount: []
-  };
-}
-export const SuperfluidDelegationAmountResponse = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountResponse",
-  aminoType: "osmosis/superfluid-delegation-amount-response",
-  encode(message: SuperfluidDelegationAmountResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.amount) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationAmountResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationAmountResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.amount.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationAmountResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SuperfluidDelegationAmountResponse): unknown {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationAmountResponse>): SuperfluidDelegationAmountResponse {
-    const message = createBaseSuperfluidDelegationAmountResponse();
-    message.amount = object.amount?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationAmountResponseSDKType): SuperfluidDelegationAmountResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SuperfluidDelegationAmountResponse): SuperfluidDelegationAmountResponseSDKType {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationAmountResponseAmino): SuperfluidDelegationAmountResponse {
-    return {
-      amount: Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SuperfluidDelegationAmountResponse): SuperfluidDelegationAmountResponseAmino {
-    const obj: any = {};
-    if (message.amount) {
-      obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.amount = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationAmountResponseAminoMsg): SuperfluidDelegationAmountResponse {
-    return SuperfluidDelegationAmountResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationAmountResponse): SuperfluidDelegationAmountResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegation-amount-response",
-      value: SuperfluidDelegationAmountResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationAmountResponseProtoMsg): SuperfluidDelegationAmountResponse {
-    return SuperfluidDelegationAmountResponse.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationAmountResponse): Uint8Array {
-    return SuperfluidDelegationAmountResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationAmountResponse): SuperfluidDelegationAmountResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationAmountResponse",
-      value: SuperfluidDelegationAmountResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationsByDelegatorRequest(): SuperfluidDelegationsByDelegatorRequest {
-  return {
-    delegatorAddress: ""
-  };
-}
-export const SuperfluidDelegationsByDelegatorRequest = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorRequest",
-  aminoType: "osmosis/superfluid-delegations-by-delegator-request",
-  encode(message: SuperfluidDelegationsByDelegatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationsByDelegatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationsByDelegatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : ""
-    };
-  },
-  toJSON(message: SuperfluidDelegationsByDelegatorRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationsByDelegatorRequest>): SuperfluidDelegationsByDelegatorRequest {
-    const message = createBaseSuperfluidDelegationsByDelegatorRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationsByDelegatorRequestSDKType): SuperfluidDelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: object?.delegator_address
-    };
-  },
-  toSDK(message: SuperfluidDelegationsByDelegatorRequest): SuperfluidDelegationsByDelegatorRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationsByDelegatorRequestAmino): SuperfluidDelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: object.delegator_address
-    };
-  },
-  toAmino(message: SuperfluidDelegationsByDelegatorRequest): SuperfluidDelegationsByDelegatorRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationsByDelegatorRequestAminoMsg): SuperfluidDelegationsByDelegatorRequest {
-    return SuperfluidDelegationsByDelegatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationsByDelegatorRequest): SuperfluidDelegationsByDelegatorRequestAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegations-by-delegator-request",
-      value: SuperfluidDelegationsByDelegatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationsByDelegatorRequestProtoMsg): SuperfluidDelegationsByDelegatorRequest {
-    return SuperfluidDelegationsByDelegatorRequest.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationsByDelegatorRequest): Uint8Array {
-    return SuperfluidDelegationsByDelegatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationsByDelegatorRequest): SuperfluidDelegationsByDelegatorRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorRequest",
-      value: SuperfluidDelegationsByDelegatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationsByDelegatorResponse(): SuperfluidDelegationsByDelegatorResponse {
-  return {
-    superfluidDelegationRecords: [],
-    totalDelegatedCoins: [],
-    totalEquivalentStakedAmount: Coin.fromPartial({})
-  };
-}
-export const SuperfluidDelegationsByDelegatorResponse = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorResponse",
-  aminoType: "osmosis/superfluid-delegations-by-delegator-response",
-  encode(message: SuperfluidDelegationsByDelegatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.superfluidDelegationRecords) {
-      SuperfluidDelegationRecord.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.totalDelegatedCoins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.totalEquivalentStakedAmount !== undefined) {
-      Coin.encode(message.totalEquivalentStakedAmount, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationsByDelegatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationsByDelegatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.superfluidDelegationRecords.push(SuperfluidDelegationRecord.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.totalDelegatedCoins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.totalEquivalentStakedAmount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluidDelegationRecords) ? object.superfluidDelegationRecords.map((e: any) => SuperfluidDelegationRecord.fromJSON(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.totalDelegatedCoins) ? object.totalDelegatedCoins.map((e: any) => Coin.fromJSON(e)) : [],
-      totalEquivalentStakedAmount: isSet(object.totalEquivalentStakedAmount) ? Coin.fromJSON(object.totalEquivalentStakedAmount) : undefined
-    };
-  },
-  toJSON(message: SuperfluidDelegationsByDelegatorResponse): unknown {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluidDelegationRecords = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toJSON(e) : undefined);
-    } else {
-      obj.superfluidDelegationRecords = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.totalDelegatedCoins = message.totalDelegatedCoins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalDelegatedCoins = [];
-    }
-    message.totalEquivalentStakedAmount !== undefined && (obj.totalEquivalentStakedAmount = message.totalEquivalentStakedAmount ? Coin.toJSON(message.totalEquivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationsByDelegatorResponse>): SuperfluidDelegationsByDelegatorResponse {
-    const message = createBaseSuperfluidDelegationsByDelegatorResponse();
-    message.superfluidDelegationRecords = object.superfluidDelegationRecords?.map(e => SuperfluidDelegationRecord.fromPartial(e)) || [];
-    message.totalDelegatedCoins = object.totalDelegatedCoins?.map(e => Coin.fromPartial(e)) || [];
-    message.totalEquivalentStakedAmount = object.totalEquivalentStakedAmount !== undefined && object.totalEquivalentStakedAmount !== null ? Coin.fromPartial(object.totalEquivalentStakedAmount) : undefined;
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationsByDelegatorResponseSDKType): SuperfluidDelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromSDK(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromSDK(e)) : [],
-      totalEquivalentStakedAmount: object.total_equivalent_staked_amount ? Coin.fromSDK(object.total_equivalent_staked_amount) : undefined
-    };
-  },
-  toSDK(message: SuperfluidDelegationsByDelegatorResponse): SuperfluidDelegationsByDelegatorResponseSDKType {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toSDK(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    message.totalEquivalentStakedAmount !== undefined && (obj.total_equivalent_staked_amount = message.totalEquivalentStakedAmount ? Coin.toSDK(message.totalEquivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationsByDelegatorResponseAmino): SuperfluidDelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromAmino(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromAmino(e)) : [],
-      totalEquivalentStakedAmount: object?.total_equivalent_staked_amount ? Coin.fromAmino(object.total_equivalent_staked_amount) : undefined
-    };
-  },
-  toAmino(message: SuperfluidDelegationsByDelegatorResponse): SuperfluidDelegationsByDelegatorResponseAmino {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toAmino(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    obj.total_equivalent_staked_amount = message.totalEquivalentStakedAmount ? Coin.toAmino(message.totalEquivalentStakedAmount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationsByDelegatorResponseAminoMsg): SuperfluidDelegationsByDelegatorResponse {
-    return SuperfluidDelegationsByDelegatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationsByDelegatorResponse): SuperfluidDelegationsByDelegatorResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegations-by-delegator-response",
-      value: SuperfluidDelegationsByDelegatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationsByDelegatorResponseProtoMsg): SuperfluidDelegationsByDelegatorResponse {
-    return SuperfluidDelegationsByDelegatorResponse.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationsByDelegatorResponse): Uint8Array {
-    return SuperfluidDelegationsByDelegatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationsByDelegatorResponse): SuperfluidDelegationsByDelegatorResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByDelegatorResponse",
-      value: SuperfluidDelegationsByDelegatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidUndelegationsByDelegatorRequest(): SuperfluidUndelegationsByDelegatorRequest {
-  return {
-    delegatorAddress: "",
-    denom: ""
-  };
-}
-export const SuperfluidUndelegationsByDelegatorRequest = {
-  typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorRequest",
-  aminoType: "osmosis/superfluid-undelegations-by-delegator-request",
-  encode(message: SuperfluidUndelegationsByDelegatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidUndelegationsByDelegatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidUndelegationsByDelegatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidUndelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: SuperfluidUndelegationsByDelegatorRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidUndelegationsByDelegatorRequest>): SuperfluidUndelegationsByDelegatorRequest {
-    const message = createBaseSuperfluidUndelegationsByDelegatorRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: SuperfluidUndelegationsByDelegatorRequestSDKType): SuperfluidUndelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: object?.delegator_address,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: SuperfluidUndelegationsByDelegatorRequest): SuperfluidUndelegationsByDelegatorRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: SuperfluidUndelegationsByDelegatorRequestAmino): SuperfluidUndelegationsByDelegatorRequest {
-    return {
-      delegatorAddress: object.delegator_address,
-      denom: object.denom
-    };
-  },
-  toAmino(message: SuperfluidUndelegationsByDelegatorRequest): SuperfluidUndelegationsByDelegatorRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidUndelegationsByDelegatorRequestAminoMsg): SuperfluidUndelegationsByDelegatorRequest {
-    return SuperfluidUndelegationsByDelegatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidUndelegationsByDelegatorRequest): SuperfluidUndelegationsByDelegatorRequestAminoMsg {
-    return {
-      type: "osmosis/superfluid-undelegations-by-delegator-request",
-      value: SuperfluidUndelegationsByDelegatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidUndelegationsByDelegatorRequestProtoMsg): SuperfluidUndelegationsByDelegatorRequest {
-    return SuperfluidUndelegationsByDelegatorRequest.decode(message.value);
-  },
-  toProto(message: SuperfluidUndelegationsByDelegatorRequest): Uint8Array {
-    return SuperfluidUndelegationsByDelegatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidUndelegationsByDelegatorRequest): SuperfluidUndelegationsByDelegatorRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorRequest",
-      value: SuperfluidUndelegationsByDelegatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidUndelegationsByDelegatorResponse(): SuperfluidUndelegationsByDelegatorResponse {
-  return {
-    superfluidDelegationRecords: [],
-    totalUndelegatedCoins: [],
-    syntheticLocks: []
-  };
-}
-export const SuperfluidUndelegationsByDelegatorResponse = {
-  typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorResponse",
-  aminoType: "osmosis/superfluid-undelegations-by-delegator-response",
-  encode(message: SuperfluidUndelegationsByDelegatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.superfluidDelegationRecords) {
-      SuperfluidDelegationRecord.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.totalUndelegatedCoins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.syntheticLocks) {
-      SyntheticLock.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidUndelegationsByDelegatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidUndelegationsByDelegatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.superfluidDelegationRecords.push(SuperfluidDelegationRecord.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.totalUndelegatedCoins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.syntheticLocks.push(SyntheticLock.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidUndelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluidDelegationRecords) ? object.superfluidDelegationRecords.map((e: any) => SuperfluidDelegationRecord.fromJSON(e)) : [],
-      totalUndelegatedCoins: Array.isArray(object?.totalUndelegatedCoins) ? object.totalUndelegatedCoins.map((e: any) => Coin.fromJSON(e)) : [],
-      syntheticLocks: Array.isArray(object?.syntheticLocks) ? object.syntheticLocks.map((e: any) => SyntheticLock.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SuperfluidUndelegationsByDelegatorResponse): unknown {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluidDelegationRecords = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toJSON(e) : undefined);
-    } else {
-      obj.superfluidDelegationRecords = [];
-    }
-    if (message.totalUndelegatedCoins) {
-      obj.totalUndelegatedCoins = message.totalUndelegatedCoins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalUndelegatedCoins = [];
-    }
-    if (message.syntheticLocks) {
-      obj.syntheticLocks = message.syntheticLocks.map(e => e ? SyntheticLock.toJSON(e) : undefined);
-    } else {
-      obj.syntheticLocks = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidUndelegationsByDelegatorResponse>): SuperfluidUndelegationsByDelegatorResponse {
-    const message = createBaseSuperfluidUndelegationsByDelegatorResponse();
-    message.superfluidDelegationRecords = object.superfluidDelegationRecords?.map(e => SuperfluidDelegationRecord.fromPartial(e)) || [];
-    message.totalUndelegatedCoins = object.totalUndelegatedCoins?.map(e => Coin.fromPartial(e)) || [];
-    message.syntheticLocks = object.syntheticLocks?.map(e => SyntheticLock.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SuperfluidUndelegationsByDelegatorResponseSDKType): SuperfluidUndelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromSDK(e)) : [],
-      totalUndelegatedCoins: Array.isArray(object?.total_undelegated_coins) ? object.total_undelegated_coins.map((e: any) => Coin.fromSDK(e)) : [],
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SuperfluidUndelegationsByDelegatorResponse): SuperfluidUndelegationsByDelegatorResponseSDKType {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toSDK(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.totalUndelegatedCoins) {
-      obj.total_undelegated_coins = message.totalUndelegatedCoins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_undelegated_coins = [];
-    }
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toSDK(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SuperfluidUndelegationsByDelegatorResponseAmino): SuperfluidUndelegationsByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromAmino(e)) : [],
-      totalUndelegatedCoins: Array.isArray(object?.total_undelegated_coins) ? object.total_undelegated_coins.map((e: any) => Coin.fromAmino(e)) : [],
-      syntheticLocks: Array.isArray(object?.synthetic_locks) ? object.synthetic_locks.map((e: any) => SyntheticLock.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SuperfluidUndelegationsByDelegatorResponse): SuperfluidUndelegationsByDelegatorResponseAmino {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toAmino(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.totalUndelegatedCoins) {
-      obj.total_undelegated_coins = message.totalUndelegatedCoins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_undelegated_coins = [];
-    }
-    if (message.syntheticLocks) {
-      obj.synthetic_locks = message.syntheticLocks.map(e => e ? SyntheticLock.toAmino(e) : undefined);
-    } else {
-      obj.synthetic_locks = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidUndelegationsByDelegatorResponseAminoMsg): SuperfluidUndelegationsByDelegatorResponse {
-    return SuperfluidUndelegationsByDelegatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidUndelegationsByDelegatorResponse): SuperfluidUndelegationsByDelegatorResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-undelegations-by-delegator-response",
-      value: SuperfluidUndelegationsByDelegatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidUndelegationsByDelegatorResponseProtoMsg): SuperfluidUndelegationsByDelegatorResponse {
-    return SuperfluidUndelegationsByDelegatorResponse.decode(message.value);
-  },
-  toProto(message: SuperfluidUndelegationsByDelegatorResponse): Uint8Array {
-    return SuperfluidUndelegationsByDelegatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidUndelegationsByDelegatorResponse): SuperfluidUndelegationsByDelegatorResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidUndelegationsByDelegatorResponse",
-      value: SuperfluidUndelegationsByDelegatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationsByValidatorDenomRequest(): SuperfluidDelegationsByValidatorDenomRequest {
-  return {
-    validatorAddress: "",
-    denom: ""
-  };
-}
-export const SuperfluidDelegationsByValidatorDenomRequest = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomRequest",
-  aminoType: "osmosis/superfluid-delegations-by-validator-denom-request",
-  encode(message: SuperfluidDelegationsByValidatorDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationsByValidatorDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationsByValidatorDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationsByValidatorDenomRequest {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: SuperfluidDelegationsByValidatorDenomRequest): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationsByValidatorDenomRequest>): SuperfluidDelegationsByValidatorDenomRequest {
-    const message = createBaseSuperfluidDelegationsByValidatorDenomRequest();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationsByValidatorDenomRequestSDKType): SuperfluidDelegationsByValidatorDenomRequest {
-    return {
-      validatorAddress: object?.validator_address,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: SuperfluidDelegationsByValidatorDenomRequest): SuperfluidDelegationsByValidatorDenomRequestSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationsByValidatorDenomRequestAmino): SuperfluidDelegationsByValidatorDenomRequest {
-    return {
-      validatorAddress: object.validator_address,
-      denom: object.denom
-    };
-  },
-  toAmino(message: SuperfluidDelegationsByValidatorDenomRequest): SuperfluidDelegationsByValidatorDenomRequestAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationsByValidatorDenomRequestAminoMsg): SuperfluidDelegationsByValidatorDenomRequest {
-    return SuperfluidDelegationsByValidatorDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationsByValidatorDenomRequest): SuperfluidDelegationsByValidatorDenomRequestAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegations-by-validator-denom-request",
-      value: SuperfluidDelegationsByValidatorDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationsByValidatorDenomRequestProtoMsg): SuperfluidDelegationsByValidatorDenomRequest {
-    return SuperfluidDelegationsByValidatorDenomRequest.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationsByValidatorDenomRequest): Uint8Array {
-    return SuperfluidDelegationsByValidatorDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationsByValidatorDenomRequest): SuperfluidDelegationsByValidatorDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomRequest",
-      value: SuperfluidDelegationsByValidatorDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationsByValidatorDenomResponse(): SuperfluidDelegationsByValidatorDenomResponse {
-  return {
-    superfluidDelegationRecords: []
-  };
-}
-export const SuperfluidDelegationsByValidatorDenomResponse = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomResponse",
-  aminoType: "osmosis/superfluid-delegations-by-validator-denom-response",
-  encode(message: SuperfluidDelegationsByValidatorDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.superfluidDelegationRecords) {
-      SuperfluidDelegationRecord.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationsByValidatorDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationsByValidatorDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.superfluidDelegationRecords.push(SuperfluidDelegationRecord.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationsByValidatorDenomResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluidDelegationRecords) ? object.superfluidDelegationRecords.map((e: any) => SuperfluidDelegationRecord.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SuperfluidDelegationsByValidatorDenomResponse): unknown {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluidDelegationRecords = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toJSON(e) : undefined);
-    } else {
-      obj.superfluidDelegationRecords = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationsByValidatorDenomResponse>): SuperfluidDelegationsByValidatorDenomResponse {
-    const message = createBaseSuperfluidDelegationsByValidatorDenomResponse();
-    message.superfluidDelegationRecords = object.superfluidDelegationRecords?.map(e => SuperfluidDelegationRecord.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationsByValidatorDenomResponseSDKType): SuperfluidDelegationsByValidatorDenomResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SuperfluidDelegationsByValidatorDenomResponse): SuperfluidDelegationsByValidatorDenomResponseSDKType {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toSDK(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationsByValidatorDenomResponseAmino): SuperfluidDelegationsByValidatorDenomResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SuperfluidDelegationsByValidatorDenomResponse): SuperfluidDelegationsByValidatorDenomResponseAmino {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toAmino(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationsByValidatorDenomResponseAminoMsg): SuperfluidDelegationsByValidatorDenomResponse {
-    return SuperfluidDelegationsByValidatorDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationsByValidatorDenomResponse): SuperfluidDelegationsByValidatorDenomResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegations-by-validator-denom-response",
-      value: SuperfluidDelegationsByValidatorDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationsByValidatorDenomResponseProtoMsg): SuperfluidDelegationsByValidatorDenomResponse {
-    return SuperfluidDelegationsByValidatorDenomResponse.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationsByValidatorDenomResponse): Uint8Array {
-    return SuperfluidDelegationsByValidatorDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationsByValidatorDenomResponse): SuperfluidDelegationsByValidatorDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationsByValidatorDenomResponse",
-      value: SuperfluidDelegationsByValidatorDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomRequest(): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-  return {
-    validatorAddress: "",
-    denom: ""
-  };
-}
-export const EstimateSuperfluidDelegatedAmountByValidatorDenomRequest = {
-  typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomRequest",
-  aminoType: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-request",
-  encode(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validatorAddress !== "") {
-      writer.uint32(10).string(message.validatorAddress);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorAddress = reader.string();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    return {
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): unknown {
-    const obj: any = {};
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EstimateSuperfluidDelegatedAmountByValidatorDenomRequest>): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    const message = createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomRequest();
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: EstimateSuperfluidDelegatedAmountByValidatorDenomRequestSDKType): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    return {
-      validatorAddress: object?.validator_address,
-      denom: object?.denom
-    };
-  },
-  toSDK(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): EstimateSuperfluidDelegatedAmountByValidatorDenomRequestSDKType {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAmino): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    return {
-      validatorAddress: object.validator_address,
-      denom: object.denom
-    };
-  },
-  toAmino(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAmino {
-    const obj: any = {};
-    obj.validator_address = message.validatorAddress;
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAminoMsg): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): EstimateSuperfluidDelegatedAmountByValidatorDenomRequestAminoMsg {
-    return {
-      type: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-request",
-      value: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequestProtoMsg): EstimateSuperfluidDelegatedAmountByValidatorDenomRequest {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.decode(message.value);
-  },
-  toProto(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Uint8Array {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): EstimateSuperfluidDelegatedAmountByValidatorDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomRequest",
-      value: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomResponse(): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-  return {
-    totalDelegatedCoins: []
-  };
-}
-export const EstimateSuperfluidDelegatedAmountByValidatorDenomResponse = {
-  typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomResponse",
-  aminoType: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-response",
-  encode(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.totalDelegatedCoins) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.totalDelegatedCoins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    return {
-      totalDelegatedCoins: Array.isArray(object?.totalDelegatedCoins) ? object.totalDelegatedCoins.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): unknown {
-    const obj: any = {};
-    if (message.totalDelegatedCoins) {
-      obj.totalDelegatedCoins = message.totalDelegatedCoins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalDelegatedCoins = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EstimateSuperfluidDelegatedAmountByValidatorDenomResponse>): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    const message = createBaseEstimateSuperfluidDelegatedAmountByValidatorDenomResponse();
-    message.totalDelegatedCoins = object.totalDelegatedCoins?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EstimateSuperfluidDelegatedAmountByValidatorDenomResponseSDKType): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    return {
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): EstimateSuperfluidDelegatedAmountByValidatorDenomResponseSDKType {
-    const obj: any = {};
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAmino): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    return {
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAmino {
-    const obj: any = {};
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAminoMsg): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): EstimateSuperfluidDelegatedAmountByValidatorDenomResponseAminoMsg {
-    return {
-      type: "osmosis/estimate-superfluid-delegated-amount-by-validator-denom-response",
-      value: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponseProtoMsg): EstimateSuperfluidDelegatedAmountByValidatorDenomResponse {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.decode(message.value);
-  },
-  toProto(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): Uint8Array {
-    return EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse): EstimateSuperfluidDelegatedAmountByValidatorDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.EstimateSuperfluidDelegatedAmountByValidatorDenomResponse",
-      value: EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalDelegationByDelegatorRequest(): QueryTotalDelegationByDelegatorRequest {
-  return {
-    delegatorAddress: ""
-  };
-}
-export const QueryTotalDelegationByDelegatorRequest = {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorRequest",
-  aminoType: "osmosis/query-total-delegation-by-delegator-request",
-  encode(message: QueryTotalDelegationByDelegatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalDelegationByDelegatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalDelegationByDelegatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalDelegationByDelegatorRequest {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : ""
-    };
-  },
-  toJSON(message: QueryTotalDelegationByDelegatorRequest): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalDelegationByDelegatorRequest>): QueryTotalDelegationByDelegatorRequest {
-    const message = createBaseQueryTotalDelegationByDelegatorRequest();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    return message;
-  },
-  fromSDK(object: QueryTotalDelegationByDelegatorRequestSDKType): QueryTotalDelegationByDelegatorRequest {
-    return {
-      delegatorAddress: object?.delegator_address
-    };
-  },
-  toSDK(message: QueryTotalDelegationByDelegatorRequest): QueryTotalDelegationByDelegatorRequestSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAmino(object: QueryTotalDelegationByDelegatorRequestAmino): QueryTotalDelegationByDelegatorRequest {
-    return {
-      delegatorAddress: object.delegator_address
-    };
-  },
-  toAmino(message: QueryTotalDelegationByDelegatorRequest): QueryTotalDelegationByDelegatorRequestAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalDelegationByDelegatorRequestAminoMsg): QueryTotalDelegationByDelegatorRequest {
-    return QueryTotalDelegationByDelegatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalDelegationByDelegatorRequest): QueryTotalDelegationByDelegatorRequestAminoMsg {
-    return {
-      type: "osmosis/query-total-delegation-by-delegator-request",
-      value: QueryTotalDelegationByDelegatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalDelegationByDelegatorRequestProtoMsg): QueryTotalDelegationByDelegatorRequest {
-    return QueryTotalDelegationByDelegatorRequest.decode(message.value);
-  },
-  toProto(message: QueryTotalDelegationByDelegatorRequest): Uint8Array {
-    return QueryTotalDelegationByDelegatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalDelegationByDelegatorRequest): QueryTotalDelegationByDelegatorRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorRequest",
-      value: QueryTotalDelegationByDelegatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryTotalDelegationByDelegatorResponse(): QueryTotalDelegationByDelegatorResponse {
-  return {
-    superfluidDelegationRecords: [],
-    delegationResponse: [],
-    totalDelegatedCoins: [],
-    totalEquivalentStakedAmount: Coin.fromPartial({})
-  };
-}
-export const QueryTotalDelegationByDelegatorResponse = {
-  typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorResponse",
-  aminoType: "osmosis/query-total-delegation-by-delegator-response",
-  encode(message: QueryTotalDelegationByDelegatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.superfluidDelegationRecords) {
-      SuperfluidDelegationRecord.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.delegationResponse) {
-      DelegationResponse.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.totalDelegatedCoins) {
-      Coin.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.totalEquivalentStakedAmount !== undefined) {
-      Coin.encode(message.totalEquivalentStakedAmount, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryTotalDelegationByDelegatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryTotalDelegationByDelegatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.superfluidDelegationRecords.push(SuperfluidDelegationRecord.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.delegationResponse.push(DelegationResponse.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.totalDelegatedCoins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.totalEquivalentStakedAmount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryTotalDelegationByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluidDelegationRecords) ? object.superfluidDelegationRecords.map((e: any) => SuperfluidDelegationRecord.fromJSON(e)) : [],
-      delegationResponse: Array.isArray(object?.delegationResponse) ? object.delegationResponse.map((e: any) => DelegationResponse.fromJSON(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.totalDelegatedCoins) ? object.totalDelegatedCoins.map((e: any) => Coin.fromJSON(e)) : [],
-      totalEquivalentStakedAmount: isSet(object.totalEquivalentStakedAmount) ? Coin.fromJSON(object.totalEquivalentStakedAmount) : undefined
-    };
-  },
-  toJSON(message: QueryTotalDelegationByDelegatorResponse): unknown {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluidDelegationRecords = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toJSON(e) : undefined);
-    } else {
-      obj.superfluidDelegationRecords = [];
-    }
-    if (message.delegationResponse) {
-      obj.delegationResponse = message.delegationResponse.map(e => e ? DelegationResponse.toJSON(e) : undefined);
-    } else {
-      obj.delegationResponse = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.totalDelegatedCoins = message.totalDelegatedCoins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.totalDelegatedCoins = [];
-    }
-    message.totalEquivalentStakedAmount !== undefined && (obj.totalEquivalentStakedAmount = message.totalEquivalentStakedAmount ? Coin.toJSON(message.totalEquivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryTotalDelegationByDelegatorResponse>): QueryTotalDelegationByDelegatorResponse {
-    const message = createBaseQueryTotalDelegationByDelegatorResponse();
-    message.superfluidDelegationRecords = object.superfluidDelegationRecords?.map(e => SuperfluidDelegationRecord.fromPartial(e)) || [];
-    message.delegationResponse = object.delegationResponse?.map(e => DelegationResponse.fromPartial(e)) || [];
-    message.totalDelegatedCoins = object.totalDelegatedCoins?.map(e => Coin.fromPartial(e)) || [];
-    message.totalEquivalentStakedAmount = object.totalEquivalentStakedAmount !== undefined && object.totalEquivalentStakedAmount !== null ? Coin.fromPartial(object.totalEquivalentStakedAmount) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryTotalDelegationByDelegatorResponseSDKType): QueryTotalDelegationByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromSDK(e)) : [],
-      delegationResponse: Array.isArray(object?.delegation_response) ? object.delegation_response.map((e: any) => DelegationResponse.fromSDK(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromSDK(e)) : [],
-      totalEquivalentStakedAmount: object.total_equivalent_staked_amount ? Coin.fromSDK(object.total_equivalent_staked_amount) : undefined
-    };
-  },
-  toSDK(message: QueryTotalDelegationByDelegatorResponse): QueryTotalDelegationByDelegatorResponseSDKType {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toSDK(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.delegationResponse) {
-      obj.delegation_response = message.delegationResponse.map(e => e ? DelegationResponse.toSDK(e) : undefined);
-    } else {
-      obj.delegation_response = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    message.totalEquivalentStakedAmount !== undefined && (obj.total_equivalent_staked_amount = message.totalEquivalentStakedAmount ? Coin.toSDK(message.totalEquivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryTotalDelegationByDelegatorResponseAmino): QueryTotalDelegationByDelegatorResponse {
-    return {
-      superfluidDelegationRecords: Array.isArray(object?.superfluid_delegation_records) ? object.superfluid_delegation_records.map((e: any) => SuperfluidDelegationRecord.fromAmino(e)) : [],
-      delegationResponse: Array.isArray(object?.delegation_response) ? object.delegation_response.map((e: any) => DelegationResponse.fromAmino(e)) : [],
-      totalDelegatedCoins: Array.isArray(object?.total_delegated_coins) ? object.total_delegated_coins.map((e: any) => Coin.fromAmino(e)) : [],
-      totalEquivalentStakedAmount: object?.total_equivalent_staked_amount ? Coin.fromAmino(object.total_equivalent_staked_amount) : undefined
-    };
-  },
-  toAmino(message: QueryTotalDelegationByDelegatorResponse): QueryTotalDelegationByDelegatorResponseAmino {
-    const obj: any = {};
-    if (message.superfluidDelegationRecords) {
-      obj.superfluid_delegation_records = message.superfluidDelegationRecords.map(e => e ? SuperfluidDelegationRecord.toAmino(e) : undefined);
-    } else {
-      obj.superfluid_delegation_records = [];
-    }
-    if (message.delegationResponse) {
-      obj.delegation_response = message.delegationResponse.map(e => e ? DelegationResponse.toAmino(e) : undefined);
-    } else {
-      obj.delegation_response = [];
-    }
-    if (message.totalDelegatedCoins) {
-      obj.total_delegated_coins = message.totalDelegatedCoins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.total_delegated_coins = [];
-    }
-    obj.total_equivalent_staked_amount = message.totalEquivalentStakedAmount ? Coin.toAmino(message.totalEquivalentStakedAmount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryTotalDelegationByDelegatorResponseAminoMsg): QueryTotalDelegationByDelegatorResponse {
-    return QueryTotalDelegationByDelegatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryTotalDelegationByDelegatorResponse): QueryTotalDelegationByDelegatorResponseAminoMsg {
-    return {
-      type: "osmosis/query-total-delegation-by-delegator-response",
-      value: QueryTotalDelegationByDelegatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryTotalDelegationByDelegatorResponseProtoMsg): QueryTotalDelegationByDelegatorResponse {
-    return QueryTotalDelegationByDelegatorResponse.decode(message.value);
-  },
-  toProto(message: QueryTotalDelegationByDelegatorResponse): Uint8Array {
-    return QueryTotalDelegationByDelegatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryTotalDelegationByDelegatorResponse): QueryTotalDelegationByDelegatorResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryTotalDelegationByDelegatorResponse",
-      value: QueryTotalDelegationByDelegatorResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnpoolWhitelistRequest(): QueryUnpoolWhitelistRequest {
-  return {};
-}
-export const QueryUnpoolWhitelistRequest = {
-  typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistRequest",
-  aminoType: "osmosis/query-unpool-whitelist-request",
-  encode(_: QueryUnpoolWhitelistRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnpoolWhitelistRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnpoolWhitelistRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryUnpoolWhitelistRequest {
-    return {};
-  },
-  toJSON(_: QueryUnpoolWhitelistRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryUnpoolWhitelistRequest>): QueryUnpoolWhitelistRequest {
-    const message = createBaseQueryUnpoolWhitelistRequest();
-    return message;
-  },
-  fromSDK(_: QueryUnpoolWhitelistRequestSDKType): QueryUnpoolWhitelistRequest {
-    return {};
-  },
-  toSDK(_: QueryUnpoolWhitelistRequest): QueryUnpoolWhitelistRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryUnpoolWhitelistRequestAmino): QueryUnpoolWhitelistRequest {
-    return {};
-  },
-  toAmino(_: QueryUnpoolWhitelistRequest): QueryUnpoolWhitelistRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnpoolWhitelistRequestAminoMsg): QueryUnpoolWhitelistRequest {
-    return QueryUnpoolWhitelistRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnpoolWhitelistRequest): QueryUnpoolWhitelistRequestAminoMsg {
-    return {
-      type: "osmosis/query-unpool-whitelist-request",
-      value: QueryUnpoolWhitelistRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnpoolWhitelistRequestProtoMsg): QueryUnpoolWhitelistRequest {
-    return QueryUnpoolWhitelistRequest.decode(message.value);
-  },
-  toProto(message: QueryUnpoolWhitelistRequest): Uint8Array {
-    return QueryUnpoolWhitelistRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnpoolWhitelistRequest): QueryUnpoolWhitelistRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistRequest",
-      value: QueryUnpoolWhitelistRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryUnpoolWhitelistResponse(): QueryUnpoolWhitelistResponse {
-  return {
-    poolIds: []
-  };
-}
-export const QueryUnpoolWhitelistResponse = {
-  typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistResponse",
-  aminoType: "osmosis/query-unpool-whitelist-response",
-  encode(message: QueryUnpoolWhitelistResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.poolIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryUnpoolWhitelistResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryUnpoolWhitelistResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.poolIds.push(reader.uint64());
-            }
-          } else {
-            message.poolIds.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryUnpoolWhitelistResponse {
-    return {
-      poolIds: Array.isArray(object?.poolIds) ? object.poolIds.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: QueryUnpoolWhitelistResponse): unknown {
-    const obj: any = {};
-    if (message.poolIds) {
-      obj.poolIds = message.poolIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.poolIds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryUnpoolWhitelistResponse>): QueryUnpoolWhitelistResponse {
-    const message = createBaseQueryUnpoolWhitelistResponse();
-    message.poolIds = object.poolIds?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: QueryUnpoolWhitelistResponseSDKType): QueryUnpoolWhitelistResponse {
-    return {
-      poolIds: Array.isArray(object?.pool_ids) ? object.pool_ids.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryUnpoolWhitelistResponse): QueryUnpoolWhitelistResponseSDKType {
-    const obj: any = {};
-    if (message.poolIds) {
-      obj.pool_ids = message.poolIds.map(e => e);
-    } else {
-      obj.pool_ids = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryUnpoolWhitelistResponseAmino): QueryUnpoolWhitelistResponse {
-    return {
-      poolIds: Array.isArray(object?.pool_ids) ? object.pool_ids.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: QueryUnpoolWhitelistResponse): QueryUnpoolWhitelistResponseAmino {
-    const obj: any = {};
-    if (message.poolIds) {
-      obj.pool_ids = message.poolIds.map(e => e.toString());
-    } else {
-      obj.pool_ids = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryUnpoolWhitelistResponseAminoMsg): QueryUnpoolWhitelistResponse {
-    return QueryUnpoolWhitelistResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryUnpoolWhitelistResponse): QueryUnpoolWhitelistResponseAminoMsg {
-    return {
-      type: "osmosis/query-unpool-whitelist-response",
-      value: QueryUnpoolWhitelistResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryUnpoolWhitelistResponseProtoMsg): QueryUnpoolWhitelistResponse {
-    return QueryUnpoolWhitelistResponse.decode(message.value);
-  },
-  toProto(message: QueryUnpoolWhitelistResponse): Uint8Array {
-    return QueryUnpoolWhitelistResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryUnpoolWhitelistResponse): QueryUnpoolWhitelistResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.QueryUnpoolWhitelistResponse",
-      value: QueryUnpoolWhitelistResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/superfluid.ts b/examples/injective/src/codegen/osmosis/superfluid/superfluid.ts
deleted file mode 100644
index db0f87ac..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/superfluid.ts
+++ /dev/null
@@ -1,930 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-import { Decimal } from "@cosmjs/math";
-/**
- * SuperfluidAssetType indicates whether the superfluid asset is
- * a native token itself or the lp share of a pool.
- */
-export enum SuperfluidAssetType {
-  SuperfluidAssetTypeNative = 0,
-  SuperfluidAssetTypeLPShare = 1,
-  UNRECOGNIZED = -1,
-}
-export const SuperfluidAssetTypeSDKType = SuperfluidAssetType;
-export const SuperfluidAssetTypeAmino = SuperfluidAssetType;
-export function superfluidAssetTypeFromJSON(object: any): SuperfluidAssetType {
-  switch (object) {
-    case 0:
-    case "SuperfluidAssetTypeNative":
-      return SuperfluidAssetType.SuperfluidAssetTypeNative;
-    case 1:
-    case "SuperfluidAssetTypeLPShare":
-      return SuperfluidAssetType.SuperfluidAssetTypeLPShare;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return SuperfluidAssetType.UNRECOGNIZED;
-  }
-}
-export function superfluidAssetTypeToJSON(object: SuperfluidAssetType): string {
-  switch (object) {
-    case SuperfluidAssetType.SuperfluidAssetTypeNative:
-      return "SuperfluidAssetTypeNative";
-    case SuperfluidAssetType.SuperfluidAssetTypeLPShare:
-      return "SuperfluidAssetTypeLPShare";
-    case SuperfluidAssetType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** SuperfluidAsset stores the pair of superfluid asset type and denom pair */
-export interface SuperfluidAsset {
-  denom: string;
-  /**
-   * AssetType indicates whether the superfluid asset is a native token or an lp
-   * share
-   */
-  assetType: SuperfluidAssetType;
-}
-export interface SuperfluidAssetProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidAsset";
-  value: Uint8Array;
-}
-/** SuperfluidAsset stores the pair of superfluid asset type and denom pair */
-export interface SuperfluidAssetAmino {
-  denom: string;
-  /**
-   * AssetType indicates whether the superfluid asset is a native token or an lp
-   * share
-   */
-  asset_type: SuperfluidAssetType;
-}
-export interface SuperfluidAssetAminoMsg {
-  type: "osmosis/superfluid-asset";
-  value: SuperfluidAssetAmino;
-}
-/** SuperfluidAsset stores the pair of superfluid asset type and denom pair */
-export interface SuperfluidAssetSDKType {
-  denom: string;
-  asset_type: SuperfluidAssetType;
-}
-/**
- * SuperfluidIntermediaryAccount takes the role of intermediary between LP token
- * and OSMO tokens for superfluid staking. The intermediary account is the
- * actual account responsible for delegation, not the validator account itself.
- */
-export interface SuperfluidIntermediaryAccount {
-  /** Denom indicates the denom of the superfluid asset. */
-  denom: string;
-  valAddr: string;
-  /** perpetual gauge for rewards distribution */
-  gaugeId: bigint;
-}
-export interface SuperfluidIntermediaryAccountProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccount";
-  value: Uint8Array;
-}
-/**
- * SuperfluidIntermediaryAccount takes the role of intermediary between LP token
- * and OSMO tokens for superfluid staking. The intermediary account is the
- * actual account responsible for delegation, not the validator account itself.
- */
-export interface SuperfluidIntermediaryAccountAmino {
-  /** Denom indicates the denom of the superfluid asset. */
-  denom: string;
-  val_addr: string;
-  /** perpetual gauge for rewards distribution */
-  gauge_id: string;
-}
-export interface SuperfluidIntermediaryAccountAminoMsg {
-  type: "osmosis/superfluid-intermediary-account";
-  value: SuperfluidIntermediaryAccountAmino;
-}
-/**
- * SuperfluidIntermediaryAccount takes the role of intermediary between LP token
- * and OSMO tokens for superfluid staking. The intermediary account is the
- * actual account responsible for delegation, not the validator account itself.
- */
-export interface SuperfluidIntermediaryAccountSDKType {
-  denom: string;
-  val_addr: string;
-  gauge_id: bigint;
-}
-/**
- * The Osmo-Equivalent-Multiplier Record for epoch N refers to the osmo worth we
- * treat an LP share as having, for all of epoch N. Eventually this is intended
- * to be set as the Time-weighted-average-osmo-backing for the entire duration
- * of epoch N-1. (Thereby locking whats in use for epoch N as based on the prior
- * epochs rewards) However for now, this is not the TWAP but instead the spot
- * price at the boundary. For different types of assets in the future, it could
- * change.
- */
-export interface OsmoEquivalentMultiplierRecord {
-  epochNumber: bigint;
-  /** superfluid asset denom, can be LP token or native token */
-  denom: string;
-  multiplier: string;
-}
-export interface OsmoEquivalentMultiplierRecordProtoMsg {
-  typeUrl: "/osmosis.superfluid.OsmoEquivalentMultiplierRecord";
-  value: Uint8Array;
-}
-/**
- * The Osmo-Equivalent-Multiplier Record for epoch N refers to the osmo worth we
- * treat an LP share as having, for all of epoch N. Eventually this is intended
- * to be set as the Time-weighted-average-osmo-backing for the entire duration
- * of epoch N-1. (Thereby locking whats in use for epoch N as based on the prior
- * epochs rewards) However for now, this is not the TWAP but instead the spot
- * price at the boundary. For different types of assets in the future, it could
- * change.
- */
-export interface OsmoEquivalentMultiplierRecordAmino {
-  epoch_number: string;
-  /** superfluid asset denom, can be LP token or native token */
-  denom: string;
-  multiplier: string;
-}
-export interface OsmoEquivalentMultiplierRecordAminoMsg {
-  type: "osmosis/osmo-equivalent-multiplier-record";
-  value: OsmoEquivalentMultiplierRecordAmino;
-}
-/**
- * The Osmo-Equivalent-Multiplier Record for epoch N refers to the osmo worth we
- * treat an LP share as having, for all of epoch N. Eventually this is intended
- * to be set as the Time-weighted-average-osmo-backing for the entire duration
- * of epoch N-1. (Thereby locking whats in use for epoch N as based on the prior
- * epochs rewards) However for now, this is not the TWAP but instead the spot
- * price at the boundary. For different types of assets in the future, it could
- * change.
- */
-export interface OsmoEquivalentMultiplierRecordSDKType {
-  epoch_number: bigint;
-  denom: string;
-  multiplier: string;
-}
-/**
- * SuperfluidDelegationRecord is a struct used to indicate superfluid
- * delegations of an account in the state machine in a user friendly form.
- */
-export interface SuperfluidDelegationRecord {
-  delegatorAddress: string;
-  validatorAddress: string;
-  delegationAmount: Coin | undefined;
-  equivalentStakedAmount: Coin | undefined;
-}
-export interface SuperfluidDelegationRecordProtoMsg {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationRecord";
-  value: Uint8Array;
-}
-/**
- * SuperfluidDelegationRecord is a struct used to indicate superfluid
- * delegations of an account in the state machine in a user friendly form.
- */
-export interface SuperfluidDelegationRecordAmino {
-  delegator_address: string;
-  validator_address: string;
-  delegation_amount?: CoinAmino | undefined;
-  equivalent_staked_amount?: CoinAmino | undefined;
-}
-export interface SuperfluidDelegationRecordAminoMsg {
-  type: "osmosis/superfluid-delegation-record";
-  value: SuperfluidDelegationRecordAmino;
-}
-/**
- * SuperfluidDelegationRecord is a struct used to indicate superfluid
- * delegations of an account in the state machine in a user friendly form.
- */
-export interface SuperfluidDelegationRecordSDKType {
-  delegator_address: string;
-  validator_address: string;
-  delegation_amount: CoinSDKType | undefined;
-  equivalent_staked_amount: CoinSDKType | undefined;
-}
-/**
- * LockIdIntermediaryAccountConnection is a struct used to indicate the
- * relationship between the underlying lock id and superfluid delegation done
- * via lp shares.
- */
-export interface LockIdIntermediaryAccountConnection {
-  lockId: bigint;
-  intermediaryAccount: string;
-}
-export interface LockIdIntermediaryAccountConnectionProtoMsg {
-  typeUrl: "/osmosis.superfluid.LockIdIntermediaryAccountConnection";
-  value: Uint8Array;
-}
-/**
- * LockIdIntermediaryAccountConnection is a struct used to indicate the
- * relationship between the underlying lock id and superfluid delegation done
- * via lp shares.
- */
-export interface LockIdIntermediaryAccountConnectionAmino {
-  lock_id: string;
-  intermediary_account: string;
-}
-export interface LockIdIntermediaryAccountConnectionAminoMsg {
-  type: "osmosis/lock-id-intermediary-account-connection";
-  value: LockIdIntermediaryAccountConnectionAmino;
-}
-/**
- * LockIdIntermediaryAccountConnection is a struct used to indicate the
- * relationship between the underlying lock id and superfluid delegation done
- * via lp shares.
- */
-export interface LockIdIntermediaryAccountConnectionSDKType {
-  lock_id: bigint;
-  intermediary_account: string;
-}
-export interface UnpoolWhitelistedPools {
-  ids: bigint[];
-}
-export interface UnpoolWhitelistedPoolsProtoMsg {
-  typeUrl: "/osmosis.superfluid.UnpoolWhitelistedPools";
-  value: Uint8Array;
-}
-export interface UnpoolWhitelistedPoolsAmino {
-  ids: string[];
-}
-export interface UnpoolWhitelistedPoolsAminoMsg {
-  type: "osmosis/unpool-whitelisted-pools";
-  value: UnpoolWhitelistedPoolsAmino;
-}
-export interface UnpoolWhitelistedPoolsSDKType {
-  ids: bigint[];
-}
-function createBaseSuperfluidAsset(): SuperfluidAsset {
-  return {
-    denom: "",
-    assetType: 0
-  };
-}
-export const SuperfluidAsset = {
-  typeUrl: "/osmosis.superfluid.SuperfluidAsset",
-  aminoType: "osmosis/superfluid-asset",
-  encode(message: SuperfluidAsset, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.assetType !== 0) {
-      writer.uint32(16).int32(message.assetType);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidAsset {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidAsset();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.assetType = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidAsset {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      assetType: isSet(object.assetType) ? superfluidAssetTypeFromJSON(object.assetType) : -1
-    };
-  },
-  toJSON(message: SuperfluidAsset): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.assetType !== undefined && (obj.assetType = superfluidAssetTypeToJSON(message.assetType));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidAsset>): SuperfluidAsset {
-    const message = createBaseSuperfluidAsset();
-    message.denom = object.denom ?? "";
-    message.assetType = object.assetType ?? 0;
-    return message;
-  },
-  fromSDK(object: SuperfluidAssetSDKType): SuperfluidAsset {
-    return {
-      denom: object?.denom,
-      assetType: isSet(object.asset_type) ? superfluidAssetTypeFromJSON(object.asset_type) : -1
-    };
-  },
-  toSDK(message: SuperfluidAsset): SuperfluidAssetSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.assetType !== undefined && (obj.asset_type = superfluidAssetTypeToJSON(message.assetType));
-    return obj;
-  },
-  fromAmino(object: SuperfluidAssetAmino): SuperfluidAsset {
-    return {
-      denom: object.denom,
-      assetType: isSet(object.asset_type) ? superfluidAssetTypeFromJSON(object.asset_type) : -1
-    };
-  },
-  toAmino(message: SuperfluidAsset): SuperfluidAssetAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.asset_type = message.assetType;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidAssetAminoMsg): SuperfluidAsset {
-    return SuperfluidAsset.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidAsset): SuperfluidAssetAminoMsg {
-    return {
-      type: "osmosis/superfluid-asset",
-      value: SuperfluidAsset.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidAssetProtoMsg): SuperfluidAsset {
-    return SuperfluidAsset.decode(message.value);
-  },
-  toProto(message: SuperfluidAsset): Uint8Array {
-    return SuperfluidAsset.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidAsset): SuperfluidAssetProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidAsset",
-      value: SuperfluidAsset.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidIntermediaryAccount(): SuperfluidIntermediaryAccount {
-  return {
-    denom: "",
-    valAddr: "",
-    gaugeId: BigInt(0)
-  };
-}
-export const SuperfluidIntermediaryAccount = {
-  typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccount",
-  aminoType: "osmosis/superfluid-intermediary-account",
-  encode(message: SuperfluidIntermediaryAccount, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.valAddr !== "") {
-      writer.uint32(18).string(message.valAddr);
-    }
-    if (message.gaugeId !== BigInt(0)) {
-      writer.uint32(24).uint64(message.gaugeId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidIntermediaryAccount {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidIntermediaryAccount();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.valAddr = reader.string();
-          break;
-        case 3:
-          message.gaugeId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidIntermediaryAccount {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      valAddr: isSet(object.valAddr) ? String(object.valAddr) : "",
-      gaugeId: isSet(object.gaugeId) ? BigInt(object.gaugeId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SuperfluidIntermediaryAccount): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.valAddr !== undefined && (obj.valAddr = message.valAddr);
-    message.gaugeId !== undefined && (obj.gaugeId = (message.gaugeId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidIntermediaryAccount>): SuperfluidIntermediaryAccount {
-    const message = createBaseSuperfluidIntermediaryAccount();
-    message.denom = object.denom ?? "";
-    message.valAddr = object.valAddr ?? "";
-    message.gaugeId = object.gaugeId !== undefined && object.gaugeId !== null ? BigInt(object.gaugeId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SuperfluidIntermediaryAccountSDKType): SuperfluidIntermediaryAccount {
-    return {
-      denom: object?.denom,
-      valAddr: object?.val_addr,
-      gaugeId: object?.gauge_id
-    };
-  },
-  toSDK(message: SuperfluidIntermediaryAccount): SuperfluidIntermediaryAccountSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.val_addr = message.valAddr;
-    obj.gauge_id = message.gaugeId;
-    return obj;
-  },
-  fromAmino(object: SuperfluidIntermediaryAccountAmino): SuperfluidIntermediaryAccount {
-    return {
-      denom: object.denom,
-      valAddr: object.val_addr,
-      gaugeId: BigInt(object.gauge_id)
-    };
-  },
-  toAmino(message: SuperfluidIntermediaryAccount): SuperfluidIntermediaryAccountAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.val_addr = message.valAddr;
-    obj.gauge_id = message.gaugeId ? message.gaugeId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidIntermediaryAccountAminoMsg): SuperfluidIntermediaryAccount {
-    return SuperfluidIntermediaryAccount.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidIntermediaryAccount): SuperfluidIntermediaryAccountAminoMsg {
-    return {
-      type: "osmosis/superfluid-intermediary-account",
-      value: SuperfluidIntermediaryAccount.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidIntermediaryAccountProtoMsg): SuperfluidIntermediaryAccount {
-    return SuperfluidIntermediaryAccount.decode(message.value);
-  },
-  toProto(message: SuperfluidIntermediaryAccount): Uint8Array {
-    return SuperfluidIntermediaryAccount.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidIntermediaryAccount): SuperfluidIntermediaryAccountProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidIntermediaryAccount",
-      value: SuperfluidIntermediaryAccount.encode(message).finish()
-    };
-  }
-};
-function createBaseOsmoEquivalentMultiplierRecord(): OsmoEquivalentMultiplierRecord {
-  return {
-    epochNumber: BigInt(0),
-    denom: "",
-    multiplier: ""
-  };
-}
-export const OsmoEquivalentMultiplierRecord = {
-  typeUrl: "/osmosis.superfluid.OsmoEquivalentMultiplierRecord",
-  aminoType: "osmosis/osmo-equivalent-multiplier-record",
-  encode(message: OsmoEquivalentMultiplierRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.epochNumber !== BigInt(0)) {
-      writer.uint32(8).int64(message.epochNumber);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    if (message.multiplier !== "") {
-      writer.uint32(26).string(Decimal.fromUserInput(message.multiplier, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): OsmoEquivalentMultiplierRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseOsmoEquivalentMultiplierRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.epochNumber = reader.int64();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        case 3:
-          message.multiplier = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): OsmoEquivalentMultiplierRecord {
-    return {
-      epochNumber: isSet(object.epochNumber) ? BigInt(object.epochNumber.toString()) : BigInt(0),
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      multiplier: isSet(object.multiplier) ? String(object.multiplier) : ""
-    };
-  },
-  toJSON(message: OsmoEquivalentMultiplierRecord): unknown {
-    const obj: any = {};
-    message.epochNumber !== undefined && (obj.epochNumber = (message.epochNumber || BigInt(0)).toString());
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.multiplier !== undefined && (obj.multiplier = message.multiplier);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<OsmoEquivalentMultiplierRecord>): OsmoEquivalentMultiplierRecord {
-    const message = createBaseOsmoEquivalentMultiplierRecord();
-    message.epochNumber = object.epochNumber !== undefined && object.epochNumber !== null ? BigInt(object.epochNumber.toString()) : BigInt(0);
-    message.denom = object.denom ?? "";
-    message.multiplier = object.multiplier ?? "";
-    return message;
-  },
-  fromSDK(object: OsmoEquivalentMultiplierRecordSDKType): OsmoEquivalentMultiplierRecord {
-    return {
-      epochNumber: object?.epoch_number,
-      denom: object?.denom,
-      multiplier: object?.multiplier
-    };
-  },
-  toSDK(message: OsmoEquivalentMultiplierRecord): OsmoEquivalentMultiplierRecordSDKType {
-    const obj: any = {};
-    obj.epoch_number = message.epochNumber;
-    obj.denom = message.denom;
-    obj.multiplier = message.multiplier;
-    return obj;
-  },
-  fromAmino(object: OsmoEquivalentMultiplierRecordAmino): OsmoEquivalentMultiplierRecord {
-    return {
-      epochNumber: BigInt(object.epoch_number),
-      denom: object.denom,
-      multiplier: object.multiplier
-    };
-  },
-  toAmino(message: OsmoEquivalentMultiplierRecord): OsmoEquivalentMultiplierRecordAmino {
-    const obj: any = {};
-    obj.epoch_number = message.epochNumber ? message.epochNumber.toString() : undefined;
-    obj.denom = message.denom;
-    obj.multiplier = message.multiplier;
-    return obj;
-  },
-  fromAminoMsg(object: OsmoEquivalentMultiplierRecordAminoMsg): OsmoEquivalentMultiplierRecord {
-    return OsmoEquivalentMultiplierRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: OsmoEquivalentMultiplierRecord): OsmoEquivalentMultiplierRecordAminoMsg {
-    return {
-      type: "osmosis/osmo-equivalent-multiplier-record",
-      value: OsmoEquivalentMultiplierRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: OsmoEquivalentMultiplierRecordProtoMsg): OsmoEquivalentMultiplierRecord {
-    return OsmoEquivalentMultiplierRecord.decode(message.value);
-  },
-  toProto(message: OsmoEquivalentMultiplierRecord): Uint8Array {
-    return OsmoEquivalentMultiplierRecord.encode(message).finish();
-  },
-  toProtoMsg(message: OsmoEquivalentMultiplierRecord): OsmoEquivalentMultiplierRecordProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.OsmoEquivalentMultiplierRecord",
-      value: OsmoEquivalentMultiplierRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseSuperfluidDelegationRecord(): SuperfluidDelegationRecord {
-  return {
-    delegatorAddress: "",
-    validatorAddress: "",
-    delegationAmount: Coin.fromPartial({}),
-    equivalentStakedAmount: Coin.fromPartial({})
-  };
-}
-export const SuperfluidDelegationRecord = {
-  typeUrl: "/osmosis.superfluid.SuperfluidDelegationRecord",
-  aminoType: "osmosis/superfluid-delegation-record",
-  encode(message: SuperfluidDelegationRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.delegatorAddress !== "") {
-      writer.uint32(10).string(message.delegatorAddress);
-    }
-    if (message.validatorAddress !== "") {
-      writer.uint32(18).string(message.validatorAddress);
-    }
-    if (message.delegationAmount !== undefined) {
-      Coin.encode(message.delegationAmount, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.equivalentStakedAmount !== undefined) {
-      Coin.encode(message.equivalentStakedAmount, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SuperfluidDelegationRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSuperfluidDelegationRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.delegatorAddress = reader.string();
-          break;
-        case 2:
-          message.validatorAddress = reader.string();
-          break;
-        case 3:
-          message.delegationAmount = Coin.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.equivalentStakedAmount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SuperfluidDelegationRecord {
-    return {
-      delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
-      validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
-      delegationAmount: isSet(object.delegationAmount) ? Coin.fromJSON(object.delegationAmount) : undefined,
-      equivalentStakedAmount: isSet(object.equivalentStakedAmount) ? Coin.fromJSON(object.equivalentStakedAmount) : undefined
-    };
-  },
-  toJSON(message: SuperfluidDelegationRecord): unknown {
-    const obj: any = {};
-    message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
-    message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
-    message.delegationAmount !== undefined && (obj.delegationAmount = message.delegationAmount ? Coin.toJSON(message.delegationAmount) : undefined);
-    message.equivalentStakedAmount !== undefined && (obj.equivalentStakedAmount = message.equivalentStakedAmount ? Coin.toJSON(message.equivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SuperfluidDelegationRecord>): SuperfluidDelegationRecord {
-    const message = createBaseSuperfluidDelegationRecord();
-    message.delegatorAddress = object.delegatorAddress ?? "";
-    message.validatorAddress = object.validatorAddress ?? "";
-    message.delegationAmount = object.delegationAmount !== undefined && object.delegationAmount !== null ? Coin.fromPartial(object.delegationAmount) : undefined;
-    message.equivalentStakedAmount = object.equivalentStakedAmount !== undefined && object.equivalentStakedAmount !== null ? Coin.fromPartial(object.equivalentStakedAmount) : undefined;
-    return message;
-  },
-  fromSDK(object: SuperfluidDelegationRecordSDKType): SuperfluidDelegationRecord {
-    return {
-      delegatorAddress: object?.delegator_address,
-      validatorAddress: object?.validator_address,
-      delegationAmount: object.delegation_amount ? Coin.fromSDK(object.delegation_amount) : undefined,
-      equivalentStakedAmount: object.equivalent_staked_amount ? Coin.fromSDK(object.equivalent_staked_amount) : undefined
-    };
-  },
-  toSDK(message: SuperfluidDelegationRecord): SuperfluidDelegationRecordSDKType {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    message.delegationAmount !== undefined && (obj.delegation_amount = message.delegationAmount ? Coin.toSDK(message.delegationAmount) : undefined);
-    message.equivalentStakedAmount !== undefined && (obj.equivalent_staked_amount = message.equivalentStakedAmount ? Coin.toSDK(message.equivalentStakedAmount) : undefined);
-    return obj;
-  },
-  fromAmino(object: SuperfluidDelegationRecordAmino): SuperfluidDelegationRecord {
-    return {
-      delegatorAddress: object.delegator_address,
-      validatorAddress: object.validator_address,
-      delegationAmount: object?.delegation_amount ? Coin.fromAmino(object.delegation_amount) : undefined,
-      equivalentStakedAmount: object?.equivalent_staked_amount ? Coin.fromAmino(object.equivalent_staked_amount) : undefined
-    };
-  },
-  toAmino(message: SuperfluidDelegationRecord): SuperfluidDelegationRecordAmino {
-    const obj: any = {};
-    obj.delegator_address = message.delegatorAddress;
-    obj.validator_address = message.validatorAddress;
-    obj.delegation_amount = message.delegationAmount ? Coin.toAmino(message.delegationAmount) : undefined;
-    obj.equivalent_staked_amount = message.equivalentStakedAmount ? Coin.toAmino(message.equivalentStakedAmount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SuperfluidDelegationRecordAminoMsg): SuperfluidDelegationRecord {
-    return SuperfluidDelegationRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: SuperfluidDelegationRecord): SuperfluidDelegationRecordAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegation-record",
-      value: SuperfluidDelegationRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SuperfluidDelegationRecordProtoMsg): SuperfluidDelegationRecord {
-    return SuperfluidDelegationRecord.decode(message.value);
-  },
-  toProto(message: SuperfluidDelegationRecord): Uint8Array {
-    return SuperfluidDelegationRecord.encode(message).finish();
-  },
-  toProtoMsg(message: SuperfluidDelegationRecord): SuperfluidDelegationRecordProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.SuperfluidDelegationRecord",
-      value: SuperfluidDelegationRecord.encode(message).finish()
-    };
-  }
-};
-function createBaseLockIdIntermediaryAccountConnection(): LockIdIntermediaryAccountConnection {
-  return {
-    lockId: BigInt(0),
-    intermediaryAccount: ""
-  };
-}
-export const LockIdIntermediaryAccountConnection = {
-  typeUrl: "/osmosis.superfluid.LockIdIntermediaryAccountConnection",
-  aminoType: "osmosis/lock-id-intermediary-account-connection",
-  encode(message: LockIdIntermediaryAccountConnection, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.lockId);
-    }
-    if (message.intermediaryAccount !== "") {
-      writer.uint32(18).string(message.intermediaryAccount);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LockIdIntermediaryAccountConnection {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLockIdIntermediaryAccountConnection();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.lockId = reader.uint64();
-          break;
-        case 2:
-          message.intermediaryAccount = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LockIdIntermediaryAccountConnection {
-    return {
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0),
-      intermediaryAccount: isSet(object.intermediaryAccount) ? String(object.intermediaryAccount) : ""
-    };
-  },
-  toJSON(message: LockIdIntermediaryAccountConnection): unknown {
-    const obj: any = {};
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    message.intermediaryAccount !== undefined && (obj.intermediaryAccount = message.intermediaryAccount);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LockIdIntermediaryAccountConnection>): LockIdIntermediaryAccountConnection {
-    const message = createBaseLockIdIntermediaryAccountConnection();
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    message.intermediaryAccount = object.intermediaryAccount ?? "";
-    return message;
-  },
-  fromSDK(object: LockIdIntermediaryAccountConnectionSDKType): LockIdIntermediaryAccountConnection {
-    return {
-      lockId: object?.lock_id,
-      intermediaryAccount: object?.intermediary_account
-    };
-  },
-  toSDK(message: LockIdIntermediaryAccountConnection): LockIdIntermediaryAccountConnectionSDKType {
-    const obj: any = {};
-    obj.lock_id = message.lockId;
-    obj.intermediary_account = message.intermediaryAccount;
-    return obj;
-  },
-  fromAmino(object: LockIdIntermediaryAccountConnectionAmino): LockIdIntermediaryAccountConnection {
-    return {
-      lockId: BigInt(object.lock_id),
-      intermediaryAccount: object.intermediary_account
-    };
-  },
-  toAmino(message: LockIdIntermediaryAccountConnection): LockIdIntermediaryAccountConnectionAmino {
-    const obj: any = {};
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    obj.intermediary_account = message.intermediaryAccount;
-    return obj;
-  },
-  fromAminoMsg(object: LockIdIntermediaryAccountConnectionAminoMsg): LockIdIntermediaryAccountConnection {
-    return LockIdIntermediaryAccountConnection.fromAmino(object.value);
-  },
-  toAminoMsg(message: LockIdIntermediaryAccountConnection): LockIdIntermediaryAccountConnectionAminoMsg {
-    return {
-      type: "osmosis/lock-id-intermediary-account-connection",
-      value: LockIdIntermediaryAccountConnection.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: LockIdIntermediaryAccountConnectionProtoMsg): LockIdIntermediaryAccountConnection {
-    return LockIdIntermediaryAccountConnection.decode(message.value);
-  },
-  toProto(message: LockIdIntermediaryAccountConnection): Uint8Array {
-    return LockIdIntermediaryAccountConnection.encode(message).finish();
-  },
-  toProtoMsg(message: LockIdIntermediaryAccountConnection): LockIdIntermediaryAccountConnectionProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.LockIdIntermediaryAccountConnection",
-      value: LockIdIntermediaryAccountConnection.encode(message).finish()
-    };
-  }
-};
-function createBaseUnpoolWhitelistedPools(): UnpoolWhitelistedPools {
-  return {
-    ids: []
-  };
-}
-export const UnpoolWhitelistedPools = {
-  typeUrl: "/osmosis.superfluid.UnpoolWhitelistedPools",
-  aminoType: "osmosis/unpool-whitelisted-pools",
-  encode(message: UnpoolWhitelistedPools, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.ids) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UnpoolWhitelistedPools {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUnpoolWhitelistedPools();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.ids.push(reader.uint64());
-            }
-          } else {
-            message.ids.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UnpoolWhitelistedPools {
-    return {
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: UnpoolWhitelistedPools): unknown {
-    const obj: any = {};
-    if (message.ids) {
-      obj.ids = message.ids.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.ids = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UnpoolWhitelistedPools>): UnpoolWhitelistedPools {
-    const message = createBaseUnpoolWhitelistedPools();
-    message.ids = object.ids?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: UnpoolWhitelistedPoolsSDKType): UnpoolWhitelistedPools {
-    return {
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: UnpoolWhitelistedPools): UnpoolWhitelistedPoolsSDKType {
-    const obj: any = {};
-    if (message.ids) {
-      obj.ids = message.ids.map(e => e);
-    } else {
-      obj.ids = [];
-    }
-    return obj;
-  },
-  fromAmino(object: UnpoolWhitelistedPoolsAmino): UnpoolWhitelistedPools {
-    return {
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: UnpoolWhitelistedPools): UnpoolWhitelistedPoolsAmino {
-    const obj: any = {};
-    if (message.ids) {
-      obj.ids = message.ids.map(e => e.toString());
-    } else {
-      obj.ids = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: UnpoolWhitelistedPoolsAminoMsg): UnpoolWhitelistedPools {
-    return UnpoolWhitelistedPools.fromAmino(object.value);
-  },
-  toAminoMsg(message: UnpoolWhitelistedPools): UnpoolWhitelistedPoolsAminoMsg {
-    return {
-      type: "osmosis/unpool-whitelisted-pools",
-      value: UnpoolWhitelistedPools.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UnpoolWhitelistedPoolsProtoMsg): UnpoolWhitelistedPools {
-    return UnpoolWhitelistedPools.decode(message.value);
-  },
-  toProto(message: UnpoolWhitelistedPools): Uint8Array {
-    return UnpoolWhitelistedPools.encode(message).finish();
-  },
-  toProtoMsg(message: UnpoolWhitelistedPools): UnpoolWhitelistedPoolsProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.UnpoolWhitelistedPools",
-      value: UnpoolWhitelistedPools.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/tx.amino.ts b/examples/injective/src/codegen/osmosis/superfluid/tx.amino.ts
deleted file mode 100644
index fc075cfe..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/tx.amino.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { MsgSuperfluidDelegate, MsgSuperfluidUndelegate, MsgSuperfluidUnbondLock, MsgLockAndSuperfluidDelegate, MsgUnPoolWhitelistedPool } from "./tx";
-export const AminoConverter = {
-  "/osmosis.superfluid.MsgSuperfluidDelegate": {
-    aminoType: "osmosis/superfluid-delegate",
-    toAmino: MsgSuperfluidDelegate.toAmino,
-    fromAmino: MsgSuperfluidDelegate.fromAmino
-  },
-  "/osmosis.superfluid.MsgSuperfluidUndelegate": {
-    aminoType: "osmosis/superfluid-undelegate",
-    toAmino: MsgSuperfluidUndelegate.toAmino,
-    fromAmino: MsgSuperfluidUndelegate.fromAmino
-  },
-  "/osmosis.superfluid.MsgSuperfluidUnbondLock": {
-    aminoType: "osmosis/superfluid-unbond-lock",
-    toAmino: MsgSuperfluidUnbondLock.toAmino,
-    fromAmino: MsgSuperfluidUnbondLock.fromAmino
-  },
-  "/osmosis.superfluid.MsgLockAndSuperfluidDelegate": {
-    aminoType: "osmosis/lock-and-superfluid-delegate",
-    toAmino: MsgLockAndSuperfluidDelegate.toAmino,
-    fromAmino: MsgLockAndSuperfluidDelegate.fromAmino
-  },
-  "/osmosis.superfluid.MsgUnPoolWhitelistedPool": {
-    aminoType: "osmosis/unpool-whitelisted-pool",
-    toAmino: MsgUnPoolWhitelistedPool.toAmino,
-    fromAmino: MsgUnPoolWhitelistedPool.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/tx.registry.ts b/examples/injective/src/codegen/osmosis/superfluid/tx.registry.ts
deleted file mode 100644
index 9d38481f..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/tx.registry.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgSuperfluidDelegate, MsgSuperfluidUndelegate, MsgSuperfluidUnbondLock, MsgLockAndSuperfluidDelegate, MsgUnPoolWhitelistedPool } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.superfluid.MsgSuperfluidDelegate", MsgSuperfluidDelegate], ["/osmosis.superfluid.MsgSuperfluidUndelegate", MsgSuperfluidUndelegate], ["/osmosis.superfluid.MsgSuperfluidUnbondLock", MsgSuperfluidUnbondLock], ["/osmosis.superfluid.MsgLockAndSuperfluidDelegate", MsgLockAndSuperfluidDelegate], ["/osmosis.superfluid.MsgUnPoolWhitelistedPool", MsgUnPoolWhitelistedPool]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    superfluidDelegate(value: MsgSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-        value: MsgSuperfluidDelegate.encode(value).finish()
-      };
-    },
-    superfluidUndelegate(value: MsgSuperfluidUndelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-        value: MsgSuperfluidUndelegate.encode(value).finish()
-      };
-    },
-    superfluidUnbondLock(value: MsgSuperfluidUnbondLock) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-        value: MsgSuperfluidUnbondLock.encode(value).finish()
-      };
-    },
-    lockAndSuperfluidDelegate(value: MsgLockAndSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-        value: MsgLockAndSuperfluidDelegate.encode(value).finish()
-      };
-    },
-    unPoolWhitelistedPool(value: MsgUnPoolWhitelistedPool) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-        value: MsgUnPoolWhitelistedPool.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    superfluidDelegate(value: MsgSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-        value
-      };
-    },
-    superfluidUndelegate(value: MsgSuperfluidUndelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-        value
-      };
-    },
-    superfluidUnbondLock(value: MsgSuperfluidUnbondLock) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-        value
-      };
-    },
-    lockAndSuperfluidDelegate(value: MsgLockAndSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-        value
-      };
-    },
-    unPoolWhitelistedPool(value: MsgUnPoolWhitelistedPool) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-        value
-      };
-    }
-  },
-  toJSON: {
-    superfluidDelegate(value: MsgSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-        value: MsgSuperfluidDelegate.toJSON(value)
-      };
-    },
-    superfluidUndelegate(value: MsgSuperfluidUndelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-        value: MsgSuperfluidUndelegate.toJSON(value)
-      };
-    },
-    superfluidUnbondLock(value: MsgSuperfluidUnbondLock) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-        value: MsgSuperfluidUnbondLock.toJSON(value)
-      };
-    },
-    lockAndSuperfluidDelegate(value: MsgLockAndSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-        value: MsgLockAndSuperfluidDelegate.toJSON(value)
-      };
-    },
-    unPoolWhitelistedPool(value: MsgUnPoolWhitelistedPool) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-        value: MsgUnPoolWhitelistedPool.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    superfluidDelegate(value: any) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-        value: MsgSuperfluidDelegate.fromJSON(value)
-      };
-    },
-    superfluidUndelegate(value: any) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-        value: MsgSuperfluidUndelegate.fromJSON(value)
-      };
-    },
-    superfluidUnbondLock(value: any) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-        value: MsgSuperfluidUnbondLock.fromJSON(value)
-      };
-    },
-    lockAndSuperfluidDelegate(value: any) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-        value: MsgLockAndSuperfluidDelegate.fromJSON(value)
-      };
-    },
-    unPoolWhitelistedPool(value: any) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-        value: MsgUnPoolWhitelistedPool.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    superfluidDelegate(value: MsgSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-        value: MsgSuperfluidDelegate.fromPartial(value)
-      };
-    },
-    superfluidUndelegate(value: MsgSuperfluidUndelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-        value: MsgSuperfluidUndelegate.fromPartial(value)
-      };
-    },
-    superfluidUnbondLock(value: MsgSuperfluidUnbondLock) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-        value: MsgSuperfluidUnbondLock.fromPartial(value)
-      };
-    },
-    lockAndSuperfluidDelegate(value: MsgLockAndSuperfluidDelegate) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-        value: MsgLockAndSuperfluidDelegate.fromPartial(value)
-      };
-    },
-    unPoolWhitelistedPool(value: MsgUnPoolWhitelistedPool) {
-      return {
-        typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-        value: MsgUnPoolWhitelistedPool.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/superfluid/tx.rpc.msg.ts
deleted file mode 100644
index 49656317..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/tx.rpc.msg.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Rpc } from "../../helpers";
-import { BinaryReader } from "../../binary";
-import { MsgSuperfluidDelegate, MsgSuperfluidDelegateResponse, MsgSuperfluidUndelegate, MsgSuperfluidUndelegateResponse, MsgSuperfluidUnbondLock, MsgSuperfluidUnbondLockResponse, MsgLockAndSuperfluidDelegate, MsgLockAndSuperfluidDelegateResponse, MsgUnPoolWhitelistedPool, MsgUnPoolWhitelistedPoolResponse } from "./tx";
-/** Msg defines the Msg service. */
-export interface Msg {
-  /** Execute superfluid delegation for a lockup */
-  superfluidDelegate(request: MsgSuperfluidDelegate): Promise<MsgSuperfluidDelegateResponse>;
-  /** Execute superfluid undelegation for a lockup */
-  superfluidUndelegate(request: MsgSuperfluidUndelegate): Promise<MsgSuperfluidUndelegateResponse>;
-  /**
-   * For a given lock that is being superfluidly undelegated,
-   * also unbond the underlying lock.
-   */
-  superfluidUnbondLock(request: MsgSuperfluidUnbondLock): Promise<MsgSuperfluidUnbondLockResponse>;
-  /** Execute lockup lock and superfluid delegation in a single msg */
-  lockAndSuperfluidDelegate(request: MsgLockAndSuperfluidDelegate): Promise<MsgLockAndSuperfluidDelegateResponse>;
-  unPoolWhitelistedPool(request: MsgUnPoolWhitelistedPool): Promise<MsgUnPoolWhitelistedPoolResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.superfluidDelegate = this.superfluidDelegate.bind(this);
-    this.superfluidUndelegate = this.superfluidUndelegate.bind(this);
-    this.superfluidUnbondLock = this.superfluidUnbondLock.bind(this);
-    this.lockAndSuperfluidDelegate = this.lockAndSuperfluidDelegate.bind(this);
-    this.unPoolWhitelistedPool = this.unPoolWhitelistedPool.bind(this);
-  }
-  superfluidDelegate(request: MsgSuperfluidDelegate): Promise<MsgSuperfluidDelegateResponse> {
-    const data = MsgSuperfluidDelegate.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Msg", "SuperfluidDelegate", data);
-    return promise.then(data => MsgSuperfluidDelegateResponse.decode(new BinaryReader(data)));
-  }
-  superfluidUndelegate(request: MsgSuperfluidUndelegate): Promise<MsgSuperfluidUndelegateResponse> {
-    const data = MsgSuperfluidUndelegate.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Msg", "SuperfluidUndelegate", data);
-    return promise.then(data => MsgSuperfluidUndelegateResponse.decode(new BinaryReader(data)));
-  }
-  superfluidUnbondLock(request: MsgSuperfluidUnbondLock): Promise<MsgSuperfluidUnbondLockResponse> {
-    const data = MsgSuperfluidUnbondLock.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Msg", "SuperfluidUnbondLock", data);
-    return promise.then(data => MsgSuperfluidUnbondLockResponse.decode(new BinaryReader(data)));
-  }
-  lockAndSuperfluidDelegate(request: MsgLockAndSuperfluidDelegate): Promise<MsgLockAndSuperfluidDelegateResponse> {
-    const data = MsgLockAndSuperfluidDelegate.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Msg", "LockAndSuperfluidDelegate", data);
-    return promise.then(data => MsgLockAndSuperfluidDelegateResponse.decode(new BinaryReader(data)));
-  }
-  unPoolWhitelistedPool(request: MsgUnPoolWhitelistedPool): Promise<MsgUnPoolWhitelistedPoolResponse> {
-    const data = MsgUnPoolWhitelistedPool.encode(request).finish();
-    const promise = this.rpc.request("osmosis.superfluid.Msg", "UnPoolWhitelistedPool", data);
-    return promise.then(data => MsgUnPoolWhitelistedPoolResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/tx.ts b/examples/injective/src/codegen/osmosis/superfluid/tx.ts
deleted file mode 100644
index 65b3021b..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/tx.ts
+++ /dev/null
@@ -1,1178 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-export interface MsgSuperfluidDelegate {
-  sender: string;
-  lockId: bigint;
-  valAddr: string;
-}
-export interface MsgSuperfluidDelegateProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidDelegateAmino {
-  sender: string;
-  lock_id: string;
-  val_addr: string;
-}
-export interface MsgSuperfluidDelegateAminoMsg {
-  type: "osmosis/superfluid-delegate";
-  value: MsgSuperfluidDelegateAmino;
-}
-export interface MsgSuperfluidDelegateSDKType {
-  sender: string;
-  lock_id: bigint;
-  val_addr: string;
-}
-export interface MsgSuperfluidDelegateResponse {}
-export interface MsgSuperfluidDelegateResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegateResponse";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidDelegateResponseAmino {}
-export interface MsgSuperfluidDelegateResponseAminoMsg {
-  type: "osmosis/superfluid-delegate-response";
-  value: MsgSuperfluidDelegateResponseAmino;
-}
-export interface MsgSuperfluidDelegateResponseSDKType {}
-export interface MsgSuperfluidUndelegate {
-  sender: string;
-  lockId: bigint;
-}
-export interface MsgSuperfluidUndelegateProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidUndelegateAmino {
-  sender: string;
-  lock_id: string;
-}
-export interface MsgSuperfluidUndelegateAminoMsg {
-  type: "osmosis/superfluid-undelegate";
-  value: MsgSuperfluidUndelegateAmino;
-}
-export interface MsgSuperfluidUndelegateSDKType {
-  sender: string;
-  lock_id: bigint;
-}
-export interface MsgSuperfluidUndelegateResponse {}
-export interface MsgSuperfluidUndelegateResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegateResponse";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidUndelegateResponseAmino {}
-export interface MsgSuperfluidUndelegateResponseAminoMsg {
-  type: "osmosis/superfluid-undelegate-response";
-  value: MsgSuperfluidUndelegateResponseAmino;
-}
-export interface MsgSuperfluidUndelegateResponseSDKType {}
-export interface MsgSuperfluidUnbondLock {
-  sender: string;
-  lockId: bigint;
-}
-export interface MsgSuperfluidUnbondLockProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidUnbondLockAmino {
-  sender: string;
-  lock_id: string;
-}
-export interface MsgSuperfluidUnbondLockAminoMsg {
-  type: "osmosis/superfluid-unbond-lock";
-  value: MsgSuperfluidUnbondLockAmino;
-}
-export interface MsgSuperfluidUnbondLockSDKType {
-  sender: string;
-  lock_id: bigint;
-}
-export interface MsgSuperfluidUnbondLockResponse {}
-export interface MsgSuperfluidUnbondLockResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLockResponse";
-  value: Uint8Array;
-}
-export interface MsgSuperfluidUnbondLockResponseAmino {}
-export interface MsgSuperfluidUnbondLockResponseAminoMsg {
-  type: "osmosis/superfluid-unbond-lock-response";
-  value: MsgSuperfluidUnbondLockResponseAmino;
-}
-export interface MsgSuperfluidUnbondLockResponseSDKType {}
-/**
- * MsgLockAndSuperfluidDelegate locks coins with the unbonding period duration,
- * and then does a superfluid lock from the newly created lockup, to the
- * specified validator addr.
- */
-export interface MsgLockAndSuperfluidDelegate {
-  sender: string;
-  coins: Coin[];
-  valAddr: string;
-}
-export interface MsgLockAndSuperfluidDelegateProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate";
-  value: Uint8Array;
-}
-/**
- * MsgLockAndSuperfluidDelegate locks coins with the unbonding period duration,
- * and then does a superfluid lock from the newly created lockup, to the
- * specified validator addr.
- */
-export interface MsgLockAndSuperfluidDelegateAmino {
-  sender: string;
-  coins: CoinAmino[];
-  val_addr: string;
-}
-export interface MsgLockAndSuperfluidDelegateAminoMsg {
-  type: "osmosis/lock-and-superfluid-delegate";
-  value: MsgLockAndSuperfluidDelegateAmino;
-}
-/**
- * MsgLockAndSuperfluidDelegate locks coins with the unbonding period duration,
- * and then does a superfluid lock from the newly created lockup, to the
- * specified validator addr.
- */
-export interface MsgLockAndSuperfluidDelegateSDKType {
-  sender: string;
-  coins: CoinSDKType[];
-  val_addr: string;
-}
-export interface MsgLockAndSuperfluidDelegateResponse {
-  ID: bigint;
-}
-export interface MsgLockAndSuperfluidDelegateResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegateResponse";
-  value: Uint8Array;
-}
-export interface MsgLockAndSuperfluidDelegateResponseAmino {
-  ID: string;
-}
-export interface MsgLockAndSuperfluidDelegateResponseAminoMsg {
-  type: "osmosis/lock-and-superfluid-delegate-response";
-  value: MsgLockAndSuperfluidDelegateResponseAmino;
-}
-export interface MsgLockAndSuperfluidDelegateResponseSDKType {
-  ID: bigint;
-}
-/**
- * MsgUnPoolWhitelistedPool Unpools every lock the sender has, that is
- * associated with pool pool_id. If pool_id is not approved for unpooling by
- * governance, this is a no-op. Unpooling takes the locked gamm shares, and runs
- * "ExitPool" on it, to get the constituent tokens. e.g. z gamm/pool/1 tokens
- * ExitPools into constituent tokens x uatom, y uosmo. Then it creates a new
- * lock for every constituent token, with the duration associated with the lock.
- * If the lock was unbonding, the new lockup durations should be the time left
- * until unbond completion.
- */
-export interface MsgUnPoolWhitelistedPool {
-  sender: string;
-  poolId: bigint;
-}
-export interface MsgUnPoolWhitelistedPoolProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool";
-  value: Uint8Array;
-}
-/**
- * MsgUnPoolWhitelistedPool Unpools every lock the sender has, that is
- * associated with pool pool_id. If pool_id is not approved for unpooling by
- * governance, this is a no-op. Unpooling takes the locked gamm shares, and runs
- * "ExitPool" on it, to get the constituent tokens. e.g. z gamm/pool/1 tokens
- * ExitPools into constituent tokens x uatom, y uosmo. Then it creates a new
- * lock for every constituent token, with the duration associated with the lock.
- * If the lock was unbonding, the new lockup durations should be the time left
- * until unbond completion.
- */
-export interface MsgUnPoolWhitelistedPoolAmino {
-  sender: string;
-  pool_id: string;
-}
-export interface MsgUnPoolWhitelistedPoolAminoMsg {
-  type: "osmosis/unpool-whitelisted-pool";
-  value: MsgUnPoolWhitelistedPoolAmino;
-}
-/**
- * MsgUnPoolWhitelistedPool Unpools every lock the sender has, that is
- * associated with pool pool_id. If pool_id is not approved for unpooling by
- * governance, this is a no-op. Unpooling takes the locked gamm shares, and runs
- * "ExitPool" on it, to get the constituent tokens. e.g. z gamm/pool/1 tokens
- * ExitPools into constituent tokens x uatom, y uosmo. Then it creates a new
- * lock for every constituent token, with the duration associated with the lock.
- * If the lock was unbonding, the new lockup durations should be the time left
- * until unbond completion.
- */
-export interface MsgUnPoolWhitelistedPoolSDKType {
-  sender: string;
-  pool_id: bigint;
-}
-export interface MsgUnPoolWhitelistedPoolResponse {
-  exitedLockIds: bigint[];
-}
-export interface MsgUnPoolWhitelistedPoolResponseProtoMsg {
-  typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPoolResponse";
-  value: Uint8Array;
-}
-export interface MsgUnPoolWhitelistedPoolResponseAmino {
-  exited_lock_ids: string[];
-}
-export interface MsgUnPoolWhitelistedPoolResponseAminoMsg {
-  type: "osmosis/un-pool-whitelisted-pool-response";
-  value: MsgUnPoolWhitelistedPoolResponseAmino;
-}
-export interface MsgUnPoolWhitelistedPoolResponseSDKType {
-  exited_lock_ids: bigint[];
-}
-function createBaseMsgSuperfluidDelegate(): MsgSuperfluidDelegate {
-  return {
-    sender: "",
-    lockId: BigInt(0),
-    valAddr: ""
-  };
-}
-export const MsgSuperfluidDelegate = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-  aminoType: "osmosis/superfluid-delegate",
-  encode(message: MsgSuperfluidDelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.lockId);
-    }
-    if (message.valAddr !== "") {
-      writer.uint32(26).string(message.valAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidDelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidDelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.lockId = reader.uint64();
-          break;
-        case 3:
-          message.valAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSuperfluidDelegate {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0),
-      valAddr: isSet(object.valAddr) ? String(object.valAddr) : ""
-    };
-  },
-  toJSON(message: MsgSuperfluidDelegate): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    message.valAddr !== undefined && (obj.valAddr = message.valAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSuperfluidDelegate>): MsgSuperfluidDelegate {
-    const message = createBaseMsgSuperfluidDelegate();
-    message.sender = object.sender ?? "";
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    message.valAddr = object.valAddr ?? "";
-    return message;
-  },
-  fromSDK(object: MsgSuperfluidDelegateSDKType): MsgSuperfluidDelegate {
-    return {
-      sender: object?.sender,
-      lockId: object?.lock_id,
-      valAddr: object?.val_addr
-    };
-  },
-  toSDK(message: MsgSuperfluidDelegate): MsgSuperfluidDelegateSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId;
-    obj.val_addr = message.valAddr;
-    return obj;
-  },
-  fromAmino(object: MsgSuperfluidDelegateAmino): MsgSuperfluidDelegate {
-    return {
-      sender: object.sender,
-      lockId: BigInt(object.lock_id),
-      valAddr: object.val_addr
-    };
-  },
-  toAmino(message: MsgSuperfluidDelegate): MsgSuperfluidDelegateAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    obj.val_addr = message.valAddr;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidDelegateAminoMsg): MsgSuperfluidDelegate {
-    return MsgSuperfluidDelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidDelegate): MsgSuperfluidDelegateAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegate",
-      value: MsgSuperfluidDelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidDelegateProtoMsg): MsgSuperfluidDelegate {
-    return MsgSuperfluidDelegate.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidDelegate): Uint8Array {
-    return MsgSuperfluidDelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidDelegate): MsgSuperfluidDelegateProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegate",
-      value: MsgSuperfluidDelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSuperfluidDelegateResponse(): MsgSuperfluidDelegateResponse {
-  return {};
-}
-export const MsgSuperfluidDelegateResponse = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegateResponse",
-  aminoType: "osmosis/superfluid-delegate-response",
-  encode(_: MsgSuperfluidDelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidDelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidDelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSuperfluidDelegateResponse {
-    return {};
-  },
-  toJSON(_: MsgSuperfluidDelegateResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSuperfluidDelegateResponse>): MsgSuperfluidDelegateResponse {
-    const message = createBaseMsgSuperfluidDelegateResponse();
-    return message;
-  },
-  fromSDK(_: MsgSuperfluidDelegateResponseSDKType): MsgSuperfluidDelegateResponse {
-    return {};
-  },
-  toSDK(_: MsgSuperfluidDelegateResponse): MsgSuperfluidDelegateResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSuperfluidDelegateResponseAmino): MsgSuperfluidDelegateResponse {
-    return {};
-  },
-  toAmino(_: MsgSuperfluidDelegateResponse): MsgSuperfluidDelegateResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidDelegateResponseAminoMsg): MsgSuperfluidDelegateResponse {
-    return MsgSuperfluidDelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidDelegateResponse): MsgSuperfluidDelegateResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-delegate-response",
-      value: MsgSuperfluidDelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidDelegateResponseProtoMsg): MsgSuperfluidDelegateResponse {
-    return MsgSuperfluidDelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidDelegateResponse): Uint8Array {
-    return MsgSuperfluidDelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidDelegateResponse): MsgSuperfluidDelegateResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidDelegateResponse",
-      value: MsgSuperfluidDelegateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSuperfluidUndelegate(): MsgSuperfluidUndelegate {
-  return {
-    sender: "",
-    lockId: BigInt(0)
-  };
-}
-export const MsgSuperfluidUndelegate = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-  aminoType: "osmosis/superfluid-undelegate",
-  encode(message: MsgSuperfluidUndelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.lockId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidUndelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidUndelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.lockId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSuperfluidUndelegate {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgSuperfluidUndelegate): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSuperfluidUndelegate>): MsgSuperfluidUndelegate {
-    const message = createBaseMsgSuperfluidUndelegate();
-    message.sender = object.sender ?? "";
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgSuperfluidUndelegateSDKType): MsgSuperfluidUndelegate {
-    return {
-      sender: object?.sender,
-      lockId: object?.lock_id
-    };
-  },
-  toSDK(message: MsgSuperfluidUndelegate): MsgSuperfluidUndelegateSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId;
-    return obj;
-  },
-  fromAmino(object: MsgSuperfluidUndelegateAmino): MsgSuperfluidUndelegate {
-    return {
-      sender: object.sender,
-      lockId: BigInt(object.lock_id)
-    };
-  },
-  toAmino(message: MsgSuperfluidUndelegate): MsgSuperfluidUndelegateAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidUndelegateAminoMsg): MsgSuperfluidUndelegate {
-    return MsgSuperfluidUndelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidUndelegate): MsgSuperfluidUndelegateAminoMsg {
-    return {
-      type: "osmosis/superfluid-undelegate",
-      value: MsgSuperfluidUndelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidUndelegateProtoMsg): MsgSuperfluidUndelegate {
-    return MsgSuperfluidUndelegate.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidUndelegate): Uint8Array {
-    return MsgSuperfluidUndelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidUndelegate): MsgSuperfluidUndelegateProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegate",
-      value: MsgSuperfluidUndelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSuperfluidUndelegateResponse(): MsgSuperfluidUndelegateResponse {
-  return {};
-}
-export const MsgSuperfluidUndelegateResponse = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegateResponse",
-  aminoType: "osmosis/superfluid-undelegate-response",
-  encode(_: MsgSuperfluidUndelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidUndelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidUndelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSuperfluidUndelegateResponse {
-    return {};
-  },
-  toJSON(_: MsgSuperfluidUndelegateResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSuperfluidUndelegateResponse>): MsgSuperfluidUndelegateResponse {
-    const message = createBaseMsgSuperfluidUndelegateResponse();
-    return message;
-  },
-  fromSDK(_: MsgSuperfluidUndelegateResponseSDKType): MsgSuperfluidUndelegateResponse {
-    return {};
-  },
-  toSDK(_: MsgSuperfluidUndelegateResponse): MsgSuperfluidUndelegateResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSuperfluidUndelegateResponseAmino): MsgSuperfluidUndelegateResponse {
-    return {};
-  },
-  toAmino(_: MsgSuperfluidUndelegateResponse): MsgSuperfluidUndelegateResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidUndelegateResponseAminoMsg): MsgSuperfluidUndelegateResponse {
-    return MsgSuperfluidUndelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidUndelegateResponse): MsgSuperfluidUndelegateResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-undelegate-response",
-      value: MsgSuperfluidUndelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidUndelegateResponseProtoMsg): MsgSuperfluidUndelegateResponse {
-    return MsgSuperfluidUndelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidUndelegateResponse): Uint8Array {
-    return MsgSuperfluidUndelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidUndelegateResponse): MsgSuperfluidUndelegateResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidUndelegateResponse",
-      value: MsgSuperfluidUndelegateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSuperfluidUnbondLock(): MsgSuperfluidUnbondLock {
-  return {
-    sender: "",
-    lockId: BigInt(0)
-  };
-}
-export const MsgSuperfluidUnbondLock = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-  aminoType: "osmosis/superfluid-unbond-lock",
-  encode(message: MsgSuperfluidUnbondLock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.lockId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.lockId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidUnbondLock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidUnbondLock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.lockId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSuperfluidUnbondLock {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      lockId: isSet(object.lockId) ? BigInt(object.lockId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgSuperfluidUnbondLock): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.lockId !== undefined && (obj.lockId = (message.lockId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSuperfluidUnbondLock>): MsgSuperfluidUnbondLock {
-    const message = createBaseMsgSuperfluidUnbondLock();
-    message.sender = object.sender ?? "";
-    message.lockId = object.lockId !== undefined && object.lockId !== null ? BigInt(object.lockId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgSuperfluidUnbondLockSDKType): MsgSuperfluidUnbondLock {
-    return {
-      sender: object?.sender,
-      lockId: object?.lock_id
-    };
-  },
-  toSDK(message: MsgSuperfluidUnbondLock): MsgSuperfluidUnbondLockSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId;
-    return obj;
-  },
-  fromAmino(object: MsgSuperfluidUnbondLockAmino): MsgSuperfluidUnbondLock {
-    return {
-      sender: object.sender,
-      lockId: BigInt(object.lock_id)
-    };
-  },
-  toAmino(message: MsgSuperfluidUnbondLock): MsgSuperfluidUnbondLockAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.lock_id = message.lockId ? message.lockId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidUnbondLockAminoMsg): MsgSuperfluidUnbondLock {
-    return MsgSuperfluidUnbondLock.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidUnbondLock): MsgSuperfluidUnbondLockAminoMsg {
-    return {
-      type: "osmosis/superfluid-unbond-lock",
-      value: MsgSuperfluidUnbondLock.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidUnbondLockProtoMsg): MsgSuperfluidUnbondLock {
-    return MsgSuperfluidUnbondLock.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidUnbondLock): Uint8Array {
-    return MsgSuperfluidUnbondLock.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidUnbondLock): MsgSuperfluidUnbondLockProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLock",
-      value: MsgSuperfluidUnbondLock.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSuperfluidUnbondLockResponse(): MsgSuperfluidUnbondLockResponse {
-  return {};
-}
-export const MsgSuperfluidUnbondLockResponse = {
-  typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLockResponse",
-  aminoType: "osmosis/superfluid-unbond-lock-response",
-  encode(_: MsgSuperfluidUnbondLockResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSuperfluidUnbondLockResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSuperfluidUnbondLockResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSuperfluidUnbondLockResponse {
-    return {};
-  },
-  toJSON(_: MsgSuperfluidUnbondLockResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSuperfluidUnbondLockResponse>): MsgSuperfluidUnbondLockResponse {
-    const message = createBaseMsgSuperfluidUnbondLockResponse();
-    return message;
-  },
-  fromSDK(_: MsgSuperfluidUnbondLockResponseSDKType): MsgSuperfluidUnbondLockResponse {
-    return {};
-  },
-  toSDK(_: MsgSuperfluidUnbondLockResponse): MsgSuperfluidUnbondLockResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSuperfluidUnbondLockResponseAmino): MsgSuperfluidUnbondLockResponse {
-    return {};
-  },
-  toAmino(_: MsgSuperfluidUnbondLockResponse): MsgSuperfluidUnbondLockResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSuperfluidUnbondLockResponseAminoMsg): MsgSuperfluidUnbondLockResponse {
-    return MsgSuperfluidUnbondLockResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSuperfluidUnbondLockResponse): MsgSuperfluidUnbondLockResponseAminoMsg {
-    return {
-      type: "osmosis/superfluid-unbond-lock-response",
-      value: MsgSuperfluidUnbondLockResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSuperfluidUnbondLockResponseProtoMsg): MsgSuperfluidUnbondLockResponse {
-    return MsgSuperfluidUnbondLockResponse.decode(message.value);
-  },
-  toProto(message: MsgSuperfluidUnbondLockResponse): Uint8Array {
-    return MsgSuperfluidUnbondLockResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSuperfluidUnbondLockResponse): MsgSuperfluidUnbondLockResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgSuperfluidUnbondLockResponse",
-      value: MsgSuperfluidUnbondLockResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgLockAndSuperfluidDelegate(): MsgLockAndSuperfluidDelegate {
-  return {
-    sender: "",
-    coins: [],
-    valAddr: ""
-  };
-}
-export const MsgLockAndSuperfluidDelegate = {
-  typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-  aminoType: "osmosis/lock-and-superfluid-delegate",
-  encode(message: MsgLockAndSuperfluidDelegate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    for (const v of message.coins) {
-      Coin.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.valAddr !== "") {
-      writer.uint32(26).string(message.valAddr);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLockAndSuperfluidDelegate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLockAndSuperfluidDelegate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.coins.push(Coin.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.valAddr = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgLockAndSuperfluidDelegate {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromJSON(e)) : [],
-      valAddr: isSet(object.valAddr) ? String(object.valAddr) : ""
-    };
-  },
-  toJSON(message: MsgLockAndSuperfluidDelegate): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    message.valAddr !== undefined && (obj.valAddr = message.valAddr);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgLockAndSuperfluidDelegate>): MsgLockAndSuperfluidDelegate {
-    const message = createBaseMsgLockAndSuperfluidDelegate();
-    message.sender = object.sender ?? "";
-    message.coins = object.coins?.map(e => Coin.fromPartial(e)) || [];
-    message.valAddr = object.valAddr ?? "";
-    return message;
-  },
-  fromSDK(object: MsgLockAndSuperfluidDelegateSDKType): MsgLockAndSuperfluidDelegate {
-    return {
-      sender: object?.sender,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromSDK(e)) : [],
-      valAddr: object?.val_addr
-    };
-  },
-  toSDK(message: MsgLockAndSuperfluidDelegate): MsgLockAndSuperfluidDelegateSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    obj.val_addr = message.valAddr;
-    return obj;
-  },
-  fromAmino(object: MsgLockAndSuperfluidDelegateAmino): MsgLockAndSuperfluidDelegate {
-    return {
-      sender: object.sender,
-      coins: Array.isArray(object?.coins) ? object.coins.map((e: any) => Coin.fromAmino(e)) : [],
-      valAddr: object.val_addr
-    };
-  },
-  toAmino(message: MsgLockAndSuperfluidDelegate): MsgLockAndSuperfluidDelegateAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    if (message.coins) {
-      obj.coins = message.coins.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.coins = [];
-    }
-    obj.val_addr = message.valAddr;
-    return obj;
-  },
-  fromAminoMsg(object: MsgLockAndSuperfluidDelegateAminoMsg): MsgLockAndSuperfluidDelegate {
-    return MsgLockAndSuperfluidDelegate.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLockAndSuperfluidDelegate): MsgLockAndSuperfluidDelegateAminoMsg {
-    return {
-      type: "osmosis/lock-and-superfluid-delegate",
-      value: MsgLockAndSuperfluidDelegate.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLockAndSuperfluidDelegateProtoMsg): MsgLockAndSuperfluidDelegate {
-    return MsgLockAndSuperfluidDelegate.decode(message.value);
-  },
-  toProto(message: MsgLockAndSuperfluidDelegate): Uint8Array {
-    return MsgLockAndSuperfluidDelegate.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLockAndSuperfluidDelegate): MsgLockAndSuperfluidDelegateProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegate",
-      value: MsgLockAndSuperfluidDelegate.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgLockAndSuperfluidDelegateResponse(): MsgLockAndSuperfluidDelegateResponse {
-  return {
-    ID: BigInt(0)
-  };
-}
-export const MsgLockAndSuperfluidDelegateResponse = {
-  typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegateResponse",
-  aminoType: "osmosis/lock-and-superfluid-delegate-response",
-  encode(message: MsgLockAndSuperfluidDelegateResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.ID !== BigInt(0)) {
-      writer.uint32(8).uint64(message.ID);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgLockAndSuperfluidDelegateResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgLockAndSuperfluidDelegateResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ID = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgLockAndSuperfluidDelegateResponse {
-    return {
-      ID: isSet(object.ID) ? BigInt(object.ID.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgLockAndSuperfluidDelegateResponse): unknown {
-    const obj: any = {};
-    message.ID !== undefined && (obj.ID = (message.ID || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgLockAndSuperfluidDelegateResponse>): MsgLockAndSuperfluidDelegateResponse {
-    const message = createBaseMsgLockAndSuperfluidDelegateResponse();
-    message.ID = object.ID !== undefined && object.ID !== null ? BigInt(object.ID.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgLockAndSuperfluidDelegateResponseSDKType): MsgLockAndSuperfluidDelegateResponse {
-    return {
-      ID: object?.ID
-    };
-  },
-  toSDK(message: MsgLockAndSuperfluidDelegateResponse): MsgLockAndSuperfluidDelegateResponseSDKType {
-    const obj: any = {};
-    obj.ID = message.ID;
-    return obj;
-  },
-  fromAmino(object: MsgLockAndSuperfluidDelegateResponseAmino): MsgLockAndSuperfluidDelegateResponse {
-    return {
-      ID: BigInt(object.ID)
-    };
-  },
-  toAmino(message: MsgLockAndSuperfluidDelegateResponse): MsgLockAndSuperfluidDelegateResponseAmino {
-    const obj: any = {};
-    obj.ID = message.ID ? message.ID.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgLockAndSuperfluidDelegateResponseAminoMsg): MsgLockAndSuperfluidDelegateResponse {
-    return MsgLockAndSuperfluidDelegateResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgLockAndSuperfluidDelegateResponse): MsgLockAndSuperfluidDelegateResponseAminoMsg {
-    return {
-      type: "osmosis/lock-and-superfluid-delegate-response",
-      value: MsgLockAndSuperfluidDelegateResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgLockAndSuperfluidDelegateResponseProtoMsg): MsgLockAndSuperfluidDelegateResponse {
-    return MsgLockAndSuperfluidDelegateResponse.decode(message.value);
-  },
-  toProto(message: MsgLockAndSuperfluidDelegateResponse): Uint8Array {
-    return MsgLockAndSuperfluidDelegateResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgLockAndSuperfluidDelegateResponse): MsgLockAndSuperfluidDelegateResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgLockAndSuperfluidDelegateResponse",
-      value: MsgLockAndSuperfluidDelegateResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUnPoolWhitelistedPool(): MsgUnPoolWhitelistedPool {
-  return {
-    sender: "",
-    poolId: BigInt(0)
-  };
-}
-export const MsgUnPoolWhitelistedPool = {
-  typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-  aminoType: "osmosis/unpool-whitelisted-pool",
-  encode(message: MsgUnPoolWhitelistedPool, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolId);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUnPoolWhitelistedPool {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUnPoolWhitelistedPool();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.poolId = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUnPoolWhitelistedPool {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: MsgUnPoolWhitelistedPool): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUnPoolWhitelistedPool>): MsgUnPoolWhitelistedPool {
-    const message = createBaseMsgUnPoolWhitelistedPool();
-    message.sender = object.sender ?? "";
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: MsgUnPoolWhitelistedPoolSDKType): MsgUnPoolWhitelistedPool {
-    return {
-      sender: object?.sender,
-      poolId: object?.pool_id
-    };
-  },
-  toSDK(message: MsgUnPoolWhitelistedPool): MsgUnPoolWhitelistedPoolSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId;
-    return obj;
-  },
-  fromAmino(object: MsgUnPoolWhitelistedPoolAmino): MsgUnPoolWhitelistedPool {
-    return {
-      sender: object.sender,
-      poolId: BigInt(object.pool_id)
-    };
-  },
-  toAmino(message: MsgUnPoolWhitelistedPool): MsgUnPoolWhitelistedPoolAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgUnPoolWhitelistedPoolAminoMsg): MsgUnPoolWhitelistedPool {
-    return MsgUnPoolWhitelistedPool.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUnPoolWhitelistedPool): MsgUnPoolWhitelistedPoolAminoMsg {
-    return {
-      type: "osmosis/unpool-whitelisted-pool",
-      value: MsgUnPoolWhitelistedPool.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUnPoolWhitelistedPoolProtoMsg): MsgUnPoolWhitelistedPool {
-    return MsgUnPoolWhitelistedPool.decode(message.value);
-  },
-  toProto(message: MsgUnPoolWhitelistedPool): Uint8Array {
-    return MsgUnPoolWhitelistedPool.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUnPoolWhitelistedPool): MsgUnPoolWhitelistedPoolProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPool",
-      value: MsgUnPoolWhitelistedPool.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgUnPoolWhitelistedPoolResponse(): MsgUnPoolWhitelistedPoolResponse {
-  return {
-    exitedLockIds: []
-  };
-}
-export const MsgUnPoolWhitelistedPoolResponse = {
-  typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPoolResponse",
-  aminoType: "osmosis/un-pool-whitelisted-pool-response",
-  encode(message: MsgUnPoolWhitelistedPoolResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    writer.uint32(10).fork();
-    for (const v of message.exitedLockIds) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgUnPoolWhitelistedPoolResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgUnPoolWhitelistedPoolResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.exitedLockIds.push(reader.uint64());
-            }
-          } else {
-            message.exitedLockIds.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgUnPoolWhitelistedPoolResponse {
-    return {
-      exitedLockIds: Array.isArray(object?.exitedLockIds) ? object.exitedLockIds.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: MsgUnPoolWhitelistedPoolResponse): unknown {
-    const obj: any = {};
-    if (message.exitedLockIds) {
-      obj.exitedLockIds = message.exitedLockIds.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.exitedLockIds = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgUnPoolWhitelistedPoolResponse>): MsgUnPoolWhitelistedPoolResponse {
-    const message = createBaseMsgUnPoolWhitelistedPoolResponse();
-    message.exitedLockIds = object.exitedLockIds?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: MsgUnPoolWhitelistedPoolResponseSDKType): MsgUnPoolWhitelistedPoolResponse {
-    return {
-      exitedLockIds: Array.isArray(object?.exited_lock_ids) ? object.exited_lock_ids.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: MsgUnPoolWhitelistedPoolResponse): MsgUnPoolWhitelistedPoolResponseSDKType {
-    const obj: any = {};
-    if (message.exitedLockIds) {
-      obj.exited_lock_ids = message.exitedLockIds.map(e => e);
-    } else {
-      obj.exited_lock_ids = [];
-    }
-    return obj;
-  },
-  fromAmino(object: MsgUnPoolWhitelistedPoolResponseAmino): MsgUnPoolWhitelistedPoolResponse {
-    return {
-      exitedLockIds: Array.isArray(object?.exited_lock_ids) ? object.exited_lock_ids.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: MsgUnPoolWhitelistedPoolResponse): MsgUnPoolWhitelistedPoolResponseAmino {
-    const obj: any = {};
-    if (message.exitedLockIds) {
-      obj.exited_lock_ids = message.exitedLockIds.map(e => e.toString());
-    } else {
-      obj.exited_lock_ids = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: MsgUnPoolWhitelistedPoolResponseAminoMsg): MsgUnPoolWhitelistedPoolResponse {
-    return MsgUnPoolWhitelistedPoolResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgUnPoolWhitelistedPoolResponse): MsgUnPoolWhitelistedPoolResponseAminoMsg {
-    return {
-      type: "osmosis/un-pool-whitelisted-pool-response",
-      value: MsgUnPoolWhitelistedPoolResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgUnPoolWhitelistedPoolResponseProtoMsg): MsgUnPoolWhitelistedPoolResponse {
-    return MsgUnPoolWhitelistedPoolResponse.decode(message.value);
-  },
-  toProto(message: MsgUnPoolWhitelistedPoolResponse): Uint8Array {
-    return MsgUnPoolWhitelistedPoolResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgUnPoolWhitelistedPoolResponse): MsgUnPoolWhitelistedPoolResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.MsgUnPoolWhitelistedPoolResponse",
-      value: MsgUnPoolWhitelistedPoolResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/superfluid/v1beta1/gov.ts b/examples/injective/src/codegen/osmosis/superfluid/v1beta1/gov.ts
deleted file mode 100644
index 38884565..00000000
--- a/examples/injective/src/codegen/osmosis/superfluid/v1beta1/gov.ts
+++ /dev/null
@@ -1,518 +0,0 @@
-import { SuperfluidAsset, SuperfluidAssetAmino, SuperfluidAssetSDKType } from "../superfluid";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * SetSuperfluidAssetsProposal is a gov Content type to update the superfluid
- * assets
- */
-export interface SetSuperfluidAssetsProposal {
-  title: string;
-  description: string;
-  assets: SuperfluidAsset[];
-}
-export interface SetSuperfluidAssetsProposalProtoMsg {
-  typeUrl: "/osmosis.superfluid.v1beta1.SetSuperfluidAssetsProposal";
-  value: Uint8Array;
-}
-/**
- * SetSuperfluidAssetsProposal is a gov Content type to update the superfluid
- * assets
- */
-export interface SetSuperfluidAssetsProposalAmino {
-  title: string;
-  description: string;
-  assets: SuperfluidAssetAmino[];
-}
-export interface SetSuperfluidAssetsProposalAminoMsg {
-  type: "osmosis/v1beta1/set-superfluid-assets-proposal";
-  value: SetSuperfluidAssetsProposalAmino;
-}
-/**
- * SetSuperfluidAssetsProposal is a gov Content type to update the superfluid
- * assets
- */
-export interface SetSuperfluidAssetsProposalSDKType {
-  title: string;
-  description: string;
-  assets: SuperfluidAssetSDKType[];
-}
-/**
- * RemoveSuperfluidAssetsProposal is a gov Content type to remove the superfluid
- * assets by denom
- */
-export interface RemoveSuperfluidAssetsProposal {
-  title: string;
-  description: string;
-  superfluidAssetDenoms: string[];
-}
-export interface RemoveSuperfluidAssetsProposalProtoMsg {
-  typeUrl: "/osmosis.superfluid.v1beta1.RemoveSuperfluidAssetsProposal";
-  value: Uint8Array;
-}
-/**
- * RemoveSuperfluidAssetsProposal is a gov Content type to remove the superfluid
- * assets by denom
- */
-export interface RemoveSuperfluidAssetsProposalAmino {
-  title: string;
-  description: string;
-  superfluid_asset_denoms: string[];
-}
-export interface RemoveSuperfluidAssetsProposalAminoMsg {
-  type: "osmosis/v1beta1/remove-superfluid-assets-proposal";
-  value: RemoveSuperfluidAssetsProposalAmino;
-}
-/**
- * RemoveSuperfluidAssetsProposal is a gov Content type to remove the superfluid
- * assets by denom
- */
-export interface RemoveSuperfluidAssetsProposalSDKType {
-  title: string;
-  description: string;
-  superfluid_asset_denoms: string[];
-}
-/**
- * UpdateUnpoolWhiteListProposal is a gov Content type to update the
- * allowed list of pool ids.
- */
-export interface UpdateUnpoolWhiteListProposal {
-  title: string;
-  description: string;
-  ids: bigint[];
-  isOverwrite: boolean;
-}
-export interface UpdateUnpoolWhiteListProposalProtoMsg {
-  typeUrl: "/osmosis.superfluid.v1beta1.UpdateUnpoolWhiteListProposal";
-  value: Uint8Array;
-}
-/**
- * UpdateUnpoolWhiteListProposal is a gov Content type to update the
- * allowed list of pool ids.
- */
-export interface UpdateUnpoolWhiteListProposalAmino {
-  title: string;
-  description: string;
-  ids: string[];
-  is_overwrite: boolean;
-}
-export interface UpdateUnpoolWhiteListProposalAminoMsg {
-  type: "osmosis/v1beta1/update-unpool-white-list-proposal";
-  value: UpdateUnpoolWhiteListProposalAmino;
-}
-/**
- * UpdateUnpoolWhiteListProposal is a gov Content type to update the
- * allowed list of pool ids.
- */
-export interface UpdateUnpoolWhiteListProposalSDKType {
-  title: string;
-  description: string;
-  ids: bigint[];
-  is_overwrite: boolean;
-}
-function createBaseSetSuperfluidAssetsProposal(): SetSuperfluidAssetsProposal {
-  return {
-    title: "",
-    description: "",
-    assets: []
-  };
-}
-export const SetSuperfluidAssetsProposal = {
-  typeUrl: "/osmosis.superfluid.v1beta1.SetSuperfluidAssetsProposal",
-  aminoType: "osmosis/v1beta1/set-superfluid-assets-proposal",
-  encode(message: SetSuperfluidAssetsProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    for (const v of message.assets) {
-      SuperfluidAsset.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SetSuperfluidAssetsProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSetSuperfluidAssetsProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.assets.push(SuperfluidAsset.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SetSuperfluidAssetsProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: SetSuperfluidAssetsProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toJSON(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SetSuperfluidAssetsProposal>): SetSuperfluidAssetsProposal {
-    const message = createBaseSetSuperfluidAssetsProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.assets = object.assets?.map(e => SuperfluidAsset.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: SetSuperfluidAssetsProposalSDKType): SetSuperfluidAssetsProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: SetSuperfluidAssetsProposal): SetSuperfluidAssetsProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toSDK(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAmino(object: SetSuperfluidAssetsProposalAmino): SetSuperfluidAssetsProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      assets: Array.isArray(object?.assets) ? object.assets.map((e: any) => SuperfluidAsset.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: SetSuperfluidAssetsProposal): SetSuperfluidAssetsProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.assets) {
-      obj.assets = message.assets.map(e => e ? SuperfluidAsset.toAmino(e) : undefined);
-    } else {
-      obj.assets = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: SetSuperfluidAssetsProposalAminoMsg): SetSuperfluidAssetsProposal {
-    return SetSuperfluidAssetsProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: SetSuperfluidAssetsProposal): SetSuperfluidAssetsProposalAminoMsg {
-    return {
-      type: "osmosis/v1beta1/set-superfluid-assets-proposal",
-      value: SetSuperfluidAssetsProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: SetSuperfluidAssetsProposalProtoMsg): SetSuperfluidAssetsProposal {
-    return SetSuperfluidAssetsProposal.decode(message.value);
-  },
-  toProto(message: SetSuperfluidAssetsProposal): Uint8Array {
-    return SetSuperfluidAssetsProposal.encode(message).finish();
-  },
-  toProtoMsg(message: SetSuperfluidAssetsProposal): SetSuperfluidAssetsProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.v1beta1.SetSuperfluidAssetsProposal",
-      value: SetSuperfluidAssetsProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseRemoveSuperfluidAssetsProposal(): RemoveSuperfluidAssetsProposal {
-  return {
-    title: "",
-    description: "",
-    superfluidAssetDenoms: []
-  };
-}
-export const RemoveSuperfluidAssetsProposal = {
-  typeUrl: "/osmosis.superfluid.v1beta1.RemoveSuperfluidAssetsProposal",
-  aminoType: "osmosis/v1beta1/remove-superfluid-assets-proposal",
-  encode(message: RemoveSuperfluidAssetsProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    for (const v of message.superfluidAssetDenoms) {
-      writer.uint32(26).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RemoveSuperfluidAssetsProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRemoveSuperfluidAssetsProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.superfluidAssetDenoms.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RemoveSuperfluidAssetsProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      superfluidAssetDenoms: Array.isArray(object?.superfluidAssetDenoms) ? object.superfluidAssetDenoms.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: RemoveSuperfluidAssetsProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.superfluidAssetDenoms) {
-      obj.superfluidAssetDenoms = message.superfluidAssetDenoms.map(e => e);
-    } else {
-      obj.superfluidAssetDenoms = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RemoveSuperfluidAssetsProposal>): RemoveSuperfluidAssetsProposal {
-    const message = createBaseRemoveSuperfluidAssetsProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.superfluidAssetDenoms = object.superfluidAssetDenoms?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: RemoveSuperfluidAssetsProposalSDKType): RemoveSuperfluidAssetsProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      superfluidAssetDenoms: Array.isArray(object?.superfluid_asset_denoms) ? object.superfluid_asset_denoms.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: RemoveSuperfluidAssetsProposal): RemoveSuperfluidAssetsProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.superfluidAssetDenoms) {
-      obj.superfluid_asset_denoms = message.superfluidAssetDenoms.map(e => e);
-    } else {
-      obj.superfluid_asset_denoms = [];
-    }
-    return obj;
-  },
-  fromAmino(object: RemoveSuperfluidAssetsProposalAmino): RemoveSuperfluidAssetsProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      superfluidAssetDenoms: Array.isArray(object?.superfluid_asset_denoms) ? object.superfluid_asset_denoms.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: RemoveSuperfluidAssetsProposal): RemoveSuperfluidAssetsProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.superfluidAssetDenoms) {
-      obj.superfluid_asset_denoms = message.superfluidAssetDenoms.map(e => e);
-    } else {
-      obj.superfluid_asset_denoms = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: RemoveSuperfluidAssetsProposalAminoMsg): RemoveSuperfluidAssetsProposal {
-    return RemoveSuperfluidAssetsProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: RemoveSuperfluidAssetsProposal): RemoveSuperfluidAssetsProposalAminoMsg {
-    return {
-      type: "osmosis/v1beta1/remove-superfluid-assets-proposal",
-      value: RemoveSuperfluidAssetsProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: RemoveSuperfluidAssetsProposalProtoMsg): RemoveSuperfluidAssetsProposal {
-    return RemoveSuperfluidAssetsProposal.decode(message.value);
-  },
-  toProto(message: RemoveSuperfluidAssetsProposal): Uint8Array {
-    return RemoveSuperfluidAssetsProposal.encode(message).finish();
-  },
-  toProtoMsg(message: RemoveSuperfluidAssetsProposal): RemoveSuperfluidAssetsProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.v1beta1.RemoveSuperfluidAssetsProposal",
-      value: RemoveSuperfluidAssetsProposal.encode(message).finish()
-    };
-  }
-};
-function createBaseUpdateUnpoolWhiteListProposal(): UpdateUnpoolWhiteListProposal {
-  return {
-    title: "",
-    description: "",
-    ids: [],
-    isOverwrite: false
-  };
-}
-export const UpdateUnpoolWhiteListProposal = {
-  typeUrl: "/osmosis.superfluid.v1beta1.UpdateUnpoolWhiteListProposal",
-  aminoType: "osmosis/v1beta1/update-unpool-white-list-proposal",
-  encode(message: UpdateUnpoolWhiteListProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    writer.uint32(26).fork();
-    for (const v of message.ids) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    if (message.isOverwrite === true) {
-      writer.uint32(32).bool(message.isOverwrite);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpdateUnpoolWhiteListProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpdateUnpoolWhiteListProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.ids.push(reader.uint64());
-            }
-          } else {
-            message.ids.push(reader.uint64());
-          }
-          break;
-        case 4:
-          message.isOverwrite = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpdateUnpoolWhiteListProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => BigInt(e.toString())) : [],
-      isOverwrite: isSet(object.isOverwrite) ? Boolean(object.isOverwrite) : false
-    };
-  },
-  toJSON(message: UpdateUnpoolWhiteListProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    if (message.ids) {
-      obj.ids = message.ids.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.ids = [];
-    }
-    message.isOverwrite !== undefined && (obj.isOverwrite = message.isOverwrite);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpdateUnpoolWhiteListProposal>): UpdateUnpoolWhiteListProposal {
-    const message = createBaseUpdateUnpoolWhiteListProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.ids = object.ids?.map(e => BigInt(e.toString())) || [];
-    message.isOverwrite = object.isOverwrite ?? false;
-    return message;
-  },
-  fromSDK(object: UpdateUnpoolWhiteListProposalSDKType): UpdateUnpoolWhiteListProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => e) : [],
-      isOverwrite: object?.is_overwrite
-    };
-  },
-  toSDK(message: UpdateUnpoolWhiteListProposal): UpdateUnpoolWhiteListProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.ids) {
-      obj.ids = message.ids.map(e => e);
-    } else {
-      obj.ids = [];
-    }
-    obj.is_overwrite = message.isOverwrite;
-    return obj;
-  },
-  fromAmino(object: UpdateUnpoolWhiteListProposalAmino): UpdateUnpoolWhiteListProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      ids: Array.isArray(object?.ids) ? object.ids.map((e: any) => BigInt(e)) : [],
-      isOverwrite: object.is_overwrite
-    };
-  },
-  toAmino(message: UpdateUnpoolWhiteListProposal): UpdateUnpoolWhiteListProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    if (message.ids) {
-      obj.ids = message.ids.map(e => e.toString());
-    } else {
-      obj.ids = [];
-    }
-    obj.is_overwrite = message.isOverwrite;
-    return obj;
-  },
-  fromAminoMsg(object: UpdateUnpoolWhiteListProposalAminoMsg): UpdateUnpoolWhiteListProposal {
-    return UpdateUnpoolWhiteListProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpdateUnpoolWhiteListProposal): UpdateUnpoolWhiteListProposalAminoMsg {
-    return {
-      type: "osmosis/v1beta1/update-unpool-white-list-proposal",
-      value: UpdateUnpoolWhiteListProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpdateUnpoolWhiteListProposalProtoMsg): UpdateUnpoolWhiteListProposal {
-    return UpdateUnpoolWhiteListProposal.decode(message.value);
-  },
-  toProto(message: UpdateUnpoolWhiteListProposal): Uint8Array {
-    return UpdateUnpoolWhiteListProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UpdateUnpoolWhiteListProposal): UpdateUnpoolWhiteListProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.superfluid.v1beta1.UpdateUnpoolWhiteListProposal",
-      value: UpdateUnpoolWhiteListProposal.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/authorityMetadata.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/authorityMetadata.ts
deleted file mode 100644
index 73e501ea..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/authorityMetadata.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * DenomAuthorityMetadata specifies metadata for addresses that have specific
- * capabilities over a token factory denom. Right now there is only one Admin
- * permission, but is planned to be extended to the future.
- */
-export interface DenomAuthorityMetadata {
-  /** Can be empty for no admin, or a valid osmosis address */
-  admin: string;
-}
-export interface DenomAuthorityMetadataProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.DenomAuthorityMetadata";
-  value: Uint8Array;
-}
-/**
- * DenomAuthorityMetadata specifies metadata for addresses that have specific
- * capabilities over a token factory denom. Right now there is only one Admin
- * permission, but is planned to be extended to the future.
- */
-export interface DenomAuthorityMetadataAmino {
-  /** Can be empty for no admin, or a valid osmosis address */
-  admin: string;
-}
-export interface DenomAuthorityMetadataAminoMsg {
-  type: "osmosis/tokenfactory/denom-authority-metadata";
-  value: DenomAuthorityMetadataAmino;
-}
-/**
- * DenomAuthorityMetadata specifies metadata for addresses that have specific
- * capabilities over a token factory denom. Right now there is only one Admin
- * permission, but is planned to be extended to the future.
- */
-export interface DenomAuthorityMetadataSDKType {
-  admin: string;
-}
-function createBaseDenomAuthorityMetadata(): DenomAuthorityMetadata {
-  return {
-    admin: ""
-  };
-}
-export const DenomAuthorityMetadata = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.DenomAuthorityMetadata",
-  aminoType: "osmosis/tokenfactory/denom-authority-metadata",
-  encode(message: DenomAuthorityMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.admin !== "") {
-      writer.uint32(10).string(message.admin);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DenomAuthorityMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDenomAuthorityMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.admin = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DenomAuthorityMetadata {
-    return {
-      admin: isSet(object.admin) ? String(object.admin) : ""
-    };
-  },
-  toJSON(message: DenomAuthorityMetadata): unknown {
-    const obj: any = {};
-    message.admin !== undefined && (obj.admin = message.admin);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DenomAuthorityMetadata>): DenomAuthorityMetadata {
-    const message = createBaseDenomAuthorityMetadata();
-    message.admin = object.admin ?? "";
-    return message;
-  },
-  fromSDK(object: DenomAuthorityMetadataSDKType): DenomAuthorityMetadata {
-    return {
-      admin: object?.admin
-    };
-  },
-  toSDK(message: DenomAuthorityMetadata): DenomAuthorityMetadataSDKType {
-    const obj: any = {};
-    obj.admin = message.admin;
-    return obj;
-  },
-  fromAmino(object: DenomAuthorityMetadataAmino): DenomAuthorityMetadata {
-    return {
-      admin: object.admin
-    };
-  },
-  toAmino(message: DenomAuthorityMetadata): DenomAuthorityMetadataAmino {
-    const obj: any = {};
-    obj.admin = message.admin;
-    return obj;
-  },
-  fromAminoMsg(object: DenomAuthorityMetadataAminoMsg): DenomAuthorityMetadata {
-    return DenomAuthorityMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: DenomAuthorityMetadata): DenomAuthorityMetadataAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/denom-authority-metadata",
-      value: DenomAuthorityMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: DenomAuthorityMetadataProtoMsg): DenomAuthorityMetadata {
-    return DenomAuthorityMetadata.decode(message.value);
-  },
-  toProto(message: DenomAuthorityMetadata): Uint8Array {
-    return DenomAuthorityMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: DenomAuthorityMetadata): DenomAuthorityMetadataProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.DenomAuthorityMetadata",
-      value: DenomAuthorityMetadata.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/genesis.ts
deleted file mode 100644
index 30eb9fe7..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/genesis.ts
+++ /dev/null
@@ -1,280 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { DenomAuthorityMetadata, DenomAuthorityMetadataAmino, DenomAuthorityMetadataSDKType } from "./authorityMetadata";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the tokenfactory module's genesis state. */
-export interface GenesisState {
-  /** params defines the paramaters of the module. */
-  params: Params | undefined;
-  factoryDenoms: GenesisDenom[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the tokenfactory module's genesis state. */
-export interface GenesisStateAmino {
-  /** params defines the paramaters of the module. */
-  params?: ParamsAmino | undefined;
-  factory_denoms: GenesisDenomAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/tokenfactory/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the tokenfactory module's genesis state. */
-export interface GenesisStateSDKType {
-  params: ParamsSDKType | undefined;
-  factory_denoms: GenesisDenomSDKType[];
-}
-/**
- * GenesisDenom defines a tokenfactory denom that is defined within genesis
- * state. The structure contains DenomAuthorityMetadata which defines the
- * denom's admin.
- */
-export interface GenesisDenom {
-  denom: string;
-  authorityMetadata: DenomAuthorityMetadata | undefined;
-}
-export interface GenesisDenomProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisDenom";
-  value: Uint8Array;
-}
-/**
- * GenesisDenom defines a tokenfactory denom that is defined within genesis
- * state. The structure contains DenomAuthorityMetadata which defines the
- * denom's admin.
- */
-export interface GenesisDenomAmino {
-  denom: string;
-  authority_metadata?: DenomAuthorityMetadataAmino | undefined;
-}
-export interface GenesisDenomAminoMsg {
-  type: "osmosis/tokenfactory/genesis-denom";
-  value: GenesisDenomAmino;
-}
-/**
- * GenesisDenom defines a tokenfactory denom that is defined within genesis
- * state. The structure contains DenomAuthorityMetadata which defines the
- * denom's admin.
- */
-export interface GenesisDenomSDKType {
-  denom: string;
-  authority_metadata: DenomAuthorityMetadataSDKType | undefined;
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    params: Params.fromPartial({}),
-    factoryDenoms: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisState",
-  aminoType: "osmosis/tokenfactory/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.factoryDenoms) {
-      GenesisDenom.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.factoryDenoms.push(GenesisDenom.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
-      factoryDenoms: Array.isArray(object?.factoryDenoms) ? object.factoryDenoms.map((e: any) => GenesisDenom.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    if (message.factoryDenoms) {
-      obj.factoryDenoms = message.factoryDenoms.map(e => e ? GenesisDenom.toJSON(e) : undefined);
-    } else {
-      obj.factoryDenoms = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    message.factoryDenoms = object.factoryDenoms?.map(e => GenesisDenom.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined,
-      factoryDenoms: Array.isArray(object?.factory_denoms) ? object.factory_denoms.map((e: any) => GenesisDenom.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    if (message.factoryDenoms) {
-      obj.factory_denoms = message.factoryDenoms.map(e => e ? GenesisDenom.toSDK(e) : undefined);
-    } else {
-      obj.factory_denoms = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined,
-      factoryDenoms: Array.isArray(object?.factory_denoms) ? object.factory_denoms.map((e: any) => GenesisDenom.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    if (message.factoryDenoms) {
-      obj.factory_denoms = message.factoryDenoms.map(e => e ? GenesisDenom.toAmino(e) : undefined);
-    } else {
-      obj.factory_denoms = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisDenom(): GenesisDenom {
-  return {
-    denom: "",
-    authorityMetadata: DenomAuthorityMetadata.fromPartial({})
-  };
-}
-export const GenesisDenom = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisDenom",
-  aminoType: "osmosis/tokenfactory/genesis-denom",
-  encode(message: GenesisDenom, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.authorityMetadata !== undefined) {
-      DenomAuthorityMetadata.encode(message.authorityMetadata, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisDenom {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisDenom();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.authorityMetadata = DenomAuthorityMetadata.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisDenom {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      authorityMetadata: isSet(object.authorityMetadata) ? DenomAuthorityMetadata.fromJSON(object.authorityMetadata) : undefined
-    };
-  },
-  toJSON(message: GenesisDenom): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.authorityMetadata !== undefined && (obj.authorityMetadata = message.authorityMetadata ? DenomAuthorityMetadata.toJSON(message.authorityMetadata) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisDenom>): GenesisDenom {
-    const message = createBaseGenesisDenom();
-    message.denom = object.denom ?? "";
-    message.authorityMetadata = object.authorityMetadata !== undefined && object.authorityMetadata !== null ? DenomAuthorityMetadata.fromPartial(object.authorityMetadata) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisDenomSDKType): GenesisDenom {
-    return {
-      denom: object?.denom,
-      authorityMetadata: object.authority_metadata ? DenomAuthorityMetadata.fromSDK(object.authority_metadata) : undefined
-    };
-  },
-  toSDK(message: GenesisDenom): GenesisDenomSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    message.authorityMetadata !== undefined && (obj.authority_metadata = message.authorityMetadata ? DenomAuthorityMetadata.toSDK(message.authorityMetadata) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisDenomAmino): GenesisDenom {
-    return {
-      denom: object.denom,
-      authorityMetadata: object?.authority_metadata ? DenomAuthorityMetadata.fromAmino(object.authority_metadata) : undefined
-    };
-  },
-  toAmino(message: GenesisDenom): GenesisDenomAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.authority_metadata = message.authorityMetadata ? DenomAuthorityMetadata.toAmino(message.authorityMetadata) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisDenomAminoMsg): GenesisDenom {
-    return GenesisDenom.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisDenom): GenesisDenomAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/genesis-denom",
-      value: GenesisDenom.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisDenomProtoMsg): GenesisDenom {
-    return GenesisDenom.decode(message.value);
-  },
-  toProto(message: GenesisDenom): Uint8Array {
-    return GenesisDenom.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisDenom): GenesisDenomProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.GenesisDenom",
-      value: GenesisDenom.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/params.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/params.ts
deleted file mode 100644
index e8f00fde..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/params.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial } from "../../../helpers";
-/** Params defines the parameters for the tokenfactory module. */
-export interface Params {
-  denomCreationFee: Coin[];
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params defines the parameters for the tokenfactory module. */
-export interface ParamsAmino {
-  denom_creation_fee: CoinAmino[];
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/tokenfactory/params";
-  value: ParamsAmino;
-}
-/** Params defines the parameters for the tokenfactory module. */
-export interface ParamsSDKType {
-  denom_creation_fee: CoinSDKType[];
-}
-function createBaseParams(): Params {
-  return {
-    denomCreationFee: []
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.Params",
-  aminoType: "osmosis/tokenfactory/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.denomCreationFee) {
-      Coin.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denomCreationFee.push(Coin.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      denomCreationFee: Array.isArray(object?.denomCreationFee) ? object.denomCreationFee.map((e: any) => Coin.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    if (message.denomCreationFee) {
-      obj.denomCreationFee = message.denomCreationFee.map(e => e ? Coin.toJSON(e) : undefined);
-    } else {
-      obj.denomCreationFee = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.denomCreationFee = object.denomCreationFee?.map(e => Coin.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      denomCreationFee: Array.isArray(object?.denom_creation_fee) ? object.denom_creation_fee.map((e: any) => Coin.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    if (message.denomCreationFee) {
-      obj.denom_creation_fee = message.denomCreationFee.map(e => e ? Coin.toSDK(e) : undefined);
-    } else {
-      obj.denom_creation_fee = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      denomCreationFee: Array.isArray(object?.denom_creation_fee) ? object.denom_creation_fee.map((e: any) => Coin.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    if (message.denomCreationFee) {
-      obj.denom_creation_fee = message.denomCreationFee.map(e => e ? Coin.toAmino(e) : undefined);
-    } else {
-      obj.denom_creation_fee = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 8cde7d86..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,168 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryParamsRequest, QueryParamsResponse, QueryDenomAuthorityMetadataRequest, QueryDenomAuthorityMetadataResponse, QueryDenomsFromCreatorRequest, QueryDenomsFromCreatorResponse } from "./query";
-/** Query defines the gRPC querier service. */
-export interface Query {
-  /**
-   * Params defines a gRPC query method that returns the tokenfactory module's
-   * parameters.
-   */
-  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
-  /**
-   * DenomAuthorityMetadata defines a gRPC query method for fetching
-   * DenomAuthorityMetadata for a particular denom.
-   */
-  denomAuthorityMetadata(request: QueryDenomAuthorityMetadataRequest): Promise<QueryDenomAuthorityMetadataResponse>;
-  /**
-   * DenomsFromCreator defines a gRPC query method for fetching all
-   * denominations created by a specific admin/creator.
-   */
-  denomsFromCreator(request: QueryDenomsFromCreatorRequest): Promise<QueryDenomsFromCreatorResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.denomAuthorityMetadata = this.denomAuthorityMetadata.bind(this);
-    this.denomsFromCreator = this.denomsFromCreator.bind(this);
-  }
-  params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
-    const data = QueryParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Query", "Params", data);
-    return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
-  }
-  denomAuthorityMetadata(request: QueryDenomAuthorityMetadataRequest): Promise<QueryDenomAuthorityMetadataResponse> {
-    const data = QueryDenomAuthorityMetadataRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Query", "DenomAuthorityMetadata", data);
-    return promise.then(data => QueryDenomAuthorityMetadataResponse.decode(new BinaryReader(data)));
-  }
-  denomsFromCreator(request: QueryDenomsFromCreatorRequest): Promise<QueryDenomsFromCreatorResponse> {
-    const data = QueryDenomsFromCreatorRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Query", "DenomsFromCreator", data);
-    return promise.then(data => QueryDenomsFromCreatorResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
-      return queryService.params(request);
-    },
-    denomAuthorityMetadata(request: QueryDenomAuthorityMetadataRequest): Promise<QueryDenomAuthorityMetadataResponse> {
-      return queryService.denomAuthorityMetadata(request);
-    },
-    denomsFromCreator(request: QueryDenomsFromCreatorRequest): Promise<QueryDenomsFromCreatorResponse> {
-      return queryService.denomsFromCreator(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<QueryParamsResponse, TData> {
-  request?: QueryParamsRequest;
-}
-export interface UseDenomAuthorityMetadataQuery<TData> extends ReactQueryParams<QueryDenomAuthorityMetadataResponse, TData> {
-  request: QueryDenomAuthorityMetadataRequest;
-}
-export interface UseDenomsFromCreatorQuery<TData> extends ReactQueryParams<QueryDenomsFromCreatorResponse, TData> {
-  request: QueryDenomsFromCreatorRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = QueryParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<QueryParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useDenomAuthorityMetadata = <TData = QueryDenomAuthorityMetadataResponse,>({
-    request,
-    options
-  }: UseDenomAuthorityMetadataQuery<TData>) => {
-    return useQuery<QueryDenomAuthorityMetadataResponse, Error, TData>(["denomAuthorityMetadataQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomAuthorityMetadata(request);
-    }, options);
-  };
-  const useDenomsFromCreator = <TData = QueryDenomsFromCreatorResponse,>({
-    request,
-    options
-  }: UseDenomsFromCreatorQuery<TData>) => {
-    return useQuery<QueryDenomsFromCreatorResponse, Error, TData>(["denomsFromCreatorQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomsFromCreator(request);
-    }, options);
-  };
-  return {
-    /**
-     * Params defines a gRPC query method that returns the tokenfactory module's
-     * parameters.
-     */
-    useParams,
-    /**
-     * DenomAuthorityMetadata defines a gRPC query method for fetching
-     * DenomAuthorityMetadata for a particular denom.
-     */
-    useDenomAuthorityMetadata,
-    /**
-     * DenomsFromCreator defines a gRPC query method for fetching all
-     * denominations created by a specific admin/creator.
-     */
-    useDenomsFromCreator
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<QueryParamsRequest, QueryParamsResponse>(queryService?.params);
-    params(request: QueryParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomAuthorityMetadataStore {
-    store = new QueryStore<QueryDenomAuthorityMetadataRequest, QueryDenomAuthorityMetadataResponse>(queryService?.denomAuthorityMetadata);
-    denomAuthorityMetadata(request: QueryDenomAuthorityMetadataRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomsFromCreatorStore {
-    store = new QueryStore<QueryDenomsFromCreatorRequest, QueryDenomsFromCreatorResponse>(queryService?.denomsFromCreator);
-    denomsFromCreator(request: QueryDenomsFromCreatorRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * Params defines a gRPC query method that returns the tokenfactory module's
-     * parameters.
-     */
-    QueryParamsStore,
-    /**
-     * DenomAuthorityMetadata defines a gRPC query method for fetching
-     * DenomAuthorityMetadata for a particular denom.
-     */
-    QueryDenomAuthorityMetadataStore,
-    /**
-     * DenomsFromCreator defines a gRPC query method for fetching all
-     * denominations created by a specific admin/creator.
-     */
-    QueryDenomsFromCreatorStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.ts
deleted file mode 100644
index 886754e2..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/query.ts
+++ /dev/null
@@ -1,678 +0,0 @@
-import { Params, ParamsAmino, ParamsSDKType } from "./params";
-import { DenomAuthorityMetadata, DenomAuthorityMetadataAmino, DenomAuthorityMetadataSDKType } from "./authorityMetadata";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequest {}
-export interface QueryParamsRequestProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsRequest";
-  value: Uint8Array;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestAmino {}
-export interface QueryParamsRequestAminoMsg {
-  type: "osmosis/tokenfactory/query-params-request";
-  value: QueryParamsRequestAmino;
-}
-/** QueryParamsRequest is the request type for the Query/Params RPC method. */
-export interface QueryParamsRequestSDKType {}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponse {
-  /** params defines the parameters of the module. */
-  params: Params | undefined;
-}
-export interface QueryParamsResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsResponse";
-  value: Uint8Array;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseAmino {
-  /** params defines the parameters of the module. */
-  params?: ParamsAmino | undefined;
-}
-export interface QueryParamsResponseAminoMsg {
-  type: "osmosis/tokenfactory/query-params-response";
-  value: QueryParamsResponseAmino;
-}
-/** QueryParamsResponse is the response type for the Query/Params RPC method. */
-export interface QueryParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-/**
- * QueryDenomAuthorityMetadataRequest defines the request structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataRequest {
-  denom: string;
-}
-export interface QueryDenomAuthorityMetadataRequestProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDenomAuthorityMetadataRequest defines the request structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataRequestAmino {
-  denom: string;
-}
-export interface QueryDenomAuthorityMetadataRequestAminoMsg {
-  type: "osmosis/tokenfactory/query-denom-authority-metadata-request";
-  value: QueryDenomAuthorityMetadataRequestAmino;
-}
-/**
- * QueryDenomAuthorityMetadataRequest defines the request structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataRequestSDKType {
-  denom: string;
-}
-/**
- * QueryDenomAuthorityMetadataResponse defines the response structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataResponse {
-  authorityMetadata: DenomAuthorityMetadata | undefined;
-}
-export interface QueryDenomAuthorityMetadataResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomAuthorityMetadataResponse defines the response structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataResponseAmino {
-  authority_metadata?: DenomAuthorityMetadataAmino | undefined;
-}
-export interface QueryDenomAuthorityMetadataResponseAminoMsg {
-  type: "osmosis/tokenfactory/query-denom-authority-metadata-response";
-  value: QueryDenomAuthorityMetadataResponseAmino;
-}
-/**
- * QueryDenomAuthorityMetadataResponse defines the response structure for the
- * DenomAuthorityMetadata gRPC query.
- */
-export interface QueryDenomAuthorityMetadataResponseSDKType {
-  authority_metadata: DenomAuthorityMetadataSDKType | undefined;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the request structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorRequest {
-  creator: string;
-}
-export interface QueryDenomsFromCreatorRequestProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the request structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorRequestAmino {
-  creator: string;
-}
-export interface QueryDenomsFromCreatorRequestAminoMsg {
-  type: "osmosis/tokenfactory/query-denoms-from-creator-request";
-  value: QueryDenomsFromCreatorRequestAmino;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the request structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorRequestSDKType {
-  creator: string;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the response structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorResponse {
-  denoms: string[];
-}
-export interface QueryDenomsFromCreatorResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the response structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorResponseAmino {
-  denoms: string[];
-}
-export interface QueryDenomsFromCreatorResponseAminoMsg {
-  type: "osmosis/tokenfactory/query-denoms-from-creator-response";
-  value: QueryDenomsFromCreatorResponseAmino;
-}
-/**
- * QueryDenomsFromCreatorRequest defines the response structure for the
- * DenomsFromCreator gRPC query.
- */
-export interface QueryDenomsFromCreatorResponseSDKType {
-  denoms: string[];
-}
-function createBaseQueryParamsRequest(): QueryParamsRequest {
-  return {};
-}
-export const QueryParamsRequest = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsRequest",
-  aminoType: "osmosis/tokenfactory/query-params-request",
-  encode(_: QueryParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryParamsRequest {
-    return {};
-  },
-  toJSON(_: QueryParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryParamsRequest>): QueryParamsRequest {
-    const message = createBaseQueryParamsRequest();
-    return message;
-  },
-  fromSDK(_: QueryParamsRequestSDKType): QueryParamsRequest {
-    return {};
-  },
-  toSDK(_: QueryParamsRequest): QueryParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest {
-    return {};
-  },
-  toAmino(_: QueryParamsRequest): QueryParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest {
-    return QueryParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsRequest): QueryParamsRequestAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-params-request",
-      value: QueryParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest {
-    return QueryParamsRequest.decode(message.value);
-  },
-  toProto(message: QueryParamsRequest): Uint8Array {
-    return QueryParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsRequest",
-      value: QueryParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryParamsResponse(): QueryParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const QueryParamsResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsResponse",
-  aminoType: "osmosis/tokenfactory/query-params-response",
-  encode(message: QueryParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: QueryParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryParamsResponse>): QueryParamsResponse {
-    const message = createBaseQueryParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryParamsResponseSDKType): QueryParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: QueryParamsResponse): QueryParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: QueryParamsResponse): QueryParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse {
-    return QueryParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryParamsResponse): QueryParamsResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-params-response",
-      value: QueryParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse {
-    return QueryParamsResponse.decode(message.value);
-  },
-  toProto(message: QueryParamsResponse): Uint8Array {
-    return QueryParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryParamsResponse",
-      value: QueryParamsResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomAuthorityMetadataRequest(): QueryDenomAuthorityMetadataRequest {
-  return {
-    denom: ""
-  };
-}
-export const QueryDenomAuthorityMetadataRequest = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataRequest",
-  aminoType: "osmosis/tokenfactory/query-denom-authority-metadata-request",
-  encode(message: QueryDenomAuthorityMetadataRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomAuthorityMetadataRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomAuthorityMetadataRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomAuthorityMetadataRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryDenomAuthorityMetadataRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomAuthorityMetadataRequest>): QueryDenomAuthorityMetadataRequest {
-    const message = createBaseQueryDenomAuthorityMetadataRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomAuthorityMetadataRequestSDKType): QueryDenomAuthorityMetadataRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryDenomAuthorityMetadataRequest): QueryDenomAuthorityMetadataRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryDenomAuthorityMetadataRequestAmino): QueryDenomAuthorityMetadataRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryDenomAuthorityMetadataRequest): QueryDenomAuthorityMetadataRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomAuthorityMetadataRequestAminoMsg): QueryDenomAuthorityMetadataRequest {
-    return QueryDenomAuthorityMetadataRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomAuthorityMetadataRequest): QueryDenomAuthorityMetadataRequestAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-denom-authority-metadata-request",
-      value: QueryDenomAuthorityMetadataRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomAuthorityMetadataRequestProtoMsg): QueryDenomAuthorityMetadataRequest {
-    return QueryDenomAuthorityMetadataRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomAuthorityMetadataRequest): Uint8Array {
-    return QueryDenomAuthorityMetadataRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomAuthorityMetadataRequest): QueryDenomAuthorityMetadataRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataRequest",
-      value: QueryDenomAuthorityMetadataRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomAuthorityMetadataResponse(): QueryDenomAuthorityMetadataResponse {
-  return {
-    authorityMetadata: DenomAuthorityMetadata.fromPartial({})
-  };
-}
-export const QueryDenomAuthorityMetadataResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataResponse",
-  aminoType: "osmosis/tokenfactory/query-denom-authority-metadata-response",
-  encode(message: QueryDenomAuthorityMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.authorityMetadata !== undefined) {
-      DenomAuthorityMetadata.encode(message.authorityMetadata, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomAuthorityMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomAuthorityMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.authorityMetadata = DenomAuthorityMetadata.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomAuthorityMetadataResponse {
-    return {
-      authorityMetadata: isSet(object.authorityMetadata) ? DenomAuthorityMetadata.fromJSON(object.authorityMetadata) : undefined
-    };
-  },
-  toJSON(message: QueryDenomAuthorityMetadataResponse): unknown {
-    const obj: any = {};
-    message.authorityMetadata !== undefined && (obj.authorityMetadata = message.authorityMetadata ? DenomAuthorityMetadata.toJSON(message.authorityMetadata) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomAuthorityMetadataResponse>): QueryDenomAuthorityMetadataResponse {
-    const message = createBaseQueryDenomAuthorityMetadataResponse();
-    message.authorityMetadata = object.authorityMetadata !== undefined && object.authorityMetadata !== null ? DenomAuthorityMetadata.fromPartial(object.authorityMetadata) : undefined;
-    return message;
-  },
-  fromSDK(object: QueryDenomAuthorityMetadataResponseSDKType): QueryDenomAuthorityMetadataResponse {
-    return {
-      authorityMetadata: object.authority_metadata ? DenomAuthorityMetadata.fromSDK(object.authority_metadata) : undefined
-    };
-  },
-  toSDK(message: QueryDenomAuthorityMetadataResponse): QueryDenomAuthorityMetadataResponseSDKType {
-    const obj: any = {};
-    message.authorityMetadata !== undefined && (obj.authority_metadata = message.authorityMetadata ? DenomAuthorityMetadata.toSDK(message.authorityMetadata) : undefined);
-    return obj;
-  },
-  fromAmino(object: QueryDenomAuthorityMetadataResponseAmino): QueryDenomAuthorityMetadataResponse {
-    return {
-      authorityMetadata: object?.authority_metadata ? DenomAuthorityMetadata.fromAmino(object.authority_metadata) : undefined
-    };
-  },
-  toAmino(message: QueryDenomAuthorityMetadataResponse): QueryDenomAuthorityMetadataResponseAmino {
-    const obj: any = {};
-    obj.authority_metadata = message.authorityMetadata ? DenomAuthorityMetadata.toAmino(message.authorityMetadata) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomAuthorityMetadataResponseAminoMsg): QueryDenomAuthorityMetadataResponse {
-    return QueryDenomAuthorityMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomAuthorityMetadataResponse): QueryDenomAuthorityMetadataResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-denom-authority-metadata-response",
-      value: QueryDenomAuthorityMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomAuthorityMetadataResponseProtoMsg): QueryDenomAuthorityMetadataResponse {
-    return QueryDenomAuthorityMetadataResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomAuthorityMetadataResponse): Uint8Array {
-    return QueryDenomAuthorityMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomAuthorityMetadataResponse): QueryDenomAuthorityMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomAuthorityMetadataResponse",
-      value: QueryDenomAuthorityMetadataResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomsFromCreatorRequest(): QueryDenomsFromCreatorRequest {
-  return {
-    creator: ""
-  };
-}
-export const QueryDenomsFromCreatorRequest = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorRequest",
-  aminoType: "osmosis/tokenfactory/query-denoms-from-creator-request",
-  encode(message: QueryDenomsFromCreatorRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.creator !== "") {
-      writer.uint32(10).string(message.creator);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomsFromCreatorRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomsFromCreatorRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.creator = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomsFromCreatorRequest {
-    return {
-      creator: isSet(object.creator) ? String(object.creator) : ""
-    };
-  },
-  toJSON(message: QueryDenomsFromCreatorRequest): unknown {
-    const obj: any = {};
-    message.creator !== undefined && (obj.creator = message.creator);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomsFromCreatorRequest>): QueryDenomsFromCreatorRequest {
-    const message = createBaseQueryDenomsFromCreatorRequest();
-    message.creator = object.creator ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomsFromCreatorRequestSDKType): QueryDenomsFromCreatorRequest {
-    return {
-      creator: object?.creator
-    };
-  },
-  toSDK(message: QueryDenomsFromCreatorRequest): QueryDenomsFromCreatorRequestSDKType {
-    const obj: any = {};
-    obj.creator = message.creator;
-    return obj;
-  },
-  fromAmino(object: QueryDenomsFromCreatorRequestAmino): QueryDenomsFromCreatorRequest {
-    return {
-      creator: object.creator
-    };
-  },
-  toAmino(message: QueryDenomsFromCreatorRequest): QueryDenomsFromCreatorRequestAmino {
-    const obj: any = {};
-    obj.creator = message.creator;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomsFromCreatorRequestAminoMsg): QueryDenomsFromCreatorRequest {
-    return QueryDenomsFromCreatorRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomsFromCreatorRequest): QueryDenomsFromCreatorRequestAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-denoms-from-creator-request",
-      value: QueryDenomsFromCreatorRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomsFromCreatorRequestProtoMsg): QueryDenomsFromCreatorRequest {
-    return QueryDenomsFromCreatorRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomsFromCreatorRequest): Uint8Array {
-    return QueryDenomsFromCreatorRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomsFromCreatorRequest): QueryDenomsFromCreatorRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorRequest",
-      value: QueryDenomsFromCreatorRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomsFromCreatorResponse(): QueryDenomsFromCreatorResponse {
-  return {
-    denoms: []
-  };
-}
-export const QueryDenomsFromCreatorResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorResponse",
-  aminoType: "osmosis/tokenfactory/query-denoms-from-creator-response",
-  encode(message: QueryDenomsFromCreatorResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.denoms) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomsFromCreatorResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomsFromCreatorResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denoms.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomsFromCreatorResponse {
-    return {
-      denoms: Array.isArray(object?.denoms) ? object.denoms.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: QueryDenomsFromCreatorResponse): unknown {
-    const obj: any = {};
-    if (message.denoms) {
-      obj.denoms = message.denoms.map(e => e);
-    } else {
-      obj.denoms = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomsFromCreatorResponse>): QueryDenomsFromCreatorResponse {
-    const message = createBaseQueryDenomsFromCreatorResponse();
-    message.denoms = object.denoms?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: QueryDenomsFromCreatorResponseSDKType): QueryDenomsFromCreatorResponse {
-    return {
-      denoms: Array.isArray(object?.denoms) ? object.denoms.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: QueryDenomsFromCreatorResponse): QueryDenomsFromCreatorResponseSDKType {
-    const obj: any = {};
-    if (message.denoms) {
-      obj.denoms = message.denoms.map(e => e);
-    } else {
-      obj.denoms = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryDenomsFromCreatorResponseAmino): QueryDenomsFromCreatorResponse {
-    return {
-      denoms: Array.isArray(object?.denoms) ? object.denoms.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: QueryDenomsFromCreatorResponse): QueryDenomsFromCreatorResponseAmino {
-    const obj: any = {};
-    if (message.denoms) {
-      obj.denoms = message.denoms.map(e => e);
-    } else {
-      obj.denoms = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomsFromCreatorResponseAminoMsg): QueryDenomsFromCreatorResponse {
-    return QueryDenomsFromCreatorResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomsFromCreatorResponse): QueryDenomsFromCreatorResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/query-denoms-from-creator-response",
-      value: QueryDenomsFromCreatorResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomsFromCreatorResponseProtoMsg): QueryDenomsFromCreatorResponse {
-    return QueryDenomsFromCreatorResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomsFromCreatorResponse): Uint8Array {
-    return QueryDenomsFromCreatorResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomsFromCreatorResponse): QueryDenomsFromCreatorResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.QueryDenomsFromCreatorResponse",
-      value: QueryDenomsFromCreatorResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.amino.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.amino.ts
deleted file mode 100644
index 4f023717..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.amino.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { MsgCreateDenom, MsgMint, MsgBurn, MsgChangeAdmin, MsgSetDenomMetadata } from "./tx";
-export const AminoConverter = {
-  "/osmosis.tokenfactory.v1beta1.MsgCreateDenom": {
-    aminoType: "osmosis/tokenfactory/create-denom",
-    toAmino: MsgCreateDenom.toAmino,
-    fromAmino: MsgCreateDenom.fromAmino
-  },
-  "/osmosis.tokenfactory.v1beta1.MsgMint": {
-    aminoType: "osmosis/tokenfactory/mint",
-    toAmino: MsgMint.toAmino,
-    fromAmino: MsgMint.fromAmino
-  },
-  "/osmosis.tokenfactory.v1beta1.MsgBurn": {
-    aminoType: "osmosis/tokenfactory/burn",
-    toAmino: MsgBurn.toAmino,
-    fromAmino: MsgBurn.fromAmino
-  },
-  "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin": {
-    aminoType: "osmosis/tokenfactory/change-admin",
-    toAmino: MsgChangeAdmin.toAmino,
-    fromAmino: MsgChangeAdmin.fromAmino
-  },
-  "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata": {
-    aminoType: "osmosis/tokenfactory/set-denom-metadata",
-    toAmino: MsgSetDenomMetadata.toAmino,
-    fromAmino: MsgSetDenomMetadata.fromAmino
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.registry.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.registry.ts
deleted file mode 100644
index 71dc01f6..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.registry.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-//@ts-nocheck
-import { GeneratedType, Registry } from "@cosmjs/proto-signing";
-import { MsgCreateDenom, MsgMint, MsgBurn, MsgChangeAdmin, MsgSetDenomMetadata } from "./tx";
-export const registry: ReadonlyArray<[string, GeneratedType]> = [["/osmosis.tokenfactory.v1beta1.MsgCreateDenom", MsgCreateDenom], ["/osmosis.tokenfactory.v1beta1.MsgMint", MsgMint], ["/osmosis.tokenfactory.v1beta1.MsgBurn", MsgBurn], ["/osmosis.tokenfactory.v1beta1.MsgChangeAdmin", MsgChangeAdmin], ["/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata", MsgSetDenomMetadata]];
-export const load = (protoRegistry: Registry) => {
-  registry.forEach(([typeUrl, mod]) => {
-    protoRegistry.register(typeUrl, mod);
-  });
-};
-export const MessageComposer = {
-  encoded: {
-    createDenom(value: MsgCreateDenom) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-        value: MsgCreateDenom.encode(value).finish()
-      };
-    },
-    mint(value: MsgMint) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-        value: MsgMint.encode(value).finish()
-      };
-    },
-    burn(value: MsgBurn) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-        value: MsgBurn.encode(value).finish()
-      };
-    },
-    changeAdmin(value: MsgChangeAdmin) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-        value: MsgChangeAdmin.encode(value).finish()
-      };
-    },
-    setDenomMetadata(value: MsgSetDenomMetadata) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-        value: MsgSetDenomMetadata.encode(value).finish()
-      };
-    }
-  },
-  withTypeUrl: {
-    createDenom(value: MsgCreateDenom) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-        value
-      };
-    },
-    mint(value: MsgMint) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-        value
-      };
-    },
-    burn(value: MsgBurn) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-        value
-      };
-    },
-    changeAdmin(value: MsgChangeAdmin) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-        value
-      };
-    },
-    setDenomMetadata(value: MsgSetDenomMetadata) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-        value
-      };
-    }
-  },
-  toJSON: {
-    createDenom(value: MsgCreateDenom) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-        value: MsgCreateDenom.toJSON(value)
-      };
-    },
-    mint(value: MsgMint) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-        value: MsgMint.toJSON(value)
-      };
-    },
-    burn(value: MsgBurn) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-        value: MsgBurn.toJSON(value)
-      };
-    },
-    changeAdmin(value: MsgChangeAdmin) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-        value: MsgChangeAdmin.toJSON(value)
-      };
-    },
-    setDenomMetadata(value: MsgSetDenomMetadata) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-        value: MsgSetDenomMetadata.toJSON(value)
-      };
-    }
-  },
-  fromJSON: {
-    createDenom(value: any) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-        value: MsgCreateDenom.fromJSON(value)
-      };
-    },
-    mint(value: any) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-        value: MsgMint.fromJSON(value)
-      };
-    },
-    burn(value: any) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-        value: MsgBurn.fromJSON(value)
-      };
-    },
-    changeAdmin(value: any) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-        value: MsgChangeAdmin.fromJSON(value)
-      };
-    },
-    setDenomMetadata(value: any) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-        value: MsgSetDenomMetadata.fromJSON(value)
-      };
-    }
-  },
-  fromPartial: {
-    createDenom(value: MsgCreateDenom) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-        value: MsgCreateDenom.fromPartial(value)
-      };
-    },
-    mint(value: MsgMint) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-        value: MsgMint.fromPartial(value)
-      };
-    },
-    burn(value: MsgBurn) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-        value: MsgBurn.fromPartial(value)
-      };
-    },
-    changeAdmin(value: MsgChangeAdmin) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-        value: MsgChangeAdmin.fromPartial(value)
-      };
-    },
-    setDenomMetadata(value: MsgSetDenomMetadata) {
-      return {
-        typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-        value: MsgSetDenomMetadata.fromPartial(value)
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.rpc.msg.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.rpc.msg.ts
deleted file mode 100644
index d33cf41e..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.rpc.msg.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { MsgCreateDenom, MsgCreateDenomResponse, MsgMint, MsgMintResponse, MsgBurn, MsgBurnResponse, MsgChangeAdmin, MsgChangeAdminResponse, MsgSetDenomMetadata, MsgSetDenomMetadataResponse } from "./tx";
-/** Msg defines the tokefactory module's gRPC message service. */
-export interface Msg {
-  createDenom(request: MsgCreateDenom): Promise<MsgCreateDenomResponse>;
-  mint(request: MsgMint): Promise<MsgMintResponse>;
-  burn(request: MsgBurn): Promise<MsgBurnResponse>;
-  changeAdmin(request: MsgChangeAdmin): Promise<MsgChangeAdminResponse>;
-  setDenomMetadata(request: MsgSetDenomMetadata): Promise<MsgSetDenomMetadataResponse>;
-}
-export class MsgClientImpl implements Msg {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.createDenom = this.createDenom.bind(this);
-    this.mint = this.mint.bind(this);
-    this.burn = this.burn.bind(this);
-    this.changeAdmin = this.changeAdmin.bind(this);
-    this.setDenomMetadata = this.setDenomMetadata.bind(this);
-  }
-  createDenom(request: MsgCreateDenom): Promise<MsgCreateDenomResponse> {
-    const data = MsgCreateDenom.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Msg", "CreateDenom", data);
-    return promise.then(data => MsgCreateDenomResponse.decode(new BinaryReader(data)));
-  }
-  mint(request: MsgMint): Promise<MsgMintResponse> {
-    const data = MsgMint.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Msg", "Mint", data);
-    return promise.then(data => MsgMintResponse.decode(new BinaryReader(data)));
-  }
-  burn(request: MsgBurn): Promise<MsgBurnResponse> {
-    const data = MsgBurn.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Msg", "Burn", data);
-    return promise.then(data => MsgBurnResponse.decode(new BinaryReader(data)));
-  }
-  changeAdmin(request: MsgChangeAdmin): Promise<MsgChangeAdminResponse> {
-    const data = MsgChangeAdmin.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Msg", "ChangeAdmin", data);
-    return promise.then(data => MsgChangeAdminResponse.decode(new BinaryReader(data)));
-  }
-  setDenomMetadata(request: MsgSetDenomMetadata): Promise<MsgSetDenomMetadataResponse> {
-    const data = MsgSetDenomMetadata.encode(request).finish();
-    const promise = this.rpc.request("osmosis.tokenfactory.v1beta1.Msg", "SetDenomMetadata", data);
-    return promise.then(data => MsgSetDenomMetadataResponse.decode(new BinaryReader(data)));
-  }
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.ts b/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.ts
deleted file mode 100644
index 35d0472c..00000000
--- a/examples/injective/src/codegen/osmosis/tokenfactory/v1beta1/tx.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
-import { Metadata, MetadataAmino, MetadataSDKType } from "../../../cosmos/bank/v1beta1/bank";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * MsgCreateDenom defines the message structure for the CreateDenom gRPC service
- * method. It allows an account to create a new denom. It requires a sender
- * address and a sub denomination. The (sender_address, sub_denomination) tuple
- * must be unique and cannot be re-used.
- * 
- * The resulting denom created is defined as
- * <factory/{creatorAddress}/{subdenom}>. The resulting denom's admin is
- * originally set to be the creator, but this can be changed later. The token
- * denom does not indicate the current admin.
- */
-export interface MsgCreateDenom {
-  sender: string;
-  /** subdenom can be up to 44 "alphanumeric" characters long. */
-  subdenom: string;
-}
-export interface MsgCreateDenomProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom";
-  value: Uint8Array;
-}
-/**
- * MsgCreateDenom defines the message structure for the CreateDenom gRPC service
- * method. It allows an account to create a new denom. It requires a sender
- * address and a sub denomination. The (sender_address, sub_denomination) tuple
- * must be unique and cannot be re-used.
- * 
- * The resulting denom created is defined as
- * <factory/{creatorAddress}/{subdenom}>. The resulting denom's admin is
- * originally set to be the creator, but this can be changed later. The token
- * denom does not indicate the current admin.
- */
-export interface MsgCreateDenomAmino {
-  sender: string;
-  /** subdenom can be up to 44 "alphanumeric" characters long. */
-  subdenom: string;
-}
-export interface MsgCreateDenomAminoMsg {
-  type: "osmosis/tokenfactory/create-denom";
-  value: MsgCreateDenomAmino;
-}
-/**
- * MsgCreateDenom defines the message structure for the CreateDenom gRPC service
- * method. It allows an account to create a new denom. It requires a sender
- * address and a sub denomination. The (sender_address, sub_denomination) tuple
- * must be unique and cannot be re-used.
- * 
- * The resulting denom created is defined as
- * <factory/{creatorAddress}/{subdenom}>. The resulting denom's admin is
- * originally set to be the creator, but this can be changed later. The token
- * denom does not indicate the current admin.
- */
-export interface MsgCreateDenomSDKType {
-  sender: string;
-  subdenom: string;
-}
-/**
- * MsgCreateDenomResponse is the return value of MsgCreateDenom
- * It returns the full string of the newly created denom
- */
-export interface MsgCreateDenomResponse {
-  newTokenDenom: string;
-}
-export interface MsgCreateDenomResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenomResponse";
-  value: Uint8Array;
-}
-/**
- * MsgCreateDenomResponse is the return value of MsgCreateDenom
- * It returns the full string of the newly created denom
- */
-export interface MsgCreateDenomResponseAmino {
-  new_token_denom: string;
-}
-export interface MsgCreateDenomResponseAminoMsg {
-  type: "osmosis/tokenfactory/create-denom-response";
-  value: MsgCreateDenomResponseAmino;
-}
-/**
- * MsgCreateDenomResponse is the return value of MsgCreateDenom
- * It returns the full string of the newly created denom
- */
-export interface MsgCreateDenomResponseSDKType {
-  new_token_denom: string;
-}
-/**
- * MsgMint is the sdk.Msg type for allowing an admin account to mint
- * more of a token.  For now, we only support minting to the sender account
- */
-export interface MsgMint {
-  sender: string;
-  amount: Coin | undefined;
-}
-export interface MsgMintProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint";
-  value: Uint8Array;
-}
-/**
- * MsgMint is the sdk.Msg type for allowing an admin account to mint
- * more of a token.  For now, we only support minting to the sender account
- */
-export interface MsgMintAmino {
-  sender: string;
-  amount?: CoinAmino | undefined;
-}
-export interface MsgMintAminoMsg {
-  type: "osmosis/tokenfactory/mint";
-  value: MsgMintAmino;
-}
-/**
- * MsgMint is the sdk.Msg type for allowing an admin account to mint
- * more of a token.  For now, we only support minting to the sender account
- */
-export interface MsgMintSDKType {
-  sender: string;
-  amount: CoinSDKType | undefined;
-}
-export interface MsgMintResponse {}
-export interface MsgMintResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMintResponse";
-  value: Uint8Array;
-}
-export interface MsgMintResponseAmino {}
-export interface MsgMintResponseAminoMsg {
-  type: "osmosis/tokenfactory/mint-response";
-  value: MsgMintResponseAmino;
-}
-export interface MsgMintResponseSDKType {}
-/**
- * MsgBurn is the sdk.Msg type for allowing an admin account to burn
- * a token.  For now, we only support burning from the sender account.
- */
-export interface MsgBurn {
-  sender: string;
-  amount: Coin | undefined;
-}
-export interface MsgBurnProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn";
-  value: Uint8Array;
-}
-/**
- * MsgBurn is the sdk.Msg type for allowing an admin account to burn
- * a token.  For now, we only support burning from the sender account.
- */
-export interface MsgBurnAmino {
-  sender: string;
-  amount?: CoinAmino | undefined;
-}
-export interface MsgBurnAminoMsg {
-  type: "osmosis/tokenfactory/burn";
-  value: MsgBurnAmino;
-}
-/**
- * MsgBurn is the sdk.Msg type for allowing an admin account to burn
- * a token.  For now, we only support burning from the sender account.
- */
-export interface MsgBurnSDKType {
-  sender: string;
-  amount: CoinSDKType | undefined;
-}
-export interface MsgBurnResponse {}
-export interface MsgBurnResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurnResponse";
-  value: Uint8Array;
-}
-export interface MsgBurnResponseAmino {}
-export interface MsgBurnResponseAminoMsg {
-  type: "osmosis/tokenfactory/burn-response";
-  value: MsgBurnResponseAmino;
-}
-export interface MsgBurnResponseSDKType {}
-/**
- * MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign
- * adminship of a denom to a new account
- */
-export interface MsgChangeAdmin {
-  sender: string;
-  denom: string;
-  newAdmin: string;
-}
-export interface MsgChangeAdminProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin";
-  value: Uint8Array;
-}
-/**
- * MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign
- * adminship of a denom to a new account
- */
-export interface MsgChangeAdminAmino {
-  sender: string;
-  denom: string;
-  new_admin: string;
-}
-export interface MsgChangeAdminAminoMsg {
-  type: "osmosis/tokenfactory/change-admin";
-  value: MsgChangeAdminAmino;
-}
-/**
- * MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign
- * adminship of a denom to a new account
- */
-export interface MsgChangeAdminSDKType {
-  sender: string;
-  denom: string;
-  new_admin: string;
-}
-/**
- * MsgChangeAdminResponse defines the response structure for an executed
- * MsgChangeAdmin message.
- */
-export interface MsgChangeAdminResponse {}
-export interface MsgChangeAdminResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdminResponse";
-  value: Uint8Array;
-}
-/**
- * MsgChangeAdminResponse defines the response structure for an executed
- * MsgChangeAdmin message.
- */
-export interface MsgChangeAdminResponseAmino {}
-export interface MsgChangeAdminResponseAminoMsg {
-  type: "osmosis/tokenfactory/change-admin-response";
-  value: MsgChangeAdminResponseAmino;
-}
-/**
- * MsgChangeAdminResponse defines the response structure for an executed
- * MsgChangeAdmin message.
- */
-export interface MsgChangeAdminResponseSDKType {}
-/**
- * MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set
- * the denom's bank metadata
- */
-export interface MsgSetDenomMetadata {
-  sender: string;
-  metadata: Metadata | undefined;
-}
-export interface MsgSetDenomMetadataProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata";
-  value: Uint8Array;
-}
-/**
- * MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set
- * the denom's bank metadata
- */
-export interface MsgSetDenomMetadataAmino {
-  sender: string;
-  metadata?: MetadataAmino | undefined;
-}
-export interface MsgSetDenomMetadataAminoMsg {
-  type: "osmosis/tokenfactory/set-denom-metadata";
-  value: MsgSetDenomMetadataAmino;
-}
-/**
- * MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set
- * the denom's bank metadata
- */
-export interface MsgSetDenomMetadataSDKType {
-  sender: string;
-  metadata: MetadataSDKType | undefined;
-}
-/**
- * MsgSetDenomMetadataResponse defines the response structure for an executed
- * MsgSetDenomMetadata message.
- */
-export interface MsgSetDenomMetadataResponse {}
-export interface MsgSetDenomMetadataResponseProtoMsg {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadataResponse";
-  value: Uint8Array;
-}
-/**
- * MsgSetDenomMetadataResponse defines the response structure for an executed
- * MsgSetDenomMetadata message.
- */
-export interface MsgSetDenomMetadataResponseAmino {}
-export interface MsgSetDenomMetadataResponseAminoMsg {
-  type: "osmosis/tokenfactory/set-denom-metadata-response";
-  value: MsgSetDenomMetadataResponseAmino;
-}
-/**
- * MsgSetDenomMetadataResponse defines the response structure for an executed
- * MsgSetDenomMetadata message.
- */
-export interface MsgSetDenomMetadataResponseSDKType {}
-function createBaseMsgCreateDenom(): MsgCreateDenom {
-  return {
-    sender: "",
-    subdenom: ""
-  };
-}
-export const MsgCreateDenom = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-  aminoType: "osmosis/tokenfactory/create-denom",
-  encode(message: MsgCreateDenom, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.subdenom !== "") {
-      writer.uint32(18).string(message.subdenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateDenom {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateDenom();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.subdenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateDenom {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      subdenom: isSet(object.subdenom) ? String(object.subdenom) : ""
-    };
-  },
-  toJSON(message: MsgCreateDenom): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.subdenom !== undefined && (obj.subdenom = message.subdenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateDenom>): MsgCreateDenom {
-    const message = createBaseMsgCreateDenom();
-    message.sender = object.sender ?? "";
-    message.subdenom = object.subdenom ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateDenomSDKType): MsgCreateDenom {
-    return {
-      sender: object?.sender,
-      subdenom: object?.subdenom
-    };
-  },
-  toSDK(message: MsgCreateDenom): MsgCreateDenomSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.subdenom = message.subdenom;
-    return obj;
-  },
-  fromAmino(object: MsgCreateDenomAmino): MsgCreateDenom {
-    return {
-      sender: object.sender,
-      subdenom: object.subdenom
-    };
-  },
-  toAmino(message: MsgCreateDenom): MsgCreateDenomAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.subdenom = message.subdenom;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateDenomAminoMsg): MsgCreateDenom {
-    return MsgCreateDenom.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateDenom): MsgCreateDenomAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/create-denom",
-      value: MsgCreateDenom.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateDenomProtoMsg): MsgCreateDenom {
-    return MsgCreateDenom.decode(message.value);
-  },
-  toProto(message: MsgCreateDenom): Uint8Array {
-    return MsgCreateDenom.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateDenom): MsgCreateDenomProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom",
-      value: MsgCreateDenom.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgCreateDenomResponse(): MsgCreateDenomResponse {
-  return {
-    newTokenDenom: ""
-  };
-}
-export const MsgCreateDenomResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenomResponse",
-  aminoType: "osmosis/tokenfactory/create-denom-response",
-  encode(message: MsgCreateDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.newTokenDenom !== "") {
-      writer.uint32(10).string(message.newTokenDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgCreateDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgCreateDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.newTokenDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgCreateDenomResponse {
-    return {
-      newTokenDenom: isSet(object.newTokenDenom) ? String(object.newTokenDenom) : ""
-    };
-  },
-  toJSON(message: MsgCreateDenomResponse): unknown {
-    const obj: any = {};
-    message.newTokenDenom !== undefined && (obj.newTokenDenom = message.newTokenDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgCreateDenomResponse>): MsgCreateDenomResponse {
-    const message = createBaseMsgCreateDenomResponse();
-    message.newTokenDenom = object.newTokenDenom ?? "";
-    return message;
-  },
-  fromSDK(object: MsgCreateDenomResponseSDKType): MsgCreateDenomResponse {
-    return {
-      newTokenDenom: object?.new_token_denom
-    };
-  },
-  toSDK(message: MsgCreateDenomResponse): MsgCreateDenomResponseSDKType {
-    const obj: any = {};
-    obj.new_token_denom = message.newTokenDenom;
-    return obj;
-  },
-  fromAmino(object: MsgCreateDenomResponseAmino): MsgCreateDenomResponse {
-    return {
-      newTokenDenom: object.new_token_denom
-    };
-  },
-  toAmino(message: MsgCreateDenomResponse): MsgCreateDenomResponseAmino {
-    const obj: any = {};
-    obj.new_token_denom = message.newTokenDenom;
-    return obj;
-  },
-  fromAminoMsg(object: MsgCreateDenomResponseAminoMsg): MsgCreateDenomResponse {
-    return MsgCreateDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgCreateDenomResponse): MsgCreateDenomResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/create-denom-response",
-      value: MsgCreateDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgCreateDenomResponseProtoMsg): MsgCreateDenomResponse {
-    return MsgCreateDenomResponse.decode(message.value);
-  },
-  toProto(message: MsgCreateDenomResponse): Uint8Array {
-    return MsgCreateDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgCreateDenomResponse): MsgCreateDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgCreateDenomResponse",
-      value: MsgCreateDenomResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMint(): MsgMint {
-  return {
-    sender: "",
-    amount: Coin.fromPartial({})
-  };
-}
-export const MsgMint = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-  aminoType: "osmosis/tokenfactory/mint",
-  encode(message: MsgMint, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMint {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMint();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgMint {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: MsgMint): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgMint>): MsgMint {
-    const message = createBaseMsgMint();
-    message.sender = object.sender ?? "";
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgMintSDKType): MsgMint {
-    return {
-      sender: object?.sender,
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: MsgMint): MsgMintSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgMintAmino): MsgMint {
-    return {
-      sender: object.sender,
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: MsgMint): MsgMintAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgMintAminoMsg): MsgMint {
-    return MsgMint.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMint): MsgMintAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/mint",
-      value: MsgMint.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMintProtoMsg): MsgMint {
-    return MsgMint.decode(message.value);
-  },
-  toProto(message: MsgMint): Uint8Array {
-    return MsgMint.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMint): MsgMintProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMint",
-      value: MsgMint.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgMintResponse(): MsgMintResponse {
-  return {};
-}
-export const MsgMintResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMintResponse",
-  aminoType: "osmosis/tokenfactory/mint-response",
-  encode(_: MsgMintResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgMintResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgMintResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgMintResponse {
-    return {};
-  },
-  toJSON(_: MsgMintResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgMintResponse>): MsgMintResponse {
-    const message = createBaseMsgMintResponse();
-    return message;
-  },
-  fromSDK(_: MsgMintResponseSDKType): MsgMintResponse {
-    return {};
-  },
-  toSDK(_: MsgMintResponse): MsgMintResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgMintResponseAmino): MsgMintResponse {
-    return {};
-  },
-  toAmino(_: MsgMintResponse): MsgMintResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgMintResponseAminoMsg): MsgMintResponse {
-    return MsgMintResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgMintResponse): MsgMintResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/mint-response",
-      value: MsgMintResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgMintResponseProtoMsg): MsgMintResponse {
-    return MsgMintResponse.decode(message.value);
-  },
-  toProto(message: MsgMintResponse): Uint8Array {
-    return MsgMintResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgMintResponse): MsgMintResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgMintResponse",
-      value: MsgMintResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBurn(): MsgBurn {
-  return {
-    sender: "",
-    amount: Coin.fromPartial({})
-  };
-}
-export const MsgBurn = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-  aminoType: "osmosis/tokenfactory/burn",
-  encode(message: MsgBurn, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.amount !== undefined) {
-      Coin.encode(message.amount, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBurn {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBurn();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.amount = Coin.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgBurn {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined
-    };
-  },
-  toJSON(message: MsgBurn): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgBurn>): MsgBurn {
-    const message = createBaseMsgBurn();
-    message.sender = object.sender ?? "";
-    message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgBurnSDKType): MsgBurn {
-    return {
-      sender: object?.sender,
-      amount: object.amount ? Coin.fromSDK(object.amount) : undefined
-    };
-  },
-  toSDK(message: MsgBurn): MsgBurnSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    message.amount !== undefined && (obj.amount = message.amount ? Coin.toSDK(message.amount) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgBurnAmino): MsgBurn {
-    return {
-      sender: object.sender,
-      amount: object?.amount ? Coin.fromAmino(object.amount) : undefined
-    };
-  },
-  toAmino(message: MsgBurn): MsgBurnAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.amount = message.amount ? Coin.toAmino(message.amount) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgBurnAminoMsg): MsgBurn {
-    return MsgBurn.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBurn): MsgBurnAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/burn",
-      value: MsgBurn.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBurnProtoMsg): MsgBurn {
-    return MsgBurn.decode(message.value);
-  },
-  toProto(message: MsgBurn): Uint8Array {
-    return MsgBurn.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBurn): MsgBurnProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurn",
-      value: MsgBurn.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgBurnResponse(): MsgBurnResponse {
-  return {};
-}
-export const MsgBurnResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurnResponse",
-  aminoType: "osmosis/tokenfactory/burn-response",
-  encode(_: MsgBurnResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgBurnResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgBurnResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgBurnResponse {
-    return {};
-  },
-  toJSON(_: MsgBurnResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgBurnResponse>): MsgBurnResponse {
-    const message = createBaseMsgBurnResponse();
-    return message;
-  },
-  fromSDK(_: MsgBurnResponseSDKType): MsgBurnResponse {
-    return {};
-  },
-  toSDK(_: MsgBurnResponse): MsgBurnResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgBurnResponseAmino): MsgBurnResponse {
-    return {};
-  },
-  toAmino(_: MsgBurnResponse): MsgBurnResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgBurnResponseAminoMsg): MsgBurnResponse {
-    return MsgBurnResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgBurnResponse): MsgBurnResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/burn-response",
-      value: MsgBurnResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgBurnResponseProtoMsg): MsgBurnResponse {
-    return MsgBurnResponse.decode(message.value);
-  },
-  toProto(message: MsgBurnResponse): Uint8Array {
-    return MsgBurnResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgBurnResponse): MsgBurnResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgBurnResponse",
-      value: MsgBurnResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChangeAdmin(): MsgChangeAdmin {
-  return {
-    sender: "",
-    denom: "",
-    newAdmin: ""
-  };
-}
-export const MsgChangeAdmin = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-  aminoType: "osmosis/tokenfactory/change-admin",
-  encode(message: MsgChangeAdmin, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.denom !== "") {
-      writer.uint32(18).string(message.denom);
-    }
-    if (message.newAdmin !== "") {
-      writer.uint32(26).string(message.newAdmin);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChangeAdmin {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChangeAdmin();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.denom = reader.string();
-          break;
-        case 3:
-          message.newAdmin = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgChangeAdmin {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      newAdmin: isSet(object.newAdmin) ? String(object.newAdmin) : ""
-    };
-  },
-  toJSON(message: MsgChangeAdmin): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgChangeAdmin>): MsgChangeAdmin {
-    const message = createBaseMsgChangeAdmin();
-    message.sender = object.sender ?? "";
-    message.denom = object.denom ?? "";
-    message.newAdmin = object.newAdmin ?? "";
-    return message;
-  },
-  fromSDK(object: MsgChangeAdminSDKType): MsgChangeAdmin {
-    return {
-      sender: object?.sender,
-      denom: object?.denom,
-      newAdmin: object?.new_admin
-    };
-  },
-  toSDK(message: MsgChangeAdmin): MsgChangeAdminSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.denom = message.denom;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAmino(object: MsgChangeAdminAmino): MsgChangeAdmin {
-    return {
-      sender: object.sender,
-      denom: object.denom,
-      newAdmin: object.new_admin
-    };
-  },
-  toAmino(message: MsgChangeAdmin): MsgChangeAdminAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.denom = message.denom;
-    obj.new_admin = message.newAdmin;
-    return obj;
-  },
-  fromAminoMsg(object: MsgChangeAdminAminoMsg): MsgChangeAdmin {
-    return MsgChangeAdmin.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChangeAdmin): MsgChangeAdminAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/change-admin",
-      value: MsgChangeAdmin.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChangeAdminProtoMsg): MsgChangeAdmin {
-    return MsgChangeAdmin.decode(message.value);
-  },
-  toProto(message: MsgChangeAdmin): Uint8Array {
-    return MsgChangeAdmin.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChangeAdmin): MsgChangeAdminProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdmin",
-      value: MsgChangeAdmin.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgChangeAdminResponse(): MsgChangeAdminResponse {
-  return {};
-}
-export const MsgChangeAdminResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdminResponse",
-  aminoType: "osmosis/tokenfactory/change-admin-response",
-  encode(_: MsgChangeAdminResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgChangeAdminResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgChangeAdminResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgChangeAdminResponse {
-    return {};
-  },
-  toJSON(_: MsgChangeAdminResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgChangeAdminResponse>): MsgChangeAdminResponse {
-    const message = createBaseMsgChangeAdminResponse();
-    return message;
-  },
-  fromSDK(_: MsgChangeAdminResponseSDKType): MsgChangeAdminResponse {
-    return {};
-  },
-  toSDK(_: MsgChangeAdminResponse): MsgChangeAdminResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgChangeAdminResponseAmino): MsgChangeAdminResponse {
-    return {};
-  },
-  toAmino(_: MsgChangeAdminResponse): MsgChangeAdminResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgChangeAdminResponseAminoMsg): MsgChangeAdminResponse {
-    return MsgChangeAdminResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgChangeAdminResponse): MsgChangeAdminResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/change-admin-response",
-      value: MsgChangeAdminResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgChangeAdminResponseProtoMsg): MsgChangeAdminResponse {
-    return MsgChangeAdminResponse.decode(message.value);
-  },
-  toProto(message: MsgChangeAdminResponse): Uint8Array {
-    return MsgChangeAdminResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgChangeAdminResponse): MsgChangeAdminResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgChangeAdminResponse",
-      value: MsgChangeAdminResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSetDenomMetadata(): MsgSetDenomMetadata {
-  return {
-    sender: "",
-    metadata: Metadata.fromPartial({})
-  };
-}
-export const MsgSetDenomMetadata = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-  aminoType: "osmosis/tokenfactory/set-denom-metadata",
-  encode(message: MsgSetDenomMetadata, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.sender !== "") {
-      writer.uint32(10).string(message.sender);
-    }
-    if (message.metadata !== undefined) {
-      Metadata.encode(message.metadata, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSetDenomMetadata {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSetDenomMetadata();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.sender = reader.string();
-          break;
-        case 2:
-          message.metadata = Metadata.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): MsgSetDenomMetadata {
-    return {
-      sender: isSet(object.sender) ? String(object.sender) : "",
-      metadata: isSet(object.metadata) ? Metadata.fromJSON(object.metadata) : undefined
-    };
-  },
-  toJSON(message: MsgSetDenomMetadata): unknown {
-    const obj: any = {};
-    message.sender !== undefined && (obj.sender = message.sender);
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toJSON(message.metadata) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<MsgSetDenomMetadata>): MsgSetDenomMetadata {
-    const message = createBaseMsgSetDenomMetadata();
-    message.sender = object.sender ?? "";
-    message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined;
-    return message;
-  },
-  fromSDK(object: MsgSetDenomMetadataSDKType): MsgSetDenomMetadata {
-    return {
-      sender: object?.sender,
-      metadata: object.metadata ? Metadata.fromSDK(object.metadata) : undefined
-    };
-  },
-  toSDK(message: MsgSetDenomMetadata): MsgSetDenomMetadataSDKType {
-    const obj: any = {};
-    obj.sender = message.sender;
-    message.metadata !== undefined && (obj.metadata = message.metadata ? Metadata.toSDK(message.metadata) : undefined);
-    return obj;
-  },
-  fromAmino(object: MsgSetDenomMetadataAmino): MsgSetDenomMetadata {
-    return {
-      sender: object.sender,
-      metadata: object?.metadata ? Metadata.fromAmino(object.metadata) : undefined
-    };
-  },
-  toAmino(message: MsgSetDenomMetadata): MsgSetDenomMetadataAmino {
-    const obj: any = {};
-    obj.sender = message.sender;
-    obj.metadata = message.metadata ? Metadata.toAmino(message.metadata) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: MsgSetDenomMetadataAminoMsg): MsgSetDenomMetadata {
-    return MsgSetDenomMetadata.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSetDenomMetadata): MsgSetDenomMetadataAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/set-denom-metadata",
-      value: MsgSetDenomMetadata.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSetDenomMetadataProtoMsg): MsgSetDenomMetadata {
-    return MsgSetDenomMetadata.decode(message.value);
-  },
-  toProto(message: MsgSetDenomMetadata): Uint8Array {
-    return MsgSetDenomMetadata.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSetDenomMetadata): MsgSetDenomMetadataProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata",
-      value: MsgSetDenomMetadata.encode(message).finish()
-    };
-  }
-};
-function createBaseMsgSetDenomMetadataResponse(): MsgSetDenomMetadataResponse {
-  return {};
-}
-export const MsgSetDenomMetadataResponse = {
-  typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadataResponse",
-  aminoType: "osmosis/tokenfactory/set-denom-metadata-response",
-  encode(_: MsgSetDenomMetadataResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): MsgSetDenomMetadataResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseMsgSetDenomMetadataResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): MsgSetDenomMetadataResponse {
-    return {};
-  },
-  toJSON(_: MsgSetDenomMetadataResponse): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<MsgSetDenomMetadataResponse>): MsgSetDenomMetadataResponse {
-    const message = createBaseMsgSetDenomMetadataResponse();
-    return message;
-  },
-  fromSDK(_: MsgSetDenomMetadataResponseSDKType): MsgSetDenomMetadataResponse {
-    return {};
-  },
-  toSDK(_: MsgSetDenomMetadataResponse): MsgSetDenomMetadataResponseSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: MsgSetDenomMetadataResponseAmino): MsgSetDenomMetadataResponse {
-    return {};
-  },
-  toAmino(_: MsgSetDenomMetadataResponse): MsgSetDenomMetadataResponseAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: MsgSetDenomMetadataResponseAminoMsg): MsgSetDenomMetadataResponse {
-    return MsgSetDenomMetadataResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: MsgSetDenomMetadataResponse): MsgSetDenomMetadataResponseAminoMsg {
-    return {
-      type: "osmosis/tokenfactory/set-denom-metadata-response",
-      value: MsgSetDenomMetadataResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: MsgSetDenomMetadataResponseProtoMsg): MsgSetDenomMetadataResponse {
-    return MsgSetDenomMetadataResponse.decode(message.value);
-  },
-  toProto(message: MsgSetDenomMetadataResponse): Uint8Array {
-    return MsgSetDenomMetadataResponse.encode(message).finish();
-  },
-  toProtoMsg(message: MsgSetDenomMetadataResponse): MsgSetDenomMetadataResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadataResponse",
-      value: MsgSetDenomMetadataResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/twap/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/twap/v1beta1/genesis.ts
deleted file mode 100644
index 91ce15bc..00000000
--- a/examples/injective/src/codegen/osmosis/twap/v1beta1/genesis.ts
+++ /dev/null
@@ -1,270 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../../google/protobuf/duration";
-import { TwapRecord, TwapRecordAmino, TwapRecordSDKType } from "./twap_record";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** Params holds parameters for the twap module */
-export interface Params {
-  pruneEpochIdentifier: string;
-  recordHistoryKeepPeriod: Duration | undefined;
-}
-export interface ParamsProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.Params";
-  value: Uint8Array;
-}
-/** Params holds parameters for the twap module */
-export interface ParamsAmino {
-  prune_epoch_identifier: string;
-  record_history_keep_period?: DurationAmino | undefined;
-}
-export interface ParamsAminoMsg {
-  type: "osmosis/twap/params";
-  value: ParamsAmino;
-}
-/** Params holds parameters for the twap module */
-export interface ParamsSDKType {
-  prune_epoch_identifier: string;
-  record_history_keep_period: DurationSDKType | undefined;
-}
-/** GenesisState defines the twap module's genesis state. */
-export interface GenesisState {
-  /** twaps is the collection of all twap records. */
-  twaps: TwapRecord[];
-  /** params is the container of twap parameters. */
-  params: Params | undefined;
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the twap module's genesis state. */
-export interface GenesisStateAmino {
-  /** twaps is the collection of all twap records. */
-  twaps: TwapRecordAmino[];
-  /** params is the container of twap parameters. */
-  params?: ParamsAmino | undefined;
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/twap/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the twap module's genesis state. */
-export interface GenesisStateSDKType {
-  twaps: TwapRecordSDKType[];
-  params: ParamsSDKType | undefined;
-}
-function createBaseParams(): Params {
-  return {
-    pruneEpochIdentifier: "",
-    recordHistoryKeepPeriod: Duration.fromPartial({})
-  };
-}
-export const Params = {
-  typeUrl: "/osmosis.twap.v1beta1.Params",
-  aminoType: "osmosis/twap/params",
-  encode(message: Params, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pruneEpochIdentifier !== "") {
-      writer.uint32(10).string(message.pruneEpochIdentifier);
-    }
-    if (message.recordHistoryKeepPeriod !== undefined) {
-      Duration.encode(message.recordHistoryKeepPeriod, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Params {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pruneEpochIdentifier = reader.string();
-          break;
-        case 2:
-          message.recordHistoryKeepPeriod = Duration.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Params {
-    return {
-      pruneEpochIdentifier: isSet(object.pruneEpochIdentifier) ? String(object.pruneEpochIdentifier) : "",
-      recordHistoryKeepPeriod: isSet(object.recordHistoryKeepPeriod) ? Duration.fromJSON(object.recordHistoryKeepPeriod) : undefined
-    };
-  },
-  toJSON(message: Params): unknown {
-    const obj: any = {};
-    message.pruneEpochIdentifier !== undefined && (obj.pruneEpochIdentifier = message.pruneEpochIdentifier);
-    message.recordHistoryKeepPeriod !== undefined && (obj.recordHistoryKeepPeriod = message.recordHistoryKeepPeriod ? Duration.toJSON(message.recordHistoryKeepPeriod) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Params>): Params {
-    const message = createBaseParams();
-    message.pruneEpochIdentifier = object.pruneEpochIdentifier ?? "";
-    message.recordHistoryKeepPeriod = object.recordHistoryKeepPeriod !== undefined && object.recordHistoryKeepPeriod !== null ? Duration.fromPartial(object.recordHistoryKeepPeriod) : undefined;
-    return message;
-  },
-  fromSDK(object: ParamsSDKType): Params {
-    return {
-      pruneEpochIdentifier: object?.prune_epoch_identifier,
-      recordHistoryKeepPeriod: object.record_history_keep_period ? Duration.fromSDK(object.record_history_keep_period) : undefined
-    };
-  },
-  toSDK(message: Params): ParamsSDKType {
-    const obj: any = {};
-    obj.prune_epoch_identifier = message.pruneEpochIdentifier;
-    message.recordHistoryKeepPeriod !== undefined && (obj.record_history_keep_period = message.recordHistoryKeepPeriod ? Duration.toSDK(message.recordHistoryKeepPeriod) : undefined);
-    return obj;
-  },
-  fromAmino(object: ParamsAmino): Params {
-    return {
-      pruneEpochIdentifier: object.prune_epoch_identifier,
-      recordHistoryKeepPeriod: object?.record_history_keep_period ? Duration.fromAmino(object.record_history_keep_period) : undefined
-    };
-  },
-  toAmino(message: Params): ParamsAmino {
-    const obj: any = {};
-    obj.prune_epoch_identifier = message.pruneEpochIdentifier;
-    obj.record_history_keep_period = message.recordHistoryKeepPeriod ? Duration.toAmino(message.recordHistoryKeepPeriod) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsAminoMsg): Params {
-    return Params.fromAmino(object.value);
-  },
-  toAminoMsg(message: Params): ParamsAminoMsg {
-    return {
-      type: "osmosis/twap/params",
-      value: Params.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsProtoMsg): Params {
-    return Params.decode(message.value);
-  },
-  toProto(message: Params): Uint8Array {
-    return Params.encode(message).finish();
-  },
-  toProtoMsg(message: Params): ParamsProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.Params",
-      value: Params.encode(message).finish()
-    };
-  }
-};
-function createBaseGenesisState(): GenesisState {
-  return {
-    twaps: [],
-    params: Params.fromPartial({})
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.twap.v1beta1.GenesisState",
-  aminoType: "osmosis/twap/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.twaps) {
-      TwapRecord.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.twaps.push(TwapRecord.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      twaps: Array.isArray(object?.twaps) ? object.twaps.map((e: any) => TwapRecord.fromJSON(e)) : [],
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    if (message.twaps) {
-      obj.twaps = message.twaps.map(e => e ? TwapRecord.toJSON(e) : undefined);
-    } else {
-      obj.twaps = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.twaps = object.twaps?.map(e => TwapRecord.fromPartial(e)) || [];
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      twaps: Array.isArray(object?.twaps) ? object.twaps.map((e: any) => TwapRecord.fromSDK(e)) : [],
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    if (message.twaps) {
-      obj.twaps = message.twaps.map(e => e ? TwapRecord.toSDK(e) : undefined);
-    } else {
-      obj.twaps = [];
-    }
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      twaps: Array.isArray(object?.twaps) ? object.twaps.map((e: any) => TwapRecord.fromAmino(e)) : [],
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    if (message.twaps) {
-      obj.twaps = message.twaps.map(e => e ? TwapRecord.toAmino(e) : undefined);
-    } else {
-      obj.twaps = [];
-    }
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/twap/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/twap/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/twap/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index edc369a9..00000000
--- a/examples/injective/src/codegen/osmosis/twap/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,131 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { ParamsRequest, ParamsResponse, ArithmeticTwapRequest, ArithmeticTwapResponse, ArithmeticTwapToNowRequest, ArithmeticTwapToNowResponse } from "./query";
-export interface Query {
-  params(request?: ParamsRequest): Promise<ParamsResponse>;
-  arithmeticTwap(request: ArithmeticTwapRequest): Promise<ArithmeticTwapResponse>;
-  arithmeticTwapToNow(request: ArithmeticTwapToNowRequest): Promise<ArithmeticTwapToNowResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.params = this.params.bind(this);
-    this.arithmeticTwap = this.arithmeticTwap.bind(this);
-    this.arithmeticTwapToNow = this.arithmeticTwapToNow.bind(this);
-  }
-  params(request: ParamsRequest = {}): Promise<ParamsResponse> {
-    const data = ParamsRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.twap.v1beta1.Query", "Params", data);
-    return promise.then(data => ParamsResponse.decode(new BinaryReader(data)));
-  }
-  arithmeticTwap(request: ArithmeticTwapRequest): Promise<ArithmeticTwapResponse> {
-    const data = ArithmeticTwapRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.twap.v1beta1.Query", "ArithmeticTwap", data);
-    return promise.then(data => ArithmeticTwapResponse.decode(new BinaryReader(data)));
-  }
-  arithmeticTwapToNow(request: ArithmeticTwapToNowRequest): Promise<ArithmeticTwapToNowResponse> {
-    const data = ArithmeticTwapToNowRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.twap.v1beta1.Query", "ArithmeticTwapToNow", data);
-    return promise.then(data => ArithmeticTwapToNowResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    params(request?: ParamsRequest): Promise<ParamsResponse> {
-      return queryService.params(request);
-    },
-    arithmeticTwap(request: ArithmeticTwapRequest): Promise<ArithmeticTwapResponse> {
-      return queryService.arithmeticTwap(request);
-    },
-    arithmeticTwapToNow(request: ArithmeticTwapToNowRequest): Promise<ArithmeticTwapToNowResponse> {
-      return queryService.arithmeticTwapToNow(request);
-    }
-  };
-};
-export interface UseParamsQuery<TData> extends ReactQueryParams<ParamsResponse, TData> {
-  request?: ParamsRequest;
-}
-export interface UseArithmeticTwapQuery<TData> extends ReactQueryParams<ArithmeticTwapResponse, TData> {
-  request: ArithmeticTwapRequest;
-}
-export interface UseArithmeticTwapToNowQuery<TData> extends ReactQueryParams<ArithmeticTwapToNowResponse, TData> {
-  request: ArithmeticTwapToNowRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useParams = <TData = ParamsResponse,>({
-    request,
-    options
-  }: UseParamsQuery<TData>) => {
-    return useQuery<ParamsResponse, Error, TData>(["paramsQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.params(request);
-    }, options);
-  };
-  const useArithmeticTwap = <TData = ArithmeticTwapResponse,>({
-    request,
-    options
-  }: UseArithmeticTwapQuery<TData>) => {
-    return useQuery<ArithmeticTwapResponse, Error, TData>(["arithmeticTwapQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.arithmeticTwap(request);
-    }, options);
-  };
-  const useArithmeticTwapToNow = <TData = ArithmeticTwapToNowResponse,>({
-    request,
-    options
-  }: UseArithmeticTwapToNowQuery<TData>) => {
-    return useQuery<ArithmeticTwapToNowResponse, Error, TData>(["arithmeticTwapToNowQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.arithmeticTwapToNow(request);
-    }, options);
-  };
-  return {
-    useParams,
-    useArithmeticTwap,
-    useArithmeticTwapToNow
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryParamsStore {
-    store = new QueryStore<ParamsRequest, ParamsResponse>(queryService?.params);
-    params(request: ParamsRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryArithmeticTwapStore {
-    store = new QueryStore<ArithmeticTwapRequest, ArithmeticTwapResponse>(queryService?.arithmeticTwap);
-    arithmeticTwap(request: ArithmeticTwapRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryArithmeticTwapToNowStore {
-    store = new QueryStore<ArithmeticTwapToNowRequest, ArithmeticTwapToNowResponse>(queryService?.arithmeticTwapToNow);
-    arithmeticTwapToNow(request: ArithmeticTwapToNowRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    QueryParamsStore,
-    QueryArithmeticTwapStore,
-    QueryArithmeticTwapToNowStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/twap/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/twap/v1beta1/query.ts
deleted file mode 100644
index da976c8b..00000000
--- a/examples/injective/src/codegen/osmosis/twap/v1beta1/query.ts
+++ /dev/null
@@ -1,730 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { Params, ParamsAmino, ParamsSDKType } from "./genesis";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-import { Decimal } from "@cosmjs/math";
-export interface ArithmeticTwapRequest {
-  poolId: bigint;
-  baseAsset: string;
-  quoteAsset: string;
-  startTime: Date | undefined;
-  endTime?: Date | undefined;
-}
-export interface ArithmeticTwapRequestProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapRequest";
-  value: Uint8Array;
-}
-export interface ArithmeticTwapRequestAmino {
-  pool_id: string;
-  base_asset: string;
-  quote_asset: string;
-  start_time?: Date | undefined;
-  end_time?: Date | undefined;
-}
-export interface ArithmeticTwapRequestAminoMsg {
-  type: "osmosis/twap/arithmetic-twap-request";
-  value: ArithmeticTwapRequestAmino;
-}
-export interface ArithmeticTwapRequestSDKType {
-  pool_id: bigint;
-  base_asset: string;
-  quote_asset: string;
-  start_time: Date | undefined;
-  end_time?: Date | undefined;
-}
-export interface ArithmeticTwapResponse {
-  arithmeticTwap: string;
-}
-export interface ArithmeticTwapResponseProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapResponse";
-  value: Uint8Array;
-}
-export interface ArithmeticTwapResponseAmino {
-  arithmetic_twap: string;
-}
-export interface ArithmeticTwapResponseAminoMsg {
-  type: "osmosis/twap/arithmetic-twap-response";
-  value: ArithmeticTwapResponseAmino;
-}
-export interface ArithmeticTwapResponseSDKType {
-  arithmetic_twap: string;
-}
-export interface ArithmeticTwapToNowRequest {
-  poolId: bigint;
-  baseAsset: string;
-  quoteAsset: string;
-  startTime: Date | undefined;
-}
-export interface ArithmeticTwapToNowRequestProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowRequest";
-  value: Uint8Array;
-}
-export interface ArithmeticTwapToNowRequestAmino {
-  pool_id: string;
-  base_asset: string;
-  quote_asset: string;
-  start_time?: Date | undefined;
-}
-export interface ArithmeticTwapToNowRequestAminoMsg {
-  type: "osmosis/twap/arithmetic-twap-to-now-request";
-  value: ArithmeticTwapToNowRequestAmino;
-}
-export interface ArithmeticTwapToNowRequestSDKType {
-  pool_id: bigint;
-  base_asset: string;
-  quote_asset: string;
-  start_time: Date | undefined;
-}
-export interface ArithmeticTwapToNowResponse {
-  arithmeticTwap: string;
-}
-export interface ArithmeticTwapToNowResponseProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowResponse";
-  value: Uint8Array;
-}
-export interface ArithmeticTwapToNowResponseAmino {
-  arithmetic_twap: string;
-}
-export interface ArithmeticTwapToNowResponseAminoMsg {
-  type: "osmosis/twap/arithmetic-twap-to-now-response";
-  value: ArithmeticTwapToNowResponseAmino;
-}
-export interface ArithmeticTwapToNowResponseSDKType {
-  arithmetic_twap: string;
-}
-export interface ParamsRequest {}
-export interface ParamsRequestProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ParamsRequest";
-  value: Uint8Array;
-}
-export interface ParamsRequestAmino {}
-export interface ParamsRequestAminoMsg {
-  type: "osmosis/twap/params-request";
-  value: ParamsRequestAmino;
-}
-export interface ParamsRequestSDKType {}
-export interface ParamsResponse {
-  params: Params | undefined;
-}
-export interface ParamsResponseProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.ParamsResponse";
-  value: Uint8Array;
-}
-export interface ParamsResponseAmino {
-  params?: ParamsAmino | undefined;
-}
-export interface ParamsResponseAminoMsg {
-  type: "osmosis/twap/params-response";
-  value: ParamsResponseAmino;
-}
-export interface ParamsResponseSDKType {
-  params: ParamsSDKType | undefined;
-}
-function createBaseArithmeticTwapRequest(): ArithmeticTwapRequest {
-  return {
-    poolId: BigInt(0),
-    baseAsset: "",
-    quoteAsset: "",
-    startTime: new Date(),
-    endTime: undefined
-  };
-}
-export const ArithmeticTwapRequest = {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapRequest",
-  aminoType: "osmosis/twap/arithmetic-twap-request",
-  encode(message: ArithmeticTwapRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.baseAsset !== "") {
-      writer.uint32(18).string(message.baseAsset);
-    }
-    if (message.quoteAsset !== "") {
-      writer.uint32(26).string(message.quoteAsset);
-    }
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(34).fork()).ldelim();
-    }
-    if (message.endTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.endTime), writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ArithmeticTwapRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseArithmeticTwapRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.baseAsset = reader.string();
-          break;
-        case 3:
-          message.quoteAsset = reader.string();
-          break;
-        case 4:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.endTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ArithmeticTwapRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      baseAsset: isSet(object.baseAsset) ? String(object.baseAsset) : "",
-      quoteAsset: isSet(object.quoteAsset) ? String(object.quoteAsset) : "",
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined,
-      endTime: isSet(object.endTime) ? new Date(object.endTime) : undefined
-    };
-  },
-  toJSON(message: ArithmeticTwapRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.baseAsset !== undefined && (obj.baseAsset = message.baseAsset);
-    message.quoteAsset !== undefined && (obj.quoteAsset = message.quoteAsset);
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    message.endTime !== undefined && (obj.endTime = message.endTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ArithmeticTwapRequest>): ArithmeticTwapRequest {
-    const message = createBaseArithmeticTwapRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.baseAsset = object.baseAsset ?? "";
-    message.quoteAsset = object.quoteAsset ?? "";
-    message.startTime = object.startTime ?? undefined;
-    message.endTime = object.endTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: ArithmeticTwapRequestSDKType): ArithmeticTwapRequest {
-    return {
-      poolId: object?.pool_id,
-      baseAsset: object?.base_asset,
-      quoteAsset: object?.quote_asset,
-      startTime: object.start_time ?? undefined,
-      endTime: object.end_time ?? undefined
-    };
-  },
-  toSDK(message: ArithmeticTwapRequest): ArithmeticTwapRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.base_asset = message.baseAsset;
-    obj.quote_asset = message.quoteAsset;
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    message.endTime !== undefined && (obj.end_time = message.endTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: ArithmeticTwapRequestAmino): ArithmeticTwapRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      baseAsset: object.base_asset,
-      quoteAsset: object.quote_asset,
-      startTime: object.start_time,
-      endTime: object?.end_time
-    };
-  },
-  toAmino(message: ArithmeticTwapRequest): ArithmeticTwapRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.base_asset = message.baseAsset;
-    obj.quote_asset = message.quoteAsset;
-    obj.start_time = message.startTime;
-    obj.end_time = message.endTime;
-    return obj;
-  },
-  fromAminoMsg(object: ArithmeticTwapRequestAminoMsg): ArithmeticTwapRequest {
-    return ArithmeticTwapRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ArithmeticTwapRequest): ArithmeticTwapRequestAminoMsg {
-    return {
-      type: "osmosis/twap/arithmetic-twap-request",
-      value: ArithmeticTwapRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ArithmeticTwapRequestProtoMsg): ArithmeticTwapRequest {
-    return ArithmeticTwapRequest.decode(message.value);
-  },
-  toProto(message: ArithmeticTwapRequest): Uint8Array {
-    return ArithmeticTwapRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ArithmeticTwapRequest): ArithmeticTwapRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapRequest",
-      value: ArithmeticTwapRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseArithmeticTwapResponse(): ArithmeticTwapResponse {
-  return {
-    arithmeticTwap: ""
-  };
-}
-export const ArithmeticTwapResponse = {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapResponse",
-  aminoType: "osmosis/twap/arithmetic-twap-response",
-  encode(message: ArithmeticTwapResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.arithmeticTwap !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.arithmeticTwap, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ArithmeticTwapResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseArithmeticTwapResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.arithmeticTwap = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ArithmeticTwapResponse {
-    return {
-      arithmeticTwap: isSet(object.arithmeticTwap) ? String(object.arithmeticTwap) : ""
-    };
-  },
-  toJSON(message: ArithmeticTwapResponse): unknown {
-    const obj: any = {};
-    message.arithmeticTwap !== undefined && (obj.arithmeticTwap = message.arithmeticTwap);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ArithmeticTwapResponse>): ArithmeticTwapResponse {
-    const message = createBaseArithmeticTwapResponse();
-    message.arithmeticTwap = object.arithmeticTwap ?? "";
-    return message;
-  },
-  fromSDK(object: ArithmeticTwapResponseSDKType): ArithmeticTwapResponse {
-    return {
-      arithmeticTwap: object?.arithmetic_twap
-    };
-  },
-  toSDK(message: ArithmeticTwapResponse): ArithmeticTwapResponseSDKType {
-    const obj: any = {};
-    obj.arithmetic_twap = message.arithmeticTwap;
-    return obj;
-  },
-  fromAmino(object: ArithmeticTwapResponseAmino): ArithmeticTwapResponse {
-    return {
-      arithmeticTwap: object.arithmetic_twap
-    };
-  },
-  toAmino(message: ArithmeticTwapResponse): ArithmeticTwapResponseAmino {
-    const obj: any = {};
-    obj.arithmetic_twap = message.arithmeticTwap;
-    return obj;
-  },
-  fromAminoMsg(object: ArithmeticTwapResponseAminoMsg): ArithmeticTwapResponse {
-    return ArithmeticTwapResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ArithmeticTwapResponse): ArithmeticTwapResponseAminoMsg {
-    return {
-      type: "osmosis/twap/arithmetic-twap-response",
-      value: ArithmeticTwapResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ArithmeticTwapResponseProtoMsg): ArithmeticTwapResponse {
-    return ArithmeticTwapResponse.decode(message.value);
-  },
-  toProto(message: ArithmeticTwapResponse): Uint8Array {
-    return ArithmeticTwapResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ArithmeticTwapResponse): ArithmeticTwapResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapResponse",
-      value: ArithmeticTwapResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseArithmeticTwapToNowRequest(): ArithmeticTwapToNowRequest {
-  return {
-    poolId: BigInt(0),
-    baseAsset: "",
-    quoteAsset: "",
-    startTime: new Date()
-  };
-}
-export const ArithmeticTwapToNowRequest = {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowRequest",
-  aminoType: "osmosis/twap/arithmetic-twap-to-now-request",
-  encode(message: ArithmeticTwapToNowRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.baseAsset !== "") {
-      writer.uint32(18).string(message.baseAsset);
-    }
-    if (message.quoteAsset !== "") {
-      writer.uint32(26).string(message.quoteAsset);
-    }
-    if (message.startTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.startTime), writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ArithmeticTwapToNowRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseArithmeticTwapToNowRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.baseAsset = reader.string();
-          break;
-        case 3:
-          message.quoteAsset = reader.string();
-          break;
-        case 4:
-          message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ArithmeticTwapToNowRequest {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      baseAsset: isSet(object.baseAsset) ? String(object.baseAsset) : "",
-      quoteAsset: isSet(object.quoteAsset) ? String(object.quoteAsset) : "",
-      startTime: isSet(object.startTime) ? new Date(object.startTime) : undefined
-    };
-  },
-  toJSON(message: ArithmeticTwapToNowRequest): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.baseAsset !== undefined && (obj.baseAsset = message.baseAsset);
-    message.quoteAsset !== undefined && (obj.quoteAsset = message.quoteAsset);
-    message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ArithmeticTwapToNowRequest>): ArithmeticTwapToNowRequest {
-    const message = createBaseArithmeticTwapToNowRequest();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.baseAsset = object.baseAsset ?? "";
-    message.quoteAsset = object.quoteAsset ?? "";
-    message.startTime = object.startTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: ArithmeticTwapToNowRequestSDKType): ArithmeticTwapToNowRequest {
-    return {
-      poolId: object?.pool_id,
-      baseAsset: object?.base_asset,
-      quoteAsset: object?.quote_asset,
-      startTime: object.start_time ?? undefined
-    };
-  },
-  toSDK(message: ArithmeticTwapToNowRequest): ArithmeticTwapToNowRequestSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.base_asset = message.baseAsset;
-    obj.quote_asset = message.quoteAsset;
-    message.startTime !== undefined && (obj.start_time = message.startTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: ArithmeticTwapToNowRequestAmino): ArithmeticTwapToNowRequest {
-    return {
-      poolId: BigInt(object.pool_id),
-      baseAsset: object.base_asset,
-      quoteAsset: object.quote_asset,
-      startTime: object.start_time
-    };
-  },
-  toAmino(message: ArithmeticTwapToNowRequest): ArithmeticTwapToNowRequestAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.base_asset = message.baseAsset;
-    obj.quote_asset = message.quoteAsset;
-    obj.start_time = message.startTime;
-    return obj;
-  },
-  fromAminoMsg(object: ArithmeticTwapToNowRequestAminoMsg): ArithmeticTwapToNowRequest {
-    return ArithmeticTwapToNowRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ArithmeticTwapToNowRequest): ArithmeticTwapToNowRequestAminoMsg {
-    return {
-      type: "osmosis/twap/arithmetic-twap-to-now-request",
-      value: ArithmeticTwapToNowRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ArithmeticTwapToNowRequestProtoMsg): ArithmeticTwapToNowRequest {
-    return ArithmeticTwapToNowRequest.decode(message.value);
-  },
-  toProto(message: ArithmeticTwapToNowRequest): Uint8Array {
-    return ArithmeticTwapToNowRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ArithmeticTwapToNowRequest): ArithmeticTwapToNowRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowRequest",
-      value: ArithmeticTwapToNowRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseArithmeticTwapToNowResponse(): ArithmeticTwapToNowResponse {
-  return {
-    arithmeticTwap: ""
-  };
-}
-export const ArithmeticTwapToNowResponse = {
-  typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowResponse",
-  aminoType: "osmosis/twap/arithmetic-twap-to-now-response",
-  encode(message: ArithmeticTwapToNowResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.arithmeticTwap !== "") {
-      writer.uint32(10).string(Decimal.fromUserInput(message.arithmeticTwap, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ArithmeticTwapToNowResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseArithmeticTwapToNowResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.arithmeticTwap = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ArithmeticTwapToNowResponse {
-    return {
-      arithmeticTwap: isSet(object.arithmeticTwap) ? String(object.arithmeticTwap) : ""
-    };
-  },
-  toJSON(message: ArithmeticTwapToNowResponse): unknown {
-    const obj: any = {};
-    message.arithmeticTwap !== undefined && (obj.arithmeticTwap = message.arithmeticTwap);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ArithmeticTwapToNowResponse>): ArithmeticTwapToNowResponse {
-    const message = createBaseArithmeticTwapToNowResponse();
-    message.arithmeticTwap = object.arithmeticTwap ?? "";
-    return message;
-  },
-  fromSDK(object: ArithmeticTwapToNowResponseSDKType): ArithmeticTwapToNowResponse {
-    return {
-      arithmeticTwap: object?.arithmetic_twap
-    };
-  },
-  toSDK(message: ArithmeticTwapToNowResponse): ArithmeticTwapToNowResponseSDKType {
-    const obj: any = {};
-    obj.arithmetic_twap = message.arithmeticTwap;
-    return obj;
-  },
-  fromAmino(object: ArithmeticTwapToNowResponseAmino): ArithmeticTwapToNowResponse {
-    return {
-      arithmeticTwap: object.arithmetic_twap
-    };
-  },
-  toAmino(message: ArithmeticTwapToNowResponse): ArithmeticTwapToNowResponseAmino {
-    const obj: any = {};
-    obj.arithmetic_twap = message.arithmeticTwap;
-    return obj;
-  },
-  fromAminoMsg(object: ArithmeticTwapToNowResponseAminoMsg): ArithmeticTwapToNowResponse {
-    return ArithmeticTwapToNowResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ArithmeticTwapToNowResponse): ArithmeticTwapToNowResponseAminoMsg {
-    return {
-      type: "osmosis/twap/arithmetic-twap-to-now-response",
-      value: ArithmeticTwapToNowResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ArithmeticTwapToNowResponseProtoMsg): ArithmeticTwapToNowResponse {
-    return ArithmeticTwapToNowResponse.decode(message.value);
-  },
-  toProto(message: ArithmeticTwapToNowResponse): Uint8Array {
-    return ArithmeticTwapToNowResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ArithmeticTwapToNowResponse): ArithmeticTwapToNowResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ArithmeticTwapToNowResponse",
-      value: ArithmeticTwapToNowResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseParamsRequest(): ParamsRequest {
-  return {};
-}
-export const ParamsRequest = {
-  typeUrl: "/osmosis.twap.v1beta1.ParamsRequest",
-  aminoType: "osmosis/twap/params-request",
-  encode(_: ParamsRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ParamsRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParamsRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ParamsRequest {
-    return {};
-  },
-  toJSON(_: ParamsRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ParamsRequest>): ParamsRequest {
-    const message = createBaseParamsRequest();
-    return message;
-  },
-  fromSDK(_: ParamsRequestSDKType): ParamsRequest {
-    return {};
-  },
-  toSDK(_: ParamsRequest): ParamsRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ParamsRequestAmino): ParamsRequest {
-    return {};
-  },
-  toAmino(_: ParamsRequest): ParamsRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ParamsRequestAminoMsg): ParamsRequest {
-    return ParamsRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: ParamsRequest): ParamsRequestAminoMsg {
-    return {
-      type: "osmosis/twap/params-request",
-      value: ParamsRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsRequestProtoMsg): ParamsRequest {
-    return ParamsRequest.decode(message.value);
-  },
-  toProto(message: ParamsRequest): Uint8Array {
-    return ParamsRequest.encode(message).finish();
-  },
-  toProtoMsg(message: ParamsRequest): ParamsRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ParamsRequest",
-      value: ParamsRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseParamsResponse(): ParamsResponse {
-  return {
-    params: Params.fromPartial({})
-  };
-}
-export const ParamsResponse = {
-  typeUrl: "/osmosis.twap.v1beta1.ParamsResponse",
-  aminoType: "osmosis/twap/params-response",
-  encode(message: ParamsResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.params !== undefined) {
-      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ParamsResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseParamsResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.params = Params.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ParamsResponse {
-    return {
-      params: isSet(object.params) ? Params.fromJSON(object.params) : undefined
-    };
-  },
-  toJSON(message: ParamsResponse): unknown {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ParamsResponse>): ParamsResponse {
-    const message = createBaseParamsResponse();
-    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
-    return message;
-  },
-  fromSDK(object: ParamsResponseSDKType): ParamsResponse {
-    return {
-      params: object.params ? Params.fromSDK(object.params) : undefined
-    };
-  },
-  toSDK(message: ParamsResponse): ParamsResponseSDKType {
-    const obj: any = {};
-    message.params !== undefined && (obj.params = message.params ? Params.toSDK(message.params) : undefined);
-    return obj;
-  },
-  fromAmino(object: ParamsResponseAmino): ParamsResponse {
-    return {
-      params: object?.params ? Params.fromAmino(object.params) : undefined
-    };
-  },
-  toAmino(message: ParamsResponse): ParamsResponseAmino {
-    const obj: any = {};
-    obj.params = message.params ? Params.toAmino(message.params) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ParamsResponseAminoMsg): ParamsResponse {
-    return ParamsResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: ParamsResponse): ParamsResponseAminoMsg {
-    return {
-      type: "osmosis/twap/params-response",
-      value: ParamsResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: ParamsResponseProtoMsg): ParamsResponse {
-    return ParamsResponse.decode(message.value);
-  },
-  toProto(message: ParamsResponse): Uint8Array {
-    return ParamsResponse.encode(message).finish();
-  },
-  toProtoMsg(message: ParamsResponse): ParamsResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.ParamsResponse",
-      value: ParamsResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/twap/v1beta1/twap_record.ts b/examples/injective/src/codegen/osmosis/twap/v1beta1/twap_record.ts
deleted file mode 100644
index da5c4dc3..00000000
--- a/examples/injective/src/codegen/osmosis/twap/v1beta1/twap_record.ts
+++ /dev/null
@@ -1,321 +0,0 @@
-import { Timestamp } from "../../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { toTimestamp, fromTimestamp, isSet, DeepPartial } from "../../../helpers";
-import { Decimal } from "@cosmjs/math";
-/**
- * A TWAP record should be indexed in state by pool_id, (asset pair), timestamp
- * The asset pair assets should be lexicographically sorted.
- * Technically (pool_id, asset_0_denom, asset_1_denom, height) do not need to
- * appear in the struct however we view this as the wrong performance tradeoff
- * given SDK today. Would rather we optimize for readability and correctness,
- * than an optimal state storage format. The system bottleneck is elsewhere for
- * now.
- */
-export interface TwapRecord {
-  poolId: bigint;
-  /** Lexicographically smaller denom of the pair */
-  asset0Denom: string;
-  /** Lexicographically larger denom of the pair */
-  asset1Denom: string;
-  /** height this record corresponds to, for debugging purposes */
-  height: bigint;
-  /**
-   * This field should only exist until we have a global registry in the state
-   * machine, mapping prior block heights within {TIME RANGE} to times.
-   */
-  time: Date | undefined;
-  /**
-   * We store the last spot prices in the struct, so that we can interpolate
-   * accumulator values for times between when accumulator records are stored.
-   */
-  p0LastSpotPrice: string;
-  p1LastSpotPrice: string;
-  p0ArithmeticTwapAccumulator: string;
-  p1ArithmeticTwapAccumulator: string;
-  /**
-   * This field contains the time in which the last spot price error occured.
-   * It is used to alert the caller if they are getting a potentially erroneous
-   * TWAP, due to an unforeseen underlying error.
-   */
-  lastErrorTime: Date | undefined;
-}
-export interface TwapRecordProtoMsg {
-  typeUrl: "/osmosis.twap.v1beta1.TwapRecord";
-  value: Uint8Array;
-}
-/**
- * A TWAP record should be indexed in state by pool_id, (asset pair), timestamp
- * The asset pair assets should be lexicographically sorted.
- * Technically (pool_id, asset_0_denom, asset_1_denom, height) do not need to
- * appear in the struct however we view this as the wrong performance tradeoff
- * given SDK today. Would rather we optimize for readability and correctness,
- * than an optimal state storage format. The system bottleneck is elsewhere for
- * now.
- */
-export interface TwapRecordAmino {
-  pool_id: string;
-  /** Lexicographically smaller denom of the pair */
-  asset0_denom: string;
-  /** Lexicographically larger denom of the pair */
-  asset1_denom: string;
-  /** height this record corresponds to, for debugging purposes */
-  height: string;
-  /**
-   * This field should only exist until we have a global registry in the state
-   * machine, mapping prior block heights within {TIME RANGE} to times.
-   */
-  time?: Date | undefined;
-  /**
-   * We store the last spot prices in the struct, so that we can interpolate
-   * accumulator values for times between when accumulator records are stored.
-   */
-  p0_last_spot_price: string;
-  p1_last_spot_price: string;
-  p0_arithmetic_twap_accumulator: string;
-  p1_arithmetic_twap_accumulator: string;
-  /**
-   * This field contains the time in which the last spot price error occured.
-   * It is used to alert the caller if they are getting a potentially erroneous
-   * TWAP, due to an unforeseen underlying error.
-   */
-  last_error_time?: Date | undefined;
-}
-export interface TwapRecordAminoMsg {
-  type: "osmosis/twap/twap-record";
-  value: TwapRecordAmino;
-}
-/**
- * A TWAP record should be indexed in state by pool_id, (asset pair), timestamp
- * The asset pair assets should be lexicographically sorted.
- * Technically (pool_id, asset_0_denom, asset_1_denom, height) do not need to
- * appear in the struct however we view this as the wrong performance tradeoff
- * given SDK today. Would rather we optimize for readability and correctness,
- * than an optimal state storage format. The system bottleneck is elsewhere for
- * now.
- */
-export interface TwapRecordSDKType {
-  pool_id: bigint;
-  asset0_denom: string;
-  asset1_denom: string;
-  height: bigint;
-  time: Date | undefined;
-  p0_last_spot_price: string;
-  p1_last_spot_price: string;
-  p0_arithmetic_twap_accumulator: string;
-  p1_arithmetic_twap_accumulator: string;
-  last_error_time: Date | undefined;
-}
-function createBaseTwapRecord(): TwapRecord {
-  return {
-    poolId: BigInt(0),
-    asset0Denom: "",
-    asset1Denom: "",
-    height: BigInt(0),
-    time: new Date(),
-    p0LastSpotPrice: "",
-    p1LastSpotPrice: "",
-    p0ArithmeticTwapAccumulator: "",
-    p1ArithmeticTwapAccumulator: "",
-    lastErrorTime: new Date()
-  };
-}
-export const TwapRecord = {
-  typeUrl: "/osmosis.twap.v1beta1.TwapRecord",
-  aminoType: "osmosis/twap/twap-record",
-  encode(message: TwapRecord, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolId !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolId);
-    }
-    if (message.asset0Denom !== "") {
-      writer.uint32(18).string(message.asset0Denom);
-    }
-    if (message.asset1Denom !== "") {
-      writer.uint32(26).string(message.asset1Denom);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(32).int64(message.height);
-    }
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.p0LastSpotPrice !== "") {
-      writer.uint32(50).string(Decimal.fromUserInput(message.p0LastSpotPrice, 18).atomics);
-    }
-    if (message.p1LastSpotPrice !== "") {
-      writer.uint32(58).string(Decimal.fromUserInput(message.p1LastSpotPrice, 18).atomics);
-    }
-    if (message.p0ArithmeticTwapAccumulator !== "") {
-      writer.uint32(66).string(Decimal.fromUserInput(message.p0ArithmeticTwapAccumulator, 18).atomics);
-    }
-    if (message.p1ArithmeticTwapAccumulator !== "") {
-      writer.uint32(74).string(Decimal.fromUserInput(message.p1ArithmeticTwapAccumulator, 18).atomics);
-    }
-    if (message.lastErrorTime !== undefined) {
-      Timestamp.encode(toTimestamp(message.lastErrorTime), writer.uint32(90).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TwapRecord {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTwapRecord();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolId = reader.uint64();
-          break;
-        case 2:
-          message.asset0Denom = reader.string();
-          break;
-        case 3:
-          message.asset1Denom = reader.string();
-          break;
-        case 4:
-          message.height = reader.int64();
-          break;
-        case 5:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.p0LastSpotPrice = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 7:
-          message.p1LastSpotPrice = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 8:
-          message.p0ArithmeticTwapAccumulator = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 9:
-          message.p1ArithmeticTwapAccumulator = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        case 11:
-          message.lastErrorTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TwapRecord {
-    return {
-      poolId: isSet(object.poolId) ? BigInt(object.poolId.toString()) : BigInt(0),
-      asset0Denom: isSet(object.asset0Denom) ? String(object.asset0Denom) : "",
-      asset1Denom: isSet(object.asset1Denom) ? String(object.asset1Denom) : "",
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      p0LastSpotPrice: isSet(object.p0LastSpotPrice) ? String(object.p0LastSpotPrice) : "",
-      p1LastSpotPrice: isSet(object.p1LastSpotPrice) ? String(object.p1LastSpotPrice) : "",
-      p0ArithmeticTwapAccumulator: isSet(object.p0ArithmeticTwapAccumulator) ? String(object.p0ArithmeticTwapAccumulator) : "",
-      p1ArithmeticTwapAccumulator: isSet(object.p1ArithmeticTwapAccumulator) ? String(object.p1ArithmeticTwapAccumulator) : "",
-      lastErrorTime: isSet(object.lastErrorTime) ? new Date(object.lastErrorTime) : undefined
-    };
-  },
-  toJSON(message: TwapRecord): unknown {
-    const obj: any = {};
-    message.poolId !== undefined && (obj.poolId = (message.poolId || BigInt(0)).toString());
-    message.asset0Denom !== undefined && (obj.asset0Denom = message.asset0Denom);
-    message.asset1Denom !== undefined && (obj.asset1Denom = message.asset1Denom);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.p0LastSpotPrice !== undefined && (obj.p0LastSpotPrice = message.p0LastSpotPrice);
-    message.p1LastSpotPrice !== undefined && (obj.p1LastSpotPrice = message.p1LastSpotPrice);
-    message.p0ArithmeticTwapAccumulator !== undefined && (obj.p0ArithmeticTwapAccumulator = message.p0ArithmeticTwapAccumulator);
-    message.p1ArithmeticTwapAccumulator !== undefined && (obj.p1ArithmeticTwapAccumulator = message.p1ArithmeticTwapAccumulator);
-    message.lastErrorTime !== undefined && (obj.lastErrorTime = message.lastErrorTime.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TwapRecord>): TwapRecord {
-    const message = createBaseTwapRecord();
-    message.poolId = object.poolId !== undefined && object.poolId !== null ? BigInt(object.poolId.toString()) : BigInt(0);
-    message.asset0Denom = object.asset0Denom ?? "";
-    message.asset1Denom = object.asset1Denom ?? "";
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.time = object.time ?? undefined;
-    message.p0LastSpotPrice = object.p0LastSpotPrice ?? "";
-    message.p1LastSpotPrice = object.p1LastSpotPrice ?? "";
-    message.p0ArithmeticTwapAccumulator = object.p0ArithmeticTwapAccumulator ?? "";
-    message.p1ArithmeticTwapAccumulator = object.p1ArithmeticTwapAccumulator ?? "";
-    message.lastErrorTime = object.lastErrorTime ?? undefined;
-    return message;
-  },
-  fromSDK(object: TwapRecordSDKType): TwapRecord {
-    return {
-      poolId: object?.pool_id,
-      asset0Denom: object?.asset0_denom,
-      asset1Denom: object?.asset1_denom,
-      height: object?.height,
-      time: object.time ?? undefined,
-      p0LastSpotPrice: object?.p0_last_spot_price,
-      p1LastSpotPrice: object?.p1_last_spot_price,
-      p0ArithmeticTwapAccumulator: object?.p0_arithmetic_twap_accumulator,
-      p1ArithmeticTwapAccumulator: object?.p1_arithmetic_twap_accumulator,
-      lastErrorTime: object.last_error_time ?? undefined
-    };
-  },
-  toSDK(message: TwapRecord): TwapRecordSDKType {
-    const obj: any = {};
-    obj.pool_id = message.poolId;
-    obj.asset0_denom = message.asset0Denom;
-    obj.asset1_denom = message.asset1Denom;
-    obj.height = message.height;
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    obj.p0_last_spot_price = message.p0LastSpotPrice;
-    obj.p1_last_spot_price = message.p1LastSpotPrice;
-    obj.p0_arithmetic_twap_accumulator = message.p0ArithmeticTwapAccumulator;
-    obj.p1_arithmetic_twap_accumulator = message.p1ArithmeticTwapAccumulator;
-    message.lastErrorTime !== undefined && (obj.last_error_time = message.lastErrorTime ?? undefined);
-    return obj;
-  },
-  fromAmino(object: TwapRecordAmino): TwapRecord {
-    return {
-      poolId: BigInt(object.pool_id),
-      asset0Denom: object.asset0_denom,
-      asset1Denom: object.asset1_denom,
-      height: BigInt(object.height),
-      time: object.time,
-      p0LastSpotPrice: object.p0_last_spot_price,
-      p1LastSpotPrice: object.p1_last_spot_price,
-      p0ArithmeticTwapAccumulator: object.p0_arithmetic_twap_accumulator,
-      p1ArithmeticTwapAccumulator: object.p1_arithmetic_twap_accumulator,
-      lastErrorTime: object.last_error_time
-    };
-  },
-  toAmino(message: TwapRecord): TwapRecordAmino {
-    const obj: any = {};
-    obj.pool_id = message.poolId ? message.poolId.toString() : undefined;
-    obj.asset0_denom = message.asset0Denom;
-    obj.asset1_denom = message.asset1Denom;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.time = message.time;
-    obj.p0_last_spot_price = message.p0LastSpotPrice;
-    obj.p1_last_spot_price = message.p1LastSpotPrice;
-    obj.p0_arithmetic_twap_accumulator = message.p0ArithmeticTwapAccumulator;
-    obj.p1_arithmetic_twap_accumulator = message.p1ArithmeticTwapAccumulator;
-    obj.last_error_time = message.lastErrorTime;
-    return obj;
-  },
-  fromAminoMsg(object: TwapRecordAminoMsg): TwapRecord {
-    return TwapRecord.fromAmino(object.value);
-  },
-  toAminoMsg(message: TwapRecord): TwapRecordAminoMsg {
-    return {
-      type: "osmosis/twap/twap-record",
-      value: TwapRecord.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: TwapRecordProtoMsg): TwapRecord {
-    return TwapRecord.decode(message.value);
-  },
-  toProto(message: TwapRecord): Uint8Array {
-    return TwapRecord.encode(message).finish();
-  },
-  toProtoMsg(message: TwapRecord): TwapRecordProtoMsg {
-    return {
-      typeUrl: "/osmosis.twap.v1beta1.TwapRecord",
-      value: TwapRecord.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/txfees/v1beta1/feetoken.ts b/examples/injective/src/codegen/osmosis/txfees/v1beta1/feetoken.ts
deleted file mode 100644
index b473c1fa..00000000
--- a/examples/injective/src/codegen/osmosis/txfees/v1beta1/feetoken.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * FeeToken is a struct that specifies a coin denom, and pool ID pair.
- * This marks the token as eligible for use as a tx fee asset in Osmosis.
- * Its price in osmo is derived through looking at the provided pool ID.
- * The pool ID must have osmo as one of its assets.
- */
-export interface FeeToken {
-  denom: string;
-  poolID: bigint;
-}
-export interface FeeTokenProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.FeeToken";
-  value: Uint8Array;
-}
-/**
- * FeeToken is a struct that specifies a coin denom, and pool ID pair.
- * This marks the token as eligible for use as a tx fee asset in Osmosis.
- * Its price in osmo is derived through looking at the provided pool ID.
- * The pool ID must have osmo as one of its assets.
- */
-export interface FeeTokenAmino {
-  denom: string;
-  poolID: string;
-}
-export interface FeeTokenAminoMsg {
-  type: "osmosis/txfees/fee-token";
-  value: FeeTokenAmino;
-}
-/**
- * FeeToken is a struct that specifies a coin denom, and pool ID pair.
- * This marks the token as eligible for use as a tx fee asset in Osmosis.
- * Its price in osmo is derived through looking at the provided pool ID.
- * The pool ID must have osmo as one of its assets.
- */
-export interface FeeTokenSDKType {
-  denom: string;
-  poolID: bigint;
-}
-function createBaseFeeToken(): FeeToken {
-  return {
-    denom: "",
-    poolID: BigInt(0)
-  };
-}
-export const FeeToken = {
-  typeUrl: "/osmosis.txfees.v1beta1.FeeToken",
-  aminoType: "osmosis/txfees/fee-token",
-  encode(message: FeeToken, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    if (message.poolID !== BigInt(0)) {
-      writer.uint32(16).uint64(message.poolID);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): FeeToken {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseFeeToken();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        case 2:
-          message.poolID = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): FeeToken {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : "",
-      poolID: isSet(object.poolID) ? BigInt(object.poolID.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: FeeToken): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    message.poolID !== undefined && (obj.poolID = (message.poolID || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<FeeToken>): FeeToken {
-    const message = createBaseFeeToken();
-    message.denom = object.denom ?? "";
-    message.poolID = object.poolID !== undefined && object.poolID !== null ? BigInt(object.poolID.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: FeeTokenSDKType): FeeToken {
-    return {
-      denom: object?.denom,
-      poolID: object?.poolID
-    };
-  },
-  toSDK(message: FeeToken): FeeTokenSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.poolID = message.poolID;
-    return obj;
-  },
-  fromAmino(object: FeeTokenAmino): FeeToken {
-    return {
-      denom: object.denom,
-      poolID: BigInt(object.poolID)
-    };
-  },
-  toAmino(message: FeeToken): FeeTokenAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    obj.poolID = message.poolID ? message.poolID.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: FeeTokenAminoMsg): FeeToken {
-    return FeeToken.fromAmino(object.value);
-  },
-  toAminoMsg(message: FeeToken): FeeTokenAminoMsg {
-    return {
-      type: "osmosis/txfees/fee-token",
-      value: FeeToken.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: FeeTokenProtoMsg): FeeToken {
-    return FeeToken.decode(message.value);
-  },
-  toProto(message: FeeToken): Uint8Array {
-    return FeeToken.encode(message).finish();
-  },
-  toProtoMsg(message: FeeToken): FeeTokenProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.FeeToken",
-      value: FeeToken.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/txfees/v1beta1/genesis.ts b/examples/injective/src/codegen/osmosis/txfees/v1beta1/genesis.ts
deleted file mode 100644
index 6f42c5df..00000000
--- a/examples/injective/src/codegen/osmosis/txfees/v1beta1/genesis.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { FeeToken, FeeTokenAmino, FeeTokenSDKType } from "./feetoken";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/** GenesisState defines the txfees module's genesis state. */
-export interface GenesisState {
-  basedenom: string;
-  feetokens: FeeToken[];
-}
-export interface GenesisStateProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.GenesisState";
-  value: Uint8Array;
-}
-/** GenesisState defines the txfees module's genesis state. */
-export interface GenesisStateAmino {
-  basedenom: string;
-  feetokens: FeeTokenAmino[];
-}
-export interface GenesisStateAminoMsg {
-  type: "osmosis/txfees/genesis-state";
-  value: GenesisStateAmino;
-}
-/** GenesisState defines the txfees module's genesis state. */
-export interface GenesisStateSDKType {
-  basedenom: string;
-  feetokens: FeeTokenSDKType[];
-}
-function createBaseGenesisState(): GenesisState {
-  return {
-    basedenom: "",
-    feetokens: []
-  };
-}
-export const GenesisState = {
-  typeUrl: "/osmosis.txfees.v1beta1.GenesisState",
-  aminoType: "osmosis/txfees/genesis-state",
-  encode(message: GenesisState, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.basedenom !== "") {
-      writer.uint32(10).string(message.basedenom);
-    }
-    for (const v of message.feetokens) {
-      FeeToken.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseGenesisState();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.basedenom = reader.string();
-          break;
-        case 2:
-          message.feetokens.push(FeeToken.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): GenesisState {
-    return {
-      basedenom: isSet(object.basedenom) ? String(object.basedenom) : "",
-      feetokens: Array.isArray(object?.feetokens) ? object.feetokens.map((e: any) => FeeToken.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: GenesisState): unknown {
-    const obj: any = {};
-    message.basedenom !== undefined && (obj.basedenom = message.basedenom);
-    if (message.feetokens) {
-      obj.feetokens = message.feetokens.map(e => e ? FeeToken.toJSON(e) : undefined);
-    } else {
-      obj.feetokens = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<GenesisState>): GenesisState {
-    const message = createBaseGenesisState();
-    message.basedenom = object.basedenom ?? "";
-    message.feetokens = object.feetokens?.map(e => FeeToken.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: GenesisStateSDKType): GenesisState {
-    return {
-      basedenom: object?.basedenom,
-      feetokens: Array.isArray(object?.feetokens) ? object.feetokens.map((e: any) => FeeToken.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: GenesisState): GenesisStateSDKType {
-    const obj: any = {};
-    obj.basedenom = message.basedenom;
-    if (message.feetokens) {
-      obj.feetokens = message.feetokens.map(e => e ? FeeToken.toSDK(e) : undefined);
-    } else {
-      obj.feetokens = [];
-    }
-    return obj;
-  },
-  fromAmino(object: GenesisStateAmino): GenesisState {
-    return {
-      basedenom: object.basedenom,
-      feetokens: Array.isArray(object?.feetokens) ? object.feetokens.map((e: any) => FeeToken.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: GenesisState): GenesisStateAmino {
-    const obj: any = {};
-    obj.basedenom = message.basedenom;
-    if (message.feetokens) {
-      obj.feetokens = message.feetokens.map(e => e ? FeeToken.toAmino(e) : undefined);
-    } else {
-      obj.feetokens = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: GenesisStateAminoMsg): GenesisState {
-    return GenesisState.fromAmino(object.value);
-  },
-  toAminoMsg(message: GenesisState): GenesisStateAminoMsg {
-    return {
-      type: "osmosis/txfees/genesis-state",
-      value: GenesisState.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: GenesisStateProtoMsg): GenesisState {
-    return GenesisState.decode(message.value);
-  },
-  toProto(message: GenesisState): Uint8Array {
-    return GenesisState.encode(message).finish();
-  },
-  toProtoMsg(message: GenesisState): GenesisStateProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.GenesisState",
-      value: GenesisState.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/txfees/v1beta1/gov.ts b/examples/injective/src/codegen/osmosis/txfees/v1beta1/gov.ts
deleted file mode 100644
index 21700ccb..00000000
--- a/examples/injective/src/codegen/osmosis/txfees/v1beta1/gov.ts
+++ /dev/null
@@ -1,163 +0,0 @@
-import { FeeToken, FeeTokenAmino, FeeTokenSDKType } from "./feetoken";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-/**
- * UpdateFeeTokenProposal is a gov Content type for adding a new whitelisted fee
- * token. It must specify a denom along with gamm pool ID to use as a spot price
- * calculator. It can be used to add a new denom to the whitelist It can also be
- * used to update the Pool to associate with the denom. If Pool ID is set to 0,
- * it will remove the denom from the whitelisted set.
- */
-export interface UpdateFeeTokenProposal {
-  title: string;
-  description: string;
-  feetoken: FeeToken | undefined;
-}
-export interface UpdateFeeTokenProposalProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.UpdateFeeTokenProposal";
-  value: Uint8Array;
-}
-/**
- * UpdateFeeTokenProposal is a gov Content type for adding a new whitelisted fee
- * token. It must specify a denom along with gamm pool ID to use as a spot price
- * calculator. It can be used to add a new denom to the whitelist It can also be
- * used to update the Pool to associate with the denom. If Pool ID is set to 0,
- * it will remove the denom from the whitelisted set.
- */
-export interface UpdateFeeTokenProposalAmino {
-  title: string;
-  description: string;
-  feetoken?: FeeTokenAmino | undefined;
-}
-export interface UpdateFeeTokenProposalAminoMsg {
-  type: "osmosis/txfees/update-fee-token-proposal";
-  value: UpdateFeeTokenProposalAmino;
-}
-/**
- * UpdateFeeTokenProposal is a gov Content type for adding a new whitelisted fee
- * token. It must specify a denom along with gamm pool ID to use as a spot price
- * calculator. It can be used to add a new denom to the whitelist It can also be
- * used to update the Pool to associate with the denom. If Pool ID is set to 0,
- * it will remove the denom from the whitelisted set.
- */
-export interface UpdateFeeTokenProposalSDKType {
-  title: string;
-  description: string;
-  feetoken: FeeTokenSDKType | undefined;
-}
-function createBaseUpdateFeeTokenProposal(): UpdateFeeTokenProposal {
-  return {
-    title: "",
-    description: "",
-    feetoken: FeeToken.fromPartial({})
-  };
-}
-export const UpdateFeeTokenProposal = {
-  typeUrl: "/osmosis.txfees.v1beta1.UpdateFeeTokenProposal",
-  aminoType: "osmosis/txfees/update-fee-token-proposal",
-  encode(message: UpdateFeeTokenProposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.title !== "") {
-      writer.uint32(10).string(message.title);
-    }
-    if (message.description !== "") {
-      writer.uint32(18).string(message.description);
-    }
-    if (message.feetoken !== undefined) {
-      FeeToken.encode(message.feetoken, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): UpdateFeeTokenProposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseUpdateFeeTokenProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.title = reader.string();
-          break;
-        case 2:
-          message.description = reader.string();
-          break;
-        case 3:
-          message.feetoken = FeeToken.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): UpdateFeeTokenProposal {
-    return {
-      title: isSet(object.title) ? String(object.title) : "",
-      description: isSet(object.description) ? String(object.description) : "",
-      feetoken: isSet(object.feetoken) ? FeeToken.fromJSON(object.feetoken) : undefined
-    };
-  },
-  toJSON(message: UpdateFeeTokenProposal): unknown {
-    const obj: any = {};
-    message.title !== undefined && (obj.title = message.title);
-    message.description !== undefined && (obj.description = message.description);
-    message.feetoken !== undefined && (obj.feetoken = message.feetoken ? FeeToken.toJSON(message.feetoken) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<UpdateFeeTokenProposal>): UpdateFeeTokenProposal {
-    const message = createBaseUpdateFeeTokenProposal();
-    message.title = object.title ?? "";
-    message.description = object.description ?? "";
-    message.feetoken = object.feetoken !== undefined && object.feetoken !== null ? FeeToken.fromPartial(object.feetoken) : undefined;
-    return message;
-  },
-  fromSDK(object: UpdateFeeTokenProposalSDKType): UpdateFeeTokenProposal {
-    return {
-      title: object?.title,
-      description: object?.description,
-      feetoken: object.feetoken ? FeeToken.fromSDK(object.feetoken) : undefined
-    };
-  },
-  toSDK(message: UpdateFeeTokenProposal): UpdateFeeTokenProposalSDKType {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    message.feetoken !== undefined && (obj.feetoken = message.feetoken ? FeeToken.toSDK(message.feetoken) : undefined);
-    return obj;
-  },
-  fromAmino(object: UpdateFeeTokenProposalAmino): UpdateFeeTokenProposal {
-    return {
-      title: object.title,
-      description: object.description,
-      feetoken: object?.feetoken ? FeeToken.fromAmino(object.feetoken) : undefined
-    };
-  },
-  toAmino(message: UpdateFeeTokenProposal): UpdateFeeTokenProposalAmino {
-    const obj: any = {};
-    obj.title = message.title;
-    obj.description = message.description;
-    obj.feetoken = message.feetoken ? FeeToken.toAmino(message.feetoken) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: UpdateFeeTokenProposalAminoMsg): UpdateFeeTokenProposal {
-    return UpdateFeeTokenProposal.fromAmino(object.value);
-  },
-  toAminoMsg(message: UpdateFeeTokenProposal): UpdateFeeTokenProposalAminoMsg {
-    return {
-      type: "osmosis/txfees/update-fee-token-proposal",
-      value: UpdateFeeTokenProposal.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: UpdateFeeTokenProposalProtoMsg): UpdateFeeTokenProposal {
-    return UpdateFeeTokenProposal.decode(message.value);
-  },
-  toProto(message: UpdateFeeTokenProposal): Uint8Array {
-    return UpdateFeeTokenProposal.encode(message).finish();
-  },
-  toProtoMsg(message: UpdateFeeTokenProposal): UpdateFeeTokenProposalProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.UpdateFeeTokenProposal",
-      value: UpdateFeeTokenProposal.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.rpc.Query.ts b/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.rpc.Query.ts
deleted file mode 100644
index 2427b4df..00000000
--- a/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.rpc.Query.ts
+++ /dev/null
@@ -1,179 +0,0 @@
-import { Rpc } from "../../../helpers";
-import { BinaryReader } from "../../../binary";
-import { QueryClient, createProtobufRpcClient, ProtobufRpcClient } from "@cosmjs/stargate";
-import { ReactQueryParams } from "../../../react-query";
-import { useQuery } from "@tanstack/react-query";
-import { QueryStore } from "../../../mobx";
-import { QueryFeeTokensRequest, QueryFeeTokensResponse, QueryDenomSpotPriceRequest, QueryDenomSpotPriceResponse, QueryDenomPoolIdRequest, QueryDenomPoolIdResponse, QueryBaseDenomRequest, QueryBaseDenomResponse } from "./query";
-export interface Query {
-  /**
-   * FeeTokens returns a list of all the whitelisted fee tokens and their
-   * corresponding pools. It does not include the BaseDenom, which has its own
-   * query endpoint
-   */
-  feeTokens(request?: QueryFeeTokensRequest): Promise<QueryFeeTokensResponse>;
-  /** DenomSpotPrice returns all spot prices by each registered token denom. */
-  denomSpotPrice(request: QueryDenomSpotPriceRequest): Promise<QueryDenomSpotPriceResponse>;
-  /** Returns the poolID for a specified denom input. */
-  denomPoolId(request: QueryDenomPoolIdRequest): Promise<QueryDenomPoolIdResponse>;
-  /** Returns a list of all base denom tokens and their corresponding pools. */
-  baseDenom(request?: QueryBaseDenomRequest): Promise<QueryBaseDenomResponse>;
-}
-export class QueryClientImpl implements Query {
-  private readonly rpc: Rpc;
-  constructor(rpc: Rpc) {
-    this.rpc = rpc;
-    this.feeTokens = this.feeTokens.bind(this);
-    this.denomSpotPrice = this.denomSpotPrice.bind(this);
-    this.denomPoolId = this.denomPoolId.bind(this);
-    this.baseDenom = this.baseDenom.bind(this);
-  }
-  feeTokens(request: QueryFeeTokensRequest = {}): Promise<QueryFeeTokensResponse> {
-    const data = QueryFeeTokensRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.txfees.v1beta1.Query", "FeeTokens", data);
-    return promise.then(data => QueryFeeTokensResponse.decode(new BinaryReader(data)));
-  }
-  denomSpotPrice(request: QueryDenomSpotPriceRequest): Promise<QueryDenomSpotPriceResponse> {
-    const data = QueryDenomSpotPriceRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.txfees.v1beta1.Query", "DenomSpotPrice", data);
-    return promise.then(data => QueryDenomSpotPriceResponse.decode(new BinaryReader(data)));
-  }
-  denomPoolId(request: QueryDenomPoolIdRequest): Promise<QueryDenomPoolIdResponse> {
-    const data = QueryDenomPoolIdRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.txfees.v1beta1.Query", "DenomPoolId", data);
-    return promise.then(data => QueryDenomPoolIdResponse.decode(new BinaryReader(data)));
-  }
-  baseDenom(request: QueryBaseDenomRequest = {}): Promise<QueryBaseDenomResponse> {
-    const data = QueryBaseDenomRequest.encode(request).finish();
-    const promise = this.rpc.request("osmosis.txfees.v1beta1.Query", "BaseDenom", data);
-    return promise.then(data => QueryBaseDenomResponse.decode(new BinaryReader(data)));
-  }
-}
-export const createRpcQueryExtension = (base: QueryClient) => {
-  const rpc = createProtobufRpcClient(base);
-  const queryService = new QueryClientImpl(rpc);
-  return {
-    feeTokens(request?: QueryFeeTokensRequest): Promise<QueryFeeTokensResponse> {
-      return queryService.feeTokens(request);
-    },
-    denomSpotPrice(request: QueryDenomSpotPriceRequest): Promise<QueryDenomSpotPriceResponse> {
-      return queryService.denomSpotPrice(request);
-    },
-    denomPoolId(request: QueryDenomPoolIdRequest): Promise<QueryDenomPoolIdResponse> {
-      return queryService.denomPoolId(request);
-    },
-    baseDenom(request?: QueryBaseDenomRequest): Promise<QueryBaseDenomResponse> {
-      return queryService.baseDenom(request);
-    }
-  };
-};
-export interface UseFeeTokensQuery<TData> extends ReactQueryParams<QueryFeeTokensResponse, TData> {
-  request?: QueryFeeTokensRequest;
-}
-export interface UseDenomSpotPriceQuery<TData> extends ReactQueryParams<QueryDenomSpotPriceResponse, TData> {
-  request: QueryDenomSpotPriceRequest;
-}
-export interface UseDenomPoolIdQuery<TData> extends ReactQueryParams<QueryDenomPoolIdResponse, TData> {
-  request: QueryDenomPoolIdRequest;
-}
-export interface UseBaseDenomQuery<TData> extends ReactQueryParams<QueryBaseDenomResponse, TData> {
-  request?: QueryBaseDenomRequest;
-}
-const _queryClients: WeakMap<ProtobufRpcClient, QueryClientImpl> = new WeakMap();
-const getQueryService = (rpc: ProtobufRpcClient | undefined): QueryClientImpl | undefined => {
-  if (!rpc) return;
-  if (_queryClients.has(rpc)) {
-    return _queryClients.get(rpc);
-  }
-  const queryService = new QueryClientImpl(rpc);
-  _queryClients.set(rpc, queryService);
-  return queryService;
-};
-export const createRpcQueryHooks = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  const useFeeTokens = <TData = QueryFeeTokensResponse,>({
-    request,
-    options
-  }: UseFeeTokensQuery<TData>) => {
-    return useQuery<QueryFeeTokensResponse, Error, TData>(["feeTokensQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.feeTokens(request);
-    }, options);
-  };
-  const useDenomSpotPrice = <TData = QueryDenomSpotPriceResponse,>({
-    request,
-    options
-  }: UseDenomSpotPriceQuery<TData>) => {
-    return useQuery<QueryDenomSpotPriceResponse, Error, TData>(["denomSpotPriceQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomSpotPrice(request);
-    }, options);
-  };
-  const useDenomPoolId = <TData = QueryDenomPoolIdResponse,>({
-    request,
-    options
-  }: UseDenomPoolIdQuery<TData>) => {
-    return useQuery<QueryDenomPoolIdResponse, Error, TData>(["denomPoolIdQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.denomPoolId(request);
-    }, options);
-  };
-  const useBaseDenom = <TData = QueryBaseDenomResponse,>({
-    request,
-    options
-  }: UseBaseDenomQuery<TData>) => {
-    return useQuery<QueryBaseDenomResponse, Error, TData>(["baseDenomQuery", request], () => {
-      if (!queryService) throw new Error("Query Service not initialized");
-      return queryService.baseDenom(request);
-    }, options);
-  };
-  return {
-    /**
-     * FeeTokens returns a list of all the whitelisted fee tokens and their
-     * corresponding pools. It does not include the BaseDenom, which has its own
-     * query endpoint
-     */
-    useFeeTokens,
-    /** DenomSpotPrice returns all spot prices by each registered token denom. */useDenomSpotPrice,
-    /** Returns the poolID for a specified denom input. */useDenomPoolId,
-    /** Returns a list of all base denom tokens and their corresponding pools. */useBaseDenom
-  };
-};
-export const createRpcQueryMobxStores = (rpc: ProtobufRpcClient | undefined) => {
-  const queryService = getQueryService(rpc);
-  class QueryFeeTokensStore {
-    store = new QueryStore<QueryFeeTokensRequest, QueryFeeTokensResponse>(queryService?.feeTokens);
-    feeTokens(request: QueryFeeTokensRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomSpotPriceStore {
-    store = new QueryStore<QueryDenomSpotPriceRequest, QueryDenomSpotPriceResponse>(queryService?.denomSpotPrice);
-    denomSpotPrice(request: QueryDenomSpotPriceRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryDenomPoolIdStore {
-    store = new QueryStore<QueryDenomPoolIdRequest, QueryDenomPoolIdResponse>(queryService?.denomPoolId);
-    denomPoolId(request: QueryDenomPoolIdRequest) {
-      return this.store.getData(request);
-    }
-  }
-  class QueryBaseDenomStore {
-    store = new QueryStore<QueryBaseDenomRequest, QueryBaseDenomResponse>(queryService?.baseDenom);
-    baseDenom(request: QueryBaseDenomRequest) {
-      return this.store.getData(request);
-    }
-  }
-  return {
-    /**
-     * FeeTokens returns a list of all the whitelisted fee tokens and their
-     * corresponding pools. It does not include the BaseDenom, which has its own
-     * query endpoint
-     */
-    QueryFeeTokensStore,
-    /** DenomSpotPrice returns all spot prices by each registered token denom. */QueryDenomSpotPriceStore,
-    /** Returns the poolID for a specified denom input. */QueryDenomPoolIdStore,
-    /** Returns a list of all base denom tokens and their corresponding pools. */QueryBaseDenomStore
-  };
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.ts b/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.ts
deleted file mode 100644
index a3cb75a1..00000000
--- a/examples/injective/src/codegen/osmosis/txfees/v1beta1/query.ts
+++ /dev/null
@@ -1,849 +0,0 @@
-import { FeeToken, FeeTokenAmino, FeeTokenSDKType } from "./feetoken";
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { DeepPartial, isSet } from "../../../helpers";
-import { Decimal } from "@cosmjs/math";
-export interface QueryFeeTokensRequest {}
-export interface QueryFeeTokensRequestProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensRequest";
-  value: Uint8Array;
-}
-export interface QueryFeeTokensRequestAmino {}
-export interface QueryFeeTokensRequestAminoMsg {
-  type: "osmosis/txfees/query-fee-tokens-request";
-  value: QueryFeeTokensRequestAmino;
-}
-export interface QueryFeeTokensRequestSDKType {}
-export interface QueryFeeTokensResponse {
-  feeTokens: FeeToken[];
-}
-export interface QueryFeeTokensResponseProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensResponse";
-  value: Uint8Array;
-}
-export interface QueryFeeTokensResponseAmino {
-  fee_tokens: FeeTokenAmino[];
-}
-export interface QueryFeeTokensResponseAminoMsg {
-  type: "osmosis/txfees/query-fee-tokens-response";
-  value: QueryFeeTokensResponseAmino;
-}
-export interface QueryFeeTokensResponseSDKType {
-  fee_tokens: FeeTokenSDKType[];
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc request structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceRequest {
-  denom: string;
-}
-export interface QueryDenomSpotPriceRequestProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceRequest";
-  value: Uint8Array;
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc request structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceRequestAmino {
-  denom: string;
-}
-export interface QueryDenomSpotPriceRequestAminoMsg {
-  type: "osmosis/txfees/query-denom-spot-price-request";
-  value: QueryDenomSpotPriceRequestAmino;
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc request structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceRequestSDKType {
-  denom: string;
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc response structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceResponse {
-  poolID: bigint;
-  spotPrice: string;
-}
-export interface QueryDenomSpotPriceResponseProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceResponse";
-  value: Uint8Array;
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc response structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceResponseAmino {
-  poolID: string;
-  spot_price: string;
-}
-export interface QueryDenomSpotPriceResponseAminoMsg {
-  type: "osmosis/txfees/query-denom-spot-price-response";
-  value: QueryDenomSpotPriceResponseAmino;
-}
-/**
- * QueryDenomSpotPriceRequest defines grpc response structure for querying spot
- * price for the specified tx fee denom
- */
-export interface QueryDenomSpotPriceResponseSDKType {
-  poolID: bigint;
-  spot_price: string;
-}
-export interface QueryDenomPoolIdRequest {
-  denom: string;
-}
-export interface QueryDenomPoolIdRequestProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdRequest";
-  value: Uint8Array;
-}
-export interface QueryDenomPoolIdRequestAmino {
-  denom: string;
-}
-export interface QueryDenomPoolIdRequestAminoMsg {
-  type: "osmosis/txfees/query-denom-pool-id-request";
-  value: QueryDenomPoolIdRequestAmino;
-}
-export interface QueryDenomPoolIdRequestSDKType {
-  denom: string;
-}
-export interface QueryDenomPoolIdResponse {
-  poolID: bigint;
-}
-export interface QueryDenomPoolIdResponseProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdResponse";
-  value: Uint8Array;
-}
-export interface QueryDenomPoolIdResponseAmino {
-  poolID: string;
-}
-export interface QueryDenomPoolIdResponseAminoMsg {
-  type: "osmosis/txfees/query-denom-pool-id-response";
-  value: QueryDenomPoolIdResponseAmino;
-}
-export interface QueryDenomPoolIdResponseSDKType {
-  poolID: bigint;
-}
-export interface QueryBaseDenomRequest {}
-export interface QueryBaseDenomRequestProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomRequest";
-  value: Uint8Array;
-}
-export interface QueryBaseDenomRequestAmino {}
-export interface QueryBaseDenomRequestAminoMsg {
-  type: "osmosis/txfees/query-base-denom-request";
-  value: QueryBaseDenomRequestAmino;
-}
-export interface QueryBaseDenomRequestSDKType {}
-export interface QueryBaseDenomResponse {
-  baseDenom: string;
-}
-export interface QueryBaseDenomResponseProtoMsg {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomResponse";
-  value: Uint8Array;
-}
-export interface QueryBaseDenomResponseAmino {
-  base_denom: string;
-}
-export interface QueryBaseDenomResponseAminoMsg {
-  type: "osmosis/txfees/query-base-denom-response";
-  value: QueryBaseDenomResponseAmino;
-}
-export interface QueryBaseDenomResponseSDKType {
-  base_denom: string;
-}
-function createBaseQueryFeeTokensRequest(): QueryFeeTokensRequest {
-  return {};
-}
-export const QueryFeeTokensRequest = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensRequest",
-  aminoType: "osmosis/txfees/query-fee-tokens-request",
-  encode(_: QueryFeeTokensRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryFeeTokensRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryFeeTokensRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryFeeTokensRequest {
-    return {};
-  },
-  toJSON(_: QueryFeeTokensRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryFeeTokensRequest>): QueryFeeTokensRequest {
-    const message = createBaseQueryFeeTokensRequest();
-    return message;
-  },
-  fromSDK(_: QueryFeeTokensRequestSDKType): QueryFeeTokensRequest {
-    return {};
-  },
-  toSDK(_: QueryFeeTokensRequest): QueryFeeTokensRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryFeeTokensRequestAmino): QueryFeeTokensRequest {
-    return {};
-  },
-  toAmino(_: QueryFeeTokensRequest): QueryFeeTokensRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryFeeTokensRequestAminoMsg): QueryFeeTokensRequest {
-    return QueryFeeTokensRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryFeeTokensRequest): QueryFeeTokensRequestAminoMsg {
-    return {
-      type: "osmosis/txfees/query-fee-tokens-request",
-      value: QueryFeeTokensRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryFeeTokensRequestProtoMsg): QueryFeeTokensRequest {
-    return QueryFeeTokensRequest.decode(message.value);
-  },
-  toProto(message: QueryFeeTokensRequest): Uint8Array {
-    return QueryFeeTokensRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryFeeTokensRequest): QueryFeeTokensRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensRequest",
-      value: QueryFeeTokensRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryFeeTokensResponse(): QueryFeeTokensResponse {
-  return {
-    feeTokens: []
-  };
-}
-export const QueryFeeTokensResponse = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensResponse",
-  aminoType: "osmosis/txfees/query-fee-tokens-response",
-  encode(message: QueryFeeTokensResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.feeTokens) {
-      FeeToken.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryFeeTokensResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryFeeTokensResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.feeTokens.push(FeeToken.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryFeeTokensResponse {
-    return {
-      feeTokens: Array.isArray(object?.feeTokens) ? object.feeTokens.map((e: any) => FeeToken.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: QueryFeeTokensResponse): unknown {
-    const obj: any = {};
-    if (message.feeTokens) {
-      obj.feeTokens = message.feeTokens.map(e => e ? FeeToken.toJSON(e) : undefined);
-    } else {
-      obj.feeTokens = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryFeeTokensResponse>): QueryFeeTokensResponse {
-    const message = createBaseQueryFeeTokensResponse();
-    message.feeTokens = object.feeTokens?.map(e => FeeToken.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: QueryFeeTokensResponseSDKType): QueryFeeTokensResponse {
-    return {
-      feeTokens: Array.isArray(object?.fee_tokens) ? object.fee_tokens.map((e: any) => FeeToken.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: QueryFeeTokensResponse): QueryFeeTokensResponseSDKType {
-    const obj: any = {};
-    if (message.feeTokens) {
-      obj.fee_tokens = message.feeTokens.map(e => e ? FeeToken.toSDK(e) : undefined);
-    } else {
-      obj.fee_tokens = [];
-    }
-    return obj;
-  },
-  fromAmino(object: QueryFeeTokensResponseAmino): QueryFeeTokensResponse {
-    return {
-      feeTokens: Array.isArray(object?.fee_tokens) ? object.fee_tokens.map((e: any) => FeeToken.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: QueryFeeTokensResponse): QueryFeeTokensResponseAmino {
-    const obj: any = {};
-    if (message.feeTokens) {
-      obj.fee_tokens = message.feeTokens.map(e => e ? FeeToken.toAmino(e) : undefined);
-    } else {
-      obj.fee_tokens = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: QueryFeeTokensResponseAminoMsg): QueryFeeTokensResponse {
-    return QueryFeeTokensResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryFeeTokensResponse): QueryFeeTokensResponseAminoMsg {
-    return {
-      type: "osmosis/txfees/query-fee-tokens-response",
-      value: QueryFeeTokensResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryFeeTokensResponseProtoMsg): QueryFeeTokensResponse {
-    return QueryFeeTokensResponse.decode(message.value);
-  },
-  toProto(message: QueryFeeTokensResponse): Uint8Array {
-    return QueryFeeTokensResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryFeeTokensResponse): QueryFeeTokensResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryFeeTokensResponse",
-      value: QueryFeeTokensResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomSpotPriceRequest(): QueryDenomSpotPriceRequest {
-  return {
-    denom: ""
-  };
-}
-export const QueryDenomSpotPriceRequest = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceRequest",
-  aminoType: "osmosis/txfees/query-denom-spot-price-request",
-  encode(message: QueryDenomSpotPriceRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomSpotPriceRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomSpotPriceRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomSpotPriceRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryDenomSpotPriceRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomSpotPriceRequest>): QueryDenomSpotPriceRequest {
-    const message = createBaseQueryDenomSpotPriceRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomSpotPriceRequestSDKType): QueryDenomSpotPriceRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryDenomSpotPriceRequest): QueryDenomSpotPriceRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryDenomSpotPriceRequestAmino): QueryDenomSpotPriceRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryDenomSpotPriceRequest): QueryDenomSpotPriceRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomSpotPriceRequestAminoMsg): QueryDenomSpotPriceRequest {
-    return QueryDenomSpotPriceRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomSpotPriceRequest): QueryDenomSpotPriceRequestAminoMsg {
-    return {
-      type: "osmosis/txfees/query-denom-spot-price-request",
-      value: QueryDenomSpotPriceRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomSpotPriceRequestProtoMsg): QueryDenomSpotPriceRequest {
-    return QueryDenomSpotPriceRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomSpotPriceRequest): Uint8Array {
-    return QueryDenomSpotPriceRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomSpotPriceRequest): QueryDenomSpotPriceRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceRequest",
-      value: QueryDenomSpotPriceRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomSpotPriceResponse(): QueryDenomSpotPriceResponse {
-  return {
-    poolID: BigInt(0),
-    spotPrice: ""
-  };
-}
-export const QueryDenomSpotPriceResponse = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceResponse",
-  aminoType: "osmosis/txfees/query-denom-spot-price-response",
-  encode(message: QueryDenomSpotPriceResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolID !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolID);
-    }
-    if (message.spotPrice !== "") {
-      writer.uint32(18).string(Decimal.fromUserInput(message.spotPrice, 18).atomics);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomSpotPriceResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomSpotPriceResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolID = reader.uint64();
-          break;
-        case 2:
-          message.spotPrice = Decimal.fromAtomics(reader.string(), 18).toString();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomSpotPriceResponse {
-    return {
-      poolID: isSet(object.poolID) ? BigInt(object.poolID.toString()) : BigInt(0),
-      spotPrice: isSet(object.spotPrice) ? String(object.spotPrice) : ""
-    };
-  },
-  toJSON(message: QueryDenomSpotPriceResponse): unknown {
-    const obj: any = {};
-    message.poolID !== undefined && (obj.poolID = (message.poolID || BigInt(0)).toString());
-    message.spotPrice !== undefined && (obj.spotPrice = message.spotPrice);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomSpotPriceResponse>): QueryDenomSpotPriceResponse {
-    const message = createBaseQueryDenomSpotPriceResponse();
-    message.poolID = object.poolID !== undefined && object.poolID !== null ? BigInt(object.poolID.toString()) : BigInt(0);
-    message.spotPrice = object.spotPrice ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomSpotPriceResponseSDKType): QueryDenomSpotPriceResponse {
-    return {
-      poolID: object?.poolID,
-      spotPrice: object?.spot_price
-    };
-  },
-  toSDK(message: QueryDenomSpotPriceResponse): QueryDenomSpotPriceResponseSDKType {
-    const obj: any = {};
-    obj.poolID = message.poolID;
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAmino(object: QueryDenomSpotPriceResponseAmino): QueryDenomSpotPriceResponse {
-    return {
-      poolID: BigInt(object.poolID),
-      spotPrice: object.spot_price
-    };
-  },
-  toAmino(message: QueryDenomSpotPriceResponse): QueryDenomSpotPriceResponseAmino {
-    const obj: any = {};
-    obj.poolID = message.poolID ? message.poolID.toString() : undefined;
-    obj.spot_price = message.spotPrice;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomSpotPriceResponseAminoMsg): QueryDenomSpotPriceResponse {
-    return QueryDenomSpotPriceResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomSpotPriceResponse): QueryDenomSpotPriceResponseAminoMsg {
-    return {
-      type: "osmosis/txfees/query-denom-spot-price-response",
-      value: QueryDenomSpotPriceResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomSpotPriceResponseProtoMsg): QueryDenomSpotPriceResponse {
-    return QueryDenomSpotPriceResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomSpotPriceResponse): Uint8Array {
-    return QueryDenomSpotPriceResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomSpotPriceResponse): QueryDenomSpotPriceResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryDenomSpotPriceResponse",
-      value: QueryDenomSpotPriceResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomPoolIdRequest(): QueryDenomPoolIdRequest {
-  return {
-    denom: ""
-  };
-}
-export const QueryDenomPoolIdRequest = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdRequest",
-  aminoType: "osmosis/txfees/query-denom-pool-id-request",
-  encode(message: QueryDenomPoolIdRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.denom !== "") {
-      writer.uint32(10).string(message.denom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomPoolIdRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomPoolIdRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.denom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomPoolIdRequest {
-    return {
-      denom: isSet(object.denom) ? String(object.denom) : ""
-    };
-  },
-  toJSON(message: QueryDenomPoolIdRequest): unknown {
-    const obj: any = {};
-    message.denom !== undefined && (obj.denom = message.denom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomPoolIdRequest>): QueryDenomPoolIdRequest {
-    const message = createBaseQueryDenomPoolIdRequest();
-    message.denom = object.denom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryDenomPoolIdRequestSDKType): QueryDenomPoolIdRequest {
-    return {
-      denom: object?.denom
-    };
-  },
-  toSDK(message: QueryDenomPoolIdRequest): QueryDenomPoolIdRequestSDKType {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAmino(object: QueryDenomPoolIdRequestAmino): QueryDenomPoolIdRequest {
-    return {
-      denom: object.denom
-    };
-  },
-  toAmino(message: QueryDenomPoolIdRequest): QueryDenomPoolIdRequestAmino {
-    const obj: any = {};
-    obj.denom = message.denom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomPoolIdRequestAminoMsg): QueryDenomPoolIdRequest {
-    return QueryDenomPoolIdRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomPoolIdRequest): QueryDenomPoolIdRequestAminoMsg {
-    return {
-      type: "osmosis/txfees/query-denom-pool-id-request",
-      value: QueryDenomPoolIdRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomPoolIdRequestProtoMsg): QueryDenomPoolIdRequest {
-    return QueryDenomPoolIdRequest.decode(message.value);
-  },
-  toProto(message: QueryDenomPoolIdRequest): Uint8Array {
-    return QueryDenomPoolIdRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomPoolIdRequest): QueryDenomPoolIdRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdRequest",
-      value: QueryDenomPoolIdRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryDenomPoolIdResponse(): QueryDenomPoolIdResponse {
-  return {
-    poolID: BigInt(0)
-  };
-}
-export const QueryDenomPoolIdResponse = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdResponse",
-  aminoType: "osmosis/txfees/query-denom-pool-id-response",
-  encode(message: QueryDenomPoolIdResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.poolID !== BigInt(0)) {
-      writer.uint32(8).uint64(message.poolID);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryDenomPoolIdResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryDenomPoolIdResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.poolID = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryDenomPoolIdResponse {
-    return {
-      poolID: isSet(object.poolID) ? BigInt(object.poolID.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: QueryDenomPoolIdResponse): unknown {
-    const obj: any = {};
-    message.poolID !== undefined && (obj.poolID = (message.poolID || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryDenomPoolIdResponse>): QueryDenomPoolIdResponse {
-    const message = createBaseQueryDenomPoolIdResponse();
-    message.poolID = object.poolID !== undefined && object.poolID !== null ? BigInt(object.poolID.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: QueryDenomPoolIdResponseSDKType): QueryDenomPoolIdResponse {
-    return {
-      poolID: object?.poolID
-    };
-  },
-  toSDK(message: QueryDenomPoolIdResponse): QueryDenomPoolIdResponseSDKType {
-    const obj: any = {};
-    obj.poolID = message.poolID;
-    return obj;
-  },
-  fromAmino(object: QueryDenomPoolIdResponseAmino): QueryDenomPoolIdResponse {
-    return {
-      poolID: BigInt(object.poolID)
-    };
-  },
-  toAmino(message: QueryDenomPoolIdResponse): QueryDenomPoolIdResponseAmino {
-    const obj: any = {};
-    obj.poolID = message.poolID ? message.poolID.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: QueryDenomPoolIdResponseAminoMsg): QueryDenomPoolIdResponse {
-    return QueryDenomPoolIdResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryDenomPoolIdResponse): QueryDenomPoolIdResponseAminoMsg {
-    return {
-      type: "osmosis/txfees/query-denom-pool-id-response",
-      value: QueryDenomPoolIdResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryDenomPoolIdResponseProtoMsg): QueryDenomPoolIdResponse {
-    return QueryDenomPoolIdResponse.decode(message.value);
-  },
-  toProto(message: QueryDenomPoolIdResponse): Uint8Array {
-    return QueryDenomPoolIdResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryDenomPoolIdResponse): QueryDenomPoolIdResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryDenomPoolIdResponse",
-      value: QueryDenomPoolIdResponse.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryBaseDenomRequest(): QueryBaseDenomRequest {
-  return {};
-}
-export const QueryBaseDenomRequest = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomRequest",
-  aminoType: "osmosis/txfees/query-base-denom-request",
-  encode(_: QueryBaseDenomRequest, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBaseDenomRequest {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBaseDenomRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): QueryBaseDenomRequest {
-    return {};
-  },
-  toJSON(_: QueryBaseDenomRequest): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<QueryBaseDenomRequest>): QueryBaseDenomRequest {
-    const message = createBaseQueryBaseDenomRequest();
-    return message;
-  },
-  fromSDK(_: QueryBaseDenomRequestSDKType): QueryBaseDenomRequest {
-    return {};
-  },
-  toSDK(_: QueryBaseDenomRequest): QueryBaseDenomRequestSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: QueryBaseDenomRequestAmino): QueryBaseDenomRequest {
-    return {};
-  },
-  toAmino(_: QueryBaseDenomRequest): QueryBaseDenomRequestAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: QueryBaseDenomRequestAminoMsg): QueryBaseDenomRequest {
-    return QueryBaseDenomRequest.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBaseDenomRequest): QueryBaseDenomRequestAminoMsg {
-    return {
-      type: "osmosis/txfees/query-base-denom-request",
-      value: QueryBaseDenomRequest.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBaseDenomRequestProtoMsg): QueryBaseDenomRequest {
-    return QueryBaseDenomRequest.decode(message.value);
-  },
-  toProto(message: QueryBaseDenomRequest): Uint8Array {
-    return QueryBaseDenomRequest.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBaseDenomRequest): QueryBaseDenomRequestProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomRequest",
-      value: QueryBaseDenomRequest.encode(message).finish()
-    };
-  }
-};
-function createBaseQueryBaseDenomResponse(): QueryBaseDenomResponse {
-  return {
-    baseDenom: ""
-  };
-}
-export const QueryBaseDenomResponse = {
-  typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomResponse",
-  aminoType: "osmosis/txfees/query-base-denom-response",
-  encode(message: QueryBaseDenomResponse, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.baseDenom !== "") {
-      writer.uint32(10).string(message.baseDenom);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): QueryBaseDenomResponse {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseQueryBaseDenomResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.baseDenom = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): QueryBaseDenomResponse {
-    return {
-      baseDenom: isSet(object.baseDenom) ? String(object.baseDenom) : ""
-    };
-  },
-  toJSON(message: QueryBaseDenomResponse): unknown {
-    const obj: any = {};
-    message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<QueryBaseDenomResponse>): QueryBaseDenomResponse {
-    const message = createBaseQueryBaseDenomResponse();
-    message.baseDenom = object.baseDenom ?? "";
-    return message;
-  },
-  fromSDK(object: QueryBaseDenomResponseSDKType): QueryBaseDenomResponse {
-    return {
-      baseDenom: object?.base_denom
-    };
-  },
-  toSDK(message: QueryBaseDenomResponse): QueryBaseDenomResponseSDKType {
-    const obj: any = {};
-    obj.base_denom = message.baseDenom;
-    return obj;
-  },
-  fromAmino(object: QueryBaseDenomResponseAmino): QueryBaseDenomResponse {
-    return {
-      baseDenom: object.base_denom
-    };
-  },
-  toAmino(message: QueryBaseDenomResponse): QueryBaseDenomResponseAmino {
-    const obj: any = {};
-    obj.base_denom = message.baseDenom;
-    return obj;
-  },
-  fromAminoMsg(object: QueryBaseDenomResponseAminoMsg): QueryBaseDenomResponse {
-    return QueryBaseDenomResponse.fromAmino(object.value);
-  },
-  toAminoMsg(message: QueryBaseDenomResponse): QueryBaseDenomResponseAminoMsg {
-    return {
-      type: "osmosis/txfees/query-base-denom-response",
-      value: QueryBaseDenomResponse.toAmino(message)
-    };
-  },
-  fromProtoMsg(message: QueryBaseDenomResponseProtoMsg): QueryBaseDenomResponse {
-    return QueryBaseDenomResponse.decode(message.value);
-  },
-  toProto(message: QueryBaseDenomResponse): Uint8Array {
-    return QueryBaseDenomResponse.encode(message).finish();
-  },
-  toProtoMsg(message: QueryBaseDenomResponse): QueryBaseDenomResponseProtoMsg {
-    return {
-      typeUrl: "/osmosis.txfees.v1beta1.QueryBaseDenomResponse",
-      value: QueryBaseDenomResponse.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/react-query.ts b/examples/injective/src/codegen/react-query.ts
deleted file mode 100644
index 7c5cb5bc..00000000
--- a/examples/injective/src/codegen/react-query.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-import { getRpcClient } from './extern'
-import {
-    useQuery,
-    UseQueryOptions,
-} from '@tanstack/react-query';
-
-import { HttpEndpoint, ProtobufRpcClient } from '@cosmjs/stargate';
-import { Tendermint34Client } from '@cosmjs/tendermint-rpc';
-
-export interface ReactQueryParams<TResponse, TData = TResponse> {
-    options?: UseQueryOptions<TResponse, Error, TData>;
-}
-
-export interface UseRpcClientQuery<TData> extends ReactQueryParams<ProtobufRpcClient, TData> {
-    rpcEndpoint: string | HttpEndpoint;
-}
-
-export interface UseRpcEndpointQuery<TData> extends ReactQueryParams<string | HttpEndpoint, TData> {
-    getter: () => Promise<string | HttpEndpoint>;
-}
-
-export const useRpcEndpoint = <TData = string | HttpEndpoint>({
-    getter,
-    options,
-}: UseRpcEndpointQuery<TData>) => {
-    return useQuery<string | HttpEndpoint, Error, TData>(['rpcEndpoint', getter], async () => {
-        return await getter();
-    }, options);
-};
-
-export const useRpcClient = <TData = ProtobufRpcClient>({
-    rpcEndpoint,
-    options,
-}: UseRpcClientQuery<TData>) => {
-    return useQuery<ProtobufRpcClient, Error, TData>(['rpcClient', rpcEndpoint], async () => {
-        return await getRpcClient(rpcEndpoint);
-    }, options);
-};
-
-interface UseTendermintClient extends ReactQueryParams<Tendermint34Client> {
-    rpcEndpoint: string | HttpEndpoint;
-}
-
-/**
- * Hook that uses react-query to cache a connected tendermint client.
- */
-export const useTendermintClient = ({
-    rpcEndpoint,
-    options,
-}: UseTendermintClient) => {
-    const { data: client } = useQuery<Tendermint34Client, Error, Tendermint34Client>(
-        ['client', 'tendermint', rpcEndpoint],
-        () => Tendermint34Client.connect(rpcEndpoint),
-        {
-            // allow overriding
-            onError: (e) => {
-                throw new Error(`Failed to connect to ${rpcEndpoint}` + '\n' + e)
-            },
-            ...options,
-        }
-    )
-    return { client }
-};
diff --git a/examples/injective/src/codegen/tendermint/abci/types.ts b/examples/injective/src/codegen/tendermint/abci/types.ts
deleted file mode 100644
index 4322162a..00000000
--- a/examples/injective/src/codegen/tendermint/abci/types.ts
+++ /dev/null
@@ -1,6528 +0,0 @@
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Header, HeaderAmino, HeaderSDKType } from "../types/types";
-import { ProofOps, ProofOpsAmino, ProofOpsSDKType } from "../crypto/proof";
-import { EvidenceParams, EvidenceParamsAmino, EvidenceParamsSDKType, ValidatorParams, ValidatorParamsAmino, ValidatorParamsSDKType, VersionParams, VersionParamsAmino, VersionParamsSDKType } from "../types/params";
-import { PublicKey, PublicKeyAmino, PublicKeySDKType } from "../crypto/keys";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp, bytesFromBase64, base64FromBytes } from "../../helpers";
-export enum CheckTxType {
-  NEW = 0,
-  RECHECK = 1,
-  UNRECOGNIZED = -1,
-}
-export const CheckTxTypeSDKType = CheckTxType;
-export const CheckTxTypeAmino = CheckTxType;
-export function checkTxTypeFromJSON(object: any): CheckTxType {
-  switch (object) {
-    case 0:
-    case "NEW":
-      return CheckTxType.NEW;
-    case 1:
-    case "RECHECK":
-      return CheckTxType.RECHECK;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return CheckTxType.UNRECOGNIZED;
-  }
-}
-export function checkTxTypeToJSON(object: CheckTxType): string {
-  switch (object) {
-    case CheckTxType.NEW:
-      return "NEW";
-    case CheckTxType.RECHECK:
-      return "RECHECK";
-    case CheckTxType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum ResponseOfferSnapshot_Result {
-  /** UNKNOWN - Unknown result, abort all snapshot restoration */
-  UNKNOWN = 0,
-  /** ACCEPT - Snapshot accepted, apply chunks */
-  ACCEPT = 1,
-  /** ABORT - Abort all snapshot restoration */
-  ABORT = 2,
-  /** REJECT - Reject this specific snapshot, try others */
-  REJECT = 3,
-  /** REJECT_FORMAT - Reject all snapshots of this format, try others */
-  REJECT_FORMAT = 4,
-  /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */
-  REJECT_SENDER = 5,
-  UNRECOGNIZED = -1,
-}
-export const ResponseOfferSnapshot_ResultSDKType = ResponseOfferSnapshot_Result;
-export const ResponseOfferSnapshot_ResultAmino = ResponseOfferSnapshot_Result;
-export function responseOfferSnapshot_ResultFromJSON(object: any): ResponseOfferSnapshot_Result {
-  switch (object) {
-    case 0:
-    case "UNKNOWN":
-      return ResponseOfferSnapshot_Result.UNKNOWN;
-    case 1:
-    case "ACCEPT":
-      return ResponseOfferSnapshot_Result.ACCEPT;
-    case 2:
-    case "ABORT":
-      return ResponseOfferSnapshot_Result.ABORT;
-    case 3:
-    case "REJECT":
-      return ResponseOfferSnapshot_Result.REJECT;
-    case 4:
-    case "REJECT_FORMAT":
-      return ResponseOfferSnapshot_Result.REJECT_FORMAT;
-    case 5:
-    case "REJECT_SENDER":
-      return ResponseOfferSnapshot_Result.REJECT_SENDER;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ResponseOfferSnapshot_Result.UNRECOGNIZED;
-  }
-}
-export function responseOfferSnapshot_ResultToJSON(object: ResponseOfferSnapshot_Result): string {
-  switch (object) {
-    case ResponseOfferSnapshot_Result.UNKNOWN:
-      return "UNKNOWN";
-    case ResponseOfferSnapshot_Result.ACCEPT:
-      return "ACCEPT";
-    case ResponseOfferSnapshot_Result.ABORT:
-      return "ABORT";
-    case ResponseOfferSnapshot_Result.REJECT:
-      return "REJECT";
-    case ResponseOfferSnapshot_Result.REJECT_FORMAT:
-      return "REJECT_FORMAT";
-    case ResponseOfferSnapshot_Result.REJECT_SENDER:
-      return "REJECT_SENDER";
-    case ResponseOfferSnapshot_Result.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum ResponseApplySnapshotChunk_Result {
-  /** UNKNOWN - Unknown result, abort all snapshot restoration */
-  UNKNOWN = 0,
-  /** ACCEPT - Chunk successfully accepted */
-  ACCEPT = 1,
-  /** ABORT - Abort all snapshot restoration */
-  ABORT = 2,
-  /** RETRY - Retry chunk (combine with refetch and reject) */
-  RETRY = 3,
-  /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */
-  RETRY_SNAPSHOT = 4,
-  /** REJECT_SNAPSHOT - Reject this snapshot, try others */
-  REJECT_SNAPSHOT = 5,
-  UNRECOGNIZED = -1,
-}
-export const ResponseApplySnapshotChunk_ResultSDKType = ResponseApplySnapshotChunk_Result;
-export const ResponseApplySnapshotChunk_ResultAmino = ResponseApplySnapshotChunk_Result;
-export function responseApplySnapshotChunk_ResultFromJSON(object: any): ResponseApplySnapshotChunk_Result {
-  switch (object) {
-    case 0:
-    case "UNKNOWN":
-      return ResponseApplySnapshotChunk_Result.UNKNOWN;
-    case 1:
-    case "ACCEPT":
-      return ResponseApplySnapshotChunk_Result.ACCEPT;
-    case 2:
-    case "ABORT":
-      return ResponseApplySnapshotChunk_Result.ABORT;
-    case 3:
-    case "RETRY":
-      return ResponseApplySnapshotChunk_Result.RETRY;
-    case 4:
-    case "RETRY_SNAPSHOT":
-      return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;
-    case 5:
-    case "REJECT_SNAPSHOT":
-      return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;
-  }
-}
-export function responseApplySnapshotChunk_ResultToJSON(object: ResponseApplySnapshotChunk_Result): string {
-  switch (object) {
-    case ResponseApplySnapshotChunk_Result.UNKNOWN:
-      return "UNKNOWN";
-    case ResponseApplySnapshotChunk_Result.ACCEPT:
-      return "ACCEPT";
-    case ResponseApplySnapshotChunk_Result.ABORT:
-      return "ABORT";
-    case ResponseApplySnapshotChunk_Result.RETRY:
-      return "RETRY";
-    case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:
-      return "RETRY_SNAPSHOT";
-    case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:
-      return "REJECT_SNAPSHOT";
-    case ResponseApplySnapshotChunk_Result.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export enum EvidenceType {
-  UNKNOWN = 0,
-  DUPLICATE_VOTE = 1,
-  LIGHT_CLIENT_ATTACK = 2,
-  UNRECOGNIZED = -1,
-}
-export const EvidenceTypeSDKType = EvidenceType;
-export const EvidenceTypeAmino = EvidenceType;
-export function evidenceTypeFromJSON(object: any): EvidenceType {
-  switch (object) {
-    case 0:
-    case "UNKNOWN":
-      return EvidenceType.UNKNOWN;
-    case 1:
-    case "DUPLICATE_VOTE":
-      return EvidenceType.DUPLICATE_VOTE;
-    case 2:
-    case "LIGHT_CLIENT_ATTACK":
-      return EvidenceType.LIGHT_CLIENT_ATTACK;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return EvidenceType.UNRECOGNIZED;
-  }
-}
-export function evidenceTypeToJSON(object: EvidenceType): string {
-  switch (object) {
-    case EvidenceType.UNKNOWN:
-      return "UNKNOWN";
-    case EvidenceType.DUPLICATE_VOTE:
-      return "DUPLICATE_VOTE";
-    case EvidenceType.LIGHT_CLIENT_ATTACK:
-      return "LIGHT_CLIENT_ATTACK";
-    case EvidenceType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-export interface Request {
-  echo?: RequestEcho | undefined;
-  flush?: RequestFlush | undefined;
-  info?: RequestInfo | undefined;
-  setOption?: RequestSetOption | undefined;
-  initChain?: RequestInitChain | undefined;
-  query?: RequestQuery | undefined;
-  beginBlock?: RequestBeginBlock | undefined;
-  checkTx?: RequestCheckTx | undefined;
-  deliverTx?: RequestDeliverTx | undefined;
-  endBlock?: RequestEndBlock | undefined;
-  commit?: RequestCommit | undefined;
-  listSnapshots?: RequestListSnapshots | undefined;
-  offerSnapshot?: RequestOfferSnapshot | undefined;
-  loadSnapshotChunk?: RequestLoadSnapshotChunk | undefined;
-  applySnapshotChunk?: RequestApplySnapshotChunk | undefined;
-}
-export interface RequestProtoMsg {
-  typeUrl: "/tendermint.abci.Request";
-  value: Uint8Array;
-}
-export interface RequestAmino {
-  echo?: RequestEchoAmino | undefined;
-  flush?: RequestFlushAmino | undefined;
-  info?: RequestInfoAmino | undefined;
-  set_option?: RequestSetOptionAmino | undefined;
-  init_chain?: RequestInitChainAmino | undefined;
-  query?: RequestQueryAmino | undefined;
-  begin_block?: RequestBeginBlockAmino | undefined;
-  check_tx?: RequestCheckTxAmino | undefined;
-  deliver_tx?: RequestDeliverTxAmino | undefined;
-  end_block?: RequestEndBlockAmino | undefined;
-  commit?: RequestCommitAmino | undefined;
-  list_snapshots?: RequestListSnapshotsAmino | undefined;
-  offer_snapshot?: RequestOfferSnapshotAmino | undefined;
-  load_snapshot_chunk?: RequestLoadSnapshotChunkAmino | undefined;
-  apply_snapshot_chunk?: RequestApplySnapshotChunkAmino | undefined;
-}
-export interface RequestAminoMsg {
-  type: "/tendermint.abci.Request";
-  value: RequestAmino;
-}
-export interface RequestSDKType {
-  echo?: RequestEchoSDKType | undefined;
-  flush?: RequestFlushSDKType | undefined;
-  info?: RequestInfoSDKType | undefined;
-  set_option?: RequestSetOptionSDKType | undefined;
-  init_chain?: RequestInitChainSDKType | undefined;
-  query?: RequestQuerySDKType | undefined;
-  begin_block?: RequestBeginBlockSDKType | undefined;
-  check_tx?: RequestCheckTxSDKType | undefined;
-  deliver_tx?: RequestDeliverTxSDKType | undefined;
-  end_block?: RequestEndBlockSDKType | undefined;
-  commit?: RequestCommitSDKType | undefined;
-  list_snapshots?: RequestListSnapshotsSDKType | undefined;
-  offer_snapshot?: RequestOfferSnapshotSDKType | undefined;
-  load_snapshot_chunk?: RequestLoadSnapshotChunkSDKType | undefined;
-  apply_snapshot_chunk?: RequestApplySnapshotChunkSDKType | undefined;
-}
-export interface RequestEcho {
-  message: string;
-}
-export interface RequestEchoProtoMsg {
-  typeUrl: "/tendermint.abci.RequestEcho";
-  value: Uint8Array;
-}
-export interface RequestEchoAmino {
-  message: string;
-}
-export interface RequestEchoAminoMsg {
-  type: "/tendermint.abci.RequestEcho";
-  value: RequestEchoAmino;
-}
-export interface RequestEchoSDKType {
-  message: string;
-}
-export interface RequestFlush {}
-export interface RequestFlushProtoMsg {
-  typeUrl: "/tendermint.abci.RequestFlush";
-  value: Uint8Array;
-}
-export interface RequestFlushAmino {}
-export interface RequestFlushAminoMsg {
-  type: "/tendermint.abci.RequestFlush";
-  value: RequestFlushAmino;
-}
-export interface RequestFlushSDKType {}
-export interface RequestInfo {
-  version: string;
-  blockVersion: bigint;
-  p2pVersion: bigint;
-}
-export interface RequestInfoProtoMsg {
-  typeUrl: "/tendermint.abci.RequestInfo";
-  value: Uint8Array;
-}
-export interface RequestInfoAmino {
-  version: string;
-  block_version: string;
-  p2p_version: string;
-}
-export interface RequestInfoAminoMsg {
-  type: "/tendermint.abci.RequestInfo";
-  value: RequestInfoAmino;
-}
-export interface RequestInfoSDKType {
-  version: string;
-  block_version: bigint;
-  p2p_version: bigint;
-}
-/** nondeterministic */
-export interface RequestSetOption {
-  key: string;
-  value: string;
-}
-export interface RequestSetOptionProtoMsg {
-  typeUrl: "/tendermint.abci.RequestSetOption";
-  value: Uint8Array;
-}
-/** nondeterministic */
-export interface RequestSetOptionAmino {
-  key: string;
-  value: string;
-}
-export interface RequestSetOptionAminoMsg {
-  type: "/tendermint.abci.RequestSetOption";
-  value: RequestSetOptionAmino;
-}
-/** nondeterministic */
-export interface RequestSetOptionSDKType {
-  key: string;
-  value: string;
-}
-export interface RequestInitChain {
-  time: Date | undefined;
-  chainId: string;
-  consensusParams: ConsensusParams | undefined;
-  validators: ValidatorUpdate[];
-  appStateBytes: Uint8Array;
-  initialHeight: bigint;
-}
-export interface RequestInitChainProtoMsg {
-  typeUrl: "/tendermint.abci.RequestInitChain";
-  value: Uint8Array;
-}
-export interface RequestInitChainAmino {
-  time?: Date | undefined;
-  chain_id: string;
-  consensus_params?: ConsensusParamsAmino | undefined;
-  validators: ValidatorUpdateAmino[];
-  app_state_bytes: Uint8Array;
-  initial_height: string;
-}
-export interface RequestInitChainAminoMsg {
-  type: "/tendermint.abci.RequestInitChain";
-  value: RequestInitChainAmino;
-}
-export interface RequestInitChainSDKType {
-  time: Date | undefined;
-  chain_id: string;
-  consensus_params: ConsensusParamsSDKType | undefined;
-  validators: ValidatorUpdateSDKType[];
-  app_state_bytes: Uint8Array;
-  initial_height: bigint;
-}
-export interface RequestQuery {
-  data: Uint8Array;
-  path: string;
-  height: bigint;
-  prove: boolean;
-}
-export interface RequestQueryProtoMsg {
-  typeUrl: "/tendermint.abci.RequestQuery";
-  value: Uint8Array;
-}
-export interface RequestQueryAmino {
-  data: Uint8Array;
-  path: string;
-  height: string;
-  prove: boolean;
-}
-export interface RequestQueryAminoMsg {
-  type: "/tendermint.abci.RequestQuery";
-  value: RequestQueryAmino;
-}
-export interface RequestQuerySDKType {
-  data: Uint8Array;
-  path: string;
-  height: bigint;
-  prove: boolean;
-}
-export interface RequestBeginBlock {
-  hash: Uint8Array;
-  header: Header | undefined;
-  lastCommitInfo: LastCommitInfo | undefined;
-  byzantineValidators: Evidence[];
-}
-export interface RequestBeginBlockProtoMsg {
-  typeUrl: "/tendermint.abci.RequestBeginBlock";
-  value: Uint8Array;
-}
-export interface RequestBeginBlockAmino {
-  hash: Uint8Array;
-  header?: HeaderAmino | undefined;
-  last_commit_info?: LastCommitInfoAmino | undefined;
-  byzantine_validators: EvidenceAmino[];
-}
-export interface RequestBeginBlockAminoMsg {
-  type: "/tendermint.abci.RequestBeginBlock";
-  value: RequestBeginBlockAmino;
-}
-export interface RequestBeginBlockSDKType {
-  hash: Uint8Array;
-  header: HeaderSDKType | undefined;
-  last_commit_info: LastCommitInfoSDKType | undefined;
-  byzantine_validators: EvidenceSDKType[];
-}
-export interface RequestCheckTx {
-  tx: Uint8Array;
-  type: CheckTxType;
-}
-export interface RequestCheckTxProtoMsg {
-  typeUrl: "/tendermint.abci.RequestCheckTx";
-  value: Uint8Array;
-}
-export interface RequestCheckTxAmino {
-  tx: Uint8Array;
-  type: CheckTxType;
-}
-export interface RequestCheckTxAminoMsg {
-  type: "/tendermint.abci.RequestCheckTx";
-  value: RequestCheckTxAmino;
-}
-export interface RequestCheckTxSDKType {
-  tx: Uint8Array;
-  type: CheckTxType;
-}
-export interface RequestDeliverTx {
-  tx: Uint8Array;
-}
-export interface RequestDeliverTxProtoMsg {
-  typeUrl: "/tendermint.abci.RequestDeliverTx";
-  value: Uint8Array;
-}
-export interface RequestDeliverTxAmino {
-  tx: Uint8Array;
-}
-export interface RequestDeliverTxAminoMsg {
-  type: "/tendermint.abci.RequestDeliverTx";
-  value: RequestDeliverTxAmino;
-}
-export interface RequestDeliverTxSDKType {
-  tx: Uint8Array;
-}
-export interface RequestEndBlock {
-  height: bigint;
-}
-export interface RequestEndBlockProtoMsg {
-  typeUrl: "/tendermint.abci.RequestEndBlock";
-  value: Uint8Array;
-}
-export interface RequestEndBlockAmino {
-  height: string;
-}
-export interface RequestEndBlockAminoMsg {
-  type: "/tendermint.abci.RequestEndBlock";
-  value: RequestEndBlockAmino;
-}
-export interface RequestEndBlockSDKType {
-  height: bigint;
-}
-export interface RequestCommit {}
-export interface RequestCommitProtoMsg {
-  typeUrl: "/tendermint.abci.RequestCommit";
-  value: Uint8Array;
-}
-export interface RequestCommitAmino {}
-export interface RequestCommitAminoMsg {
-  type: "/tendermint.abci.RequestCommit";
-  value: RequestCommitAmino;
-}
-export interface RequestCommitSDKType {}
-/** lists available snapshots */
-export interface RequestListSnapshots {}
-export interface RequestListSnapshotsProtoMsg {
-  typeUrl: "/tendermint.abci.RequestListSnapshots";
-  value: Uint8Array;
-}
-/** lists available snapshots */
-export interface RequestListSnapshotsAmino {}
-export interface RequestListSnapshotsAminoMsg {
-  type: "/tendermint.abci.RequestListSnapshots";
-  value: RequestListSnapshotsAmino;
-}
-/** lists available snapshots */
-export interface RequestListSnapshotsSDKType {}
-/** offers a snapshot to the application */
-export interface RequestOfferSnapshot {
-  /** snapshot offered by peers */
-  snapshot: Snapshot | undefined;
-  /** light client-verified app hash for snapshot height */
-  appHash: Uint8Array;
-}
-export interface RequestOfferSnapshotProtoMsg {
-  typeUrl: "/tendermint.abci.RequestOfferSnapshot";
-  value: Uint8Array;
-}
-/** offers a snapshot to the application */
-export interface RequestOfferSnapshotAmino {
-  /** snapshot offered by peers */
-  snapshot?: SnapshotAmino | undefined;
-  /** light client-verified app hash for snapshot height */
-  app_hash: Uint8Array;
-}
-export interface RequestOfferSnapshotAminoMsg {
-  type: "/tendermint.abci.RequestOfferSnapshot";
-  value: RequestOfferSnapshotAmino;
-}
-/** offers a snapshot to the application */
-export interface RequestOfferSnapshotSDKType {
-  snapshot: SnapshotSDKType | undefined;
-  app_hash: Uint8Array;
-}
-/** loads a snapshot chunk */
-export interface RequestLoadSnapshotChunk {
-  height: bigint;
-  format: number;
-  chunk: number;
-}
-export interface RequestLoadSnapshotChunkProtoMsg {
-  typeUrl: "/tendermint.abci.RequestLoadSnapshotChunk";
-  value: Uint8Array;
-}
-/** loads a snapshot chunk */
-export interface RequestLoadSnapshotChunkAmino {
-  height: string;
-  format: number;
-  chunk: number;
-}
-export interface RequestLoadSnapshotChunkAminoMsg {
-  type: "/tendermint.abci.RequestLoadSnapshotChunk";
-  value: RequestLoadSnapshotChunkAmino;
-}
-/** loads a snapshot chunk */
-export interface RequestLoadSnapshotChunkSDKType {
-  height: bigint;
-  format: number;
-  chunk: number;
-}
-/** Applies a snapshot chunk */
-export interface RequestApplySnapshotChunk {
-  index: number;
-  chunk: Uint8Array;
-  sender: string;
-}
-export interface RequestApplySnapshotChunkProtoMsg {
-  typeUrl: "/tendermint.abci.RequestApplySnapshotChunk";
-  value: Uint8Array;
-}
-/** Applies a snapshot chunk */
-export interface RequestApplySnapshotChunkAmino {
-  index: number;
-  chunk: Uint8Array;
-  sender: string;
-}
-export interface RequestApplySnapshotChunkAminoMsg {
-  type: "/tendermint.abci.RequestApplySnapshotChunk";
-  value: RequestApplySnapshotChunkAmino;
-}
-/** Applies a snapshot chunk */
-export interface RequestApplySnapshotChunkSDKType {
-  index: number;
-  chunk: Uint8Array;
-  sender: string;
-}
-export interface Response {
-  exception?: ResponseException | undefined;
-  echo?: ResponseEcho | undefined;
-  flush?: ResponseFlush | undefined;
-  info?: ResponseInfo | undefined;
-  setOption?: ResponseSetOption | undefined;
-  initChain?: ResponseInitChain | undefined;
-  query?: ResponseQuery | undefined;
-  beginBlock?: ResponseBeginBlock | undefined;
-  checkTx?: ResponseCheckTx | undefined;
-  deliverTx?: ResponseDeliverTx | undefined;
-  endBlock?: ResponseEndBlock | undefined;
-  commit?: ResponseCommit | undefined;
-  listSnapshots?: ResponseListSnapshots | undefined;
-  offerSnapshot?: ResponseOfferSnapshot | undefined;
-  loadSnapshotChunk?: ResponseLoadSnapshotChunk | undefined;
-  applySnapshotChunk?: ResponseApplySnapshotChunk | undefined;
-}
-export interface ResponseProtoMsg {
-  typeUrl: "/tendermint.abci.Response";
-  value: Uint8Array;
-}
-export interface ResponseAmino {
-  exception?: ResponseExceptionAmino | undefined;
-  echo?: ResponseEchoAmino | undefined;
-  flush?: ResponseFlushAmino | undefined;
-  info?: ResponseInfoAmino | undefined;
-  set_option?: ResponseSetOptionAmino | undefined;
-  init_chain?: ResponseInitChainAmino | undefined;
-  query?: ResponseQueryAmino | undefined;
-  begin_block?: ResponseBeginBlockAmino | undefined;
-  check_tx?: ResponseCheckTxAmino | undefined;
-  deliver_tx?: ResponseDeliverTxAmino | undefined;
-  end_block?: ResponseEndBlockAmino | undefined;
-  commit?: ResponseCommitAmino | undefined;
-  list_snapshots?: ResponseListSnapshotsAmino | undefined;
-  offer_snapshot?: ResponseOfferSnapshotAmino | undefined;
-  load_snapshot_chunk?: ResponseLoadSnapshotChunkAmino | undefined;
-  apply_snapshot_chunk?: ResponseApplySnapshotChunkAmino | undefined;
-}
-export interface ResponseAminoMsg {
-  type: "/tendermint.abci.Response";
-  value: ResponseAmino;
-}
-export interface ResponseSDKType {
-  exception?: ResponseExceptionSDKType | undefined;
-  echo?: ResponseEchoSDKType | undefined;
-  flush?: ResponseFlushSDKType | undefined;
-  info?: ResponseInfoSDKType | undefined;
-  set_option?: ResponseSetOptionSDKType | undefined;
-  init_chain?: ResponseInitChainSDKType | undefined;
-  query?: ResponseQuerySDKType | undefined;
-  begin_block?: ResponseBeginBlockSDKType | undefined;
-  check_tx?: ResponseCheckTxSDKType | undefined;
-  deliver_tx?: ResponseDeliverTxSDKType | undefined;
-  end_block?: ResponseEndBlockSDKType | undefined;
-  commit?: ResponseCommitSDKType | undefined;
-  list_snapshots?: ResponseListSnapshotsSDKType | undefined;
-  offer_snapshot?: ResponseOfferSnapshotSDKType | undefined;
-  load_snapshot_chunk?: ResponseLoadSnapshotChunkSDKType | undefined;
-  apply_snapshot_chunk?: ResponseApplySnapshotChunkSDKType | undefined;
-}
-/** nondeterministic */
-export interface ResponseException {
-  error: string;
-}
-export interface ResponseExceptionProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseException";
-  value: Uint8Array;
-}
-/** nondeterministic */
-export interface ResponseExceptionAmino {
-  error: string;
-}
-export interface ResponseExceptionAminoMsg {
-  type: "/tendermint.abci.ResponseException";
-  value: ResponseExceptionAmino;
-}
-/** nondeterministic */
-export interface ResponseExceptionSDKType {
-  error: string;
-}
-export interface ResponseEcho {
-  message: string;
-}
-export interface ResponseEchoProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseEcho";
-  value: Uint8Array;
-}
-export interface ResponseEchoAmino {
-  message: string;
-}
-export interface ResponseEchoAminoMsg {
-  type: "/tendermint.abci.ResponseEcho";
-  value: ResponseEchoAmino;
-}
-export interface ResponseEchoSDKType {
-  message: string;
-}
-export interface ResponseFlush {}
-export interface ResponseFlushProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseFlush";
-  value: Uint8Array;
-}
-export interface ResponseFlushAmino {}
-export interface ResponseFlushAminoMsg {
-  type: "/tendermint.abci.ResponseFlush";
-  value: ResponseFlushAmino;
-}
-export interface ResponseFlushSDKType {}
-export interface ResponseInfo {
-  data: string;
-  version: string;
-  appVersion: bigint;
-  lastBlockHeight: bigint;
-  lastBlockAppHash: Uint8Array;
-}
-export interface ResponseInfoProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseInfo";
-  value: Uint8Array;
-}
-export interface ResponseInfoAmino {
-  data: string;
-  version: string;
-  app_version: string;
-  last_block_height: string;
-  last_block_app_hash: Uint8Array;
-}
-export interface ResponseInfoAminoMsg {
-  type: "/tendermint.abci.ResponseInfo";
-  value: ResponseInfoAmino;
-}
-export interface ResponseInfoSDKType {
-  data: string;
-  version: string;
-  app_version: bigint;
-  last_block_height: bigint;
-  last_block_app_hash: Uint8Array;
-}
-/** nondeterministic */
-export interface ResponseSetOption {
-  code: number;
-  /** bytes data = 2; */
-  log: string;
-  info: string;
-}
-export interface ResponseSetOptionProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseSetOption";
-  value: Uint8Array;
-}
-/** nondeterministic */
-export interface ResponseSetOptionAmino {
-  code: number;
-  /** bytes data = 2; */
-  log: string;
-  info: string;
-}
-export interface ResponseSetOptionAminoMsg {
-  type: "/tendermint.abci.ResponseSetOption";
-  value: ResponseSetOptionAmino;
-}
-/** nondeterministic */
-export interface ResponseSetOptionSDKType {
-  code: number;
-  log: string;
-  info: string;
-}
-export interface ResponseInitChain {
-  consensusParams: ConsensusParams | undefined;
-  validators: ValidatorUpdate[];
-  appHash: Uint8Array;
-}
-export interface ResponseInitChainProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseInitChain";
-  value: Uint8Array;
-}
-export interface ResponseInitChainAmino {
-  consensus_params?: ConsensusParamsAmino | undefined;
-  validators: ValidatorUpdateAmino[];
-  app_hash: Uint8Array;
-}
-export interface ResponseInitChainAminoMsg {
-  type: "/tendermint.abci.ResponseInitChain";
-  value: ResponseInitChainAmino;
-}
-export interface ResponseInitChainSDKType {
-  consensus_params: ConsensusParamsSDKType | undefined;
-  validators: ValidatorUpdateSDKType[];
-  app_hash: Uint8Array;
-}
-export interface ResponseQuery {
-  code: number;
-  /** bytes data = 2; // use "value" instead. */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  index: bigint;
-  key: Uint8Array;
-  value: Uint8Array;
-  proofOps: ProofOps | undefined;
-  height: bigint;
-  codespace: string;
-}
-export interface ResponseQueryProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseQuery";
-  value: Uint8Array;
-}
-export interface ResponseQueryAmino {
-  code: number;
-  /** bytes data = 2; // use "value" instead. */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  index: string;
-  key: Uint8Array;
-  value: Uint8Array;
-  proof_ops?: ProofOpsAmino | undefined;
-  height: string;
-  codespace: string;
-}
-export interface ResponseQueryAminoMsg {
-  type: "/tendermint.abci.ResponseQuery";
-  value: ResponseQueryAmino;
-}
-export interface ResponseQuerySDKType {
-  code: number;
-  log: string;
-  info: string;
-  index: bigint;
-  key: Uint8Array;
-  value: Uint8Array;
-  proof_ops: ProofOpsSDKType | undefined;
-  height: bigint;
-  codespace: string;
-}
-export interface ResponseBeginBlock {
-  events: Event[];
-}
-export interface ResponseBeginBlockProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseBeginBlock";
-  value: Uint8Array;
-}
-export interface ResponseBeginBlockAmino {
-  events: EventAmino[];
-}
-export interface ResponseBeginBlockAminoMsg {
-  type: "/tendermint.abci.ResponseBeginBlock";
-  value: ResponseBeginBlockAmino;
-}
-export interface ResponseBeginBlockSDKType {
-  events: EventSDKType[];
-}
-export interface ResponseCheckTx {
-  code: number;
-  data: Uint8Array;
-  /** nondeterministic */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  gasWanted: bigint;
-  gasUsed: bigint;
-  events: Event[];
-  codespace: string;
-}
-export interface ResponseCheckTxProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseCheckTx";
-  value: Uint8Array;
-}
-export interface ResponseCheckTxAmino {
-  code: number;
-  data: Uint8Array;
-  /** nondeterministic */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  gas_wanted: string;
-  gas_used: string;
-  events: EventAmino[];
-  codespace: string;
-}
-export interface ResponseCheckTxAminoMsg {
-  type: "/tendermint.abci.ResponseCheckTx";
-  value: ResponseCheckTxAmino;
-}
-export interface ResponseCheckTxSDKType {
-  code: number;
-  data: Uint8Array;
-  log: string;
-  info: string;
-  gas_wanted: bigint;
-  gas_used: bigint;
-  events: EventSDKType[];
-  codespace: string;
-}
-export interface ResponseDeliverTx {
-  code: number;
-  data: Uint8Array;
-  /** nondeterministic */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  gasWanted: bigint;
-  gasUsed: bigint;
-  events: Event[];
-  codespace: string;
-}
-export interface ResponseDeliverTxProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseDeliverTx";
-  value: Uint8Array;
-}
-export interface ResponseDeliverTxAmino {
-  code: number;
-  data: Uint8Array;
-  /** nondeterministic */
-  log: string;
-  /** nondeterministic */
-  info: string;
-  gas_wanted: string;
-  gas_used: string;
-  events: EventAmino[];
-  codespace: string;
-}
-export interface ResponseDeliverTxAminoMsg {
-  type: "/tendermint.abci.ResponseDeliverTx";
-  value: ResponseDeliverTxAmino;
-}
-export interface ResponseDeliverTxSDKType {
-  code: number;
-  data: Uint8Array;
-  log: string;
-  info: string;
-  gas_wanted: bigint;
-  gas_used: bigint;
-  events: EventSDKType[];
-  codespace: string;
-}
-export interface ResponseEndBlock {
-  validatorUpdates: ValidatorUpdate[];
-  consensusParamUpdates: ConsensusParams | undefined;
-  events: Event[];
-}
-export interface ResponseEndBlockProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseEndBlock";
-  value: Uint8Array;
-}
-export interface ResponseEndBlockAmino {
-  validator_updates: ValidatorUpdateAmino[];
-  consensus_param_updates?: ConsensusParamsAmino | undefined;
-  events: EventAmino[];
-}
-export interface ResponseEndBlockAminoMsg {
-  type: "/tendermint.abci.ResponseEndBlock";
-  value: ResponseEndBlockAmino;
-}
-export interface ResponseEndBlockSDKType {
-  validator_updates: ValidatorUpdateSDKType[];
-  consensus_param_updates: ConsensusParamsSDKType | undefined;
-  events: EventSDKType[];
-}
-export interface ResponseCommit {
-  /** reserve 1 */
-  data: Uint8Array;
-  retainHeight: bigint;
-}
-export interface ResponseCommitProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseCommit";
-  value: Uint8Array;
-}
-export interface ResponseCommitAmino {
-  /** reserve 1 */
-  data: Uint8Array;
-  retain_height: string;
-}
-export interface ResponseCommitAminoMsg {
-  type: "/tendermint.abci.ResponseCommit";
-  value: ResponseCommitAmino;
-}
-export interface ResponseCommitSDKType {
-  data: Uint8Array;
-  retain_height: bigint;
-}
-export interface ResponseListSnapshots {
-  snapshots: Snapshot[];
-}
-export interface ResponseListSnapshotsProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseListSnapshots";
-  value: Uint8Array;
-}
-export interface ResponseListSnapshotsAmino {
-  snapshots: SnapshotAmino[];
-}
-export interface ResponseListSnapshotsAminoMsg {
-  type: "/tendermint.abci.ResponseListSnapshots";
-  value: ResponseListSnapshotsAmino;
-}
-export interface ResponseListSnapshotsSDKType {
-  snapshots: SnapshotSDKType[];
-}
-export interface ResponseOfferSnapshot {
-  result: ResponseOfferSnapshot_Result;
-}
-export interface ResponseOfferSnapshotProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseOfferSnapshot";
-  value: Uint8Array;
-}
-export interface ResponseOfferSnapshotAmino {
-  result: ResponseOfferSnapshot_Result;
-}
-export interface ResponseOfferSnapshotAminoMsg {
-  type: "/tendermint.abci.ResponseOfferSnapshot";
-  value: ResponseOfferSnapshotAmino;
-}
-export interface ResponseOfferSnapshotSDKType {
-  result: ResponseOfferSnapshot_Result;
-}
-export interface ResponseLoadSnapshotChunk {
-  chunk: Uint8Array;
-}
-export interface ResponseLoadSnapshotChunkProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseLoadSnapshotChunk";
-  value: Uint8Array;
-}
-export interface ResponseLoadSnapshotChunkAmino {
-  chunk: Uint8Array;
-}
-export interface ResponseLoadSnapshotChunkAminoMsg {
-  type: "/tendermint.abci.ResponseLoadSnapshotChunk";
-  value: ResponseLoadSnapshotChunkAmino;
-}
-export interface ResponseLoadSnapshotChunkSDKType {
-  chunk: Uint8Array;
-}
-export interface ResponseApplySnapshotChunk {
-  result: ResponseApplySnapshotChunk_Result;
-  /** Chunks to refetch and reapply */
-  refetchChunks: number[];
-  /** Chunk senders to reject and ban */
-  rejectSenders: string[];
-}
-export interface ResponseApplySnapshotChunkProtoMsg {
-  typeUrl: "/tendermint.abci.ResponseApplySnapshotChunk";
-  value: Uint8Array;
-}
-export interface ResponseApplySnapshotChunkAmino {
-  result: ResponseApplySnapshotChunk_Result;
-  /** Chunks to refetch and reapply */
-  refetch_chunks: number[];
-  /** Chunk senders to reject and ban */
-  reject_senders: string[];
-}
-export interface ResponseApplySnapshotChunkAminoMsg {
-  type: "/tendermint.abci.ResponseApplySnapshotChunk";
-  value: ResponseApplySnapshotChunkAmino;
-}
-export interface ResponseApplySnapshotChunkSDKType {
-  result: ResponseApplySnapshotChunk_Result;
-  refetch_chunks: number[];
-  reject_senders: string[];
-}
-/**
- * ConsensusParams contains all consensus-relevant parameters
- * that can be adjusted by the abci app
- */
-export interface ConsensusParams {
-  block: BlockParams | undefined;
-  evidence: EvidenceParams | undefined;
-  validator: ValidatorParams | undefined;
-  version: VersionParams | undefined;
-}
-export interface ConsensusParamsProtoMsg {
-  typeUrl: "/tendermint.abci.ConsensusParams";
-  value: Uint8Array;
-}
-/**
- * ConsensusParams contains all consensus-relevant parameters
- * that can be adjusted by the abci app
- */
-export interface ConsensusParamsAmino {
-  block?: BlockParamsAmino | undefined;
-  evidence?: EvidenceParamsAmino | undefined;
-  validator?: ValidatorParamsAmino | undefined;
-  version?: VersionParamsAmino | undefined;
-}
-export interface ConsensusParamsAminoMsg {
-  type: "/tendermint.abci.ConsensusParams";
-  value: ConsensusParamsAmino;
-}
-/**
- * ConsensusParams contains all consensus-relevant parameters
- * that can be adjusted by the abci app
- */
-export interface ConsensusParamsSDKType {
-  block: BlockParamsSDKType | undefined;
-  evidence: EvidenceParamsSDKType | undefined;
-  validator: ValidatorParamsSDKType | undefined;
-  version: VersionParamsSDKType | undefined;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParams {
-  /** Note: must be greater than 0 */
-  maxBytes: bigint;
-  /** Note: must be greater or equal to -1 */
-  maxGas: bigint;
-}
-export interface BlockParamsProtoMsg {
-  typeUrl: "/tendermint.abci.BlockParams";
-  value: Uint8Array;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParamsAmino {
-  /** Note: must be greater than 0 */
-  max_bytes: string;
-  /** Note: must be greater or equal to -1 */
-  max_gas: string;
-}
-export interface BlockParamsAminoMsg {
-  type: "/tendermint.abci.BlockParams";
-  value: BlockParamsAmino;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParamsSDKType {
-  max_bytes: bigint;
-  max_gas: bigint;
-}
-export interface LastCommitInfo {
-  round: number;
-  votes: VoteInfo[];
-}
-export interface LastCommitInfoProtoMsg {
-  typeUrl: "/tendermint.abci.LastCommitInfo";
-  value: Uint8Array;
-}
-export interface LastCommitInfoAmino {
-  round: number;
-  votes: VoteInfoAmino[];
-}
-export interface LastCommitInfoAminoMsg {
-  type: "/tendermint.abci.LastCommitInfo";
-  value: LastCommitInfoAmino;
-}
-export interface LastCommitInfoSDKType {
-  round: number;
-  votes: VoteInfoSDKType[];
-}
-/**
- * Event allows application developers to attach additional information to
- * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
- * Later, transactions may be queried using these events.
- */
-export interface Event {
-  type: string;
-  attributes: EventAttribute[];
-}
-export interface EventProtoMsg {
-  typeUrl: "/tendermint.abci.Event";
-  value: Uint8Array;
-}
-/**
- * Event allows application developers to attach additional information to
- * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
- * Later, transactions may be queried using these events.
- */
-export interface EventAmino {
-  type: string;
-  attributes: EventAttributeAmino[];
-}
-export interface EventAminoMsg {
-  type: "/tendermint.abci.Event";
-  value: EventAmino;
-}
-/**
- * Event allows application developers to attach additional information to
- * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
- * Later, transactions may be queried using these events.
- */
-export interface EventSDKType {
-  type: string;
-  attributes: EventAttributeSDKType[];
-}
-/** EventAttribute is a single key-value pair, associated with an event. */
-export interface EventAttribute {
-  key: Uint8Array;
-  value: Uint8Array;
-  /** nondeterministic */
-  index: boolean;
-}
-export interface EventAttributeProtoMsg {
-  typeUrl: "/tendermint.abci.EventAttribute";
-  value: Uint8Array;
-}
-/** EventAttribute is a single key-value pair, associated with an event. */
-export interface EventAttributeAmino {
-  key: Uint8Array;
-  value: Uint8Array;
-  /** nondeterministic */
-  index: boolean;
-}
-export interface EventAttributeAminoMsg {
-  type: "/tendermint.abci.EventAttribute";
-  value: EventAttributeAmino;
-}
-/** EventAttribute is a single key-value pair, associated with an event. */
-export interface EventAttributeSDKType {
-  key: Uint8Array;
-  value: Uint8Array;
-  index: boolean;
-}
-/**
- * TxResult contains results of executing the transaction.
- * 
- * One usage is indexing transaction results.
- */
-export interface TxResult {
-  height: bigint;
-  index: number;
-  tx: Uint8Array;
-  result: ResponseDeliverTx | undefined;
-}
-export interface TxResultProtoMsg {
-  typeUrl: "/tendermint.abci.TxResult";
-  value: Uint8Array;
-}
-/**
- * TxResult contains results of executing the transaction.
- * 
- * One usage is indexing transaction results.
- */
-export interface TxResultAmino {
-  height: string;
-  index: number;
-  tx: Uint8Array;
-  result?: ResponseDeliverTxAmino | undefined;
-}
-export interface TxResultAminoMsg {
-  type: "/tendermint.abci.TxResult";
-  value: TxResultAmino;
-}
-/**
- * TxResult contains results of executing the transaction.
- * 
- * One usage is indexing transaction results.
- */
-export interface TxResultSDKType {
-  height: bigint;
-  index: number;
-  tx: Uint8Array;
-  result: ResponseDeliverTxSDKType | undefined;
-}
-/** Validator */
-export interface Validator {
-  /**
-   * The first 20 bytes of SHA256(public key)
-   * PubKey pub_key = 2 [(gogoproto.nullable)=false];
-   */
-  address: Uint8Array;
-  /** The voting power */
-  power: bigint;
-}
-export interface ValidatorProtoMsg {
-  typeUrl: "/tendermint.abci.Validator";
-  value: Uint8Array;
-}
-/** Validator */
-export interface ValidatorAmino {
-  /**
-   * The first 20 bytes of SHA256(public key)
-   * PubKey pub_key = 2 [(gogoproto.nullable)=false];
-   */
-  address: Uint8Array;
-  /** The voting power */
-  power: string;
-}
-export interface ValidatorAminoMsg {
-  type: "/tendermint.abci.Validator";
-  value: ValidatorAmino;
-}
-/** Validator */
-export interface ValidatorSDKType {
-  address: Uint8Array;
-  power: bigint;
-}
-/** ValidatorUpdate */
-export interface ValidatorUpdate {
-  pubKey: PublicKey | undefined;
-  power: bigint;
-}
-export interface ValidatorUpdateProtoMsg {
-  typeUrl: "/tendermint.abci.ValidatorUpdate";
-  value: Uint8Array;
-}
-/** ValidatorUpdate */
-export interface ValidatorUpdateAmino {
-  pub_key?: PublicKeyAmino | undefined;
-  power: string;
-}
-export interface ValidatorUpdateAminoMsg {
-  type: "/tendermint.abci.ValidatorUpdate";
-  value: ValidatorUpdateAmino;
-}
-/** ValidatorUpdate */
-export interface ValidatorUpdateSDKType {
-  pub_key: PublicKeySDKType | undefined;
-  power: bigint;
-}
-/** VoteInfo */
-export interface VoteInfo {
-  validator: Validator | undefined;
-  signedLastBlock: boolean;
-}
-export interface VoteInfoProtoMsg {
-  typeUrl: "/tendermint.abci.VoteInfo";
-  value: Uint8Array;
-}
-/** VoteInfo */
-export interface VoteInfoAmino {
-  validator?: ValidatorAmino | undefined;
-  signed_last_block: boolean;
-}
-export interface VoteInfoAminoMsg {
-  type: "/tendermint.abci.VoteInfo";
-  value: VoteInfoAmino;
-}
-/** VoteInfo */
-export interface VoteInfoSDKType {
-  validator: ValidatorSDKType | undefined;
-  signed_last_block: boolean;
-}
-export interface Evidence {
-  type: EvidenceType;
-  /** The offending validator */
-  validator: Validator | undefined;
-  /** The height when the offense occurred */
-  height: bigint;
-  /** The corresponding time where the offense occurred */
-  time: Date | undefined;
-  /**
-   * Total voting power of the validator set in case the ABCI application does
-   * not store historical validators.
-   * https://github.com/tendermint/tendermint/issues/4581
-   */
-  totalVotingPower: bigint;
-}
-export interface EvidenceProtoMsg {
-  typeUrl: "/tendermint.abci.Evidence";
-  value: Uint8Array;
-}
-export interface EvidenceAmino {
-  type: EvidenceType;
-  /** The offending validator */
-  validator?: ValidatorAmino | undefined;
-  /** The height when the offense occurred */
-  height: string;
-  /** The corresponding time where the offense occurred */
-  time?: Date | undefined;
-  /**
-   * Total voting power of the validator set in case the ABCI application does
-   * not store historical validators.
-   * https://github.com/tendermint/tendermint/issues/4581
-   */
-  total_voting_power: string;
-}
-export interface EvidenceAminoMsg {
-  type: "/tendermint.abci.Evidence";
-  value: EvidenceAmino;
-}
-export interface EvidenceSDKType {
-  type: EvidenceType;
-  validator: ValidatorSDKType | undefined;
-  height: bigint;
-  time: Date | undefined;
-  total_voting_power: bigint;
-}
-export interface Snapshot {
-  /** The height at which the snapshot was taken */
-  height: bigint;
-  /** The application-specific snapshot format */
-  format: number;
-  /** Number of chunks in the snapshot */
-  chunks: number;
-  /** Arbitrary snapshot hash, equal only if identical */
-  hash: Uint8Array;
-  /** Arbitrary application metadata */
-  metadata: Uint8Array;
-}
-export interface SnapshotProtoMsg {
-  typeUrl: "/tendermint.abci.Snapshot";
-  value: Uint8Array;
-}
-export interface SnapshotAmino {
-  /** The height at which the snapshot was taken */
-  height: string;
-  /** The application-specific snapshot format */
-  format: number;
-  /** Number of chunks in the snapshot */
-  chunks: number;
-  /** Arbitrary snapshot hash, equal only if identical */
-  hash: Uint8Array;
-  /** Arbitrary application metadata */
-  metadata: Uint8Array;
-}
-export interface SnapshotAminoMsg {
-  type: "/tendermint.abci.Snapshot";
-  value: SnapshotAmino;
-}
-export interface SnapshotSDKType {
-  height: bigint;
-  format: number;
-  chunks: number;
-  hash: Uint8Array;
-  metadata: Uint8Array;
-}
-function createBaseRequest(): Request {
-  return {
-    echo: undefined,
-    flush: undefined,
-    info: undefined,
-    setOption: undefined,
-    initChain: undefined,
-    query: undefined,
-    beginBlock: undefined,
-    checkTx: undefined,
-    deliverTx: undefined,
-    endBlock: undefined,
-    commit: undefined,
-    listSnapshots: undefined,
-    offerSnapshot: undefined,
-    loadSnapshotChunk: undefined,
-    applySnapshotChunk: undefined
-  };
-}
-export const Request = {
-  typeUrl: "/tendermint.abci.Request",
-  encode(message: Request, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.echo !== undefined) {
-      RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.flush !== undefined) {
-      RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.info !== undefined) {
-      RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.setOption !== undefined) {
-      RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.initChain !== undefined) {
-      RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.query !== undefined) {
-      RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.beginBlock !== undefined) {
-      RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.checkTx !== undefined) {
-      RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.deliverTx !== undefined) {
-      RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();
-    }
-    if (message.endBlock !== undefined) {
-      RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();
-    }
-    if (message.commit !== undefined) {
-      RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();
-    }
-    if (message.listSnapshots !== undefined) {
-      RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();
-    }
-    if (message.offerSnapshot !== undefined) {
-      RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();
-    }
-    if (message.loadSnapshotChunk !== undefined) {
-      RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();
-    }
-    if (message.applySnapshotChunk !== undefined) {
-      RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Request {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequest();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.echo = RequestEcho.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.flush = RequestFlush.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.info = RequestInfo.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.setOption = RequestSetOption.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.initChain = RequestInitChain.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.query = RequestQuery.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.beginBlock = RequestBeginBlock.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.checkTx = RequestCheckTx.decode(reader, reader.uint32());
-          break;
-        case 9:
-          message.deliverTx = RequestDeliverTx.decode(reader, reader.uint32());
-          break;
-        case 10:
-          message.endBlock = RequestEndBlock.decode(reader, reader.uint32());
-          break;
-        case 11:
-          message.commit = RequestCommit.decode(reader, reader.uint32());
-          break;
-        case 12:
-          message.listSnapshots = RequestListSnapshots.decode(reader, reader.uint32());
-          break;
-        case 13:
-          message.offerSnapshot = RequestOfferSnapshot.decode(reader, reader.uint32());
-          break;
-        case 14:
-          message.loadSnapshotChunk = RequestLoadSnapshotChunk.decode(reader, reader.uint32());
-          break;
-        case 15:
-          message.applySnapshotChunk = RequestApplySnapshotChunk.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Request {
-    return {
-      echo: isSet(object.echo) ? RequestEcho.fromJSON(object.echo) : undefined,
-      flush: isSet(object.flush) ? RequestFlush.fromJSON(object.flush) : undefined,
-      info: isSet(object.info) ? RequestInfo.fromJSON(object.info) : undefined,
-      setOption: isSet(object.setOption) ? RequestSetOption.fromJSON(object.setOption) : undefined,
-      initChain: isSet(object.initChain) ? RequestInitChain.fromJSON(object.initChain) : undefined,
-      query: isSet(object.query) ? RequestQuery.fromJSON(object.query) : undefined,
-      beginBlock: isSet(object.beginBlock) ? RequestBeginBlock.fromJSON(object.beginBlock) : undefined,
-      checkTx: isSet(object.checkTx) ? RequestCheckTx.fromJSON(object.checkTx) : undefined,
-      deliverTx: isSet(object.deliverTx) ? RequestDeliverTx.fromJSON(object.deliverTx) : undefined,
-      endBlock: isSet(object.endBlock) ? RequestEndBlock.fromJSON(object.endBlock) : undefined,
-      commit: isSet(object.commit) ? RequestCommit.fromJSON(object.commit) : undefined,
-      listSnapshots: isSet(object.listSnapshots) ? RequestListSnapshots.fromJSON(object.listSnapshots) : undefined,
-      offerSnapshot: isSet(object.offerSnapshot) ? RequestOfferSnapshot.fromJSON(object.offerSnapshot) : undefined,
-      loadSnapshotChunk: isSet(object.loadSnapshotChunk) ? RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk) : undefined,
-      applySnapshotChunk: isSet(object.applySnapshotChunk) ? RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk) : undefined
-    };
-  },
-  toJSON(message: Request): unknown {
-    const obj: any = {};
-    message.echo !== undefined && (obj.echo = message.echo ? RequestEcho.toJSON(message.echo) : undefined);
-    message.flush !== undefined && (obj.flush = message.flush ? RequestFlush.toJSON(message.flush) : undefined);
-    message.info !== undefined && (obj.info = message.info ? RequestInfo.toJSON(message.info) : undefined);
-    message.setOption !== undefined && (obj.setOption = message.setOption ? RequestSetOption.toJSON(message.setOption) : undefined);
-    message.initChain !== undefined && (obj.initChain = message.initChain ? RequestInitChain.toJSON(message.initChain) : undefined);
-    message.query !== undefined && (obj.query = message.query ? RequestQuery.toJSON(message.query) : undefined);
-    message.beginBlock !== undefined && (obj.beginBlock = message.beginBlock ? RequestBeginBlock.toJSON(message.beginBlock) : undefined);
-    message.checkTx !== undefined && (obj.checkTx = message.checkTx ? RequestCheckTx.toJSON(message.checkTx) : undefined);
-    message.deliverTx !== undefined && (obj.deliverTx = message.deliverTx ? RequestDeliverTx.toJSON(message.deliverTx) : undefined);
-    message.endBlock !== undefined && (obj.endBlock = message.endBlock ? RequestEndBlock.toJSON(message.endBlock) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? RequestCommit.toJSON(message.commit) : undefined);
-    message.listSnapshots !== undefined && (obj.listSnapshots = message.listSnapshots ? RequestListSnapshots.toJSON(message.listSnapshots) : undefined);
-    message.offerSnapshot !== undefined && (obj.offerSnapshot = message.offerSnapshot ? RequestOfferSnapshot.toJSON(message.offerSnapshot) : undefined);
-    message.loadSnapshotChunk !== undefined && (obj.loadSnapshotChunk = message.loadSnapshotChunk ? RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk) : undefined);
-    message.applySnapshotChunk !== undefined && (obj.applySnapshotChunk = message.applySnapshotChunk ? RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Request>): Request {
-    const message = createBaseRequest();
-    message.echo = object.echo !== undefined && object.echo !== null ? RequestEcho.fromPartial(object.echo) : undefined;
-    message.flush = object.flush !== undefined && object.flush !== null ? RequestFlush.fromPartial(object.flush) : undefined;
-    message.info = object.info !== undefined && object.info !== null ? RequestInfo.fromPartial(object.info) : undefined;
-    message.setOption = object.setOption !== undefined && object.setOption !== null ? RequestSetOption.fromPartial(object.setOption) : undefined;
-    message.initChain = object.initChain !== undefined && object.initChain !== null ? RequestInitChain.fromPartial(object.initChain) : undefined;
-    message.query = object.query !== undefined && object.query !== null ? RequestQuery.fromPartial(object.query) : undefined;
-    message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? RequestBeginBlock.fromPartial(object.beginBlock) : undefined;
-    message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? RequestCheckTx.fromPartial(object.checkTx) : undefined;
-    message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? RequestDeliverTx.fromPartial(object.deliverTx) : undefined;
-    message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? RequestEndBlock.fromPartial(object.endBlock) : undefined;
-    message.commit = object.commit !== undefined && object.commit !== null ? RequestCommit.fromPartial(object.commit) : undefined;
-    message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? RequestListSnapshots.fromPartial(object.listSnapshots) : undefined;
-    message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? RequestOfferSnapshot.fromPartial(object.offerSnapshot) : undefined;
-    message.loadSnapshotChunk = object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null ? RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) : undefined;
-    message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined;
-    return message;
-  },
-  fromSDK(object: RequestSDKType): Request {
-    return {
-      echo: object.echo ? RequestEcho.fromSDK(object.echo) : undefined,
-      flush: object.flush ? RequestFlush.fromSDK(object.flush) : undefined,
-      info: object.info ? RequestInfo.fromSDK(object.info) : undefined,
-      setOption: object.set_option ? RequestSetOption.fromSDK(object.set_option) : undefined,
-      initChain: object.init_chain ? RequestInitChain.fromSDK(object.init_chain) : undefined,
-      query: object.query ? RequestQuery.fromSDK(object.query) : undefined,
-      beginBlock: object.begin_block ? RequestBeginBlock.fromSDK(object.begin_block) : undefined,
-      checkTx: object.check_tx ? RequestCheckTx.fromSDK(object.check_tx) : undefined,
-      deliverTx: object.deliver_tx ? RequestDeliverTx.fromSDK(object.deliver_tx) : undefined,
-      endBlock: object.end_block ? RequestEndBlock.fromSDK(object.end_block) : undefined,
-      commit: object.commit ? RequestCommit.fromSDK(object.commit) : undefined,
-      listSnapshots: object.list_snapshots ? RequestListSnapshots.fromSDK(object.list_snapshots) : undefined,
-      offerSnapshot: object.offer_snapshot ? RequestOfferSnapshot.fromSDK(object.offer_snapshot) : undefined,
-      loadSnapshotChunk: object.load_snapshot_chunk ? RequestLoadSnapshotChunk.fromSDK(object.load_snapshot_chunk) : undefined,
-      applySnapshotChunk: object.apply_snapshot_chunk ? RequestApplySnapshotChunk.fromSDK(object.apply_snapshot_chunk) : undefined
-    };
-  },
-  toSDK(message: Request): RequestSDKType {
-    const obj: any = {};
-    message.echo !== undefined && (obj.echo = message.echo ? RequestEcho.toSDK(message.echo) : undefined);
-    message.flush !== undefined && (obj.flush = message.flush ? RequestFlush.toSDK(message.flush) : undefined);
-    message.info !== undefined && (obj.info = message.info ? RequestInfo.toSDK(message.info) : undefined);
-    message.setOption !== undefined && (obj.set_option = message.setOption ? RequestSetOption.toSDK(message.setOption) : undefined);
-    message.initChain !== undefined && (obj.init_chain = message.initChain ? RequestInitChain.toSDK(message.initChain) : undefined);
-    message.query !== undefined && (obj.query = message.query ? RequestQuery.toSDK(message.query) : undefined);
-    message.beginBlock !== undefined && (obj.begin_block = message.beginBlock ? RequestBeginBlock.toSDK(message.beginBlock) : undefined);
-    message.checkTx !== undefined && (obj.check_tx = message.checkTx ? RequestCheckTx.toSDK(message.checkTx) : undefined);
-    message.deliverTx !== undefined && (obj.deliver_tx = message.deliverTx ? RequestDeliverTx.toSDK(message.deliverTx) : undefined);
-    message.endBlock !== undefined && (obj.end_block = message.endBlock ? RequestEndBlock.toSDK(message.endBlock) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? RequestCommit.toSDK(message.commit) : undefined);
-    message.listSnapshots !== undefined && (obj.list_snapshots = message.listSnapshots ? RequestListSnapshots.toSDK(message.listSnapshots) : undefined);
-    message.offerSnapshot !== undefined && (obj.offer_snapshot = message.offerSnapshot ? RequestOfferSnapshot.toSDK(message.offerSnapshot) : undefined);
-    message.loadSnapshotChunk !== undefined && (obj.load_snapshot_chunk = message.loadSnapshotChunk ? RequestLoadSnapshotChunk.toSDK(message.loadSnapshotChunk) : undefined);
-    message.applySnapshotChunk !== undefined && (obj.apply_snapshot_chunk = message.applySnapshotChunk ? RequestApplySnapshotChunk.toSDK(message.applySnapshotChunk) : undefined);
-    return obj;
-  },
-  fromAmino(object: RequestAmino): Request {
-    return {
-      echo: object?.echo ? RequestEcho.fromAmino(object.echo) : undefined,
-      flush: object?.flush ? RequestFlush.fromAmino(object.flush) : undefined,
-      info: object?.info ? RequestInfo.fromAmino(object.info) : undefined,
-      setOption: object?.set_option ? RequestSetOption.fromAmino(object.set_option) : undefined,
-      initChain: object?.init_chain ? RequestInitChain.fromAmino(object.init_chain) : undefined,
-      query: object?.query ? RequestQuery.fromAmino(object.query) : undefined,
-      beginBlock: object?.begin_block ? RequestBeginBlock.fromAmino(object.begin_block) : undefined,
-      checkTx: object?.check_tx ? RequestCheckTx.fromAmino(object.check_tx) : undefined,
-      deliverTx: object?.deliver_tx ? RequestDeliverTx.fromAmino(object.deliver_tx) : undefined,
-      endBlock: object?.end_block ? RequestEndBlock.fromAmino(object.end_block) : undefined,
-      commit: object?.commit ? RequestCommit.fromAmino(object.commit) : undefined,
-      listSnapshots: object?.list_snapshots ? RequestListSnapshots.fromAmino(object.list_snapshots) : undefined,
-      offerSnapshot: object?.offer_snapshot ? RequestOfferSnapshot.fromAmino(object.offer_snapshot) : undefined,
-      loadSnapshotChunk: object?.load_snapshot_chunk ? RequestLoadSnapshotChunk.fromAmino(object.load_snapshot_chunk) : undefined,
-      applySnapshotChunk: object?.apply_snapshot_chunk ? RequestApplySnapshotChunk.fromAmino(object.apply_snapshot_chunk) : undefined
-    };
-  },
-  toAmino(message: Request): RequestAmino {
-    const obj: any = {};
-    obj.echo = message.echo ? RequestEcho.toAmino(message.echo) : undefined;
-    obj.flush = message.flush ? RequestFlush.toAmino(message.flush) : undefined;
-    obj.info = message.info ? RequestInfo.toAmino(message.info) : undefined;
-    obj.set_option = message.setOption ? RequestSetOption.toAmino(message.setOption) : undefined;
-    obj.init_chain = message.initChain ? RequestInitChain.toAmino(message.initChain) : undefined;
-    obj.query = message.query ? RequestQuery.toAmino(message.query) : undefined;
-    obj.begin_block = message.beginBlock ? RequestBeginBlock.toAmino(message.beginBlock) : undefined;
-    obj.check_tx = message.checkTx ? RequestCheckTx.toAmino(message.checkTx) : undefined;
-    obj.deliver_tx = message.deliverTx ? RequestDeliverTx.toAmino(message.deliverTx) : undefined;
-    obj.end_block = message.endBlock ? RequestEndBlock.toAmino(message.endBlock) : undefined;
-    obj.commit = message.commit ? RequestCommit.toAmino(message.commit) : undefined;
-    obj.list_snapshots = message.listSnapshots ? RequestListSnapshots.toAmino(message.listSnapshots) : undefined;
-    obj.offer_snapshot = message.offerSnapshot ? RequestOfferSnapshot.toAmino(message.offerSnapshot) : undefined;
-    obj.load_snapshot_chunk = message.loadSnapshotChunk ? RequestLoadSnapshotChunk.toAmino(message.loadSnapshotChunk) : undefined;
-    obj.apply_snapshot_chunk = message.applySnapshotChunk ? RequestApplySnapshotChunk.toAmino(message.applySnapshotChunk) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RequestAminoMsg): Request {
-    return Request.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestProtoMsg): Request {
-    return Request.decode(message.value);
-  },
-  toProto(message: Request): Uint8Array {
-    return Request.encode(message).finish();
-  },
-  toProtoMsg(message: Request): RequestProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Request",
-      value: Request.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestEcho(): RequestEcho {
-  return {
-    message: ""
-  };
-}
-export const RequestEcho = {
-  typeUrl: "/tendermint.abci.RequestEcho",
-  encode(message: RequestEcho, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.message !== "") {
-      writer.uint32(10).string(message.message);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestEcho {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestEcho();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.message = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestEcho {
-    return {
-      message: isSet(object.message) ? String(object.message) : ""
-    };
-  },
-  toJSON(message: RequestEcho): unknown {
-    const obj: any = {};
-    message.message !== undefined && (obj.message = message.message);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestEcho>): RequestEcho {
-    const message = createBaseRequestEcho();
-    message.message = object.message ?? "";
-    return message;
-  },
-  fromSDK(object: RequestEchoSDKType): RequestEcho {
-    return {
-      message: object?.message
-    };
-  },
-  toSDK(message: RequestEcho): RequestEchoSDKType {
-    const obj: any = {};
-    obj.message = message.message;
-    return obj;
-  },
-  fromAmino(object: RequestEchoAmino): RequestEcho {
-    return {
-      message: object.message
-    };
-  },
-  toAmino(message: RequestEcho): RequestEchoAmino {
-    const obj: any = {};
-    obj.message = message.message;
-    return obj;
-  },
-  fromAminoMsg(object: RequestEchoAminoMsg): RequestEcho {
-    return RequestEcho.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestEchoProtoMsg): RequestEcho {
-    return RequestEcho.decode(message.value);
-  },
-  toProto(message: RequestEcho): Uint8Array {
-    return RequestEcho.encode(message).finish();
-  },
-  toProtoMsg(message: RequestEcho): RequestEchoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestEcho",
-      value: RequestEcho.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestFlush(): RequestFlush {
-  return {};
-}
-export const RequestFlush = {
-  typeUrl: "/tendermint.abci.RequestFlush",
-  encode(_: RequestFlush, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestFlush {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestFlush();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): RequestFlush {
-    return {};
-  },
-  toJSON(_: RequestFlush): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<RequestFlush>): RequestFlush {
-    const message = createBaseRequestFlush();
-    return message;
-  },
-  fromSDK(_: RequestFlushSDKType): RequestFlush {
-    return {};
-  },
-  toSDK(_: RequestFlush): RequestFlushSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: RequestFlushAmino): RequestFlush {
-    return {};
-  },
-  toAmino(_: RequestFlush): RequestFlushAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: RequestFlushAminoMsg): RequestFlush {
-    return RequestFlush.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestFlushProtoMsg): RequestFlush {
-    return RequestFlush.decode(message.value);
-  },
-  toProto(message: RequestFlush): Uint8Array {
-    return RequestFlush.encode(message).finish();
-  },
-  toProtoMsg(message: RequestFlush): RequestFlushProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestFlush",
-      value: RequestFlush.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestInfo(): RequestInfo {
-  return {
-    version: "",
-    blockVersion: BigInt(0),
-    p2pVersion: BigInt(0)
-  };
-}
-export const RequestInfo = {
-  typeUrl: "/tendermint.abci.RequestInfo",
-  encode(message: RequestInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.version !== "") {
-      writer.uint32(10).string(message.version);
-    }
-    if (message.blockVersion !== BigInt(0)) {
-      writer.uint32(16).uint64(message.blockVersion);
-    }
-    if (message.p2pVersion !== BigInt(0)) {
-      writer.uint32(24).uint64(message.p2pVersion);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.version = reader.string();
-          break;
-        case 2:
-          message.blockVersion = reader.uint64();
-          break;
-        case 3:
-          message.p2pVersion = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestInfo {
-    return {
-      version: isSet(object.version) ? String(object.version) : "",
-      blockVersion: isSet(object.blockVersion) ? BigInt(object.blockVersion.toString()) : BigInt(0),
-      p2pVersion: isSet(object.p2pVersion) ? BigInt(object.p2pVersion.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: RequestInfo): unknown {
-    const obj: any = {};
-    message.version !== undefined && (obj.version = message.version);
-    message.blockVersion !== undefined && (obj.blockVersion = (message.blockVersion || BigInt(0)).toString());
-    message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestInfo>): RequestInfo {
-    const message = createBaseRequestInfo();
-    message.version = object.version ?? "";
-    message.blockVersion = object.blockVersion !== undefined && object.blockVersion !== null ? BigInt(object.blockVersion.toString()) : BigInt(0);
-    message.p2pVersion = object.p2pVersion !== undefined && object.p2pVersion !== null ? BigInt(object.p2pVersion.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: RequestInfoSDKType): RequestInfo {
-    return {
-      version: object?.version,
-      blockVersion: object?.block_version,
-      p2pVersion: object?.p2p_version
-    };
-  },
-  toSDK(message: RequestInfo): RequestInfoSDKType {
-    const obj: any = {};
-    obj.version = message.version;
-    obj.block_version = message.blockVersion;
-    obj.p2p_version = message.p2pVersion;
-    return obj;
-  },
-  fromAmino(object: RequestInfoAmino): RequestInfo {
-    return {
-      version: object.version,
-      blockVersion: BigInt(object.block_version),
-      p2pVersion: BigInt(object.p2p_version)
-    };
-  },
-  toAmino(message: RequestInfo): RequestInfoAmino {
-    const obj: any = {};
-    obj.version = message.version;
-    obj.block_version = message.blockVersion ? message.blockVersion.toString() : undefined;
-    obj.p2p_version = message.p2pVersion ? message.p2pVersion.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RequestInfoAminoMsg): RequestInfo {
-    return RequestInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestInfoProtoMsg): RequestInfo {
-    return RequestInfo.decode(message.value);
-  },
-  toProto(message: RequestInfo): Uint8Array {
-    return RequestInfo.encode(message).finish();
-  },
-  toProtoMsg(message: RequestInfo): RequestInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestInfo",
-      value: RequestInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestSetOption(): RequestSetOption {
-  return {
-    key: "",
-    value: ""
-  };
-}
-export const RequestSetOption = {
-  typeUrl: "/tendermint.abci.RequestSetOption",
-  encode(message: RequestSetOption, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key !== "") {
-      writer.uint32(10).string(message.key);
-    }
-    if (message.value !== "") {
-      writer.uint32(18).string(message.value);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestSetOption {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestSetOption();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.string();
-          break;
-        case 2:
-          message.value = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestSetOption {
-    return {
-      key: isSet(object.key) ? String(object.key) : "",
-      value: isSet(object.value) ? String(object.value) : ""
-    };
-  },
-  toJSON(message: RequestSetOption): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = message.key);
-    message.value !== undefined && (obj.value = message.value);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestSetOption>): RequestSetOption {
-    const message = createBaseRequestSetOption();
-    message.key = object.key ?? "";
-    message.value = object.value ?? "";
-    return message;
-  },
-  fromSDK(object: RequestSetOptionSDKType): RequestSetOption {
-    return {
-      key: object?.key,
-      value: object?.value
-    };
-  },
-  toSDK(message: RequestSetOption): RequestSetOptionSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAmino(object: RequestSetOptionAmino): RequestSetOption {
-    return {
-      key: object.key,
-      value: object.value
-    };
-  },
-  toAmino(message: RequestSetOption): RequestSetOptionAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    return obj;
-  },
-  fromAminoMsg(object: RequestSetOptionAminoMsg): RequestSetOption {
-    return RequestSetOption.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestSetOptionProtoMsg): RequestSetOption {
-    return RequestSetOption.decode(message.value);
-  },
-  toProto(message: RequestSetOption): Uint8Array {
-    return RequestSetOption.encode(message).finish();
-  },
-  toProtoMsg(message: RequestSetOption): RequestSetOptionProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestSetOption",
-      value: RequestSetOption.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestInitChain(): RequestInitChain {
-  return {
-    time: new Date(),
-    chainId: "",
-    consensusParams: ConsensusParams.fromPartial({}),
-    validators: [],
-    appStateBytes: new Uint8Array(),
-    initialHeight: BigInt(0)
-  };
-}
-export const RequestInitChain = {
-  typeUrl: "/tendermint.abci.RequestInitChain",
-  encode(message: RequestInitChain, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(10).fork()).ldelim();
-    }
-    if (message.chainId !== "") {
-      writer.uint32(18).string(message.chainId);
-    }
-    if (message.consensusParams !== undefined) {
-      ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.validators) {
-      ValidatorUpdate.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.appStateBytes.length !== 0) {
-      writer.uint32(42).bytes(message.appStateBytes);
-    }
-    if (message.initialHeight !== BigInt(0)) {
-      writer.uint32(48).int64(message.initialHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestInitChain {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestInitChain();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.chainId = reader.string();
-          break;
-        case 3:
-          message.consensusParams = ConsensusParams.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.validators.push(ValidatorUpdate.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.appStateBytes = reader.bytes();
-          break;
-        case 6:
-          message.initialHeight = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestInitChain {
-    return {
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      consensusParams: isSet(object.consensusParams) ? ConsensusParams.fromJSON(object.consensusParams) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromJSON(e)) : [],
-      appStateBytes: isSet(object.appStateBytes) ? bytesFromBase64(object.appStateBytes) : new Uint8Array(),
-      initialHeight: isSet(object.initialHeight) ? BigInt(object.initialHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: RequestInitChain): unknown {
-    const obj: any = {};
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.consensusParams !== undefined && (obj.consensusParams = message.consensusParams ? ConsensusParams.toJSON(message.consensusParams) : undefined);
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.appStateBytes !== undefined && (obj.appStateBytes = base64FromBytes(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));
-    message.initialHeight !== undefined && (obj.initialHeight = (message.initialHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestInitChain>): RequestInitChain {
-    const message = createBaseRequestInitChain();
-    message.time = object.time ?? undefined;
-    message.chainId = object.chainId ?? "";
-    message.consensusParams = object.consensusParams !== undefined && object.consensusParams !== null ? ConsensusParams.fromPartial(object.consensusParams) : undefined;
-    message.validators = object.validators?.map(e => ValidatorUpdate.fromPartial(e)) || [];
-    message.appStateBytes = object.appStateBytes ?? new Uint8Array();
-    message.initialHeight = object.initialHeight !== undefined && object.initialHeight !== null ? BigInt(object.initialHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: RequestInitChainSDKType): RequestInitChain {
-    return {
-      time: object.time ?? undefined,
-      chainId: object?.chain_id,
-      consensusParams: object.consensus_params ? ConsensusParams.fromSDK(object.consensus_params) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromSDK(e)) : [],
-      appStateBytes: object?.app_state_bytes,
-      initialHeight: object?.initial_height
-    };
-  },
-  toSDK(message: RequestInitChain): RequestInitChainSDKType {
-    const obj: any = {};
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    obj.chain_id = message.chainId;
-    message.consensusParams !== undefined && (obj.consensus_params = message.consensusParams ? ConsensusParams.toSDK(message.consensusParams) : undefined);
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.app_state_bytes = message.appStateBytes;
-    obj.initial_height = message.initialHeight;
-    return obj;
-  },
-  fromAmino(object: RequestInitChainAmino): RequestInitChain {
-    return {
-      time: object.time,
-      chainId: object.chain_id,
-      consensusParams: object?.consensus_params ? ConsensusParams.fromAmino(object.consensus_params) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromAmino(e)) : [],
-      appStateBytes: object.app_state_bytes,
-      initialHeight: BigInt(object.initial_height)
-    };
-  },
-  toAmino(message: RequestInitChain): RequestInitChainAmino {
-    const obj: any = {};
-    obj.time = message.time;
-    obj.chain_id = message.chainId;
-    obj.consensus_params = message.consensusParams ? ConsensusParams.toAmino(message.consensusParams) : undefined;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.app_state_bytes = message.appStateBytes;
-    obj.initial_height = message.initialHeight ? message.initialHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RequestInitChainAminoMsg): RequestInitChain {
-    return RequestInitChain.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestInitChainProtoMsg): RequestInitChain {
-    return RequestInitChain.decode(message.value);
-  },
-  toProto(message: RequestInitChain): Uint8Array {
-    return RequestInitChain.encode(message).finish();
-  },
-  toProtoMsg(message: RequestInitChain): RequestInitChainProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestInitChain",
-      value: RequestInitChain.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestQuery(): RequestQuery {
-  return {
-    data: new Uint8Array(),
-    path: "",
-    height: BigInt(0),
-    prove: false
-  };
-}
-export const RequestQuery = {
-  typeUrl: "/tendermint.abci.RequestQuery",
-  encode(message: RequestQuery, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(10).bytes(message.data);
-    }
-    if (message.path !== "") {
-      writer.uint32(18).string(message.path);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(24).int64(message.height);
-    }
-    if (message.prove === true) {
-      writer.uint32(32).bool(message.prove);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestQuery {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestQuery();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.bytes();
-          break;
-        case 2:
-          message.path = reader.string();
-          break;
-        case 3:
-          message.height = reader.int64();
-          break;
-        case 4:
-          message.prove = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestQuery {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      path: isSet(object.path) ? String(object.path) : "",
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      prove: isSet(object.prove) ? Boolean(object.prove) : false
-    };
-  },
-  toJSON(message: RequestQuery): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.path !== undefined && (obj.path = message.path);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.prove !== undefined && (obj.prove = message.prove);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestQuery>): RequestQuery {
-    const message = createBaseRequestQuery();
-    message.data = object.data ?? new Uint8Array();
-    message.path = object.path ?? "";
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.prove = object.prove ?? false;
-    return message;
-  },
-  fromSDK(object: RequestQuerySDKType): RequestQuery {
-    return {
-      data: object?.data,
-      path: object?.path,
-      height: object?.height,
-      prove: object?.prove
-    };
-  },
-  toSDK(message: RequestQuery): RequestQuerySDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.path = message.path;
-    obj.height = message.height;
-    obj.prove = message.prove;
-    return obj;
-  },
-  fromAmino(object: RequestQueryAmino): RequestQuery {
-    return {
-      data: object.data,
-      path: object.path,
-      height: BigInt(object.height),
-      prove: object.prove
-    };
-  },
-  toAmino(message: RequestQuery): RequestQueryAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.path = message.path;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.prove = message.prove;
-    return obj;
-  },
-  fromAminoMsg(object: RequestQueryAminoMsg): RequestQuery {
-    return RequestQuery.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestQueryProtoMsg): RequestQuery {
-    return RequestQuery.decode(message.value);
-  },
-  toProto(message: RequestQuery): Uint8Array {
-    return RequestQuery.encode(message).finish();
-  },
-  toProtoMsg(message: RequestQuery): RequestQueryProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestQuery",
-      value: RequestQuery.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestBeginBlock(): RequestBeginBlock {
-  return {
-    hash: new Uint8Array(),
-    header: Header.fromPartial({}),
-    lastCommitInfo: LastCommitInfo.fromPartial({}),
-    byzantineValidators: []
-  };
-}
-export const RequestBeginBlock = {
-  typeUrl: "/tendermint.abci.RequestBeginBlock",
-  encode(message: RequestBeginBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash.length !== 0) {
-      writer.uint32(10).bytes(message.hash);
-    }
-    if (message.header !== undefined) {
-      Header.encode(message.header, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.lastCommitInfo !== undefined) {
-      LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.byzantineValidators) {
-      Evidence.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestBeginBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestBeginBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = reader.bytes();
-          break;
-        case 2:
-          message.header = Header.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.lastCommitInfo = LastCommitInfo.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.byzantineValidators.push(Evidence.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestBeginBlock {
-    return {
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(),
-      header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,
-      lastCommitInfo: isSet(object.lastCommitInfo) ? LastCommitInfo.fromJSON(object.lastCommitInfo) : undefined,
-      byzantineValidators: Array.isArray(object?.byzantineValidators) ? object.byzantineValidators.map((e: any) => Evidence.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: RequestBeginBlock): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    message.header !== undefined && (obj.header = message.header ? Header.toJSON(message.header) : undefined);
-    message.lastCommitInfo !== undefined && (obj.lastCommitInfo = message.lastCommitInfo ? LastCommitInfo.toJSON(message.lastCommitInfo) : undefined);
-    if (message.byzantineValidators) {
-      obj.byzantineValidators = message.byzantineValidators.map(e => e ? Evidence.toJSON(e) : undefined);
-    } else {
-      obj.byzantineValidators = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestBeginBlock>): RequestBeginBlock {
-    const message = createBaseRequestBeginBlock();
-    message.hash = object.hash ?? new Uint8Array();
-    message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined;
-    message.lastCommitInfo = object.lastCommitInfo !== undefined && object.lastCommitInfo !== null ? LastCommitInfo.fromPartial(object.lastCommitInfo) : undefined;
-    message.byzantineValidators = object.byzantineValidators?.map(e => Evidence.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: RequestBeginBlockSDKType): RequestBeginBlock {
-    return {
-      hash: object?.hash,
-      header: object.header ? Header.fromSDK(object.header) : undefined,
-      lastCommitInfo: object.last_commit_info ? LastCommitInfo.fromSDK(object.last_commit_info) : undefined,
-      byzantineValidators: Array.isArray(object?.byzantine_validators) ? object.byzantine_validators.map((e: any) => Evidence.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: RequestBeginBlock): RequestBeginBlockSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    message.header !== undefined && (obj.header = message.header ? Header.toSDK(message.header) : undefined);
-    message.lastCommitInfo !== undefined && (obj.last_commit_info = message.lastCommitInfo ? LastCommitInfo.toSDK(message.lastCommitInfo) : undefined);
-    if (message.byzantineValidators) {
-      obj.byzantine_validators = message.byzantineValidators.map(e => e ? Evidence.toSDK(e) : undefined);
-    } else {
-      obj.byzantine_validators = [];
-    }
-    return obj;
-  },
-  fromAmino(object: RequestBeginBlockAmino): RequestBeginBlock {
-    return {
-      hash: object.hash,
-      header: object?.header ? Header.fromAmino(object.header) : undefined,
-      lastCommitInfo: object?.last_commit_info ? LastCommitInfo.fromAmino(object.last_commit_info) : undefined,
-      byzantineValidators: Array.isArray(object?.byzantine_validators) ? object.byzantine_validators.map((e: any) => Evidence.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: RequestBeginBlock): RequestBeginBlockAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    obj.header = message.header ? Header.toAmino(message.header) : undefined;
-    obj.last_commit_info = message.lastCommitInfo ? LastCommitInfo.toAmino(message.lastCommitInfo) : undefined;
-    if (message.byzantineValidators) {
-      obj.byzantine_validators = message.byzantineValidators.map(e => e ? Evidence.toAmino(e) : undefined);
-    } else {
-      obj.byzantine_validators = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: RequestBeginBlockAminoMsg): RequestBeginBlock {
-    return RequestBeginBlock.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestBeginBlockProtoMsg): RequestBeginBlock {
-    return RequestBeginBlock.decode(message.value);
-  },
-  toProto(message: RequestBeginBlock): Uint8Array {
-    return RequestBeginBlock.encode(message).finish();
-  },
-  toProtoMsg(message: RequestBeginBlock): RequestBeginBlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestBeginBlock",
-      value: RequestBeginBlock.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestCheckTx(): RequestCheckTx {
-  return {
-    tx: new Uint8Array(),
-    type: 0
-  };
-}
-export const RequestCheckTx = {
-  typeUrl: "/tendermint.abci.RequestCheckTx",
-  encode(message: RequestCheckTx, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tx.length !== 0) {
-      writer.uint32(10).bytes(message.tx);
-    }
-    if (message.type !== 0) {
-      writer.uint32(16).int32(message.type);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestCheckTx {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestCheckTx();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tx = reader.bytes();
-          break;
-        case 2:
-          message.type = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestCheckTx {
-    return {
-      tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array(),
-      type: isSet(object.type) ? checkTxTypeFromJSON(object.type) : -1
-    };
-  },
-  toJSON(message: RequestCheckTx): unknown {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));
-    message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestCheckTx>): RequestCheckTx {
-    const message = createBaseRequestCheckTx();
-    message.tx = object.tx ?? new Uint8Array();
-    message.type = object.type ?? 0;
-    return message;
-  },
-  fromSDK(object: RequestCheckTxSDKType): RequestCheckTx {
-    return {
-      tx: object?.tx,
-      type: isSet(object.type) ? checkTxTypeFromJSON(object.type) : -1
-    };
-  },
-  toSDK(message: RequestCheckTx): RequestCheckTxSDKType {
-    const obj: any = {};
-    obj.tx = message.tx;
-    message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));
-    return obj;
-  },
-  fromAmino(object: RequestCheckTxAmino): RequestCheckTx {
-    return {
-      tx: object.tx,
-      type: isSet(object.type) ? checkTxTypeFromJSON(object.type) : -1
-    };
-  },
-  toAmino(message: RequestCheckTx): RequestCheckTxAmino {
-    const obj: any = {};
-    obj.tx = message.tx;
-    obj.type = message.type;
-    return obj;
-  },
-  fromAminoMsg(object: RequestCheckTxAminoMsg): RequestCheckTx {
-    return RequestCheckTx.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestCheckTxProtoMsg): RequestCheckTx {
-    return RequestCheckTx.decode(message.value);
-  },
-  toProto(message: RequestCheckTx): Uint8Array {
-    return RequestCheckTx.encode(message).finish();
-  },
-  toProtoMsg(message: RequestCheckTx): RequestCheckTxProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestCheckTx",
-      value: RequestCheckTx.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestDeliverTx(): RequestDeliverTx {
-  return {
-    tx: new Uint8Array()
-  };
-}
-export const RequestDeliverTx = {
-  typeUrl: "/tendermint.abci.RequestDeliverTx",
-  encode(message: RequestDeliverTx, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.tx.length !== 0) {
-      writer.uint32(10).bytes(message.tx);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestDeliverTx {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestDeliverTx();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.tx = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestDeliverTx {
-    return {
-      tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array()
-    };
-  },
-  toJSON(message: RequestDeliverTx): unknown {
-    const obj: any = {};
-    message.tx !== undefined && (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestDeliverTx>): RequestDeliverTx {
-    const message = createBaseRequestDeliverTx();
-    message.tx = object.tx ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: RequestDeliverTxSDKType): RequestDeliverTx {
-    return {
-      tx: object?.tx
-    };
-  },
-  toSDK(message: RequestDeliverTx): RequestDeliverTxSDKType {
-    const obj: any = {};
-    obj.tx = message.tx;
-    return obj;
-  },
-  fromAmino(object: RequestDeliverTxAmino): RequestDeliverTx {
-    return {
-      tx: object.tx
-    };
-  },
-  toAmino(message: RequestDeliverTx): RequestDeliverTxAmino {
-    const obj: any = {};
-    obj.tx = message.tx;
-    return obj;
-  },
-  fromAminoMsg(object: RequestDeliverTxAminoMsg): RequestDeliverTx {
-    return RequestDeliverTx.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestDeliverTxProtoMsg): RequestDeliverTx {
-    return RequestDeliverTx.decode(message.value);
-  },
-  toProto(message: RequestDeliverTx): Uint8Array {
-    return RequestDeliverTx.encode(message).finish();
-  },
-  toProtoMsg(message: RequestDeliverTx): RequestDeliverTxProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestDeliverTx",
-      value: RequestDeliverTx.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestEndBlock(): RequestEndBlock {
-  return {
-    height: BigInt(0)
-  };
-}
-export const RequestEndBlock = {
-  typeUrl: "/tendermint.abci.RequestEndBlock",
-  encode(message: RequestEndBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestEndBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestEndBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestEndBlock {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: RequestEndBlock): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestEndBlock>): RequestEndBlock {
-    const message = createBaseRequestEndBlock();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: RequestEndBlockSDKType): RequestEndBlock {
-    return {
-      height: object?.height
-    };
-  },
-  toSDK(message: RequestEndBlock): RequestEndBlockSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    return obj;
-  },
-  fromAmino(object: RequestEndBlockAmino): RequestEndBlock {
-    return {
-      height: BigInt(object.height)
-    };
-  },
-  toAmino(message: RequestEndBlock): RequestEndBlockAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: RequestEndBlockAminoMsg): RequestEndBlock {
-    return RequestEndBlock.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestEndBlockProtoMsg): RequestEndBlock {
-    return RequestEndBlock.decode(message.value);
-  },
-  toProto(message: RequestEndBlock): Uint8Array {
-    return RequestEndBlock.encode(message).finish();
-  },
-  toProtoMsg(message: RequestEndBlock): RequestEndBlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestEndBlock",
-      value: RequestEndBlock.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestCommit(): RequestCommit {
-  return {};
-}
-export const RequestCommit = {
-  typeUrl: "/tendermint.abci.RequestCommit",
-  encode(_: RequestCommit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestCommit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestCommit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): RequestCommit {
-    return {};
-  },
-  toJSON(_: RequestCommit): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<RequestCommit>): RequestCommit {
-    const message = createBaseRequestCommit();
-    return message;
-  },
-  fromSDK(_: RequestCommitSDKType): RequestCommit {
-    return {};
-  },
-  toSDK(_: RequestCommit): RequestCommitSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: RequestCommitAmino): RequestCommit {
-    return {};
-  },
-  toAmino(_: RequestCommit): RequestCommitAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: RequestCommitAminoMsg): RequestCommit {
-    return RequestCommit.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestCommitProtoMsg): RequestCommit {
-    return RequestCommit.decode(message.value);
-  },
-  toProto(message: RequestCommit): Uint8Array {
-    return RequestCommit.encode(message).finish();
-  },
-  toProtoMsg(message: RequestCommit): RequestCommitProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestCommit",
-      value: RequestCommit.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestListSnapshots(): RequestListSnapshots {
-  return {};
-}
-export const RequestListSnapshots = {
-  typeUrl: "/tendermint.abci.RequestListSnapshots",
-  encode(_: RequestListSnapshots, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestListSnapshots {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestListSnapshots();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): RequestListSnapshots {
-    return {};
-  },
-  toJSON(_: RequestListSnapshots): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<RequestListSnapshots>): RequestListSnapshots {
-    const message = createBaseRequestListSnapshots();
-    return message;
-  },
-  fromSDK(_: RequestListSnapshotsSDKType): RequestListSnapshots {
-    return {};
-  },
-  toSDK(_: RequestListSnapshots): RequestListSnapshotsSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: RequestListSnapshotsAmino): RequestListSnapshots {
-    return {};
-  },
-  toAmino(_: RequestListSnapshots): RequestListSnapshotsAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: RequestListSnapshotsAminoMsg): RequestListSnapshots {
-    return RequestListSnapshots.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestListSnapshotsProtoMsg): RequestListSnapshots {
-    return RequestListSnapshots.decode(message.value);
-  },
-  toProto(message: RequestListSnapshots): Uint8Array {
-    return RequestListSnapshots.encode(message).finish();
-  },
-  toProtoMsg(message: RequestListSnapshots): RequestListSnapshotsProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestListSnapshots",
-      value: RequestListSnapshots.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestOfferSnapshot(): RequestOfferSnapshot {
-  return {
-    snapshot: Snapshot.fromPartial({}),
-    appHash: new Uint8Array()
-  };
-}
-export const RequestOfferSnapshot = {
-  typeUrl: "/tendermint.abci.RequestOfferSnapshot",
-  encode(message: RequestOfferSnapshot, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.snapshot !== undefined) {
-      Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.appHash.length !== 0) {
-      writer.uint32(18).bytes(message.appHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestOfferSnapshot {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestOfferSnapshot();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.snapshot = Snapshot.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.appHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestOfferSnapshot {
-    return {
-      snapshot: isSet(object.snapshot) ? Snapshot.fromJSON(object.snapshot) : undefined,
-      appHash: isSet(object.appHash) ? bytesFromBase64(object.appHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: RequestOfferSnapshot): unknown {
-    const obj: any = {};
-    message.snapshot !== undefined && (obj.snapshot = message.snapshot ? Snapshot.toJSON(message.snapshot) : undefined);
-    message.appHash !== undefined && (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestOfferSnapshot>): RequestOfferSnapshot {
-    const message = createBaseRequestOfferSnapshot();
-    message.snapshot = object.snapshot !== undefined && object.snapshot !== null ? Snapshot.fromPartial(object.snapshot) : undefined;
-    message.appHash = object.appHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: RequestOfferSnapshotSDKType): RequestOfferSnapshot {
-    return {
-      snapshot: object.snapshot ? Snapshot.fromSDK(object.snapshot) : undefined,
-      appHash: object?.app_hash
-    };
-  },
-  toSDK(message: RequestOfferSnapshot): RequestOfferSnapshotSDKType {
-    const obj: any = {};
-    message.snapshot !== undefined && (obj.snapshot = message.snapshot ? Snapshot.toSDK(message.snapshot) : undefined);
-    obj.app_hash = message.appHash;
-    return obj;
-  },
-  fromAmino(object: RequestOfferSnapshotAmino): RequestOfferSnapshot {
-    return {
-      snapshot: object?.snapshot ? Snapshot.fromAmino(object.snapshot) : undefined,
-      appHash: object.app_hash
-    };
-  },
-  toAmino(message: RequestOfferSnapshot): RequestOfferSnapshotAmino {
-    const obj: any = {};
-    obj.snapshot = message.snapshot ? Snapshot.toAmino(message.snapshot) : undefined;
-    obj.app_hash = message.appHash;
-    return obj;
-  },
-  fromAminoMsg(object: RequestOfferSnapshotAminoMsg): RequestOfferSnapshot {
-    return RequestOfferSnapshot.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestOfferSnapshotProtoMsg): RequestOfferSnapshot {
-    return RequestOfferSnapshot.decode(message.value);
-  },
-  toProto(message: RequestOfferSnapshot): Uint8Array {
-    return RequestOfferSnapshot.encode(message).finish();
-  },
-  toProtoMsg(message: RequestOfferSnapshot): RequestOfferSnapshotProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestOfferSnapshot",
-      value: RequestOfferSnapshot.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestLoadSnapshotChunk(): RequestLoadSnapshotChunk {
-  return {
-    height: BigInt(0),
-    format: 0,
-    chunk: 0
-  };
-}
-export const RequestLoadSnapshotChunk = {
-  typeUrl: "/tendermint.abci.RequestLoadSnapshotChunk",
-  encode(message: RequestLoadSnapshotChunk, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).uint64(message.height);
-    }
-    if (message.format !== 0) {
-      writer.uint32(16).uint32(message.format);
-    }
-    if (message.chunk !== 0) {
-      writer.uint32(24).uint32(message.chunk);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestLoadSnapshotChunk {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestLoadSnapshotChunk();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.uint64();
-          break;
-        case 2:
-          message.format = reader.uint32();
-          break;
-        case 3:
-          message.chunk = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestLoadSnapshotChunk {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      format: isSet(object.format) ? Number(object.format) : 0,
-      chunk: isSet(object.chunk) ? Number(object.chunk) : 0
-    };
-  },
-  toJSON(message: RequestLoadSnapshotChunk): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.format !== undefined && (obj.format = Math.round(message.format));
-    message.chunk !== undefined && (obj.chunk = Math.round(message.chunk));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestLoadSnapshotChunk>): RequestLoadSnapshotChunk {
-    const message = createBaseRequestLoadSnapshotChunk();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.format = object.format ?? 0;
-    message.chunk = object.chunk ?? 0;
-    return message;
-  },
-  fromSDK(object: RequestLoadSnapshotChunkSDKType): RequestLoadSnapshotChunk {
-    return {
-      height: object?.height,
-      format: object?.format,
-      chunk: object?.chunk
-    };
-  },
-  toSDK(message: RequestLoadSnapshotChunk): RequestLoadSnapshotChunkSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.format = message.format;
-    obj.chunk = message.chunk;
-    return obj;
-  },
-  fromAmino(object: RequestLoadSnapshotChunkAmino): RequestLoadSnapshotChunk {
-    return {
-      height: BigInt(object.height),
-      format: object.format,
-      chunk: object.chunk
-    };
-  },
-  toAmino(message: RequestLoadSnapshotChunk): RequestLoadSnapshotChunkAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.format = message.format;
-    obj.chunk = message.chunk;
-    return obj;
-  },
-  fromAminoMsg(object: RequestLoadSnapshotChunkAminoMsg): RequestLoadSnapshotChunk {
-    return RequestLoadSnapshotChunk.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestLoadSnapshotChunkProtoMsg): RequestLoadSnapshotChunk {
-    return RequestLoadSnapshotChunk.decode(message.value);
-  },
-  toProto(message: RequestLoadSnapshotChunk): Uint8Array {
-    return RequestLoadSnapshotChunk.encode(message).finish();
-  },
-  toProtoMsg(message: RequestLoadSnapshotChunk): RequestLoadSnapshotChunkProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestLoadSnapshotChunk",
-      value: RequestLoadSnapshotChunk.encode(message).finish()
-    };
-  }
-};
-function createBaseRequestApplySnapshotChunk(): RequestApplySnapshotChunk {
-  return {
-    index: 0,
-    chunk: new Uint8Array(),
-    sender: ""
-  };
-}
-export const RequestApplySnapshotChunk = {
-  typeUrl: "/tendermint.abci.RequestApplySnapshotChunk",
-  encode(message: RequestApplySnapshotChunk, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== 0) {
-      writer.uint32(8).uint32(message.index);
-    }
-    if (message.chunk.length !== 0) {
-      writer.uint32(18).bytes(message.chunk);
-    }
-    if (message.sender !== "") {
-      writer.uint32(26).string(message.sender);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): RequestApplySnapshotChunk {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseRequestApplySnapshotChunk();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.uint32();
-          break;
-        case 2:
-          message.chunk = reader.bytes();
-          break;
-        case 3:
-          message.sender = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): RequestApplySnapshotChunk {
-    return {
-      index: isSet(object.index) ? Number(object.index) : 0,
-      chunk: isSet(object.chunk) ? bytesFromBase64(object.chunk) : new Uint8Array(),
-      sender: isSet(object.sender) ? String(object.sender) : ""
-    };
-  },
-  toJSON(message: RequestApplySnapshotChunk): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = Math.round(message.index));
-    message.chunk !== undefined && (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));
-    message.sender !== undefined && (obj.sender = message.sender);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<RequestApplySnapshotChunk>): RequestApplySnapshotChunk {
-    const message = createBaseRequestApplySnapshotChunk();
-    message.index = object.index ?? 0;
-    message.chunk = object.chunk ?? new Uint8Array();
-    message.sender = object.sender ?? "";
-    return message;
-  },
-  fromSDK(object: RequestApplySnapshotChunkSDKType): RequestApplySnapshotChunk {
-    return {
-      index: object?.index,
-      chunk: object?.chunk,
-      sender: object?.sender
-    };
-  },
-  toSDK(message: RequestApplySnapshotChunk): RequestApplySnapshotChunkSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.chunk = message.chunk;
-    obj.sender = message.sender;
-    return obj;
-  },
-  fromAmino(object: RequestApplySnapshotChunkAmino): RequestApplySnapshotChunk {
-    return {
-      index: object.index,
-      chunk: object.chunk,
-      sender: object.sender
-    };
-  },
-  toAmino(message: RequestApplySnapshotChunk): RequestApplySnapshotChunkAmino {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.chunk = message.chunk;
-    obj.sender = message.sender;
-    return obj;
-  },
-  fromAminoMsg(object: RequestApplySnapshotChunkAminoMsg): RequestApplySnapshotChunk {
-    return RequestApplySnapshotChunk.fromAmino(object.value);
-  },
-  fromProtoMsg(message: RequestApplySnapshotChunkProtoMsg): RequestApplySnapshotChunk {
-    return RequestApplySnapshotChunk.decode(message.value);
-  },
-  toProto(message: RequestApplySnapshotChunk): Uint8Array {
-    return RequestApplySnapshotChunk.encode(message).finish();
-  },
-  toProtoMsg(message: RequestApplySnapshotChunk): RequestApplySnapshotChunkProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.RequestApplySnapshotChunk",
-      value: RequestApplySnapshotChunk.encode(message).finish()
-    };
-  }
-};
-function createBaseResponse(): Response {
-  return {
-    exception: undefined,
-    echo: undefined,
-    flush: undefined,
-    info: undefined,
-    setOption: undefined,
-    initChain: undefined,
-    query: undefined,
-    beginBlock: undefined,
-    checkTx: undefined,
-    deliverTx: undefined,
-    endBlock: undefined,
-    commit: undefined,
-    listSnapshots: undefined,
-    offerSnapshot: undefined,
-    loadSnapshotChunk: undefined,
-    applySnapshotChunk: undefined
-  };
-}
-export const Response = {
-  typeUrl: "/tendermint.abci.Response",
-  encode(message: Response, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.exception !== undefined) {
-      ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.echo !== undefined) {
-      ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.flush !== undefined) {
-      ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.info !== undefined) {
-      ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.setOption !== undefined) {
-      ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.initChain !== undefined) {
-      ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();
-    }
-    if (message.query !== undefined) {
-      ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.beginBlock !== undefined) {
-      ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.checkTx !== undefined) {
-      ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();
-    }
-    if (message.deliverTx !== undefined) {
-      ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();
-    }
-    if (message.endBlock !== undefined) {
-      ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();
-    }
-    if (message.commit !== undefined) {
-      ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();
-    }
-    if (message.listSnapshots !== undefined) {
-      ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();
-    }
-    if (message.offerSnapshot !== undefined) {
-      ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();
-    }
-    if (message.loadSnapshotChunk !== undefined) {
-      ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();
-    }
-    if (message.applySnapshotChunk !== undefined) {
-      ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Response {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponse();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.exception = ResponseException.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.echo = ResponseEcho.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.flush = ResponseFlush.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.info = ResponseInfo.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.setOption = ResponseSetOption.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.initChain = ResponseInitChain.decode(reader, reader.uint32());
-          break;
-        case 7:
-          message.query = ResponseQuery.decode(reader, reader.uint32());
-          break;
-        case 8:
-          message.beginBlock = ResponseBeginBlock.decode(reader, reader.uint32());
-          break;
-        case 9:
-          message.checkTx = ResponseCheckTx.decode(reader, reader.uint32());
-          break;
-        case 10:
-          message.deliverTx = ResponseDeliverTx.decode(reader, reader.uint32());
-          break;
-        case 11:
-          message.endBlock = ResponseEndBlock.decode(reader, reader.uint32());
-          break;
-        case 12:
-          message.commit = ResponseCommit.decode(reader, reader.uint32());
-          break;
-        case 13:
-          message.listSnapshots = ResponseListSnapshots.decode(reader, reader.uint32());
-          break;
-        case 14:
-          message.offerSnapshot = ResponseOfferSnapshot.decode(reader, reader.uint32());
-          break;
-        case 15:
-          message.loadSnapshotChunk = ResponseLoadSnapshotChunk.decode(reader, reader.uint32());
-          break;
-        case 16:
-          message.applySnapshotChunk = ResponseApplySnapshotChunk.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Response {
-    return {
-      exception: isSet(object.exception) ? ResponseException.fromJSON(object.exception) : undefined,
-      echo: isSet(object.echo) ? ResponseEcho.fromJSON(object.echo) : undefined,
-      flush: isSet(object.flush) ? ResponseFlush.fromJSON(object.flush) : undefined,
-      info: isSet(object.info) ? ResponseInfo.fromJSON(object.info) : undefined,
-      setOption: isSet(object.setOption) ? ResponseSetOption.fromJSON(object.setOption) : undefined,
-      initChain: isSet(object.initChain) ? ResponseInitChain.fromJSON(object.initChain) : undefined,
-      query: isSet(object.query) ? ResponseQuery.fromJSON(object.query) : undefined,
-      beginBlock: isSet(object.beginBlock) ? ResponseBeginBlock.fromJSON(object.beginBlock) : undefined,
-      checkTx: isSet(object.checkTx) ? ResponseCheckTx.fromJSON(object.checkTx) : undefined,
-      deliverTx: isSet(object.deliverTx) ? ResponseDeliverTx.fromJSON(object.deliverTx) : undefined,
-      endBlock: isSet(object.endBlock) ? ResponseEndBlock.fromJSON(object.endBlock) : undefined,
-      commit: isSet(object.commit) ? ResponseCommit.fromJSON(object.commit) : undefined,
-      listSnapshots: isSet(object.listSnapshots) ? ResponseListSnapshots.fromJSON(object.listSnapshots) : undefined,
-      offerSnapshot: isSet(object.offerSnapshot) ? ResponseOfferSnapshot.fromJSON(object.offerSnapshot) : undefined,
-      loadSnapshotChunk: isSet(object.loadSnapshotChunk) ? ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk) : undefined,
-      applySnapshotChunk: isSet(object.applySnapshotChunk) ? ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk) : undefined
-    };
-  },
-  toJSON(message: Response): unknown {
-    const obj: any = {};
-    message.exception !== undefined && (obj.exception = message.exception ? ResponseException.toJSON(message.exception) : undefined);
-    message.echo !== undefined && (obj.echo = message.echo ? ResponseEcho.toJSON(message.echo) : undefined);
-    message.flush !== undefined && (obj.flush = message.flush ? ResponseFlush.toJSON(message.flush) : undefined);
-    message.info !== undefined && (obj.info = message.info ? ResponseInfo.toJSON(message.info) : undefined);
-    message.setOption !== undefined && (obj.setOption = message.setOption ? ResponseSetOption.toJSON(message.setOption) : undefined);
-    message.initChain !== undefined && (obj.initChain = message.initChain ? ResponseInitChain.toJSON(message.initChain) : undefined);
-    message.query !== undefined && (obj.query = message.query ? ResponseQuery.toJSON(message.query) : undefined);
-    message.beginBlock !== undefined && (obj.beginBlock = message.beginBlock ? ResponseBeginBlock.toJSON(message.beginBlock) : undefined);
-    message.checkTx !== undefined && (obj.checkTx = message.checkTx ? ResponseCheckTx.toJSON(message.checkTx) : undefined);
-    message.deliverTx !== undefined && (obj.deliverTx = message.deliverTx ? ResponseDeliverTx.toJSON(message.deliverTx) : undefined);
-    message.endBlock !== undefined && (obj.endBlock = message.endBlock ? ResponseEndBlock.toJSON(message.endBlock) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? ResponseCommit.toJSON(message.commit) : undefined);
-    message.listSnapshots !== undefined && (obj.listSnapshots = message.listSnapshots ? ResponseListSnapshots.toJSON(message.listSnapshots) : undefined);
-    message.offerSnapshot !== undefined && (obj.offerSnapshot = message.offerSnapshot ? ResponseOfferSnapshot.toJSON(message.offerSnapshot) : undefined);
-    message.loadSnapshotChunk !== undefined && (obj.loadSnapshotChunk = message.loadSnapshotChunk ? ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk) : undefined);
-    message.applySnapshotChunk !== undefined && (obj.applySnapshotChunk = message.applySnapshotChunk ? ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Response>): Response {
-    const message = createBaseResponse();
-    message.exception = object.exception !== undefined && object.exception !== null ? ResponseException.fromPartial(object.exception) : undefined;
-    message.echo = object.echo !== undefined && object.echo !== null ? ResponseEcho.fromPartial(object.echo) : undefined;
-    message.flush = object.flush !== undefined && object.flush !== null ? ResponseFlush.fromPartial(object.flush) : undefined;
-    message.info = object.info !== undefined && object.info !== null ? ResponseInfo.fromPartial(object.info) : undefined;
-    message.setOption = object.setOption !== undefined && object.setOption !== null ? ResponseSetOption.fromPartial(object.setOption) : undefined;
-    message.initChain = object.initChain !== undefined && object.initChain !== null ? ResponseInitChain.fromPartial(object.initChain) : undefined;
-    message.query = object.query !== undefined && object.query !== null ? ResponseQuery.fromPartial(object.query) : undefined;
-    message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? ResponseBeginBlock.fromPartial(object.beginBlock) : undefined;
-    message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? ResponseCheckTx.fromPartial(object.checkTx) : undefined;
-    message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? ResponseDeliverTx.fromPartial(object.deliverTx) : undefined;
-    message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? ResponseEndBlock.fromPartial(object.endBlock) : undefined;
-    message.commit = object.commit !== undefined && object.commit !== null ? ResponseCommit.fromPartial(object.commit) : undefined;
-    message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? ResponseListSnapshots.fromPartial(object.listSnapshots) : undefined;
-    message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? ResponseOfferSnapshot.fromPartial(object.offerSnapshot) : undefined;
-    message.loadSnapshotChunk = object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null ? ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) : undefined;
-    message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined;
-    return message;
-  },
-  fromSDK(object: ResponseSDKType): Response {
-    return {
-      exception: object.exception ? ResponseException.fromSDK(object.exception) : undefined,
-      echo: object.echo ? ResponseEcho.fromSDK(object.echo) : undefined,
-      flush: object.flush ? ResponseFlush.fromSDK(object.flush) : undefined,
-      info: object.info ? ResponseInfo.fromSDK(object.info) : undefined,
-      setOption: object.set_option ? ResponseSetOption.fromSDK(object.set_option) : undefined,
-      initChain: object.init_chain ? ResponseInitChain.fromSDK(object.init_chain) : undefined,
-      query: object.query ? ResponseQuery.fromSDK(object.query) : undefined,
-      beginBlock: object.begin_block ? ResponseBeginBlock.fromSDK(object.begin_block) : undefined,
-      checkTx: object.check_tx ? ResponseCheckTx.fromSDK(object.check_tx) : undefined,
-      deliverTx: object.deliver_tx ? ResponseDeliverTx.fromSDK(object.deliver_tx) : undefined,
-      endBlock: object.end_block ? ResponseEndBlock.fromSDK(object.end_block) : undefined,
-      commit: object.commit ? ResponseCommit.fromSDK(object.commit) : undefined,
-      listSnapshots: object.list_snapshots ? ResponseListSnapshots.fromSDK(object.list_snapshots) : undefined,
-      offerSnapshot: object.offer_snapshot ? ResponseOfferSnapshot.fromSDK(object.offer_snapshot) : undefined,
-      loadSnapshotChunk: object.load_snapshot_chunk ? ResponseLoadSnapshotChunk.fromSDK(object.load_snapshot_chunk) : undefined,
-      applySnapshotChunk: object.apply_snapshot_chunk ? ResponseApplySnapshotChunk.fromSDK(object.apply_snapshot_chunk) : undefined
-    };
-  },
-  toSDK(message: Response): ResponseSDKType {
-    const obj: any = {};
-    message.exception !== undefined && (obj.exception = message.exception ? ResponseException.toSDK(message.exception) : undefined);
-    message.echo !== undefined && (obj.echo = message.echo ? ResponseEcho.toSDK(message.echo) : undefined);
-    message.flush !== undefined && (obj.flush = message.flush ? ResponseFlush.toSDK(message.flush) : undefined);
-    message.info !== undefined && (obj.info = message.info ? ResponseInfo.toSDK(message.info) : undefined);
-    message.setOption !== undefined && (obj.set_option = message.setOption ? ResponseSetOption.toSDK(message.setOption) : undefined);
-    message.initChain !== undefined && (obj.init_chain = message.initChain ? ResponseInitChain.toSDK(message.initChain) : undefined);
-    message.query !== undefined && (obj.query = message.query ? ResponseQuery.toSDK(message.query) : undefined);
-    message.beginBlock !== undefined && (obj.begin_block = message.beginBlock ? ResponseBeginBlock.toSDK(message.beginBlock) : undefined);
-    message.checkTx !== undefined && (obj.check_tx = message.checkTx ? ResponseCheckTx.toSDK(message.checkTx) : undefined);
-    message.deliverTx !== undefined && (obj.deliver_tx = message.deliverTx ? ResponseDeliverTx.toSDK(message.deliverTx) : undefined);
-    message.endBlock !== undefined && (obj.end_block = message.endBlock ? ResponseEndBlock.toSDK(message.endBlock) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? ResponseCommit.toSDK(message.commit) : undefined);
-    message.listSnapshots !== undefined && (obj.list_snapshots = message.listSnapshots ? ResponseListSnapshots.toSDK(message.listSnapshots) : undefined);
-    message.offerSnapshot !== undefined && (obj.offer_snapshot = message.offerSnapshot ? ResponseOfferSnapshot.toSDK(message.offerSnapshot) : undefined);
-    message.loadSnapshotChunk !== undefined && (obj.load_snapshot_chunk = message.loadSnapshotChunk ? ResponseLoadSnapshotChunk.toSDK(message.loadSnapshotChunk) : undefined);
-    message.applySnapshotChunk !== undefined && (obj.apply_snapshot_chunk = message.applySnapshotChunk ? ResponseApplySnapshotChunk.toSDK(message.applySnapshotChunk) : undefined);
-    return obj;
-  },
-  fromAmino(object: ResponseAmino): Response {
-    return {
-      exception: object?.exception ? ResponseException.fromAmino(object.exception) : undefined,
-      echo: object?.echo ? ResponseEcho.fromAmino(object.echo) : undefined,
-      flush: object?.flush ? ResponseFlush.fromAmino(object.flush) : undefined,
-      info: object?.info ? ResponseInfo.fromAmino(object.info) : undefined,
-      setOption: object?.set_option ? ResponseSetOption.fromAmino(object.set_option) : undefined,
-      initChain: object?.init_chain ? ResponseInitChain.fromAmino(object.init_chain) : undefined,
-      query: object?.query ? ResponseQuery.fromAmino(object.query) : undefined,
-      beginBlock: object?.begin_block ? ResponseBeginBlock.fromAmino(object.begin_block) : undefined,
-      checkTx: object?.check_tx ? ResponseCheckTx.fromAmino(object.check_tx) : undefined,
-      deliverTx: object?.deliver_tx ? ResponseDeliverTx.fromAmino(object.deliver_tx) : undefined,
-      endBlock: object?.end_block ? ResponseEndBlock.fromAmino(object.end_block) : undefined,
-      commit: object?.commit ? ResponseCommit.fromAmino(object.commit) : undefined,
-      listSnapshots: object?.list_snapshots ? ResponseListSnapshots.fromAmino(object.list_snapshots) : undefined,
-      offerSnapshot: object?.offer_snapshot ? ResponseOfferSnapshot.fromAmino(object.offer_snapshot) : undefined,
-      loadSnapshotChunk: object?.load_snapshot_chunk ? ResponseLoadSnapshotChunk.fromAmino(object.load_snapshot_chunk) : undefined,
-      applySnapshotChunk: object?.apply_snapshot_chunk ? ResponseApplySnapshotChunk.fromAmino(object.apply_snapshot_chunk) : undefined
-    };
-  },
-  toAmino(message: Response): ResponseAmino {
-    const obj: any = {};
-    obj.exception = message.exception ? ResponseException.toAmino(message.exception) : undefined;
-    obj.echo = message.echo ? ResponseEcho.toAmino(message.echo) : undefined;
-    obj.flush = message.flush ? ResponseFlush.toAmino(message.flush) : undefined;
-    obj.info = message.info ? ResponseInfo.toAmino(message.info) : undefined;
-    obj.set_option = message.setOption ? ResponseSetOption.toAmino(message.setOption) : undefined;
-    obj.init_chain = message.initChain ? ResponseInitChain.toAmino(message.initChain) : undefined;
-    obj.query = message.query ? ResponseQuery.toAmino(message.query) : undefined;
-    obj.begin_block = message.beginBlock ? ResponseBeginBlock.toAmino(message.beginBlock) : undefined;
-    obj.check_tx = message.checkTx ? ResponseCheckTx.toAmino(message.checkTx) : undefined;
-    obj.deliver_tx = message.deliverTx ? ResponseDeliverTx.toAmino(message.deliverTx) : undefined;
-    obj.end_block = message.endBlock ? ResponseEndBlock.toAmino(message.endBlock) : undefined;
-    obj.commit = message.commit ? ResponseCommit.toAmino(message.commit) : undefined;
-    obj.list_snapshots = message.listSnapshots ? ResponseListSnapshots.toAmino(message.listSnapshots) : undefined;
-    obj.offer_snapshot = message.offerSnapshot ? ResponseOfferSnapshot.toAmino(message.offerSnapshot) : undefined;
-    obj.load_snapshot_chunk = message.loadSnapshotChunk ? ResponseLoadSnapshotChunk.toAmino(message.loadSnapshotChunk) : undefined;
-    obj.apply_snapshot_chunk = message.applySnapshotChunk ? ResponseApplySnapshotChunk.toAmino(message.applySnapshotChunk) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseAminoMsg): Response {
-    return Response.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseProtoMsg): Response {
-    return Response.decode(message.value);
-  },
-  toProto(message: Response): Uint8Array {
-    return Response.encode(message).finish();
-  },
-  toProtoMsg(message: Response): ResponseProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Response",
-      value: Response.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseException(): ResponseException {
-  return {
-    error: ""
-  };
-}
-export const ResponseException = {
-  typeUrl: "/tendermint.abci.ResponseException",
-  encode(message: ResponseException, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.error !== "") {
-      writer.uint32(10).string(message.error);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseException {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseException();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.error = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseException {
-    return {
-      error: isSet(object.error) ? String(object.error) : ""
-    };
-  },
-  toJSON(message: ResponseException): unknown {
-    const obj: any = {};
-    message.error !== undefined && (obj.error = message.error);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseException>): ResponseException {
-    const message = createBaseResponseException();
-    message.error = object.error ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseExceptionSDKType): ResponseException {
-    return {
-      error: object?.error
-    };
-  },
-  toSDK(message: ResponseException): ResponseExceptionSDKType {
-    const obj: any = {};
-    obj.error = message.error;
-    return obj;
-  },
-  fromAmino(object: ResponseExceptionAmino): ResponseException {
-    return {
-      error: object.error
-    };
-  },
-  toAmino(message: ResponseException): ResponseExceptionAmino {
-    const obj: any = {};
-    obj.error = message.error;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseExceptionAminoMsg): ResponseException {
-    return ResponseException.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseExceptionProtoMsg): ResponseException {
-    return ResponseException.decode(message.value);
-  },
-  toProto(message: ResponseException): Uint8Array {
-    return ResponseException.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseException): ResponseExceptionProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseException",
-      value: ResponseException.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseEcho(): ResponseEcho {
-  return {
-    message: ""
-  };
-}
-export const ResponseEcho = {
-  typeUrl: "/tendermint.abci.ResponseEcho",
-  encode(message: ResponseEcho, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.message !== "") {
-      writer.uint32(10).string(message.message);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseEcho {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseEcho();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.message = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseEcho {
-    return {
-      message: isSet(object.message) ? String(object.message) : ""
-    };
-  },
-  toJSON(message: ResponseEcho): unknown {
-    const obj: any = {};
-    message.message !== undefined && (obj.message = message.message);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseEcho>): ResponseEcho {
-    const message = createBaseResponseEcho();
-    message.message = object.message ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseEchoSDKType): ResponseEcho {
-    return {
-      message: object?.message
-    };
-  },
-  toSDK(message: ResponseEcho): ResponseEchoSDKType {
-    const obj: any = {};
-    obj.message = message.message;
-    return obj;
-  },
-  fromAmino(object: ResponseEchoAmino): ResponseEcho {
-    return {
-      message: object.message
-    };
-  },
-  toAmino(message: ResponseEcho): ResponseEchoAmino {
-    const obj: any = {};
-    obj.message = message.message;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseEchoAminoMsg): ResponseEcho {
-    return ResponseEcho.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseEchoProtoMsg): ResponseEcho {
-    return ResponseEcho.decode(message.value);
-  },
-  toProto(message: ResponseEcho): Uint8Array {
-    return ResponseEcho.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseEcho): ResponseEchoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseEcho",
-      value: ResponseEcho.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseFlush(): ResponseFlush {
-  return {};
-}
-export const ResponseFlush = {
-  typeUrl: "/tendermint.abci.ResponseFlush",
-  encode(_: ResponseFlush, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseFlush {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseFlush();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(_: any): ResponseFlush {
-    return {};
-  },
-  toJSON(_: ResponseFlush): unknown {
-    const obj: any = {};
-    return obj;
-  },
-  fromPartial(_: DeepPartial<ResponseFlush>): ResponseFlush {
-    const message = createBaseResponseFlush();
-    return message;
-  },
-  fromSDK(_: ResponseFlushSDKType): ResponseFlush {
-    return {};
-  },
-  toSDK(_: ResponseFlush): ResponseFlushSDKType {
-    const obj: any = {};
-    return obj;
-  },
-  fromAmino(_: ResponseFlushAmino): ResponseFlush {
-    return {};
-  },
-  toAmino(_: ResponseFlush): ResponseFlushAmino {
-    const obj: any = {};
-    return obj;
-  },
-  fromAminoMsg(object: ResponseFlushAminoMsg): ResponseFlush {
-    return ResponseFlush.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseFlushProtoMsg): ResponseFlush {
-    return ResponseFlush.decode(message.value);
-  },
-  toProto(message: ResponseFlush): Uint8Array {
-    return ResponseFlush.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseFlush): ResponseFlushProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseFlush",
-      value: ResponseFlush.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseInfo(): ResponseInfo {
-  return {
-    data: "",
-    version: "",
-    appVersion: BigInt(0),
-    lastBlockHeight: BigInt(0),
-    lastBlockAppHash: new Uint8Array()
-  };
-}
-export const ResponseInfo = {
-  typeUrl: "/tendermint.abci.ResponseInfo",
-  encode(message: ResponseInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data !== "") {
-      writer.uint32(10).string(message.data);
-    }
-    if (message.version !== "") {
-      writer.uint32(18).string(message.version);
-    }
-    if (message.appVersion !== BigInt(0)) {
-      writer.uint32(24).uint64(message.appVersion);
-    }
-    if (message.lastBlockHeight !== BigInt(0)) {
-      writer.uint32(32).int64(message.lastBlockHeight);
-    }
-    if (message.lastBlockAppHash.length !== 0) {
-      writer.uint32(42).bytes(message.lastBlockAppHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.data = reader.string();
-          break;
-        case 2:
-          message.version = reader.string();
-          break;
-        case 3:
-          message.appVersion = reader.uint64();
-          break;
-        case 4:
-          message.lastBlockHeight = reader.int64();
-          break;
-        case 5:
-          message.lastBlockAppHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseInfo {
-    return {
-      data: isSet(object.data) ? String(object.data) : "",
-      version: isSet(object.version) ? String(object.version) : "",
-      appVersion: isSet(object.appVersion) ? BigInt(object.appVersion.toString()) : BigInt(0),
-      lastBlockHeight: isSet(object.lastBlockHeight) ? BigInt(object.lastBlockHeight.toString()) : BigInt(0),
-      lastBlockAppHash: isSet(object.lastBlockAppHash) ? bytesFromBase64(object.lastBlockAppHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: ResponseInfo): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = message.data);
-    message.version !== undefined && (obj.version = message.version);
-    message.appVersion !== undefined && (obj.appVersion = (message.appVersion || BigInt(0)).toString());
-    message.lastBlockHeight !== undefined && (obj.lastBlockHeight = (message.lastBlockHeight || BigInt(0)).toString());
-    message.lastBlockAppHash !== undefined && (obj.lastBlockAppHash = base64FromBytes(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseInfo>): ResponseInfo {
-    const message = createBaseResponseInfo();
-    message.data = object.data ?? "";
-    message.version = object.version ?? "";
-    message.appVersion = object.appVersion !== undefined && object.appVersion !== null ? BigInt(object.appVersion.toString()) : BigInt(0);
-    message.lastBlockHeight = object.lastBlockHeight !== undefined && object.lastBlockHeight !== null ? BigInt(object.lastBlockHeight.toString()) : BigInt(0);
-    message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ResponseInfoSDKType): ResponseInfo {
-    return {
-      data: object?.data,
-      version: object?.version,
-      appVersion: object?.app_version,
-      lastBlockHeight: object?.last_block_height,
-      lastBlockAppHash: object?.last_block_app_hash
-    };
-  },
-  toSDK(message: ResponseInfo): ResponseInfoSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.version = message.version;
-    obj.app_version = message.appVersion;
-    obj.last_block_height = message.lastBlockHeight;
-    obj.last_block_app_hash = message.lastBlockAppHash;
-    return obj;
-  },
-  fromAmino(object: ResponseInfoAmino): ResponseInfo {
-    return {
-      data: object.data,
-      version: object.version,
-      appVersion: BigInt(object.app_version),
-      lastBlockHeight: BigInt(object.last_block_height),
-      lastBlockAppHash: object.last_block_app_hash
-    };
-  },
-  toAmino(message: ResponseInfo): ResponseInfoAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.version = message.version;
-    obj.app_version = message.appVersion ? message.appVersion.toString() : undefined;
-    obj.last_block_height = message.lastBlockHeight ? message.lastBlockHeight.toString() : undefined;
-    obj.last_block_app_hash = message.lastBlockAppHash;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseInfoAminoMsg): ResponseInfo {
-    return ResponseInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseInfoProtoMsg): ResponseInfo {
-    return ResponseInfo.decode(message.value);
-  },
-  toProto(message: ResponseInfo): Uint8Array {
-    return ResponseInfo.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseInfo): ResponseInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseInfo",
-      value: ResponseInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseSetOption(): ResponseSetOption {
-  return {
-    code: 0,
-    log: "",
-    info: ""
-  };
-}
-export const ResponseSetOption = {
-  typeUrl: "/tendermint.abci.ResponseSetOption",
-  encode(message: ResponseSetOption, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.code !== 0) {
-      writer.uint32(8).uint32(message.code);
-    }
-    if (message.log !== "") {
-      writer.uint32(26).string(message.log);
-    }
-    if (message.info !== "") {
-      writer.uint32(34).string(message.info);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseSetOption {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseSetOption();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.code = reader.uint32();
-          break;
-        case 3:
-          message.log = reader.string();
-          break;
-        case 4:
-          message.info = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseSetOption {
-    return {
-      code: isSet(object.code) ? Number(object.code) : 0,
-      log: isSet(object.log) ? String(object.log) : "",
-      info: isSet(object.info) ? String(object.info) : ""
-    };
-  },
-  toJSON(message: ResponseSetOption): unknown {
-    const obj: any = {};
-    message.code !== undefined && (obj.code = Math.round(message.code));
-    message.log !== undefined && (obj.log = message.log);
-    message.info !== undefined && (obj.info = message.info);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseSetOption>): ResponseSetOption {
-    const message = createBaseResponseSetOption();
-    message.code = object.code ?? 0;
-    message.log = object.log ?? "";
-    message.info = object.info ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseSetOptionSDKType): ResponseSetOption {
-    return {
-      code: object?.code,
-      log: object?.log,
-      info: object?.info
-    };
-  },
-  toSDK(message: ResponseSetOption): ResponseSetOptionSDKType {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.log = message.log;
-    obj.info = message.info;
-    return obj;
-  },
-  fromAmino(object: ResponseSetOptionAmino): ResponseSetOption {
-    return {
-      code: object.code,
-      log: object.log,
-      info: object.info
-    };
-  },
-  toAmino(message: ResponseSetOption): ResponseSetOptionAmino {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.log = message.log;
-    obj.info = message.info;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseSetOptionAminoMsg): ResponseSetOption {
-    return ResponseSetOption.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseSetOptionProtoMsg): ResponseSetOption {
-    return ResponseSetOption.decode(message.value);
-  },
-  toProto(message: ResponseSetOption): Uint8Array {
-    return ResponseSetOption.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseSetOption): ResponseSetOptionProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseSetOption",
-      value: ResponseSetOption.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseInitChain(): ResponseInitChain {
-  return {
-    consensusParams: ConsensusParams.fromPartial({}),
-    validators: [],
-    appHash: new Uint8Array()
-  };
-}
-export const ResponseInitChain = {
-  typeUrl: "/tendermint.abci.ResponseInitChain",
-  encode(message: ResponseInitChain, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.consensusParams !== undefined) {
-      ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();
-    }
-    for (const v of message.validators) {
-      ValidatorUpdate.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.appHash.length !== 0) {
-      writer.uint32(26).bytes(message.appHash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseInitChain {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseInitChain();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.consensusParams = ConsensusParams.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.validators.push(ValidatorUpdate.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.appHash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseInitChain {
-    return {
-      consensusParams: isSet(object.consensusParams) ? ConsensusParams.fromJSON(object.consensusParams) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromJSON(e)) : [],
-      appHash: isSet(object.appHash) ? bytesFromBase64(object.appHash) : new Uint8Array()
-    };
-  },
-  toJSON(message: ResponseInitChain): unknown {
-    const obj: any = {};
-    message.consensusParams !== undefined && (obj.consensusParams = message.consensusParams ? ConsensusParams.toJSON(message.consensusParams) : undefined);
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.appHash !== undefined && (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseInitChain>): ResponseInitChain {
-    const message = createBaseResponseInitChain();
-    message.consensusParams = object.consensusParams !== undefined && object.consensusParams !== null ? ConsensusParams.fromPartial(object.consensusParams) : undefined;
-    message.validators = object.validators?.map(e => ValidatorUpdate.fromPartial(e)) || [];
-    message.appHash = object.appHash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ResponseInitChainSDKType): ResponseInitChain {
-    return {
-      consensusParams: object.consensus_params ? ConsensusParams.fromSDK(object.consensus_params) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromSDK(e)) : [],
-      appHash: object?.app_hash
-    };
-  },
-  toSDK(message: ResponseInitChain): ResponseInitChainSDKType {
-    const obj: any = {};
-    message.consensusParams !== undefined && (obj.consensus_params = message.consensusParams ? ConsensusParams.toSDK(message.consensusParams) : undefined);
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.app_hash = message.appHash;
-    return obj;
-  },
-  fromAmino(object: ResponseInitChainAmino): ResponseInitChain {
-    return {
-      consensusParams: object?.consensus_params ? ConsensusParams.fromAmino(object.consensus_params) : undefined,
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => ValidatorUpdate.fromAmino(e)) : [],
-      appHash: object.app_hash
-    };
-  },
-  toAmino(message: ResponseInitChain): ResponseInitChainAmino {
-    const obj: any = {};
-    obj.consensus_params = message.consensusParams ? ConsensusParams.toAmino(message.consensusParams) : undefined;
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? ValidatorUpdate.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.app_hash = message.appHash;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseInitChainAminoMsg): ResponseInitChain {
-    return ResponseInitChain.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseInitChainProtoMsg): ResponseInitChain {
-    return ResponseInitChain.decode(message.value);
-  },
-  toProto(message: ResponseInitChain): Uint8Array {
-    return ResponseInitChain.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseInitChain): ResponseInitChainProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseInitChain",
-      value: ResponseInitChain.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseQuery(): ResponseQuery {
-  return {
-    code: 0,
-    log: "",
-    info: "",
-    index: BigInt(0),
-    key: new Uint8Array(),
-    value: new Uint8Array(),
-    proofOps: ProofOps.fromPartial({}),
-    height: BigInt(0),
-    codespace: ""
-  };
-}
-export const ResponseQuery = {
-  typeUrl: "/tendermint.abci.ResponseQuery",
-  encode(message: ResponseQuery, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.code !== 0) {
-      writer.uint32(8).uint32(message.code);
-    }
-    if (message.log !== "") {
-      writer.uint32(26).string(message.log);
-    }
-    if (message.info !== "") {
-      writer.uint32(34).string(message.info);
-    }
-    if (message.index !== BigInt(0)) {
-      writer.uint32(40).int64(message.index);
-    }
-    if (message.key.length !== 0) {
-      writer.uint32(50).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(58).bytes(message.value);
-    }
-    if (message.proofOps !== undefined) {
-      ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(72).int64(message.height);
-    }
-    if (message.codespace !== "") {
-      writer.uint32(82).string(message.codespace);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseQuery {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseQuery();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.code = reader.uint32();
-          break;
-        case 3:
-          message.log = reader.string();
-          break;
-        case 4:
-          message.info = reader.string();
-          break;
-        case 5:
-          message.index = reader.int64();
-          break;
-        case 6:
-          message.key = reader.bytes();
-          break;
-        case 7:
-          message.value = reader.bytes();
-          break;
-        case 8:
-          message.proofOps = ProofOps.decode(reader, reader.uint32());
-          break;
-        case 9:
-          message.height = reader.int64();
-          break;
-        case 10:
-          message.codespace = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseQuery {
-    return {
-      code: isSet(object.code) ? Number(object.code) : 0,
-      log: isSet(object.log) ? String(object.log) : "",
-      info: isSet(object.info) ? String(object.info) : "",
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0),
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(),
-      proofOps: isSet(object.proofOps) ? ProofOps.fromJSON(object.proofOps) : undefined,
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      codespace: isSet(object.codespace) ? String(object.codespace) : ""
-    };
-  },
-  toJSON(message: ResponseQuery): unknown {
-    const obj: any = {};
-    message.code !== undefined && (obj.code = Math.round(message.code));
-    message.log !== undefined && (obj.log = message.log);
-    message.info !== undefined && (obj.info = message.info);
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    message.proofOps !== undefined && (obj.proofOps = message.proofOps ? ProofOps.toJSON(message.proofOps) : undefined);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.codespace !== undefined && (obj.codespace = message.codespace);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseQuery>): ResponseQuery {
-    const message = createBaseResponseQuery();
-    message.code = object.code ?? 0;
-    message.log = object.log ?? "";
-    message.info = object.info ?? "";
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    message.proofOps = object.proofOps !== undefined && object.proofOps !== null ? ProofOps.fromPartial(object.proofOps) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.codespace = object.codespace ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseQuerySDKType): ResponseQuery {
-    return {
-      code: object?.code,
-      log: object?.log,
-      info: object?.info,
-      index: object?.index,
-      key: object?.key,
-      value: object?.value,
-      proofOps: object.proof_ops ? ProofOps.fromSDK(object.proof_ops) : undefined,
-      height: object?.height,
-      codespace: object?.codespace
-    };
-  },
-  toSDK(message: ResponseQuery): ResponseQuerySDKType {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.index = message.index;
-    obj.key = message.key;
-    obj.value = message.value;
-    message.proofOps !== undefined && (obj.proof_ops = message.proofOps ? ProofOps.toSDK(message.proofOps) : undefined);
-    obj.height = message.height;
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAmino(object: ResponseQueryAmino): ResponseQuery {
-    return {
-      code: object.code,
-      log: object.log,
-      info: object.info,
-      index: BigInt(object.index),
-      key: object.key,
-      value: object.value,
-      proofOps: object?.proof_ops ? ProofOps.fromAmino(object.proof_ops) : undefined,
-      height: BigInt(object.height),
-      codespace: object.codespace
-    };
-  },
-  toAmino(message: ResponseQuery): ResponseQueryAmino {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.index = message.index ? message.index.toString() : undefined;
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.proof_ops = message.proofOps ? ProofOps.toAmino(message.proofOps) : undefined;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseQueryAminoMsg): ResponseQuery {
-    return ResponseQuery.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseQueryProtoMsg): ResponseQuery {
-    return ResponseQuery.decode(message.value);
-  },
-  toProto(message: ResponseQuery): Uint8Array {
-    return ResponseQuery.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseQuery): ResponseQueryProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseQuery",
-      value: ResponseQuery.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseBeginBlock(): ResponseBeginBlock {
-  return {
-    events: []
-  };
-}
-export const ResponseBeginBlock = {
-  typeUrl: "/tendermint.abci.ResponseBeginBlock",
-  encode(message: ResponseBeginBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseBeginBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseBeginBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseBeginBlock {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ResponseBeginBlock): unknown {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseBeginBlock>): ResponseBeginBlock {
-    const message = createBaseResponseBeginBlock();
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ResponseBeginBlockSDKType): ResponseBeginBlock {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ResponseBeginBlock): ResponseBeginBlockSDKType {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ResponseBeginBlockAmino): ResponseBeginBlock {
-    return {
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ResponseBeginBlock): ResponseBeginBlockAmino {
-    const obj: any = {};
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ResponseBeginBlockAminoMsg): ResponseBeginBlock {
-    return ResponseBeginBlock.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseBeginBlockProtoMsg): ResponseBeginBlock {
-    return ResponseBeginBlock.decode(message.value);
-  },
-  toProto(message: ResponseBeginBlock): Uint8Array {
-    return ResponseBeginBlock.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseBeginBlock): ResponseBeginBlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseBeginBlock",
-      value: ResponseBeginBlock.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseCheckTx(): ResponseCheckTx {
-  return {
-    code: 0,
-    data: new Uint8Array(),
-    log: "",
-    info: "",
-    gasWanted: BigInt(0),
-    gasUsed: BigInt(0),
-    events: [],
-    codespace: ""
-  };
-}
-export const ResponseCheckTx = {
-  typeUrl: "/tendermint.abci.ResponseCheckTx",
-  encode(message: ResponseCheckTx, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.code !== 0) {
-      writer.uint32(8).uint32(message.code);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    if (message.log !== "") {
-      writer.uint32(26).string(message.log);
-    }
-    if (message.info !== "") {
-      writer.uint32(34).string(message.info);
-    }
-    if (message.gasWanted !== BigInt(0)) {
-      writer.uint32(40).int64(message.gasWanted);
-    }
-    if (message.gasUsed !== BigInt(0)) {
-      writer.uint32(48).int64(message.gasUsed);
-    }
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.codespace !== "") {
-      writer.uint32(66).string(message.codespace);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseCheckTx {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseCheckTx();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.code = reader.uint32();
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        case 3:
-          message.log = reader.string();
-          break;
-        case 4:
-          message.info = reader.string();
-          break;
-        case 5:
-          message.gasWanted = reader.int64();
-          break;
-        case 6:
-          message.gasUsed = reader.int64();
-          break;
-        case 7:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.codespace = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseCheckTx {
-    return {
-      code: isSet(object.code) ? Number(object.code) : 0,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      log: isSet(object.log) ? String(object.log) : "",
-      info: isSet(object.info) ? String(object.info) : "",
-      gasWanted: isSet(object.gas_wanted) ? BigInt(object.gas_wanted.toString()) : BigInt(0),
-      gasUsed: isSet(object.gas_used) ? BigInt(object.gas_used.toString()) : BigInt(0),
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [],
-      codespace: isSet(object.codespace) ? String(object.codespace) : ""
-    };
-  },
-  toJSON(message: ResponseCheckTx): unknown {
-    const obj: any = {};
-    message.code !== undefined && (obj.code = Math.round(message.code));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.log !== undefined && (obj.log = message.log);
-    message.info !== undefined && (obj.info = message.info);
-    message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());
-    message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    message.codespace !== undefined && (obj.codespace = message.codespace);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseCheckTx>): ResponseCheckTx {
-    const message = createBaseResponseCheckTx();
-    message.code = object.code ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    message.log = object.log ?? "";
-    message.info = object.info ?? "";
-    message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? BigInt(object.gasWanted.toString()) : BigInt(0);
-    message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? BigInt(object.gasUsed.toString()) : BigInt(0);
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    message.codespace = object.codespace ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseCheckTxSDKType): ResponseCheckTx {
-    return {
-      code: object?.code,
-      data: object?.data,
-      log: object?.log,
-      info: object?.info,
-      gasWanted: object?.gas_wanted,
-      gasUsed: object?.gas_used,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : [],
-      codespace: object?.codespace
-    };
-  },
-  toSDK(message: ResponseCheckTx): ResponseCheckTxSDKType {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted;
-    obj.gas_used = message.gasUsed;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAmino(object: ResponseCheckTxAmino): ResponseCheckTx {
-    return {
-      code: object.code,
-      data: object.data,
-      log: object.log,
-      info: object.info,
-      gasWanted: BigInt(object.gas_wanted),
-      gasUsed: BigInt(object.gas_used),
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : [],
-      codespace: object.codespace
-    };
-  },
-  toAmino(message: ResponseCheckTx): ResponseCheckTxAmino {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted ? message.gasWanted.toString() : undefined;
-    obj.gas_used = message.gasUsed ? message.gasUsed.toString() : undefined;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseCheckTxAminoMsg): ResponseCheckTx {
-    return ResponseCheckTx.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseCheckTxProtoMsg): ResponseCheckTx {
-    return ResponseCheckTx.decode(message.value);
-  },
-  toProto(message: ResponseCheckTx): Uint8Array {
-    return ResponseCheckTx.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseCheckTx): ResponseCheckTxProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseCheckTx",
-      value: ResponseCheckTx.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseDeliverTx(): ResponseDeliverTx {
-  return {
-    code: 0,
-    data: new Uint8Array(),
-    log: "",
-    info: "",
-    gasWanted: BigInt(0),
-    gasUsed: BigInt(0),
-    events: [],
-    codespace: ""
-  };
-}
-export const ResponseDeliverTx = {
-  typeUrl: "/tendermint.abci.ResponseDeliverTx",
-  encode(message: ResponseDeliverTx, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.code !== 0) {
-      writer.uint32(8).uint32(message.code);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    if (message.log !== "") {
-      writer.uint32(26).string(message.log);
-    }
-    if (message.info !== "") {
-      writer.uint32(34).string(message.info);
-    }
-    if (message.gasWanted !== BigInt(0)) {
-      writer.uint32(40).int64(message.gasWanted);
-    }
-    if (message.gasUsed !== BigInt(0)) {
-      writer.uint32(48).int64(message.gasUsed);
-    }
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(58).fork()).ldelim();
-    }
-    if (message.codespace !== "") {
-      writer.uint32(66).string(message.codespace);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseDeliverTx {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseDeliverTx();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.code = reader.uint32();
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        case 3:
-          message.log = reader.string();
-          break;
-        case 4:
-          message.info = reader.string();
-          break;
-        case 5:
-          message.gasWanted = reader.int64();
-          break;
-        case 6:
-          message.gasUsed = reader.int64();
-          break;
-        case 7:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        case 8:
-          message.codespace = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseDeliverTx {
-    return {
-      code: isSet(object.code) ? Number(object.code) : 0,
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      log: isSet(object.log) ? String(object.log) : "",
-      info: isSet(object.info) ? String(object.info) : "",
-      gasWanted: isSet(object.gas_wanted) ? BigInt(object.gas_wanted.toString()) : BigInt(0),
-      gasUsed: isSet(object.gas_used) ? BigInt(object.gas_used.toString()) : BigInt(0),
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [],
-      codespace: isSet(object.codespace) ? String(object.codespace) : ""
-    };
-  },
-  toJSON(message: ResponseDeliverTx): unknown {
-    const obj: any = {};
-    message.code !== undefined && (obj.code = Math.round(message.code));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.log !== undefined && (obj.log = message.log);
-    message.info !== undefined && (obj.info = message.info);
-    message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());
-    message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    message.codespace !== undefined && (obj.codespace = message.codespace);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseDeliverTx>): ResponseDeliverTx {
-    const message = createBaseResponseDeliverTx();
-    message.code = object.code ?? 0;
-    message.data = object.data ?? new Uint8Array();
-    message.log = object.log ?? "";
-    message.info = object.info ?? "";
-    message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? BigInt(object.gasWanted.toString()) : BigInt(0);
-    message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? BigInt(object.gasUsed.toString()) : BigInt(0);
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    message.codespace = object.codespace ?? "";
-    return message;
-  },
-  fromSDK(object: ResponseDeliverTxSDKType): ResponseDeliverTx {
-    return {
-      code: object?.code,
-      data: object?.data,
-      log: object?.log,
-      info: object?.info,
-      gasWanted: object?.gas_wanted,
-      gasUsed: object?.gas_used,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : [],
-      codespace: object?.codespace
-    };
-  },
-  toSDK(message: ResponseDeliverTx): ResponseDeliverTxSDKType {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted;
-    obj.gas_used = message.gasUsed;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAmino(object: ResponseDeliverTxAmino): ResponseDeliverTx {
-    return {
-      code: object.code,
-      data: object.data,
-      log: object.log,
-      info: object.info,
-      gasWanted: BigInt(object.gas_wanted),
-      gasUsed: BigInt(object.gas_used),
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : [],
-      codespace: object.codespace
-    };
-  },
-  toAmino(message: ResponseDeliverTx): ResponseDeliverTxAmino {
-    const obj: any = {};
-    obj.code = message.code;
-    obj.data = message.data;
-    obj.log = message.log;
-    obj.info = message.info;
-    obj.gas_wanted = message.gasWanted ? message.gasWanted.toString() : undefined;
-    obj.gas_used = message.gasUsed ? message.gasUsed.toString() : undefined;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    obj.codespace = message.codespace;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseDeliverTxAminoMsg): ResponseDeliverTx {
-    return ResponseDeliverTx.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseDeliverTxProtoMsg): ResponseDeliverTx {
-    return ResponseDeliverTx.decode(message.value);
-  },
-  toProto(message: ResponseDeliverTx): Uint8Array {
-    return ResponseDeliverTx.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseDeliverTx): ResponseDeliverTxProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseDeliverTx",
-      value: ResponseDeliverTx.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseEndBlock(): ResponseEndBlock {
-  return {
-    validatorUpdates: [],
-    consensusParamUpdates: ConsensusParams.fromPartial({}),
-    events: []
-  };
-}
-export const ResponseEndBlock = {
-  typeUrl: "/tendermint.abci.ResponseEndBlock",
-  encode(message: ResponseEndBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validatorUpdates) {
-      ValidatorUpdate.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.consensusParamUpdates !== undefined) {
-      ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();
-    }
-    for (const v of message.events) {
-      Event.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseEndBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseEndBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validatorUpdates.push(ValidatorUpdate.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.consensusParamUpdates = ConsensusParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.events.push(Event.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseEndBlock {
-    return {
-      validatorUpdates: Array.isArray(object?.validatorUpdates) ? object.validatorUpdates.map((e: any) => ValidatorUpdate.fromJSON(e)) : [],
-      consensusParamUpdates: isSet(object.consensusParamUpdates) ? ConsensusParams.fromJSON(object.consensusParamUpdates) : undefined,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ResponseEndBlock): unknown {
-    const obj: any = {};
-    if (message.validatorUpdates) {
-      obj.validatorUpdates = message.validatorUpdates.map(e => e ? ValidatorUpdate.toJSON(e) : undefined);
-    } else {
-      obj.validatorUpdates = [];
-    }
-    message.consensusParamUpdates !== undefined && (obj.consensusParamUpdates = message.consensusParamUpdates ? ConsensusParams.toJSON(message.consensusParamUpdates) : undefined);
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toJSON(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseEndBlock>): ResponseEndBlock {
-    const message = createBaseResponseEndBlock();
-    message.validatorUpdates = object.validatorUpdates?.map(e => ValidatorUpdate.fromPartial(e)) || [];
-    message.consensusParamUpdates = object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null ? ConsensusParams.fromPartial(object.consensusParamUpdates) : undefined;
-    message.events = object.events?.map(e => Event.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ResponseEndBlockSDKType): ResponseEndBlock {
-    return {
-      validatorUpdates: Array.isArray(object?.validator_updates) ? object.validator_updates.map((e: any) => ValidatorUpdate.fromSDK(e)) : [],
-      consensusParamUpdates: object.consensus_param_updates ? ConsensusParams.fromSDK(object.consensus_param_updates) : undefined,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ResponseEndBlock): ResponseEndBlockSDKType {
-    const obj: any = {};
-    if (message.validatorUpdates) {
-      obj.validator_updates = message.validatorUpdates.map(e => e ? ValidatorUpdate.toSDK(e) : undefined);
-    } else {
-      obj.validator_updates = [];
-    }
-    message.consensusParamUpdates !== undefined && (obj.consensus_param_updates = message.consensusParamUpdates ? ConsensusParams.toSDK(message.consensusParamUpdates) : undefined);
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toSDK(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ResponseEndBlockAmino): ResponseEndBlock {
-    return {
-      validatorUpdates: Array.isArray(object?.validator_updates) ? object.validator_updates.map((e: any) => ValidatorUpdate.fromAmino(e)) : [],
-      consensusParamUpdates: object?.consensus_param_updates ? ConsensusParams.fromAmino(object.consensus_param_updates) : undefined,
-      events: Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ResponseEndBlock): ResponseEndBlockAmino {
-    const obj: any = {};
-    if (message.validatorUpdates) {
-      obj.validator_updates = message.validatorUpdates.map(e => e ? ValidatorUpdate.toAmino(e) : undefined);
-    } else {
-      obj.validator_updates = [];
-    }
-    obj.consensus_param_updates = message.consensusParamUpdates ? ConsensusParams.toAmino(message.consensusParamUpdates) : undefined;
-    if (message.events) {
-      obj.events = message.events.map(e => e ? Event.toAmino(e) : undefined);
-    } else {
-      obj.events = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ResponseEndBlockAminoMsg): ResponseEndBlock {
-    return ResponseEndBlock.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseEndBlockProtoMsg): ResponseEndBlock {
-    return ResponseEndBlock.decode(message.value);
-  },
-  toProto(message: ResponseEndBlock): Uint8Array {
-    return ResponseEndBlock.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseEndBlock): ResponseEndBlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseEndBlock",
-      value: ResponseEndBlock.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseCommit(): ResponseCommit {
-  return {
-    data: new Uint8Array(),
-    retainHeight: BigInt(0)
-  };
-}
-export const ResponseCommit = {
-  typeUrl: "/tendermint.abci.ResponseCommit",
-  encode(message: ResponseCommit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    if (message.retainHeight !== BigInt(0)) {
-      writer.uint32(24).int64(message.retainHeight);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseCommit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseCommit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 2:
-          message.data = reader.bytes();
-          break;
-        case 3:
-          message.retainHeight = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseCommit {
-    return {
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      retainHeight: isSet(object.retainHeight) ? BigInt(object.retainHeight.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ResponseCommit): unknown {
-    const obj: any = {};
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseCommit>): ResponseCommit {
-    const message = createBaseResponseCommit();
-    message.data = object.data ?? new Uint8Array();
-    message.retainHeight = object.retainHeight !== undefined && object.retainHeight !== null ? BigInt(object.retainHeight.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ResponseCommitSDKType): ResponseCommit {
-    return {
-      data: object?.data,
-      retainHeight: object?.retain_height
-    };
-  },
-  toSDK(message: ResponseCommit): ResponseCommitSDKType {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.retain_height = message.retainHeight;
-    return obj;
-  },
-  fromAmino(object: ResponseCommitAmino): ResponseCommit {
-    return {
-      data: object.data,
-      retainHeight: BigInt(object.retain_height)
-    };
-  },
-  toAmino(message: ResponseCommit): ResponseCommitAmino {
-    const obj: any = {};
-    obj.data = message.data;
-    obj.retain_height = message.retainHeight ? message.retainHeight.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseCommitAminoMsg): ResponseCommit {
-    return ResponseCommit.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseCommitProtoMsg): ResponseCommit {
-    return ResponseCommit.decode(message.value);
-  },
-  toProto(message: ResponseCommit): Uint8Array {
-    return ResponseCommit.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseCommit): ResponseCommitProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseCommit",
-      value: ResponseCommit.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseListSnapshots(): ResponseListSnapshots {
-  return {
-    snapshots: []
-  };
-}
-export const ResponseListSnapshots = {
-  typeUrl: "/tendermint.abci.ResponseListSnapshots",
-  encode(message: ResponseListSnapshots, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.snapshots) {
-      Snapshot.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseListSnapshots {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseListSnapshots();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.snapshots.push(Snapshot.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseListSnapshots {
-    return {
-      snapshots: Array.isArray(object?.snapshots) ? object.snapshots.map((e: any) => Snapshot.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ResponseListSnapshots): unknown {
-    const obj: any = {};
-    if (message.snapshots) {
-      obj.snapshots = message.snapshots.map(e => e ? Snapshot.toJSON(e) : undefined);
-    } else {
-      obj.snapshots = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseListSnapshots>): ResponseListSnapshots {
-    const message = createBaseResponseListSnapshots();
-    message.snapshots = object.snapshots?.map(e => Snapshot.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ResponseListSnapshotsSDKType): ResponseListSnapshots {
-    return {
-      snapshots: Array.isArray(object?.snapshots) ? object.snapshots.map((e: any) => Snapshot.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ResponseListSnapshots): ResponseListSnapshotsSDKType {
-    const obj: any = {};
-    if (message.snapshots) {
-      obj.snapshots = message.snapshots.map(e => e ? Snapshot.toSDK(e) : undefined);
-    } else {
-      obj.snapshots = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ResponseListSnapshotsAmino): ResponseListSnapshots {
-    return {
-      snapshots: Array.isArray(object?.snapshots) ? object.snapshots.map((e: any) => Snapshot.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ResponseListSnapshots): ResponseListSnapshotsAmino {
-    const obj: any = {};
-    if (message.snapshots) {
-      obj.snapshots = message.snapshots.map(e => e ? Snapshot.toAmino(e) : undefined);
-    } else {
-      obj.snapshots = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ResponseListSnapshotsAminoMsg): ResponseListSnapshots {
-    return ResponseListSnapshots.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseListSnapshotsProtoMsg): ResponseListSnapshots {
-    return ResponseListSnapshots.decode(message.value);
-  },
-  toProto(message: ResponseListSnapshots): Uint8Array {
-    return ResponseListSnapshots.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseListSnapshots): ResponseListSnapshotsProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseListSnapshots",
-      value: ResponseListSnapshots.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseOfferSnapshot(): ResponseOfferSnapshot {
-  return {
-    result: 0
-  };
-}
-export const ResponseOfferSnapshot = {
-  typeUrl: "/tendermint.abci.ResponseOfferSnapshot",
-  encode(message: ResponseOfferSnapshot, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.result !== 0) {
-      writer.uint32(8).int32(message.result);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseOfferSnapshot {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseOfferSnapshot();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.result = (reader.int32() as any);
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseOfferSnapshot {
-    return {
-      result: isSet(object.result) ? responseOfferSnapshot_ResultFromJSON(object.result) : -1
-    };
-  },
-  toJSON(message: ResponseOfferSnapshot): unknown {
-    const obj: any = {};
-    message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseOfferSnapshot>): ResponseOfferSnapshot {
-    const message = createBaseResponseOfferSnapshot();
-    message.result = object.result ?? 0;
-    return message;
-  },
-  fromSDK(object: ResponseOfferSnapshotSDKType): ResponseOfferSnapshot {
-    return {
-      result: isSet(object.result) ? responseOfferSnapshot_ResultFromJSON(object.result) : -1
-    };
-  },
-  toSDK(message: ResponseOfferSnapshot): ResponseOfferSnapshotSDKType {
-    const obj: any = {};
-    message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));
-    return obj;
-  },
-  fromAmino(object: ResponseOfferSnapshotAmino): ResponseOfferSnapshot {
-    return {
-      result: isSet(object.result) ? responseOfferSnapshot_ResultFromJSON(object.result) : -1
-    };
-  },
-  toAmino(message: ResponseOfferSnapshot): ResponseOfferSnapshotAmino {
-    const obj: any = {};
-    obj.result = message.result;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseOfferSnapshotAminoMsg): ResponseOfferSnapshot {
-    return ResponseOfferSnapshot.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseOfferSnapshotProtoMsg): ResponseOfferSnapshot {
-    return ResponseOfferSnapshot.decode(message.value);
-  },
-  toProto(message: ResponseOfferSnapshot): Uint8Array {
-    return ResponseOfferSnapshot.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseOfferSnapshot): ResponseOfferSnapshotProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseOfferSnapshot",
-      value: ResponseOfferSnapshot.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseLoadSnapshotChunk(): ResponseLoadSnapshotChunk {
-  return {
-    chunk: new Uint8Array()
-  };
-}
-export const ResponseLoadSnapshotChunk = {
-  typeUrl: "/tendermint.abci.ResponseLoadSnapshotChunk",
-  encode(message: ResponseLoadSnapshotChunk, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.chunk.length !== 0) {
-      writer.uint32(10).bytes(message.chunk);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseLoadSnapshotChunk {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseLoadSnapshotChunk();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.chunk = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseLoadSnapshotChunk {
-    return {
-      chunk: isSet(object.chunk) ? bytesFromBase64(object.chunk) : new Uint8Array()
-    };
-  },
-  toJSON(message: ResponseLoadSnapshotChunk): unknown {
-    const obj: any = {};
-    message.chunk !== undefined && (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseLoadSnapshotChunk>): ResponseLoadSnapshotChunk {
-    const message = createBaseResponseLoadSnapshotChunk();
-    message.chunk = object.chunk ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ResponseLoadSnapshotChunkSDKType): ResponseLoadSnapshotChunk {
-    return {
-      chunk: object?.chunk
-    };
-  },
-  toSDK(message: ResponseLoadSnapshotChunk): ResponseLoadSnapshotChunkSDKType {
-    const obj: any = {};
-    obj.chunk = message.chunk;
-    return obj;
-  },
-  fromAmino(object: ResponseLoadSnapshotChunkAmino): ResponseLoadSnapshotChunk {
-    return {
-      chunk: object.chunk
-    };
-  },
-  toAmino(message: ResponseLoadSnapshotChunk): ResponseLoadSnapshotChunkAmino {
-    const obj: any = {};
-    obj.chunk = message.chunk;
-    return obj;
-  },
-  fromAminoMsg(object: ResponseLoadSnapshotChunkAminoMsg): ResponseLoadSnapshotChunk {
-    return ResponseLoadSnapshotChunk.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseLoadSnapshotChunkProtoMsg): ResponseLoadSnapshotChunk {
-    return ResponseLoadSnapshotChunk.decode(message.value);
-  },
-  toProto(message: ResponseLoadSnapshotChunk): Uint8Array {
-    return ResponseLoadSnapshotChunk.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseLoadSnapshotChunk): ResponseLoadSnapshotChunkProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseLoadSnapshotChunk",
-      value: ResponseLoadSnapshotChunk.encode(message).finish()
-    };
-  }
-};
-function createBaseResponseApplySnapshotChunk(): ResponseApplySnapshotChunk {
-  return {
-    result: 0,
-    refetchChunks: [],
-    rejectSenders: []
-  };
-}
-export const ResponseApplySnapshotChunk = {
-  typeUrl: "/tendermint.abci.ResponseApplySnapshotChunk",
-  encode(message: ResponseApplySnapshotChunk, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.result !== 0) {
-      writer.uint32(8).int32(message.result);
-    }
-    writer.uint32(18).fork();
-    for (const v of message.refetchChunks) {
-      writer.uint32(v);
-    }
-    writer.ldelim();
-    for (const v of message.rejectSenders) {
-      writer.uint32(26).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ResponseApplySnapshotChunk {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseResponseApplySnapshotChunk();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.result = (reader.int32() as any);
-          break;
-        case 2:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.refetchChunks.push(reader.uint32());
-            }
-          } else {
-            message.refetchChunks.push(reader.uint32());
-          }
-          break;
-        case 3:
-          message.rejectSenders.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ResponseApplySnapshotChunk {
-    return {
-      result: isSet(object.result) ? responseApplySnapshotChunk_ResultFromJSON(object.result) : -1,
-      refetchChunks: Array.isArray(object?.refetchChunks) ? object.refetchChunks.map((e: any) => Number(e)) : [],
-      rejectSenders: Array.isArray(object?.rejectSenders) ? object.rejectSenders.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ResponseApplySnapshotChunk): unknown {
-    const obj: any = {};
-    message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));
-    if (message.refetchChunks) {
-      obj.refetchChunks = message.refetchChunks.map(e => Math.round(e));
-    } else {
-      obj.refetchChunks = [];
-    }
-    if (message.rejectSenders) {
-      obj.rejectSenders = message.rejectSenders.map(e => e);
-    } else {
-      obj.rejectSenders = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ResponseApplySnapshotChunk>): ResponseApplySnapshotChunk {
-    const message = createBaseResponseApplySnapshotChunk();
-    message.result = object.result ?? 0;
-    message.refetchChunks = object.refetchChunks?.map(e => e) || [];
-    message.rejectSenders = object.rejectSenders?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ResponseApplySnapshotChunkSDKType): ResponseApplySnapshotChunk {
-    return {
-      result: isSet(object.result) ? responseApplySnapshotChunk_ResultFromJSON(object.result) : -1,
-      refetchChunks: Array.isArray(object?.refetch_chunks) ? object.refetch_chunks.map((e: any) => e) : [],
-      rejectSenders: Array.isArray(object?.reject_senders) ? object.reject_senders.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ResponseApplySnapshotChunk): ResponseApplySnapshotChunkSDKType {
-    const obj: any = {};
-    message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));
-    if (message.refetchChunks) {
-      obj.refetch_chunks = message.refetchChunks.map(e => e);
-    } else {
-      obj.refetch_chunks = [];
-    }
-    if (message.rejectSenders) {
-      obj.reject_senders = message.rejectSenders.map(e => e);
-    } else {
-      obj.reject_senders = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ResponseApplySnapshotChunkAmino): ResponseApplySnapshotChunk {
-    return {
-      result: isSet(object.result) ? responseApplySnapshotChunk_ResultFromJSON(object.result) : -1,
-      refetchChunks: Array.isArray(object?.refetch_chunks) ? object.refetch_chunks.map((e: any) => e) : [],
-      rejectSenders: Array.isArray(object?.reject_senders) ? object.reject_senders.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ResponseApplySnapshotChunk): ResponseApplySnapshotChunkAmino {
-    const obj: any = {};
-    obj.result = message.result;
-    if (message.refetchChunks) {
-      obj.refetch_chunks = message.refetchChunks.map(e => e);
-    } else {
-      obj.refetch_chunks = [];
-    }
-    if (message.rejectSenders) {
-      obj.reject_senders = message.rejectSenders.map(e => e);
-    } else {
-      obj.reject_senders = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ResponseApplySnapshotChunkAminoMsg): ResponseApplySnapshotChunk {
-    return ResponseApplySnapshotChunk.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ResponseApplySnapshotChunkProtoMsg): ResponseApplySnapshotChunk {
-    return ResponseApplySnapshotChunk.decode(message.value);
-  },
-  toProto(message: ResponseApplySnapshotChunk): Uint8Array {
-    return ResponseApplySnapshotChunk.encode(message).finish();
-  },
-  toProtoMsg(message: ResponseApplySnapshotChunk): ResponseApplySnapshotChunkProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ResponseApplySnapshotChunk",
-      value: ResponseApplySnapshotChunk.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensusParams(): ConsensusParams {
-  return {
-    block: BlockParams.fromPartial({}),
-    evidence: EvidenceParams.fromPartial({}),
-    validator: ValidatorParams.fromPartial({}),
-    version: VersionParams.fromPartial({})
-  };
-}
-export const ConsensusParams = {
-  typeUrl: "/tendermint.abci.ConsensusParams",
-  encode(message: ConsensusParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.block !== undefined) {
-      BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.evidence !== undefined) {
-      EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.validator !== undefined) {
-      ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.version !== undefined) {
-      VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.block = BlockParams.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.evidence = EvidenceParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.validator = ValidatorParams.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.version = VersionParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusParams {
-    return {
-      block: isSet(object.block) ? BlockParams.fromJSON(object.block) : undefined,
-      evidence: isSet(object.evidence) ? EvidenceParams.fromJSON(object.evidence) : undefined,
-      validator: isSet(object.validator) ? ValidatorParams.fromJSON(object.validator) : undefined,
-      version: isSet(object.version) ? VersionParams.fromJSON(object.version) : undefined
-    };
-  },
-  toJSON(message: ConsensusParams): unknown {
-    const obj: any = {};
-    message.block !== undefined && (obj.block = message.block ? BlockParams.toJSON(message.block) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceParams.toJSON(message.evidence) : undefined);
-    message.validator !== undefined && (obj.validator = message.validator ? ValidatorParams.toJSON(message.validator) : undefined);
-    message.version !== undefined && (obj.version = message.version ? VersionParams.toJSON(message.version) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusParams>): ConsensusParams {
-    const message = createBaseConsensusParams();
-    message.block = object.block !== undefined && object.block !== null ? BlockParams.fromPartial(object.block) : undefined;
-    message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceParams.fromPartial(object.evidence) : undefined;
-    message.validator = object.validator !== undefined && object.validator !== null ? ValidatorParams.fromPartial(object.validator) : undefined;
-    message.version = object.version !== undefined && object.version !== null ? VersionParams.fromPartial(object.version) : undefined;
-    return message;
-  },
-  fromSDK(object: ConsensusParamsSDKType): ConsensusParams {
-    return {
-      block: object.block ? BlockParams.fromSDK(object.block) : undefined,
-      evidence: object.evidence ? EvidenceParams.fromSDK(object.evidence) : undefined,
-      validator: object.validator ? ValidatorParams.fromSDK(object.validator) : undefined,
-      version: object.version ? VersionParams.fromSDK(object.version) : undefined
-    };
-  },
-  toSDK(message: ConsensusParams): ConsensusParamsSDKType {
-    const obj: any = {};
-    message.block !== undefined && (obj.block = message.block ? BlockParams.toSDK(message.block) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceParams.toSDK(message.evidence) : undefined);
-    message.validator !== undefined && (obj.validator = message.validator ? ValidatorParams.toSDK(message.validator) : undefined);
-    message.version !== undefined && (obj.version = message.version ? VersionParams.toSDK(message.version) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConsensusParamsAmino): ConsensusParams {
-    return {
-      block: object?.block ? BlockParams.fromAmino(object.block) : undefined,
-      evidence: object?.evidence ? EvidenceParams.fromAmino(object.evidence) : undefined,
-      validator: object?.validator ? ValidatorParams.fromAmino(object.validator) : undefined,
-      version: object?.version ? VersionParams.fromAmino(object.version) : undefined
-    };
-  },
-  toAmino(message: ConsensusParams): ConsensusParamsAmino {
-    const obj: any = {};
-    obj.block = message.block ? BlockParams.toAmino(message.block) : undefined;
-    obj.evidence = message.evidence ? EvidenceParams.toAmino(message.evidence) : undefined;
-    obj.validator = message.validator ? ValidatorParams.toAmino(message.validator) : undefined;
-    obj.version = message.version ? VersionParams.toAmino(message.version) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusParamsAminoMsg): ConsensusParams {
-    return ConsensusParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ConsensusParamsProtoMsg): ConsensusParams {
-    return ConsensusParams.decode(message.value);
-  },
-  toProto(message: ConsensusParams): Uint8Array {
-    return ConsensusParams.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusParams): ConsensusParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ConsensusParams",
-      value: ConsensusParams.encode(message).finish()
-    };
-  }
-};
-function createBaseBlockParams(): BlockParams {
-  return {
-    maxBytes: BigInt(0),
-    maxGas: BigInt(0)
-  };
-}
-export const BlockParams = {
-  typeUrl: "/tendermint.abci.BlockParams",
-  encode(message: BlockParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxBytes !== BigInt(0)) {
-      writer.uint32(8).int64(message.maxBytes);
-    }
-    if (message.maxGas !== BigInt(0)) {
-      writer.uint32(16).int64(message.maxGas);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BlockParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBlockParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxBytes = reader.int64();
-          break;
-        case 2:
-          message.maxGas = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BlockParams {
-    return {
-      maxBytes: isSet(object.maxBytes) ? BigInt(object.maxBytes.toString()) : BigInt(0),
-      maxGas: isSet(object.maxGas) ? BigInt(object.maxGas.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: BlockParams): unknown {
-    const obj: any = {};
-    message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());
-    message.maxGas !== undefined && (obj.maxGas = (message.maxGas || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BlockParams>): BlockParams {
-    const message = createBaseBlockParams();
-    message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? BigInt(object.maxBytes.toString()) : BigInt(0);
-    message.maxGas = object.maxGas !== undefined && object.maxGas !== null ? BigInt(object.maxGas.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: BlockParamsSDKType): BlockParams {
-    return {
-      maxBytes: object?.max_bytes,
-      maxGas: object?.max_gas
-    };
-  },
-  toSDK(message: BlockParams): BlockParamsSDKType {
-    const obj: any = {};
-    obj.max_bytes = message.maxBytes;
-    obj.max_gas = message.maxGas;
-    return obj;
-  },
-  fromAmino(object: BlockParamsAmino): BlockParams {
-    return {
-      maxBytes: BigInt(object.max_bytes),
-      maxGas: BigInt(object.max_gas)
-    };
-  },
-  toAmino(message: BlockParams): BlockParamsAmino {
-    const obj: any = {};
-    obj.max_bytes = message.maxBytes ? message.maxBytes.toString() : undefined;
-    obj.max_gas = message.maxGas ? message.maxGas.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BlockParamsAminoMsg): BlockParams {
-    return BlockParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BlockParamsProtoMsg): BlockParams {
-    return BlockParams.decode(message.value);
-  },
-  toProto(message: BlockParams): Uint8Array {
-    return BlockParams.encode(message).finish();
-  },
-  toProtoMsg(message: BlockParams): BlockParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.BlockParams",
-      value: BlockParams.encode(message).finish()
-    };
-  }
-};
-function createBaseLastCommitInfo(): LastCommitInfo {
-  return {
-    round: 0,
-    votes: []
-  };
-}
-export const LastCommitInfo = {
-  typeUrl: "/tendermint.abci.LastCommitInfo",
-  encode(message: LastCommitInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.round !== 0) {
-      writer.uint32(8).int32(message.round);
-    }
-    for (const v of message.votes) {
-      VoteInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LastCommitInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLastCommitInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.round = reader.int32();
-          break;
-        case 2:
-          message.votes.push(VoteInfo.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LastCommitInfo {
-    return {
-      round: isSet(object.round) ? Number(object.round) : 0,
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => VoteInfo.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: LastCommitInfo): unknown {
-    const obj: any = {};
-    message.round !== undefined && (obj.round = Math.round(message.round));
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? VoteInfo.toJSON(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LastCommitInfo>): LastCommitInfo {
-    const message = createBaseLastCommitInfo();
-    message.round = object.round ?? 0;
-    message.votes = object.votes?.map(e => VoteInfo.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: LastCommitInfoSDKType): LastCommitInfo {
-    return {
-      round: object?.round,
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => VoteInfo.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: LastCommitInfo): LastCommitInfoSDKType {
-    const obj: any = {};
-    obj.round = message.round;
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? VoteInfo.toSDK(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: LastCommitInfoAmino): LastCommitInfo {
-    return {
-      round: object.round,
-      votes: Array.isArray(object?.votes) ? object.votes.map((e: any) => VoteInfo.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: LastCommitInfo): LastCommitInfoAmino {
-    const obj: any = {};
-    obj.round = message.round;
-    if (message.votes) {
-      obj.votes = message.votes.map(e => e ? VoteInfo.toAmino(e) : undefined);
-    } else {
-      obj.votes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: LastCommitInfoAminoMsg): LastCommitInfo {
-    return LastCommitInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: LastCommitInfoProtoMsg): LastCommitInfo {
-    return LastCommitInfo.decode(message.value);
-  },
-  toProto(message: LastCommitInfo): Uint8Array {
-    return LastCommitInfo.encode(message).finish();
-  },
-  toProtoMsg(message: LastCommitInfo): LastCommitInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.LastCommitInfo",
-      value: LastCommitInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseEvent(): Event {
-  return {
-    type: "",
-    attributes: []
-  };
-}
-export const Event = {
-  typeUrl: "/tendermint.abci.Event",
-  encode(message: Event, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== "") {
-      writer.uint32(10).string(message.type);
-    }
-    for (const v of message.attributes) {
-      EventAttribute.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Event {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEvent();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = reader.string();
-          break;
-        case 2:
-          message.attributes.push(EventAttribute.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Event {
-    return {
-      type: isSet(object.type) ? String(object.type) : "",
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => EventAttribute.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Event): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = message.type);
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? EventAttribute.toJSON(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Event>): Event {
-    const message = createBaseEvent();
-    message.type = object.type ?? "";
-    message.attributes = object.attributes?.map(e => EventAttribute.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EventSDKType): Event {
-    return {
-      type: object?.type,
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => EventAttribute.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Event): EventSDKType {
-    const obj: any = {};
-    obj.type = message.type;
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? EventAttribute.toSDK(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EventAmino): Event {
-    return {
-      type: object.type,
-      attributes: Array.isArray(object?.attributes) ? object.attributes.map((e: any) => EventAttribute.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Event): EventAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    if (message.attributes) {
-      obj.attributes = message.attributes.map(e => e ? EventAttribute.toAmino(e) : undefined);
-    } else {
-      obj.attributes = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EventAminoMsg): Event {
-    return Event.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EventProtoMsg): Event {
-    return Event.decode(message.value);
-  },
-  toProto(message: Event): Uint8Array {
-    return Event.encode(message).finish();
-  },
-  toProtoMsg(message: Event): EventProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Event",
-      value: Event.encode(message).finish()
-    };
-  }
-};
-function createBaseEventAttribute(): EventAttribute {
-  return {
-    key: new Uint8Array(),
-    value: new Uint8Array(),
-    index: false
-  };
-}
-export const EventAttribute = {
-  typeUrl: "/tendermint.abci.EventAttribute",
-  encode(message: EventAttribute, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.value.length !== 0) {
-      writer.uint32(18).bytes(message.value);
-    }
-    if (message.index === true) {
-      writer.uint32(24).bool(message.index);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EventAttribute {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEventAttribute();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.value = reader.bytes();
-          break;
-        case 3:
-          message.index = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EventAttribute {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(),
-      index: isSet(object.index) ? Boolean(object.index) : false
-    };
-  },
-  toJSON(message: EventAttribute): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
-    message.index !== undefined && (obj.index = message.index);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EventAttribute>): EventAttribute {
-    const message = createBaseEventAttribute();
-    message.key = object.key ?? new Uint8Array();
-    message.value = object.value ?? new Uint8Array();
-    message.index = object.index ?? false;
-    return message;
-  },
-  fromSDK(object: EventAttributeSDKType): EventAttribute {
-    return {
-      key: object?.key,
-      value: object?.value,
-      index: object?.index
-    };
-  },
-  toSDK(message: EventAttribute): EventAttributeSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.index = message.index;
-    return obj;
-  },
-  fromAmino(object: EventAttributeAmino): EventAttribute {
-    return {
-      key: object.key,
-      value: object.value,
-      index: object.index
-    };
-  },
-  toAmino(message: EventAttribute): EventAttributeAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.value = message.value;
-    obj.index = message.index;
-    return obj;
-  },
-  fromAminoMsg(object: EventAttributeAminoMsg): EventAttribute {
-    return EventAttribute.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EventAttributeProtoMsg): EventAttribute {
-    return EventAttribute.decode(message.value);
-  },
-  toProto(message: EventAttribute): Uint8Array {
-    return EventAttribute.encode(message).finish();
-  },
-  toProtoMsg(message: EventAttribute): EventAttributeProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.EventAttribute",
-      value: EventAttribute.encode(message).finish()
-    };
-  }
-};
-function createBaseTxResult(): TxResult {
-  return {
-    height: BigInt(0),
-    index: 0,
-    tx: new Uint8Array(),
-    result: ResponseDeliverTx.fromPartial({})
-  };
-}
-export const TxResult = {
-  typeUrl: "/tendermint.abci.TxResult",
-  encode(message: TxResult, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.index !== 0) {
-      writer.uint32(16).uint32(message.index);
-    }
-    if (message.tx.length !== 0) {
-      writer.uint32(26).bytes(message.tx);
-    }
-    if (message.result !== undefined) {
-      ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxResult {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxResult();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.index = reader.uint32();
-          break;
-        case 3:
-          message.tx = reader.bytes();
-          break;
-        case 4:
-          message.result = ResponseDeliverTx.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxResult {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      index: isSet(object.index) ? Number(object.index) : 0,
-      tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array(),
-      result: isSet(object.result) ? ResponseDeliverTx.fromJSON(object.result) : undefined
-    };
-  },
-  toJSON(message: TxResult): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.index !== undefined && (obj.index = Math.round(message.index));
-    message.tx !== undefined && (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));
-    message.result !== undefined && (obj.result = message.result ? ResponseDeliverTx.toJSON(message.result) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxResult>): TxResult {
-    const message = createBaseTxResult();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.index = object.index ?? 0;
-    message.tx = object.tx ?? new Uint8Array();
-    message.result = object.result !== undefined && object.result !== null ? ResponseDeliverTx.fromPartial(object.result) : undefined;
-    return message;
-  },
-  fromSDK(object: TxResultSDKType): TxResult {
-    return {
-      height: object?.height,
-      index: object?.index,
-      tx: object?.tx,
-      result: object.result ? ResponseDeliverTx.fromSDK(object.result) : undefined
-    };
-  },
-  toSDK(message: TxResult): TxResultSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.index = message.index;
-    obj.tx = message.tx;
-    message.result !== undefined && (obj.result = message.result ? ResponseDeliverTx.toSDK(message.result) : undefined);
-    return obj;
-  },
-  fromAmino(object: TxResultAmino): TxResult {
-    return {
-      height: BigInt(object.height),
-      index: object.index,
-      tx: object.tx,
-      result: object?.result ? ResponseDeliverTx.fromAmino(object.result) : undefined
-    };
-  },
-  toAmino(message: TxResult): TxResultAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.index = message.index;
-    obj.tx = message.tx;
-    obj.result = message.result ? ResponseDeliverTx.toAmino(message.result) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: TxResultAminoMsg): TxResult {
-    return TxResult.fromAmino(object.value);
-  },
-  fromProtoMsg(message: TxResultProtoMsg): TxResult {
-    return TxResult.decode(message.value);
-  },
-  toProto(message: TxResult): Uint8Array {
-    return TxResult.encode(message).finish();
-  },
-  toProtoMsg(message: TxResult): TxResultProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.TxResult",
-      value: TxResult.encode(message).finish()
-    };
-  }
-};
-function createBaseValidator(): Validator {
-  return {
-    address: new Uint8Array(),
-    power: BigInt(0)
-  };
-}
-export const Validator = {
-  typeUrl: "/tendermint.abci.Validator",
-  encode(message: Validator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address.length !== 0) {
-      writer.uint32(10).bytes(message.address);
-    }
-    if (message.power !== BigInt(0)) {
-      writer.uint32(24).int64(message.power);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Validator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.bytes();
-          break;
-        case 3:
-          message.power = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Validator {
-    return {
-      address: isSet(object.address) ? bytesFromBase64(object.address) : new Uint8Array(),
-      power: isSet(object.power) ? BigInt(object.power.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Validator): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));
-    message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Validator>): Validator {
-    const message = createBaseValidator();
-    message.address = object.address ?? new Uint8Array();
-    message.power = object.power !== undefined && object.power !== null ? BigInt(object.power.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorSDKType): Validator {
-    return {
-      address: object?.address,
-      power: object?.power
-    };
-  },
-  toSDK(message: Validator): ValidatorSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.power = message.power;
-    return obj;
-  },
-  fromAmino(object: ValidatorAmino): Validator {
-    return {
-      address: object.address,
-      power: BigInt(object.power)
-    };
-  },
-  toAmino(message: Validator): ValidatorAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.power = message.power ? message.power.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAminoMsg): Validator {
-    return Validator.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValidatorProtoMsg): Validator {
-    return Validator.decode(message.value);
-  },
-  toProto(message: Validator): Uint8Array {
-    return Validator.encode(message).finish();
-  },
-  toProtoMsg(message: Validator): ValidatorProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Validator",
-      value: Validator.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorUpdate(): ValidatorUpdate {
-  return {
-    pubKey: PublicKey.fromPartial({}),
-    power: BigInt(0)
-  };
-}
-export const ValidatorUpdate = {
-  typeUrl: "/tendermint.abci.ValidatorUpdate",
-  encode(message: ValidatorUpdate, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pubKey !== undefined) {
-      PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.power !== BigInt(0)) {
-      writer.uint32(16).int64(message.power);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorUpdate {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorUpdate();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pubKey = PublicKey.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.power = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorUpdate {
-    return {
-      pubKey: isSet(object.pubKey) ? PublicKey.fromJSON(object.pubKey) : undefined,
-      power: isSet(object.power) ? BigInt(object.power.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ValidatorUpdate): unknown {
-    const obj: any = {};
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? PublicKey.toJSON(message.pubKey) : undefined);
-    message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorUpdate>): ValidatorUpdate {
-    const message = createBaseValidatorUpdate();
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined;
-    message.power = object.power !== undefined && object.power !== null ? BigInt(object.power.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorUpdateSDKType): ValidatorUpdate {
-    return {
-      pubKey: object.pub_key ? PublicKey.fromSDK(object.pub_key) : undefined,
-      power: object?.power
-    };
-  },
-  toSDK(message: ValidatorUpdate): ValidatorUpdateSDKType {
-    const obj: any = {};
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? PublicKey.toSDK(message.pubKey) : undefined);
-    obj.power = message.power;
-    return obj;
-  },
-  fromAmino(object: ValidatorUpdateAmino): ValidatorUpdate {
-    return {
-      pubKey: object?.pub_key ? PublicKey.fromAmino(object.pub_key) : undefined,
-      power: BigInt(object.power)
-    };
-  },
-  toAmino(message: ValidatorUpdate): ValidatorUpdateAmino {
-    const obj: any = {};
-    obj.pub_key = message.pubKey ? PublicKey.toAmino(message.pubKey) : undefined;
-    obj.power = message.power ? message.power.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorUpdateAminoMsg): ValidatorUpdate {
-    return ValidatorUpdate.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValidatorUpdateProtoMsg): ValidatorUpdate {
-    return ValidatorUpdate.decode(message.value);
-  },
-  toProto(message: ValidatorUpdate): Uint8Array {
-    return ValidatorUpdate.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorUpdate): ValidatorUpdateProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.ValidatorUpdate",
-      value: ValidatorUpdate.encode(message).finish()
-    };
-  }
-};
-function createBaseVoteInfo(): VoteInfo {
-  return {
-    validator: Validator.fromPartial({}),
-    signedLastBlock: false
-  };
-}
-export const VoteInfo = {
-  typeUrl: "/tendermint.abci.VoteInfo",
-  encode(message: VoteInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.validator !== undefined) {
-      Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.signedLastBlock === true) {
-      writer.uint32(16).bool(message.signedLastBlock);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): VoteInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVoteInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validator = Validator.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.signedLastBlock = reader.bool();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): VoteInfo {
-    return {
-      validator: isSet(object.validator) ? Validator.fromJSON(object.validator) : undefined,
-      signedLastBlock: isSet(object.signedLastBlock) ? Boolean(object.signedLastBlock) : false
-    };
-  },
-  toJSON(message: VoteInfo): unknown {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toJSON(message.validator) : undefined);
-    message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<VoteInfo>): VoteInfo {
-    const message = createBaseVoteInfo();
-    message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined;
-    message.signedLastBlock = object.signedLastBlock ?? false;
-    return message;
-  },
-  fromSDK(object: VoteInfoSDKType): VoteInfo {
-    return {
-      validator: object.validator ? Validator.fromSDK(object.validator) : undefined,
-      signedLastBlock: object?.signed_last_block
-    };
-  },
-  toSDK(message: VoteInfo): VoteInfoSDKType {
-    const obj: any = {};
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toSDK(message.validator) : undefined);
-    obj.signed_last_block = message.signedLastBlock;
-    return obj;
-  },
-  fromAmino(object: VoteInfoAmino): VoteInfo {
-    return {
-      validator: object?.validator ? Validator.fromAmino(object.validator) : undefined,
-      signedLastBlock: object.signed_last_block
-    };
-  },
-  toAmino(message: VoteInfo): VoteInfoAmino {
-    const obj: any = {};
-    obj.validator = message.validator ? Validator.toAmino(message.validator) : undefined;
-    obj.signed_last_block = message.signedLastBlock;
-    return obj;
-  },
-  fromAminoMsg(object: VoteInfoAminoMsg): VoteInfo {
-    return VoteInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: VoteInfoProtoMsg): VoteInfo {
-    return VoteInfo.decode(message.value);
-  },
-  toProto(message: VoteInfo): Uint8Array {
-    return VoteInfo.encode(message).finish();
-  },
-  toProtoMsg(message: VoteInfo): VoteInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.VoteInfo",
-      value: VoteInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseEvidence(): Evidence {
-  return {
-    type: 0,
-    validator: Validator.fromPartial({}),
-    height: BigInt(0),
-    time: new Date(),
-    totalVotingPower: BigInt(0)
-  };
-}
-export const Evidence = {
-  typeUrl: "/tendermint.abci.Evidence",
-  encode(message: Evidence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== 0) {
-      writer.uint32(8).int32(message.type);
-    }
-    if (message.validator !== undefined) {
-      Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(24).int64(message.height);
-    }
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();
-    }
-    if (message.totalVotingPower !== BigInt(0)) {
-      writer.uint32(40).int64(message.totalVotingPower);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Evidence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEvidence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = (reader.int32() as any);
-          break;
-        case 2:
-          message.validator = Validator.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.height = reader.int64();
-          break;
-        case 4:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.totalVotingPower = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Evidence {
-    return {
-      type: isSet(object.type) ? evidenceTypeFromJSON(object.type) : -1,
-      validator: isSet(object.validator) ? Validator.fromJSON(object.validator) : undefined,
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      totalVotingPower: isSet(object.totalVotingPower) ? BigInt(object.totalVotingPower.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Evidence): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toJSON(message.validator) : undefined);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.totalVotingPower !== undefined && (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Evidence>): Evidence {
-    const message = createBaseEvidence();
-    message.type = object.type ?? 0;
-    message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined;
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.time = object.time ?? undefined;
-    message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? BigInt(object.totalVotingPower.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EvidenceSDKType): Evidence {
-    return {
-      type: isSet(object.type) ? evidenceTypeFromJSON(object.type) : -1,
-      validator: object.validator ? Validator.fromSDK(object.validator) : undefined,
-      height: object?.height,
-      time: object.time ?? undefined,
-      totalVotingPower: object?.total_voting_power
-    };
-  },
-  toSDK(message: Evidence): EvidenceSDKType {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));
-    message.validator !== undefined && (obj.validator = message.validator ? Validator.toSDK(message.validator) : undefined);
-    obj.height = message.height;
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    obj.total_voting_power = message.totalVotingPower;
-    return obj;
-  },
-  fromAmino(object: EvidenceAmino): Evidence {
-    return {
-      type: isSet(object.type) ? evidenceTypeFromJSON(object.type) : -1,
-      validator: object?.validator ? Validator.fromAmino(object.validator) : undefined,
-      height: BigInt(object.height),
-      time: object.time,
-      totalVotingPower: BigInt(object.total_voting_power)
-    };
-  },
-  toAmino(message: Evidence): EvidenceAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    obj.validator = message.validator ? Validator.toAmino(message.validator) : undefined;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.time = message.time;
-    obj.total_voting_power = message.totalVotingPower ? message.totalVotingPower.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EvidenceAminoMsg): Evidence {
-    return Evidence.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EvidenceProtoMsg): Evidence {
-    return Evidence.decode(message.value);
-  },
-  toProto(message: Evidence): Uint8Array {
-    return Evidence.encode(message).finish();
-  },
-  toProtoMsg(message: Evidence): EvidenceProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Evidence",
-      value: Evidence.encode(message).finish()
-    };
-  }
-};
-function createBaseSnapshot(): Snapshot {
-  return {
-    height: BigInt(0),
-    format: 0,
-    chunks: 0,
-    hash: new Uint8Array(),
-    metadata: new Uint8Array()
-  };
-}
-export const Snapshot = {
-  typeUrl: "/tendermint.abci.Snapshot",
-  encode(message: Snapshot, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).uint64(message.height);
-    }
-    if (message.format !== 0) {
-      writer.uint32(16).uint32(message.format);
-    }
-    if (message.chunks !== 0) {
-      writer.uint32(24).uint32(message.chunks);
-    }
-    if (message.hash.length !== 0) {
-      writer.uint32(34).bytes(message.hash);
-    }
-    if (message.metadata.length !== 0) {
-      writer.uint32(42).bytes(message.metadata);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Snapshot {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSnapshot();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.uint64();
-          break;
-        case 2:
-          message.format = reader.uint32();
-          break;
-        case 3:
-          message.chunks = reader.uint32();
-          break;
-        case 4:
-          message.hash = reader.bytes();
-          break;
-        case 5:
-          message.metadata = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Snapshot {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      format: isSet(object.format) ? Number(object.format) : 0,
-      chunks: isSet(object.chunks) ? Number(object.chunks) : 0,
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(),
-      metadata: isSet(object.metadata) ? bytesFromBase64(object.metadata) : new Uint8Array()
-    };
-  },
-  toJSON(message: Snapshot): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.format !== undefined && (obj.format = Math.round(message.format));
-    message.chunks !== undefined && (obj.chunks = Math.round(message.chunks));
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    message.metadata !== undefined && (obj.metadata = base64FromBytes(message.metadata !== undefined ? message.metadata : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Snapshot>): Snapshot {
-    const message = createBaseSnapshot();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.format = object.format ?? 0;
-    message.chunks = object.chunks ?? 0;
-    message.hash = object.hash ?? new Uint8Array();
-    message.metadata = object.metadata ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: SnapshotSDKType): Snapshot {
-    return {
-      height: object?.height,
-      format: object?.format,
-      chunks: object?.chunks,
-      hash: object?.hash,
-      metadata: object?.metadata
-    };
-  },
-  toSDK(message: Snapshot): SnapshotSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.format = message.format;
-    obj.chunks = message.chunks;
-    obj.hash = message.hash;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAmino(object: SnapshotAmino): Snapshot {
-    return {
-      height: BigInt(object.height),
-      format: object.format,
-      chunks: object.chunks,
-      hash: object.hash,
-      metadata: object.metadata
-    };
-  },
-  toAmino(message: Snapshot): SnapshotAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.format = message.format;
-    obj.chunks = message.chunks;
-    obj.hash = message.hash;
-    obj.metadata = message.metadata;
-    return obj;
-  },
-  fromAminoMsg(object: SnapshotAminoMsg): Snapshot {
-    return Snapshot.fromAmino(object.value);
-  },
-  fromProtoMsg(message: SnapshotProtoMsg): Snapshot {
-    return Snapshot.decode(message.value);
-  },
-  toProto(message: Snapshot): Uint8Array {
-    return Snapshot.encode(message).finish();
-  },
-  toProtoMsg(message: Snapshot): SnapshotProtoMsg {
-    return {
-      typeUrl: "/tendermint.abci.Snapshot",
-      value: Snapshot.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/bundle.ts b/examples/injective/src/codegen/tendermint/bundle.ts
deleted file mode 100644
index 73f5ef24..00000000
--- a/examples/injective/src/codegen/tendermint/bundle.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as _183 from "./abci/types";
-import * as _184 from "./crypto/keys";
-import * as _185 from "./crypto/proof";
-import * as _186 from "./libs/bits/types";
-import * as _187 from "./p2p/types";
-import * as _188 from "./types/block";
-import * as _189 from "./types/evidence";
-import * as _190 from "./types/params";
-import * as _191 from "./types/types";
-import * as _192 from "./types/validator";
-import * as _193 from "./version/types";
-export namespace tendermint {
-  export const abci = {
-    ..._183
-  };
-  export const crypto = {
-    ..._184,
-    ..._185
-  };
-  export namespace libs {
-    export const bits = {
-      ..._186
-    };
-  }
-  export const p2p = {
-    ..._187
-  };
-  export const types = {
-    ..._188,
-    ..._189,
-    ..._190,
-    ..._191,
-    ..._192
-  };
-  export const version = {
-    ..._193
-  };
-}
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/crypto/keys.ts b/examples/injective/src/codegen/tendermint/crypto/keys.ts
deleted file mode 100644
index 2986ad20..00000000
--- a/examples/injective/src/codegen/tendermint/crypto/keys.ts
+++ /dev/null
@@ -1,120 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../helpers";
-/** PublicKey defines the keys available for use with Tendermint Validators */
-export interface PublicKey {
-  ed25519?: Uint8Array;
-  secp256k1?: Uint8Array;
-}
-export interface PublicKeyProtoMsg {
-  typeUrl: "/tendermint.crypto.PublicKey";
-  value: Uint8Array;
-}
-/** PublicKey defines the keys available for use with Tendermint Validators */
-export interface PublicKeyAmino {
-  ed25519?: Uint8Array;
-  secp256k1?: Uint8Array;
-}
-export interface PublicKeyAminoMsg {
-  type: "/tendermint.crypto.PublicKey";
-  value: PublicKeyAmino;
-}
-/** PublicKey defines the keys available for use with Tendermint Validators */
-export interface PublicKeySDKType {
-  ed25519?: Uint8Array;
-  secp256k1?: Uint8Array;
-}
-function createBasePublicKey(): PublicKey {
-  return {
-    ed25519: undefined,
-    secp256k1: undefined
-  };
-}
-export const PublicKey = {
-  typeUrl: "/tendermint.crypto.PublicKey",
-  encode(message: PublicKey, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.ed25519 !== undefined) {
-      writer.uint32(10).bytes(message.ed25519);
-    }
-    if (message.secp256k1 !== undefined) {
-      writer.uint32(18).bytes(message.secp256k1);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PublicKey {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePublicKey();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ed25519 = reader.bytes();
-          break;
-        case 2:
-          message.secp256k1 = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PublicKey {
-    return {
-      ed25519: isSet(object.ed25519) ? bytesFromBase64(object.ed25519) : undefined,
-      secp256k1: isSet(object.secp256k1) ? bytesFromBase64(object.secp256k1) : undefined
-    };
-  },
-  toJSON(message: PublicKey): unknown {
-    const obj: any = {};
-    message.ed25519 !== undefined && (obj.ed25519 = message.ed25519 !== undefined ? base64FromBytes(message.ed25519) : undefined);
-    message.secp256k1 !== undefined && (obj.secp256k1 = message.secp256k1 !== undefined ? base64FromBytes(message.secp256k1) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PublicKey>): PublicKey {
-    const message = createBasePublicKey();
-    message.ed25519 = object.ed25519 ?? undefined;
-    message.secp256k1 = object.secp256k1 ?? undefined;
-    return message;
-  },
-  fromSDK(object: PublicKeySDKType): PublicKey {
-    return {
-      ed25519: object?.ed25519,
-      secp256k1: object?.secp256k1
-    };
-  },
-  toSDK(message: PublicKey): PublicKeySDKType {
-    const obj: any = {};
-    obj.ed25519 = message.ed25519;
-    obj.secp256k1 = message.secp256k1;
-    return obj;
-  },
-  fromAmino(object: PublicKeyAmino): PublicKey {
-    return {
-      ed25519: object?.ed25519,
-      secp256k1: object?.secp256k1
-    };
-  },
-  toAmino(message: PublicKey): PublicKeyAmino {
-    const obj: any = {};
-    obj.ed25519 = message.ed25519;
-    obj.secp256k1 = message.secp256k1;
-    return obj;
-  },
-  fromAminoMsg(object: PublicKeyAminoMsg): PublicKey {
-    return PublicKey.fromAmino(object.value);
-  },
-  fromProtoMsg(message: PublicKeyProtoMsg): PublicKey {
-    return PublicKey.decode(message.value);
-  },
-  toProto(message: PublicKey): Uint8Array {
-    return PublicKey.encode(message).finish();
-  },
-  toProtoMsg(message: PublicKey): PublicKeyProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.PublicKey",
-      value: PublicKey.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/crypto/proof.ts b/examples/injective/src/codegen/tendermint/crypto/proof.ts
deleted file mode 100644
index d7f768b2..00000000
--- a/examples/injective/src/codegen/tendermint/crypto/proof.ts
+++ /dev/null
@@ -1,674 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial } from "../../helpers";
-export interface Proof {
-  total: bigint;
-  index: bigint;
-  leafHash: Uint8Array;
-  aunts: Uint8Array[];
-}
-export interface ProofProtoMsg {
-  typeUrl: "/tendermint.crypto.Proof";
-  value: Uint8Array;
-}
-export interface ProofAmino {
-  total: string;
-  index: string;
-  leaf_hash: Uint8Array;
-  aunts: Uint8Array[];
-}
-export interface ProofAminoMsg {
-  type: "/tendermint.crypto.Proof";
-  value: ProofAmino;
-}
-export interface ProofSDKType {
-  total: bigint;
-  index: bigint;
-  leaf_hash: Uint8Array;
-  aunts: Uint8Array[];
-}
-export interface ValueOp {
-  /** Encoded in ProofOp.Key. */
-  key: Uint8Array;
-  /** To encode in ProofOp.Data */
-  proof: Proof | undefined;
-}
-export interface ValueOpProtoMsg {
-  typeUrl: "/tendermint.crypto.ValueOp";
-  value: Uint8Array;
-}
-export interface ValueOpAmino {
-  /** Encoded in ProofOp.Key. */
-  key: Uint8Array;
-  /** To encode in ProofOp.Data */
-  proof?: ProofAmino | undefined;
-}
-export interface ValueOpAminoMsg {
-  type: "/tendermint.crypto.ValueOp";
-  value: ValueOpAmino;
-}
-export interface ValueOpSDKType {
-  key: Uint8Array;
-  proof: ProofSDKType | undefined;
-}
-export interface DominoOp {
-  key: string;
-  input: string;
-  output: string;
-}
-export interface DominoOpProtoMsg {
-  typeUrl: "/tendermint.crypto.DominoOp";
-  value: Uint8Array;
-}
-export interface DominoOpAmino {
-  key: string;
-  input: string;
-  output: string;
-}
-export interface DominoOpAminoMsg {
-  type: "/tendermint.crypto.DominoOp";
-  value: DominoOpAmino;
-}
-export interface DominoOpSDKType {
-  key: string;
-  input: string;
-  output: string;
-}
-/**
- * ProofOp defines an operation used for calculating Merkle root
- * The data could be arbitrary format, providing nessecary data
- * for example neighbouring node hash
- */
-export interface ProofOp {
-  type: string;
-  key: Uint8Array;
-  data: Uint8Array;
-}
-export interface ProofOpProtoMsg {
-  typeUrl: "/tendermint.crypto.ProofOp";
-  value: Uint8Array;
-}
-/**
- * ProofOp defines an operation used for calculating Merkle root
- * The data could be arbitrary format, providing nessecary data
- * for example neighbouring node hash
- */
-export interface ProofOpAmino {
-  type: string;
-  key: Uint8Array;
-  data: Uint8Array;
-}
-export interface ProofOpAminoMsg {
-  type: "/tendermint.crypto.ProofOp";
-  value: ProofOpAmino;
-}
-/**
- * ProofOp defines an operation used for calculating Merkle root
- * The data could be arbitrary format, providing nessecary data
- * for example neighbouring node hash
- */
-export interface ProofOpSDKType {
-  type: string;
-  key: Uint8Array;
-  data: Uint8Array;
-}
-/** ProofOps is Merkle proof defined by the list of ProofOps */
-export interface ProofOps {
-  ops: ProofOp[];
-}
-export interface ProofOpsProtoMsg {
-  typeUrl: "/tendermint.crypto.ProofOps";
-  value: Uint8Array;
-}
-/** ProofOps is Merkle proof defined by the list of ProofOps */
-export interface ProofOpsAmino {
-  ops: ProofOpAmino[];
-}
-export interface ProofOpsAminoMsg {
-  type: "/tendermint.crypto.ProofOps";
-  value: ProofOpsAmino;
-}
-/** ProofOps is Merkle proof defined by the list of ProofOps */
-export interface ProofOpsSDKType {
-  ops: ProofOpSDKType[];
-}
-function createBaseProof(): Proof {
-  return {
-    total: BigInt(0),
-    index: BigInt(0),
-    leafHash: new Uint8Array(),
-    aunts: []
-  };
-}
-export const Proof = {
-  typeUrl: "/tendermint.crypto.Proof",
-  encode(message: Proof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.total !== BigInt(0)) {
-      writer.uint32(8).int64(message.total);
-    }
-    if (message.index !== BigInt(0)) {
-      writer.uint32(16).int64(message.index);
-    }
-    if (message.leafHash.length !== 0) {
-      writer.uint32(26).bytes(message.leafHash);
-    }
-    for (const v of message.aunts) {
-      writer.uint32(34).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Proof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.total = reader.int64();
-          break;
-        case 2:
-          message.index = reader.int64();
-          break;
-        case 3:
-          message.leafHash = reader.bytes();
-          break;
-        case 4:
-          message.aunts.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Proof {
-    return {
-      total: isSet(object.total) ? BigInt(object.total.toString()) : BigInt(0),
-      index: isSet(object.index) ? BigInt(object.index.toString()) : BigInt(0),
-      leafHash: isSet(object.leafHash) ? bytesFromBase64(object.leafHash) : new Uint8Array(),
-      aunts: Array.isArray(object?.aunts) ? object.aunts.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: Proof): unknown {
-    const obj: any = {};
-    message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());
-    message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());
-    message.leafHash !== undefined && (obj.leafHash = base64FromBytes(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));
-    if (message.aunts) {
-      obj.aunts = message.aunts.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.aunts = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Proof>): Proof {
-    const message = createBaseProof();
-    message.total = object.total !== undefined && object.total !== null ? BigInt(object.total.toString()) : BigInt(0);
-    message.index = object.index !== undefined && object.index !== null ? BigInt(object.index.toString()) : BigInt(0);
-    message.leafHash = object.leafHash ?? new Uint8Array();
-    message.aunts = object.aunts?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ProofSDKType): Proof {
-    return {
-      total: object?.total,
-      index: object?.index,
-      leafHash: object?.leaf_hash,
-      aunts: Array.isArray(object?.aunts) ? object.aunts.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Proof): ProofSDKType {
-    const obj: any = {};
-    obj.total = message.total;
-    obj.index = message.index;
-    obj.leaf_hash = message.leafHash;
-    if (message.aunts) {
-      obj.aunts = message.aunts.map(e => e);
-    } else {
-      obj.aunts = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ProofAmino): Proof {
-    return {
-      total: BigInt(object.total),
-      index: BigInt(object.index),
-      leafHash: object.leaf_hash,
-      aunts: Array.isArray(object?.aunts) ? object.aunts.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Proof): ProofAmino {
-    const obj: any = {};
-    obj.total = message.total ? message.total.toString() : undefined;
-    obj.index = message.index ? message.index.toString() : undefined;
-    obj.leaf_hash = message.leafHash;
-    if (message.aunts) {
-      obj.aunts = message.aunts.map(e => e);
-    } else {
-      obj.aunts = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ProofAminoMsg): Proof {
-    return Proof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProofProtoMsg): Proof {
-    return Proof.decode(message.value);
-  },
-  toProto(message: Proof): Uint8Array {
-    return Proof.encode(message).finish();
-  },
-  toProtoMsg(message: Proof): ProofProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.Proof",
-      value: Proof.encode(message).finish()
-    };
-  }
-};
-function createBaseValueOp(): ValueOp {
-  return {
-    key: new Uint8Array(),
-    proof: Proof.fromPartial({})
-  };
-}
-export const ValueOp = {
-  typeUrl: "/tendermint.crypto.ValueOp",
-  encode(message: ValueOp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key.length !== 0) {
-      writer.uint32(10).bytes(message.key);
-    }
-    if (message.proof !== undefined) {
-      Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValueOp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValueOp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.bytes();
-          break;
-        case 2:
-          message.proof = Proof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValueOp {
-    return {
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined
-    };
-  },
-  toJSON(message: ValueOp): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValueOp>): ValueOp {
-    const message = createBaseValueOp();
-    message.key = object.key ?? new Uint8Array();
-    message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined;
-    return message;
-  },
-  fromSDK(object: ValueOpSDKType): ValueOp {
-    return {
-      key: object?.key,
-      proof: object.proof ? Proof.fromSDK(object.proof) : undefined
-    };
-  },
-  toSDK(message: ValueOp): ValueOpSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toSDK(message.proof) : undefined);
-    return obj;
-  },
-  fromAmino(object: ValueOpAmino): ValueOp {
-    return {
-      key: object.key,
-      proof: object?.proof ? Proof.fromAmino(object.proof) : undefined
-    };
-  },
-  toAmino(message: ValueOp): ValueOpAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.proof = message.proof ? Proof.toAmino(message.proof) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValueOpAminoMsg): ValueOp {
-    return ValueOp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValueOpProtoMsg): ValueOp {
-    return ValueOp.decode(message.value);
-  },
-  toProto(message: ValueOp): Uint8Array {
-    return ValueOp.encode(message).finish();
-  },
-  toProtoMsg(message: ValueOp): ValueOpProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.ValueOp",
-      value: ValueOp.encode(message).finish()
-    };
-  }
-};
-function createBaseDominoOp(): DominoOp {
-  return {
-    key: "",
-    input: "",
-    output: ""
-  };
-}
-export const DominoOp = {
-  typeUrl: "/tendermint.crypto.DominoOp",
-  encode(message: DominoOp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.key !== "") {
-      writer.uint32(10).string(message.key);
-    }
-    if (message.input !== "") {
-      writer.uint32(18).string(message.input);
-    }
-    if (message.output !== "") {
-      writer.uint32(26).string(message.output);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DominoOp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDominoOp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.key = reader.string();
-          break;
-        case 2:
-          message.input = reader.string();
-          break;
-        case 3:
-          message.output = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DominoOp {
-    return {
-      key: isSet(object.key) ? String(object.key) : "",
-      input: isSet(object.input) ? String(object.input) : "",
-      output: isSet(object.output) ? String(object.output) : ""
-    };
-  },
-  toJSON(message: DominoOp): unknown {
-    const obj: any = {};
-    message.key !== undefined && (obj.key = message.key);
-    message.input !== undefined && (obj.input = message.input);
-    message.output !== undefined && (obj.output = message.output);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DominoOp>): DominoOp {
-    const message = createBaseDominoOp();
-    message.key = object.key ?? "";
-    message.input = object.input ?? "";
-    message.output = object.output ?? "";
-    return message;
-  },
-  fromSDK(object: DominoOpSDKType): DominoOp {
-    return {
-      key: object?.key,
-      input: object?.input,
-      output: object?.output
-    };
-  },
-  toSDK(message: DominoOp): DominoOpSDKType {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.input = message.input;
-    obj.output = message.output;
-    return obj;
-  },
-  fromAmino(object: DominoOpAmino): DominoOp {
-    return {
-      key: object.key,
-      input: object.input,
-      output: object.output
-    };
-  },
-  toAmino(message: DominoOp): DominoOpAmino {
-    const obj: any = {};
-    obj.key = message.key;
-    obj.input = message.input;
-    obj.output = message.output;
-    return obj;
-  },
-  fromAminoMsg(object: DominoOpAminoMsg): DominoOp {
-    return DominoOp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DominoOpProtoMsg): DominoOp {
-    return DominoOp.decode(message.value);
-  },
-  toProto(message: DominoOp): Uint8Array {
-    return DominoOp.encode(message).finish();
-  },
-  toProtoMsg(message: DominoOp): DominoOpProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.DominoOp",
-      value: DominoOp.encode(message).finish()
-    };
-  }
-};
-function createBaseProofOp(): ProofOp {
-  return {
-    type: "",
-    key: new Uint8Array(),
-    data: new Uint8Array()
-  };
-}
-export const ProofOp = {
-  typeUrl: "/tendermint.crypto.ProofOp",
-  encode(message: ProofOp, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== "") {
-      writer.uint32(10).string(message.type);
-    }
-    if (message.key.length !== 0) {
-      writer.uint32(18).bytes(message.key);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(26).bytes(message.data);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ProofOp {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProofOp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = reader.string();
-          break;
-        case 2:
-          message.key = reader.bytes();
-          break;
-        case 3:
-          message.data = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ProofOp {
-    return {
-      type: isSet(object.type) ? String(object.type) : "",
-      key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array()
-    };
-  },
-  toJSON(message: ProofOp): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = message.type);
-    message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ProofOp>): ProofOp {
-    const message = createBaseProofOp();
-    message.type = object.type ?? "";
-    message.key = object.key ?? new Uint8Array();
-    message.data = object.data ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ProofOpSDKType): ProofOp {
-    return {
-      type: object?.type,
-      key: object?.key,
-      data: object?.data
-    };
-  },
-  toSDK(message: ProofOp): ProofOpSDKType {
-    const obj: any = {};
-    obj.type = message.type;
-    obj.key = message.key;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAmino(object: ProofOpAmino): ProofOp {
-    return {
-      type: object.type,
-      key: object.key,
-      data: object.data
-    };
-  },
-  toAmino(message: ProofOp): ProofOpAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    obj.key = message.key;
-    obj.data = message.data;
-    return obj;
-  },
-  fromAminoMsg(object: ProofOpAminoMsg): ProofOp {
-    return ProofOp.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProofOpProtoMsg): ProofOp {
-    return ProofOp.decode(message.value);
-  },
-  toProto(message: ProofOp): Uint8Array {
-    return ProofOp.encode(message).finish();
-  },
-  toProtoMsg(message: ProofOp): ProofOpProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.ProofOp",
-      value: ProofOp.encode(message).finish()
-    };
-  }
-};
-function createBaseProofOps(): ProofOps {
-  return {
-    ops: []
-  };
-}
-export const ProofOps = {
-  typeUrl: "/tendermint.crypto.ProofOps",
-  encode(message: ProofOps, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.ops) {
-      ProofOp.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ProofOps {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProofOps();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.ops.push(ProofOp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ProofOps {
-    return {
-      ops: Array.isArray(object?.ops) ? object.ops.map((e: any) => ProofOp.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: ProofOps): unknown {
-    const obj: any = {};
-    if (message.ops) {
-      obj.ops = message.ops.map(e => e ? ProofOp.toJSON(e) : undefined);
-    } else {
-      obj.ops = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ProofOps>): ProofOps {
-    const message = createBaseProofOps();
-    message.ops = object.ops?.map(e => ProofOp.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: ProofOpsSDKType): ProofOps {
-    return {
-      ops: Array.isArray(object?.ops) ? object.ops.map((e: any) => ProofOp.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: ProofOps): ProofOpsSDKType {
-    const obj: any = {};
-    if (message.ops) {
-      obj.ops = message.ops.map(e => e ? ProofOp.toSDK(e) : undefined);
-    } else {
-      obj.ops = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ProofOpsAmino): ProofOps {
-    return {
-      ops: Array.isArray(object?.ops) ? object.ops.map((e: any) => ProofOp.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: ProofOps): ProofOpsAmino {
-    const obj: any = {};
-    if (message.ops) {
-      obj.ops = message.ops.map(e => e ? ProofOp.toAmino(e) : undefined);
-    } else {
-      obj.ops = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ProofOpsAminoMsg): ProofOps {
-    return ProofOps.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProofOpsProtoMsg): ProofOps {
-    return ProofOps.decode(message.value);
-  },
-  toProto(message: ProofOps): Uint8Array {
-    return ProofOps.encode(message).finish();
-  },
-  toProtoMsg(message: ProofOps): ProofOpsProtoMsg {
-    return {
-      typeUrl: "/tendermint.crypto.ProofOps",
-      value: ProofOps.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/libs/bits/types.ts b/examples/injective/src/codegen/tendermint/libs/bits/types.ts
deleted file mode 100644
index 7a27be22..00000000
--- a/examples/injective/src/codegen/tendermint/libs/bits/types.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../../binary";
-import { isSet, DeepPartial } from "../../../helpers";
-export interface BitArray {
-  bits: bigint;
-  elems: bigint[];
-}
-export interface BitArrayProtoMsg {
-  typeUrl: "/tendermint.libs.bits.BitArray";
-  value: Uint8Array;
-}
-export interface BitArrayAmino {
-  bits: string;
-  elems: string[];
-}
-export interface BitArrayAminoMsg {
-  type: "/tendermint.libs.bits.BitArray";
-  value: BitArrayAmino;
-}
-export interface BitArraySDKType {
-  bits: bigint;
-  elems: bigint[];
-}
-function createBaseBitArray(): BitArray {
-  return {
-    bits: BigInt(0),
-    elems: []
-  };
-}
-export const BitArray = {
-  typeUrl: "/tendermint.libs.bits.BitArray",
-  encode(message: BitArray, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.bits !== BigInt(0)) {
-      writer.uint32(8).int64(message.bits);
-    }
-    writer.uint32(18).fork();
-    for (const v of message.elems) {
-      writer.uint64(v);
-    }
-    writer.ldelim();
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BitArray {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBitArray();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.bits = reader.int64();
-          break;
-        case 2:
-          if ((tag & 7) === 2) {
-            const end2 = reader.uint32() + reader.pos;
-            while (reader.pos < end2) {
-              message.elems.push(reader.uint64());
-            }
-          } else {
-            message.elems.push(reader.uint64());
-          }
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BitArray {
-    return {
-      bits: isSet(object.bits) ? BigInt(object.bits.toString()) : BigInt(0),
-      elems: Array.isArray(object?.elems) ? object.elems.map((e: any) => BigInt(e.toString())) : []
-    };
-  },
-  toJSON(message: BitArray): unknown {
-    const obj: any = {};
-    message.bits !== undefined && (obj.bits = (message.bits || BigInt(0)).toString());
-    if (message.elems) {
-      obj.elems = message.elems.map(e => (e || BigInt(0)).toString());
-    } else {
-      obj.elems = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BitArray>): BitArray {
-    const message = createBaseBitArray();
-    message.bits = object.bits !== undefined && object.bits !== null ? BigInt(object.bits.toString()) : BigInt(0);
-    message.elems = object.elems?.map(e => BigInt(e.toString())) || [];
-    return message;
-  },
-  fromSDK(object: BitArraySDKType): BitArray {
-    return {
-      bits: object?.bits,
-      elems: Array.isArray(object?.elems) ? object.elems.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: BitArray): BitArraySDKType {
-    const obj: any = {};
-    obj.bits = message.bits;
-    if (message.elems) {
-      obj.elems = message.elems.map(e => e);
-    } else {
-      obj.elems = [];
-    }
-    return obj;
-  },
-  fromAmino(object: BitArrayAmino): BitArray {
-    return {
-      bits: BigInt(object.bits),
-      elems: Array.isArray(object?.elems) ? object.elems.map((e: any) => BigInt(e)) : []
-    };
-  },
-  toAmino(message: BitArray): BitArrayAmino {
-    const obj: any = {};
-    obj.bits = message.bits ? message.bits.toString() : undefined;
-    if (message.elems) {
-      obj.elems = message.elems.map(e => e.toString());
-    } else {
-      obj.elems = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: BitArrayAminoMsg): BitArray {
-    return BitArray.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BitArrayProtoMsg): BitArray {
-    return BitArray.decode(message.value);
-  },
-  toProto(message: BitArray): Uint8Array {
-    return BitArray.encode(message).finish();
-  },
-  toProtoMsg(message: BitArray): BitArrayProtoMsg {
-    return {
-      typeUrl: "/tendermint.libs.bits.BitArray",
-      value: BitArray.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/p2p/types.ts b/examples/injective/src/codegen/tendermint/p2p/types.ts
deleted file mode 100644
index 929958a8..00000000
--- a/examples/injective/src/codegen/tendermint/p2p/types.ts
+++ /dev/null
@@ -1,760 +0,0 @@
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes, toTimestamp, fromTimestamp } from "../../helpers";
-export interface ProtocolVersion {
-  p2p: bigint;
-  block: bigint;
-  app: bigint;
-}
-export interface ProtocolVersionProtoMsg {
-  typeUrl: "/tendermint.p2p.ProtocolVersion";
-  value: Uint8Array;
-}
-export interface ProtocolVersionAmino {
-  p2p: string;
-  block: string;
-  app: string;
-}
-export interface ProtocolVersionAminoMsg {
-  type: "/tendermint.p2p.ProtocolVersion";
-  value: ProtocolVersionAmino;
-}
-export interface ProtocolVersionSDKType {
-  p2p: bigint;
-  block: bigint;
-  app: bigint;
-}
-export interface NodeInfo {
-  protocolVersion: ProtocolVersion | undefined;
-  nodeId: string;
-  listenAddr: string;
-  network: string;
-  version: string;
-  channels: Uint8Array;
-  moniker: string;
-  other: NodeInfoOther | undefined;
-}
-export interface NodeInfoProtoMsg {
-  typeUrl: "/tendermint.p2p.NodeInfo";
-  value: Uint8Array;
-}
-export interface NodeInfoAmino {
-  protocol_version?: ProtocolVersionAmino | undefined;
-  node_id: string;
-  listen_addr: string;
-  network: string;
-  version: string;
-  channels: Uint8Array;
-  moniker: string;
-  other?: NodeInfoOtherAmino | undefined;
-}
-export interface NodeInfoAminoMsg {
-  type: "/tendermint.p2p.NodeInfo";
-  value: NodeInfoAmino;
-}
-export interface NodeInfoSDKType {
-  protocol_version: ProtocolVersionSDKType | undefined;
-  node_id: string;
-  listen_addr: string;
-  network: string;
-  version: string;
-  channels: Uint8Array;
-  moniker: string;
-  other: NodeInfoOtherSDKType | undefined;
-}
-export interface NodeInfoOther {
-  txIndex: string;
-  rpcAddress: string;
-}
-export interface NodeInfoOtherProtoMsg {
-  typeUrl: "/tendermint.p2p.NodeInfoOther";
-  value: Uint8Array;
-}
-export interface NodeInfoOtherAmino {
-  tx_index: string;
-  rpc_address: string;
-}
-export interface NodeInfoOtherAminoMsg {
-  type: "/tendermint.p2p.NodeInfoOther";
-  value: NodeInfoOtherAmino;
-}
-export interface NodeInfoOtherSDKType {
-  tx_index: string;
-  rpc_address: string;
-}
-export interface PeerInfo {
-  id: string;
-  addressInfo: PeerAddressInfo[];
-  lastConnected: Date | undefined;
-}
-export interface PeerInfoProtoMsg {
-  typeUrl: "/tendermint.p2p.PeerInfo";
-  value: Uint8Array;
-}
-export interface PeerInfoAmino {
-  id: string;
-  address_info: PeerAddressInfoAmino[];
-  last_connected?: Date | undefined;
-}
-export interface PeerInfoAminoMsg {
-  type: "/tendermint.p2p.PeerInfo";
-  value: PeerInfoAmino;
-}
-export interface PeerInfoSDKType {
-  id: string;
-  address_info: PeerAddressInfoSDKType[];
-  last_connected: Date | undefined;
-}
-export interface PeerAddressInfo {
-  address: string;
-  lastDialSuccess: Date | undefined;
-  lastDialFailure: Date | undefined;
-  dialFailures: number;
-}
-export interface PeerAddressInfoProtoMsg {
-  typeUrl: "/tendermint.p2p.PeerAddressInfo";
-  value: Uint8Array;
-}
-export interface PeerAddressInfoAmino {
-  address: string;
-  last_dial_success?: Date | undefined;
-  last_dial_failure?: Date | undefined;
-  dial_failures: number;
-}
-export interface PeerAddressInfoAminoMsg {
-  type: "/tendermint.p2p.PeerAddressInfo";
-  value: PeerAddressInfoAmino;
-}
-export interface PeerAddressInfoSDKType {
-  address: string;
-  last_dial_success: Date | undefined;
-  last_dial_failure: Date | undefined;
-  dial_failures: number;
-}
-function createBaseProtocolVersion(): ProtocolVersion {
-  return {
-    p2p: BigInt(0),
-    block: BigInt(0),
-    app: BigInt(0)
-  };
-}
-export const ProtocolVersion = {
-  typeUrl: "/tendermint.p2p.ProtocolVersion",
-  encode(message: ProtocolVersion, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.p2p !== BigInt(0)) {
-      writer.uint32(8).uint64(message.p2p);
-    }
-    if (message.block !== BigInt(0)) {
-      writer.uint32(16).uint64(message.block);
-    }
-    if (message.app !== BigInt(0)) {
-      writer.uint32(24).uint64(message.app);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ProtocolVersion {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProtocolVersion();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.p2p = reader.uint64();
-          break;
-        case 2:
-          message.block = reader.uint64();
-          break;
-        case 3:
-          message.app = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ProtocolVersion {
-    return {
-      p2p: isSet(object.p2p) ? BigInt(object.p2p.toString()) : BigInt(0),
-      block: isSet(object.block) ? BigInt(object.block.toString()) : BigInt(0),
-      app: isSet(object.app) ? BigInt(object.app.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ProtocolVersion): unknown {
-    const obj: any = {};
-    message.p2p !== undefined && (obj.p2p = (message.p2p || BigInt(0)).toString());
-    message.block !== undefined && (obj.block = (message.block || BigInt(0)).toString());
-    message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ProtocolVersion>): ProtocolVersion {
-    const message = createBaseProtocolVersion();
-    message.p2p = object.p2p !== undefined && object.p2p !== null ? BigInt(object.p2p.toString()) : BigInt(0);
-    message.block = object.block !== undefined && object.block !== null ? BigInt(object.block.toString()) : BigInt(0);
-    message.app = object.app !== undefined && object.app !== null ? BigInt(object.app.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ProtocolVersionSDKType): ProtocolVersion {
-    return {
-      p2p: object?.p2p,
-      block: object?.block,
-      app: object?.app
-    };
-  },
-  toSDK(message: ProtocolVersion): ProtocolVersionSDKType {
-    const obj: any = {};
-    obj.p2p = message.p2p;
-    obj.block = message.block;
-    obj.app = message.app;
-    return obj;
-  },
-  fromAmino(object: ProtocolVersionAmino): ProtocolVersion {
-    return {
-      p2p: BigInt(object.p2p),
-      block: BigInt(object.block),
-      app: BigInt(object.app)
-    };
-  },
-  toAmino(message: ProtocolVersion): ProtocolVersionAmino {
-    const obj: any = {};
-    obj.p2p = message.p2p ? message.p2p.toString() : undefined;
-    obj.block = message.block ? message.block.toString() : undefined;
-    obj.app = message.app ? message.app.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ProtocolVersionAminoMsg): ProtocolVersion {
-    return ProtocolVersion.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProtocolVersionProtoMsg): ProtocolVersion {
-    return ProtocolVersion.decode(message.value);
-  },
-  toProto(message: ProtocolVersion): Uint8Array {
-    return ProtocolVersion.encode(message).finish();
-  },
-  toProtoMsg(message: ProtocolVersion): ProtocolVersionProtoMsg {
-    return {
-      typeUrl: "/tendermint.p2p.ProtocolVersion",
-      value: ProtocolVersion.encode(message).finish()
-    };
-  }
-};
-function createBaseNodeInfo(): NodeInfo {
-  return {
-    protocolVersion: ProtocolVersion.fromPartial({}),
-    nodeId: "",
-    listenAddr: "",
-    network: "",
-    version: "",
-    channels: new Uint8Array(),
-    moniker: "",
-    other: NodeInfoOther.fromPartial({})
-  };
-}
-export const NodeInfo = {
-  typeUrl: "/tendermint.p2p.NodeInfo",
-  encode(message: NodeInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.protocolVersion !== undefined) {
-      ProtocolVersion.encode(message.protocolVersion, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.nodeId !== "") {
-      writer.uint32(18).string(message.nodeId);
-    }
-    if (message.listenAddr !== "") {
-      writer.uint32(26).string(message.listenAddr);
-    }
-    if (message.network !== "") {
-      writer.uint32(34).string(message.network);
-    }
-    if (message.version !== "") {
-      writer.uint32(42).string(message.version);
-    }
-    if (message.channels.length !== 0) {
-      writer.uint32(50).bytes(message.channels);
-    }
-    if (message.moniker !== "") {
-      writer.uint32(58).string(message.moniker);
-    }
-    if (message.other !== undefined) {
-      NodeInfoOther.encode(message.other, writer.uint32(66).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NodeInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNodeInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.protocolVersion = ProtocolVersion.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.nodeId = reader.string();
-          break;
-        case 3:
-          message.listenAddr = reader.string();
-          break;
-        case 4:
-          message.network = reader.string();
-          break;
-        case 5:
-          message.version = reader.string();
-          break;
-        case 6:
-          message.channels = reader.bytes();
-          break;
-        case 7:
-          message.moniker = reader.string();
-          break;
-        case 8:
-          message.other = NodeInfoOther.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NodeInfo {
-    return {
-      protocolVersion: isSet(object.protocolVersion) ? ProtocolVersion.fromJSON(object.protocolVersion) : undefined,
-      nodeId: isSet(object.nodeId) ? String(object.nodeId) : "",
-      listenAddr: isSet(object.listenAddr) ? String(object.listenAddr) : "",
-      network: isSet(object.network) ? String(object.network) : "",
-      version: isSet(object.version) ? String(object.version) : "",
-      channels: isSet(object.channels) ? bytesFromBase64(object.channels) : new Uint8Array(),
-      moniker: isSet(object.moniker) ? String(object.moniker) : "",
-      other: isSet(object.other) ? NodeInfoOther.fromJSON(object.other) : undefined
-    };
-  },
-  toJSON(message: NodeInfo): unknown {
-    const obj: any = {};
-    message.protocolVersion !== undefined && (obj.protocolVersion = message.protocolVersion ? ProtocolVersion.toJSON(message.protocolVersion) : undefined);
-    message.nodeId !== undefined && (obj.nodeId = message.nodeId);
-    message.listenAddr !== undefined && (obj.listenAddr = message.listenAddr);
-    message.network !== undefined && (obj.network = message.network);
-    message.version !== undefined && (obj.version = message.version);
-    message.channels !== undefined && (obj.channels = base64FromBytes(message.channels !== undefined ? message.channels : new Uint8Array()));
-    message.moniker !== undefined && (obj.moniker = message.moniker);
-    message.other !== undefined && (obj.other = message.other ? NodeInfoOther.toJSON(message.other) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NodeInfo>): NodeInfo {
-    const message = createBaseNodeInfo();
-    message.protocolVersion = object.protocolVersion !== undefined && object.protocolVersion !== null ? ProtocolVersion.fromPartial(object.protocolVersion) : undefined;
-    message.nodeId = object.nodeId ?? "";
-    message.listenAddr = object.listenAddr ?? "";
-    message.network = object.network ?? "";
-    message.version = object.version ?? "";
-    message.channels = object.channels ?? new Uint8Array();
-    message.moniker = object.moniker ?? "";
-    message.other = object.other !== undefined && object.other !== null ? NodeInfoOther.fromPartial(object.other) : undefined;
-    return message;
-  },
-  fromSDK(object: NodeInfoSDKType): NodeInfo {
-    return {
-      protocolVersion: object.protocol_version ? ProtocolVersion.fromSDK(object.protocol_version) : undefined,
-      nodeId: object?.node_id,
-      listenAddr: object?.listen_addr,
-      network: object?.network,
-      version: object?.version,
-      channels: object?.channels,
-      moniker: object?.moniker,
-      other: object.other ? NodeInfoOther.fromSDK(object.other) : undefined
-    };
-  },
-  toSDK(message: NodeInfo): NodeInfoSDKType {
-    const obj: any = {};
-    message.protocolVersion !== undefined && (obj.protocol_version = message.protocolVersion ? ProtocolVersion.toSDK(message.protocolVersion) : undefined);
-    obj.node_id = message.nodeId;
-    obj.listen_addr = message.listenAddr;
-    obj.network = message.network;
-    obj.version = message.version;
-    obj.channels = message.channels;
-    obj.moniker = message.moniker;
-    message.other !== undefined && (obj.other = message.other ? NodeInfoOther.toSDK(message.other) : undefined);
-    return obj;
-  },
-  fromAmino(object: NodeInfoAmino): NodeInfo {
-    return {
-      protocolVersion: object?.protocol_version ? ProtocolVersion.fromAmino(object.protocol_version) : undefined,
-      nodeId: object.node_id,
-      listenAddr: object.listen_addr,
-      network: object.network,
-      version: object.version,
-      channels: object.channels,
-      moniker: object.moniker,
-      other: object?.other ? NodeInfoOther.fromAmino(object.other) : undefined
-    };
-  },
-  toAmino(message: NodeInfo): NodeInfoAmino {
-    const obj: any = {};
-    obj.protocol_version = message.protocolVersion ? ProtocolVersion.toAmino(message.protocolVersion) : undefined;
-    obj.node_id = message.nodeId;
-    obj.listen_addr = message.listenAddr;
-    obj.network = message.network;
-    obj.version = message.version;
-    obj.channels = message.channels;
-    obj.moniker = message.moniker;
-    obj.other = message.other ? NodeInfoOther.toAmino(message.other) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: NodeInfoAminoMsg): NodeInfo {
-    return NodeInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: NodeInfoProtoMsg): NodeInfo {
-    return NodeInfo.decode(message.value);
-  },
-  toProto(message: NodeInfo): Uint8Array {
-    return NodeInfo.encode(message).finish();
-  },
-  toProtoMsg(message: NodeInfo): NodeInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.p2p.NodeInfo",
-      value: NodeInfo.encode(message).finish()
-    };
-  }
-};
-function createBaseNodeInfoOther(): NodeInfoOther {
-  return {
-    txIndex: "",
-    rpcAddress: ""
-  };
-}
-export const NodeInfoOther = {
-  typeUrl: "/tendermint.p2p.NodeInfoOther",
-  encode(message: NodeInfoOther, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.txIndex !== "") {
-      writer.uint32(10).string(message.txIndex);
-    }
-    if (message.rpcAddress !== "") {
-      writer.uint32(18).string(message.rpcAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): NodeInfoOther {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseNodeInfoOther();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txIndex = reader.string();
-          break;
-        case 2:
-          message.rpcAddress = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): NodeInfoOther {
-    return {
-      txIndex: isSet(object.txIndex) ? String(object.txIndex) : "",
-      rpcAddress: isSet(object.rpcAddress) ? String(object.rpcAddress) : ""
-    };
-  },
-  toJSON(message: NodeInfoOther): unknown {
-    const obj: any = {};
-    message.txIndex !== undefined && (obj.txIndex = message.txIndex);
-    message.rpcAddress !== undefined && (obj.rpcAddress = message.rpcAddress);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<NodeInfoOther>): NodeInfoOther {
-    const message = createBaseNodeInfoOther();
-    message.txIndex = object.txIndex ?? "";
-    message.rpcAddress = object.rpcAddress ?? "";
-    return message;
-  },
-  fromSDK(object: NodeInfoOtherSDKType): NodeInfoOther {
-    return {
-      txIndex: object?.tx_index,
-      rpcAddress: object?.rpc_address
-    };
-  },
-  toSDK(message: NodeInfoOther): NodeInfoOtherSDKType {
-    const obj: any = {};
-    obj.tx_index = message.txIndex;
-    obj.rpc_address = message.rpcAddress;
-    return obj;
-  },
-  fromAmino(object: NodeInfoOtherAmino): NodeInfoOther {
-    return {
-      txIndex: object.tx_index,
-      rpcAddress: object.rpc_address
-    };
-  },
-  toAmino(message: NodeInfoOther): NodeInfoOtherAmino {
-    const obj: any = {};
-    obj.tx_index = message.txIndex;
-    obj.rpc_address = message.rpcAddress;
-    return obj;
-  },
-  fromAminoMsg(object: NodeInfoOtherAminoMsg): NodeInfoOther {
-    return NodeInfoOther.fromAmino(object.value);
-  },
-  fromProtoMsg(message: NodeInfoOtherProtoMsg): NodeInfoOther {
-    return NodeInfoOther.decode(message.value);
-  },
-  toProto(message: NodeInfoOther): Uint8Array {
-    return NodeInfoOther.encode(message).finish();
-  },
-  toProtoMsg(message: NodeInfoOther): NodeInfoOtherProtoMsg {
-    return {
-      typeUrl: "/tendermint.p2p.NodeInfoOther",
-      value: NodeInfoOther.encode(message).finish()
-    };
-  }
-};
-function createBasePeerInfo(): PeerInfo {
-  return {
-    id: "",
-    addressInfo: [],
-    lastConnected: new Date()
-  };
-}
-export const PeerInfo = {
-  typeUrl: "/tendermint.p2p.PeerInfo",
-  encode(message: PeerInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.id !== "") {
-      writer.uint32(10).string(message.id);
-    }
-    for (const v of message.addressInfo) {
-      PeerAddressInfo.encode(v!, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.lastConnected !== undefined) {
-      Timestamp.encode(toTimestamp(message.lastConnected), writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PeerInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeerInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.id = reader.string();
-          break;
-        case 2:
-          message.addressInfo.push(PeerAddressInfo.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.lastConnected = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PeerInfo {
-    return {
-      id: isSet(object.id) ? String(object.id) : "",
-      addressInfo: Array.isArray(object?.addressInfo) ? object.addressInfo.map((e: any) => PeerAddressInfo.fromJSON(e)) : [],
-      lastConnected: isSet(object.lastConnected) ? new Date(object.lastConnected) : undefined
-    };
-  },
-  toJSON(message: PeerInfo): unknown {
-    const obj: any = {};
-    message.id !== undefined && (obj.id = message.id);
-    if (message.addressInfo) {
-      obj.addressInfo = message.addressInfo.map(e => e ? PeerAddressInfo.toJSON(e) : undefined);
-    } else {
-      obj.addressInfo = [];
-    }
-    message.lastConnected !== undefined && (obj.lastConnected = message.lastConnected.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PeerInfo>): PeerInfo {
-    const message = createBasePeerInfo();
-    message.id = object.id ?? "";
-    message.addressInfo = object.addressInfo?.map(e => PeerAddressInfo.fromPartial(e)) || [];
-    message.lastConnected = object.lastConnected ?? undefined;
-    return message;
-  },
-  fromSDK(object: PeerInfoSDKType): PeerInfo {
-    return {
-      id: object?.id,
-      addressInfo: Array.isArray(object?.address_info) ? object.address_info.map((e: any) => PeerAddressInfo.fromSDK(e)) : [],
-      lastConnected: object.last_connected ?? undefined
-    };
-  },
-  toSDK(message: PeerInfo): PeerInfoSDKType {
-    const obj: any = {};
-    obj.id = message.id;
-    if (message.addressInfo) {
-      obj.address_info = message.addressInfo.map(e => e ? PeerAddressInfo.toSDK(e) : undefined);
-    } else {
-      obj.address_info = [];
-    }
-    message.lastConnected !== undefined && (obj.last_connected = message.lastConnected ?? undefined);
-    return obj;
-  },
-  fromAmino(object: PeerInfoAmino): PeerInfo {
-    return {
-      id: object.id,
-      addressInfo: Array.isArray(object?.address_info) ? object.address_info.map((e: any) => PeerAddressInfo.fromAmino(e)) : [],
-      lastConnected: object.last_connected
-    };
-  },
-  toAmino(message: PeerInfo): PeerInfoAmino {
-    const obj: any = {};
-    obj.id = message.id;
-    if (message.addressInfo) {
-      obj.address_info = message.addressInfo.map(e => e ? PeerAddressInfo.toAmino(e) : undefined);
-    } else {
-      obj.address_info = [];
-    }
-    obj.last_connected = message.lastConnected;
-    return obj;
-  },
-  fromAminoMsg(object: PeerInfoAminoMsg): PeerInfo {
-    return PeerInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: PeerInfoProtoMsg): PeerInfo {
-    return PeerInfo.decode(message.value);
-  },
-  toProto(message: PeerInfo): Uint8Array {
-    return PeerInfo.encode(message).finish();
-  },
-  toProtoMsg(message: PeerInfo): PeerInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.p2p.PeerInfo",
-      value: PeerInfo.encode(message).finish()
-    };
-  }
-};
-function createBasePeerAddressInfo(): PeerAddressInfo {
-  return {
-    address: "",
-    lastDialSuccess: new Date(),
-    lastDialFailure: new Date(),
-    dialFailures: 0
-  };
-}
-export const PeerAddressInfo = {
-  typeUrl: "/tendermint.p2p.PeerAddressInfo",
-  encode(message: PeerAddressInfo, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address !== "") {
-      writer.uint32(10).string(message.address);
-    }
-    if (message.lastDialSuccess !== undefined) {
-      Timestamp.encode(toTimestamp(message.lastDialSuccess), writer.uint32(18).fork()).ldelim();
-    }
-    if (message.lastDialFailure !== undefined) {
-      Timestamp.encode(toTimestamp(message.lastDialFailure), writer.uint32(26).fork()).ldelim();
-    }
-    if (message.dialFailures !== 0) {
-      writer.uint32(32).uint32(message.dialFailures);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PeerAddressInfo {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePeerAddressInfo();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.string();
-          break;
-        case 2:
-          message.lastDialSuccess = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 3:
-          message.lastDialFailure = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.dialFailures = reader.uint32();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PeerAddressInfo {
-    return {
-      address: isSet(object.address) ? String(object.address) : "",
-      lastDialSuccess: isSet(object.lastDialSuccess) ? new Date(object.lastDialSuccess) : undefined,
-      lastDialFailure: isSet(object.lastDialFailure) ? new Date(object.lastDialFailure) : undefined,
-      dialFailures: isSet(object.dialFailures) ? Number(object.dialFailures) : 0
-    };
-  },
-  toJSON(message: PeerAddressInfo): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = message.address);
-    message.lastDialSuccess !== undefined && (obj.lastDialSuccess = message.lastDialSuccess.toISOString());
-    message.lastDialFailure !== undefined && (obj.lastDialFailure = message.lastDialFailure.toISOString());
-    message.dialFailures !== undefined && (obj.dialFailures = Math.round(message.dialFailures));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PeerAddressInfo>): PeerAddressInfo {
-    const message = createBasePeerAddressInfo();
-    message.address = object.address ?? "";
-    message.lastDialSuccess = object.lastDialSuccess ?? undefined;
-    message.lastDialFailure = object.lastDialFailure ?? undefined;
-    message.dialFailures = object.dialFailures ?? 0;
-    return message;
-  },
-  fromSDK(object: PeerAddressInfoSDKType): PeerAddressInfo {
-    return {
-      address: object?.address,
-      lastDialSuccess: object.last_dial_success ?? undefined,
-      lastDialFailure: object.last_dial_failure ?? undefined,
-      dialFailures: object?.dial_failures
-    };
-  },
-  toSDK(message: PeerAddressInfo): PeerAddressInfoSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.lastDialSuccess !== undefined && (obj.last_dial_success = message.lastDialSuccess ?? undefined);
-    message.lastDialFailure !== undefined && (obj.last_dial_failure = message.lastDialFailure ?? undefined);
-    obj.dial_failures = message.dialFailures;
-    return obj;
-  },
-  fromAmino(object: PeerAddressInfoAmino): PeerAddressInfo {
-    return {
-      address: object.address,
-      lastDialSuccess: object.last_dial_success,
-      lastDialFailure: object.last_dial_failure,
-      dialFailures: object.dial_failures
-    };
-  },
-  toAmino(message: PeerAddressInfo): PeerAddressInfoAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.last_dial_success = message.lastDialSuccess;
-    obj.last_dial_failure = message.lastDialFailure;
-    obj.dial_failures = message.dialFailures;
-    return obj;
-  },
-  fromAminoMsg(object: PeerAddressInfoAminoMsg): PeerAddressInfo {
-    return PeerAddressInfo.fromAmino(object.value);
-  },
-  fromProtoMsg(message: PeerAddressInfoProtoMsg): PeerAddressInfo {
-    return PeerAddressInfo.decode(message.value);
-  },
-  toProto(message: PeerAddressInfo): Uint8Array {
-    return PeerAddressInfo.encode(message).finish();
-  },
-  toProtoMsg(message: PeerAddressInfo): PeerAddressInfoProtoMsg {
-    return {
-      typeUrl: "/tendermint.p2p.PeerAddressInfo",
-      value: PeerAddressInfo.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/types/block.ts b/examples/injective/src/codegen/tendermint/types/block.ts
deleted file mode 100644
index 92b1e631..00000000
--- a/examples/injective/src/codegen/tendermint/types/block.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import { Header, HeaderAmino, HeaderSDKType, Data, DataAmino, DataSDKType, Commit, CommitAmino, CommitSDKType } from "./types";
-import { EvidenceList, EvidenceListAmino, EvidenceListSDKType } from "./evidence";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-export interface Block {
-  header: Header | undefined;
-  data: Data | undefined;
-  evidence: EvidenceList | undefined;
-  lastCommit: Commit | undefined;
-}
-export interface BlockProtoMsg {
-  typeUrl: "/tendermint.types.Block";
-  value: Uint8Array;
-}
-export interface BlockAmino {
-  header?: HeaderAmino | undefined;
-  data?: DataAmino | undefined;
-  evidence?: EvidenceListAmino | undefined;
-  last_commit?: CommitAmino | undefined;
-}
-export interface BlockAminoMsg {
-  type: "/tendermint.types.Block";
-  value: BlockAmino;
-}
-export interface BlockSDKType {
-  header: HeaderSDKType | undefined;
-  data: DataSDKType | undefined;
-  evidence: EvidenceListSDKType | undefined;
-  last_commit: CommitSDKType | undefined;
-}
-function createBaseBlock(): Block {
-  return {
-    header: Header.fromPartial({}),
-    data: Data.fromPartial({}),
-    evidence: EvidenceList.fromPartial({}),
-    lastCommit: Commit.fromPartial({})
-  };
-}
-export const Block = {
-  typeUrl: "/tendermint.types.Block",
-  encode(message: Block, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.header !== undefined) {
-      Header.encode(message.header, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.data !== undefined) {
-      Data.encode(message.data, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.evidence !== undefined) {
-      EvidenceList.encode(message.evidence, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.lastCommit !== undefined) {
-      Commit.encode(message.lastCommit, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Block {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.header = Header.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.data = Data.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.evidence = EvidenceList.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.lastCommit = Commit.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Block {
-    return {
-      header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,
-      data: isSet(object.data) ? Data.fromJSON(object.data) : undefined,
-      evidence: isSet(object.evidence) ? EvidenceList.fromJSON(object.evidence) : undefined,
-      lastCommit: isSet(object.lastCommit) ? Commit.fromJSON(object.lastCommit) : undefined
-    };
-  },
-  toJSON(message: Block): unknown {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toJSON(message.header) : undefined);
-    message.data !== undefined && (obj.data = message.data ? Data.toJSON(message.data) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceList.toJSON(message.evidence) : undefined);
-    message.lastCommit !== undefined && (obj.lastCommit = message.lastCommit ? Commit.toJSON(message.lastCommit) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Block>): Block {
-    const message = createBaseBlock();
-    message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined;
-    message.data = object.data !== undefined && object.data !== null ? Data.fromPartial(object.data) : undefined;
-    message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceList.fromPartial(object.evidence) : undefined;
-    message.lastCommit = object.lastCommit !== undefined && object.lastCommit !== null ? Commit.fromPartial(object.lastCommit) : undefined;
-    return message;
-  },
-  fromSDK(object: BlockSDKType): Block {
-    return {
-      header: object.header ? Header.fromSDK(object.header) : undefined,
-      data: object.data ? Data.fromSDK(object.data) : undefined,
-      evidence: object.evidence ? EvidenceList.fromSDK(object.evidence) : undefined,
-      lastCommit: object.last_commit ? Commit.fromSDK(object.last_commit) : undefined
-    };
-  },
-  toSDK(message: Block): BlockSDKType {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toSDK(message.header) : undefined);
-    message.data !== undefined && (obj.data = message.data ? Data.toSDK(message.data) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceList.toSDK(message.evidence) : undefined);
-    message.lastCommit !== undefined && (obj.last_commit = message.lastCommit ? Commit.toSDK(message.lastCommit) : undefined);
-    return obj;
-  },
-  fromAmino(object: BlockAmino): Block {
-    return {
-      header: object?.header ? Header.fromAmino(object.header) : undefined,
-      data: object?.data ? Data.fromAmino(object.data) : undefined,
-      evidence: object?.evidence ? EvidenceList.fromAmino(object.evidence) : undefined,
-      lastCommit: object?.last_commit ? Commit.fromAmino(object.last_commit) : undefined
-    };
-  },
-  toAmino(message: Block): BlockAmino {
-    const obj: any = {};
-    obj.header = message.header ? Header.toAmino(message.header) : undefined;
-    obj.data = message.data ? Data.toAmino(message.data) : undefined;
-    obj.evidence = message.evidence ? EvidenceList.toAmino(message.evidence) : undefined;
-    obj.last_commit = message.lastCommit ? Commit.toAmino(message.lastCommit) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BlockAminoMsg): Block {
-    return Block.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BlockProtoMsg): Block {
-    return Block.decode(message.value);
-  },
-  toProto(message: Block): Uint8Array {
-    return Block.encode(message).finish();
-  },
-  toProtoMsg(message: Block): BlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Block",
-      value: Block.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/types/evidence.ts b/examples/injective/src/codegen/tendermint/types/evidence.ts
deleted file mode 100644
index 20a67873..00000000
--- a/examples/injective/src/codegen/tendermint/types/evidence.ts
+++ /dev/null
@@ -1,580 +0,0 @@
-import { Vote, VoteAmino, VoteSDKType, LightBlock, LightBlockAmino, LightBlockSDKType } from "./types";
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { Validator, ValidatorAmino, ValidatorSDKType } from "./validator";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial, toTimestamp, fromTimestamp } from "../../helpers";
-export interface Evidence {
-  duplicateVoteEvidence?: DuplicateVoteEvidence | undefined;
-  lightClientAttackEvidence?: LightClientAttackEvidence | undefined;
-}
-export interface EvidenceProtoMsg {
-  typeUrl: "/tendermint.types.Evidence";
-  value: Uint8Array;
-}
-export interface EvidenceAmino {
-  duplicate_vote_evidence?: DuplicateVoteEvidenceAmino | undefined;
-  light_client_attack_evidence?: LightClientAttackEvidenceAmino | undefined;
-}
-export interface EvidenceAminoMsg {
-  type: "/tendermint.types.Evidence";
-  value: EvidenceAmino;
-}
-export interface EvidenceSDKType {
-  duplicate_vote_evidence?: DuplicateVoteEvidenceSDKType | undefined;
-  light_client_attack_evidence?: LightClientAttackEvidenceSDKType | undefined;
-}
-/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */
-export interface DuplicateVoteEvidence {
-  voteA: Vote | undefined;
-  voteB: Vote | undefined;
-  totalVotingPower: bigint;
-  validatorPower: bigint;
-  timestamp: Date | undefined;
-}
-export interface DuplicateVoteEvidenceProtoMsg {
-  typeUrl: "/tendermint.types.DuplicateVoteEvidence";
-  value: Uint8Array;
-}
-/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */
-export interface DuplicateVoteEvidenceAmino {
-  vote_a?: VoteAmino | undefined;
-  vote_b?: VoteAmino | undefined;
-  total_voting_power: string;
-  validator_power: string;
-  timestamp?: Date | undefined;
-}
-export interface DuplicateVoteEvidenceAminoMsg {
-  type: "/tendermint.types.DuplicateVoteEvidence";
-  value: DuplicateVoteEvidenceAmino;
-}
-/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */
-export interface DuplicateVoteEvidenceSDKType {
-  vote_a: VoteSDKType | undefined;
-  vote_b: VoteSDKType | undefined;
-  total_voting_power: bigint;
-  validator_power: bigint;
-  timestamp: Date | undefined;
-}
-/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */
-export interface LightClientAttackEvidence {
-  conflictingBlock: LightBlock | undefined;
-  commonHeight: bigint;
-  byzantineValidators: Validator[];
-  totalVotingPower: bigint;
-  timestamp: Date | undefined;
-}
-export interface LightClientAttackEvidenceProtoMsg {
-  typeUrl: "/tendermint.types.LightClientAttackEvidence";
-  value: Uint8Array;
-}
-/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */
-export interface LightClientAttackEvidenceAmino {
-  conflicting_block?: LightBlockAmino | undefined;
-  common_height: string;
-  byzantine_validators: ValidatorAmino[];
-  total_voting_power: string;
-  timestamp?: Date | undefined;
-}
-export interface LightClientAttackEvidenceAminoMsg {
-  type: "/tendermint.types.LightClientAttackEvidence";
-  value: LightClientAttackEvidenceAmino;
-}
-/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */
-export interface LightClientAttackEvidenceSDKType {
-  conflicting_block: LightBlockSDKType | undefined;
-  common_height: bigint;
-  byzantine_validators: ValidatorSDKType[];
-  total_voting_power: bigint;
-  timestamp: Date | undefined;
-}
-export interface EvidenceList {
-  evidence: Evidence[];
-}
-export interface EvidenceListProtoMsg {
-  typeUrl: "/tendermint.types.EvidenceList";
-  value: Uint8Array;
-}
-export interface EvidenceListAmino {
-  evidence: EvidenceAmino[];
-}
-export interface EvidenceListAminoMsg {
-  type: "/tendermint.types.EvidenceList";
-  value: EvidenceListAmino;
-}
-export interface EvidenceListSDKType {
-  evidence: EvidenceSDKType[];
-}
-function createBaseEvidence(): Evidence {
-  return {
-    duplicateVoteEvidence: undefined,
-    lightClientAttackEvidence: undefined
-  };
-}
-export const Evidence = {
-  typeUrl: "/tendermint.types.Evidence",
-  encode(message: Evidence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.duplicateVoteEvidence !== undefined) {
-      DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.lightClientAttackEvidence !== undefined) {
-      LightClientAttackEvidence.encode(message.lightClientAttackEvidence, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Evidence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEvidence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.duplicateVoteEvidence = DuplicateVoteEvidence.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.lightClientAttackEvidence = LightClientAttackEvidence.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Evidence {
-    return {
-      duplicateVoteEvidence: isSet(object.duplicateVoteEvidence) ? DuplicateVoteEvidence.fromJSON(object.duplicateVoteEvidence) : undefined,
-      lightClientAttackEvidence: isSet(object.lightClientAttackEvidence) ? LightClientAttackEvidence.fromJSON(object.lightClientAttackEvidence) : undefined
-    };
-  },
-  toJSON(message: Evidence): unknown {
-    const obj: any = {};
-    message.duplicateVoteEvidence !== undefined && (obj.duplicateVoteEvidence = message.duplicateVoteEvidence ? DuplicateVoteEvidence.toJSON(message.duplicateVoteEvidence) : undefined);
-    message.lightClientAttackEvidence !== undefined && (obj.lightClientAttackEvidence = message.lightClientAttackEvidence ? LightClientAttackEvidence.toJSON(message.lightClientAttackEvidence) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Evidence>): Evidence {
-    const message = createBaseEvidence();
-    message.duplicateVoteEvidence = object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null ? DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence) : undefined;
-    message.lightClientAttackEvidence = object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null ? LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence) : undefined;
-    return message;
-  },
-  fromSDK(object: EvidenceSDKType): Evidence {
-    return {
-      duplicateVoteEvidence: object.duplicate_vote_evidence ? DuplicateVoteEvidence.fromSDK(object.duplicate_vote_evidence) : undefined,
-      lightClientAttackEvidence: object.light_client_attack_evidence ? LightClientAttackEvidence.fromSDK(object.light_client_attack_evidence) : undefined
-    };
-  },
-  toSDK(message: Evidence): EvidenceSDKType {
-    const obj: any = {};
-    message.duplicateVoteEvidence !== undefined && (obj.duplicate_vote_evidence = message.duplicateVoteEvidence ? DuplicateVoteEvidence.toSDK(message.duplicateVoteEvidence) : undefined);
-    message.lightClientAttackEvidence !== undefined && (obj.light_client_attack_evidence = message.lightClientAttackEvidence ? LightClientAttackEvidence.toSDK(message.lightClientAttackEvidence) : undefined);
-    return obj;
-  },
-  fromAmino(object: EvidenceAmino): Evidence {
-    return {
-      duplicateVoteEvidence: object?.duplicate_vote_evidence ? DuplicateVoteEvidence.fromAmino(object.duplicate_vote_evidence) : undefined,
-      lightClientAttackEvidence: object?.light_client_attack_evidence ? LightClientAttackEvidence.fromAmino(object.light_client_attack_evidence) : undefined
-    };
-  },
-  toAmino(message: Evidence): EvidenceAmino {
-    const obj: any = {};
-    obj.duplicate_vote_evidence = message.duplicateVoteEvidence ? DuplicateVoteEvidence.toAmino(message.duplicateVoteEvidence) : undefined;
-    obj.light_client_attack_evidence = message.lightClientAttackEvidence ? LightClientAttackEvidence.toAmino(message.lightClientAttackEvidence) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EvidenceAminoMsg): Evidence {
-    return Evidence.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EvidenceProtoMsg): Evidence {
-    return Evidence.decode(message.value);
-  },
-  toProto(message: Evidence): Uint8Array {
-    return Evidence.encode(message).finish();
-  },
-  toProtoMsg(message: Evidence): EvidenceProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Evidence",
-      value: Evidence.encode(message).finish()
-    };
-  }
-};
-function createBaseDuplicateVoteEvidence(): DuplicateVoteEvidence {
-  return {
-    voteA: Vote.fromPartial({}),
-    voteB: Vote.fromPartial({}),
-    totalVotingPower: BigInt(0),
-    validatorPower: BigInt(0),
-    timestamp: new Date()
-  };
-}
-export const DuplicateVoteEvidence = {
-  typeUrl: "/tendermint.types.DuplicateVoteEvidence",
-  encode(message: DuplicateVoteEvidence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.voteA !== undefined) {
-      Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.voteB !== undefined) {
-      Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.totalVotingPower !== BigInt(0)) {
-      writer.uint32(24).int64(message.totalVotingPower);
-    }
-    if (message.validatorPower !== BigInt(0)) {
-      writer.uint32(32).int64(message.validatorPower);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): DuplicateVoteEvidence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseDuplicateVoteEvidence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.voteA = Vote.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.voteB = Vote.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.totalVotingPower = reader.int64();
-          break;
-        case 4:
-          message.validatorPower = reader.int64();
-          break;
-        case 5:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): DuplicateVoteEvidence {
-    return {
-      voteA: isSet(object.voteA) ? Vote.fromJSON(object.voteA) : undefined,
-      voteB: isSet(object.voteB) ? Vote.fromJSON(object.voteB) : undefined,
-      totalVotingPower: isSet(object.totalVotingPower) ? BigInt(object.totalVotingPower.toString()) : BigInt(0),
-      validatorPower: isSet(object.validatorPower) ? BigInt(object.validatorPower.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: DuplicateVoteEvidence): unknown {
-    const obj: any = {};
-    message.voteA !== undefined && (obj.voteA = message.voteA ? Vote.toJSON(message.voteA) : undefined);
-    message.voteB !== undefined && (obj.voteB = message.voteB ? Vote.toJSON(message.voteB) : undefined);
-    message.totalVotingPower !== undefined && (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());
-    message.validatorPower !== undefined && (obj.validatorPower = (message.validatorPower || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<DuplicateVoteEvidence>): DuplicateVoteEvidence {
-    const message = createBaseDuplicateVoteEvidence();
-    message.voteA = object.voteA !== undefined && object.voteA !== null ? Vote.fromPartial(object.voteA) : undefined;
-    message.voteB = object.voteB !== undefined && object.voteB !== null ? Vote.fromPartial(object.voteB) : undefined;
-    message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? BigInt(object.totalVotingPower.toString()) : BigInt(0);
-    message.validatorPower = object.validatorPower !== undefined && object.validatorPower !== null ? BigInt(object.validatorPower.toString()) : BigInt(0);
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: DuplicateVoteEvidenceSDKType): DuplicateVoteEvidence {
-    return {
-      voteA: object.vote_a ? Vote.fromSDK(object.vote_a) : undefined,
-      voteB: object.vote_b ? Vote.fromSDK(object.vote_b) : undefined,
-      totalVotingPower: object?.total_voting_power,
-      validatorPower: object?.validator_power,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: DuplicateVoteEvidence): DuplicateVoteEvidenceSDKType {
-    const obj: any = {};
-    message.voteA !== undefined && (obj.vote_a = message.voteA ? Vote.toSDK(message.voteA) : undefined);
-    message.voteB !== undefined && (obj.vote_b = message.voteB ? Vote.toSDK(message.voteB) : undefined);
-    obj.total_voting_power = message.totalVotingPower;
-    obj.validator_power = message.validatorPower;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: DuplicateVoteEvidenceAmino): DuplicateVoteEvidence {
-    return {
-      voteA: object?.vote_a ? Vote.fromAmino(object.vote_a) : undefined,
-      voteB: object?.vote_b ? Vote.fromAmino(object.vote_b) : undefined,
-      totalVotingPower: BigInt(object.total_voting_power),
-      validatorPower: BigInt(object.validator_power),
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: DuplicateVoteEvidence): DuplicateVoteEvidenceAmino {
-    const obj: any = {};
-    obj.vote_a = message.voteA ? Vote.toAmino(message.voteA) : undefined;
-    obj.vote_b = message.voteB ? Vote.toAmino(message.voteB) : undefined;
-    obj.total_voting_power = message.totalVotingPower ? message.totalVotingPower.toString() : undefined;
-    obj.validator_power = message.validatorPower ? message.validatorPower.toString() : undefined;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: DuplicateVoteEvidenceAminoMsg): DuplicateVoteEvidence {
-    return DuplicateVoteEvidence.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DuplicateVoteEvidenceProtoMsg): DuplicateVoteEvidence {
-    return DuplicateVoteEvidence.decode(message.value);
-  },
-  toProto(message: DuplicateVoteEvidence): Uint8Array {
-    return DuplicateVoteEvidence.encode(message).finish();
-  },
-  toProtoMsg(message: DuplicateVoteEvidence): DuplicateVoteEvidenceProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.DuplicateVoteEvidence",
-      value: DuplicateVoteEvidence.encode(message).finish()
-    };
-  }
-};
-function createBaseLightClientAttackEvidence(): LightClientAttackEvidence {
-  return {
-    conflictingBlock: LightBlock.fromPartial({}),
-    commonHeight: BigInt(0),
-    byzantineValidators: [],
-    totalVotingPower: BigInt(0),
-    timestamp: new Date()
-  };
-}
-export const LightClientAttackEvidence = {
-  typeUrl: "/tendermint.types.LightClientAttackEvidence",
-  encode(message: LightClientAttackEvidence, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.conflictingBlock !== undefined) {
-      LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.commonHeight !== BigInt(0)) {
-      writer.uint32(16).int64(message.commonHeight);
-    }
-    for (const v of message.byzantineValidators) {
-      Validator.encode(v!, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.totalVotingPower !== BigInt(0)) {
-      writer.uint32(32).int64(message.totalVotingPower);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LightClientAttackEvidence {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLightClientAttackEvidence();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.conflictingBlock = LightBlock.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.commonHeight = reader.int64();
-          break;
-        case 3:
-          message.byzantineValidators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.totalVotingPower = reader.int64();
-          break;
-        case 5:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LightClientAttackEvidence {
-    return {
-      conflictingBlock: isSet(object.conflictingBlock) ? LightBlock.fromJSON(object.conflictingBlock) : undefined,
-      commonHeight: isSet(object.commonHeight) ? BigInt(object.commonHeight.toString()) : BigInt(0),
-      byzantineValidators: Array.isArray(object?.byzantineValidators) ? object.byzantineValidators.map((e: any) => Validator.fromJSON(e)) : [],
-      totalVotingPower: isSet(object.totalVotingPower) ? BigInt(object.totalVotingPower.toString()) : BigInt(0),
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined
-    };
-  },
-  toJSON(message: LightClientAttackEvidence): unknown {
-    const obj: any = {};
-    message.conflictingBlock !== undefined && (obj.conflictingBlock = message.conflictingBlock ? LightBlock.toJSON(message.conflictingBlock) : undefined);
-    message.commonHeight !== undefined && (obj.commonHeight = (message.commonHeight || BigInt(0)).toString());
-    if (message.byzantineValidators) {
-      obj.byzantineValidators = message.byzantineValidators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.byzantineValidators = [];
-    }
-    message.totalVotingPower !== undefined && (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LightClientAttackEvidence>): LightClientAttackEvidence {
-    const message = createBaseLightClientAttackEvidence();
-    message.conflictingBlock = object.conflictingBlock !== undefined && object.conflictingBlock !== null ? LightBlock.fromPartial(object.conflictingBlock) : undefined;
-    message.commonHeight = object.commonHeight !== undefined && object.commonHeight !== null ? BigInt(object.commonHeight.toString()) : BigInt(0);
-    message.byzantineValidators = object.byzantineValidators?.map(e => Validator.fromPartial(e)) || [];
-    message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? BigInt(object.totalVotingPower.toString()) : BigInt(0);
-    message.timestamp = object.timestamp ?? undefined;
-    return message;
-  },
-  fromSDK(object: LightClientAttackEvidenceSDKType): LightClientAttackEvidence {
-    return {
-      conflictingBlock: object.conflicting_block ? LightBlock.fromSDK(object.conflicting_block) : undefined,
-      commonHeight: object?.common_height,
-      byzantineValidators: Array.isArray(object?.byzantine_validators) ? object.byzantine_validators.map((e: any) => Validator.fromSDK(e)) : [],
-      totalVotingPower: object?.total_voting_power,
-      timestamp: object.timestamp ?? undefined
-    };
-  },
-  toSDK(message: LightClientAttackEvidence): LightClientAttackEvidenceSDKType {
-    const obj: any = {};
-    message.conflictingBlock !== undefined && (obj.conflicting_block = message.conflictingBlock ? LightBlock.toSDK(message.conflictingBlock) : undefined);
-    obj.common_height = message.commonHeight;
-    if (message.byzantineValidators) {
-      obj.byzantine_validators = message.byzantineValidators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.byzantine_validators = [];
-    }
-    obj.total_voting_power = message.totalVotingPower;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    return obj;
-  },
-  fromAmino(object: LightClientAttackEvidenceAmino): LightClientAttackEvidence {
-    return {
-      conflictingBlock: object?.conflicting_block ? LightBlock.fromAmino(object.conflicting_block) : undefined,
-      commonHeight: BigInt(object.common_height),
-      byzantineValidators: Array.isArray(object?.byzantine_validators) ? object.byzantine_validators.map((e: any) => Validator.fromAmino(e)) : [],
-      totalVotingPower: BigInt(object.total_voting_power),
-      timestamp: object.timestamp
-    };
-  },
-  toAmino(message: LightClientAttackEvidence): LightClientAttackEvidenceAmino {
-    const obj: any = {};
-    obj.conflicting_block = message.conflictingBlock ? LightBlock.toAmino(message.conflictingBlock) : undefined;
-    obj.common_height = message.commonHeight ? message.commonHeight.toString() : undefined;
-    if (message.byzantineValidators) {
-      obj.byzantine_validators = message.byzantineValidators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.byzantine_validators = [];
-    }
-    obj.total_voting_power = message.totalVotingPower ? message.totalVotingPower.toString() : undefined;
-    obj.timestamp = message.timestamp;
-    return obj;
-  },
-  fromAminoMsg(object: LightClientAttackEvidenceAminoMsg): LightClientAttackEvidence {
-    return LightClientAttackEvidence.fromAmino(object.value);
-  },
-  fromProtoMsg(message: LightClientAttackEvidenceProtoMsg): LightClientAttackEvidence {
-    return LightClientAttackEvidence.decode(message.value);
-  },
-  toProto(message: LightClientAttackEvidence): Uint8Array {
-    return LightClientAttackEvidence.encode(message).finish();
-  },
-  toProtoMsg(message: LightClientAttackEvidence): LightClientAttackEvidenceProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.LightClientAttackEvidence",
-      value: LightClientAttackEvidence.encode(message).finish()
-    };
-  }
-};
-function createBaseEvidenceList(): EvidenceList {
-  return {
-    evidence: []
-  };
-}
-export const EvidenceList = {
-  typeUrl: "/tendermint.types.EvidenceList",
-  encode(message: EvidenceList, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.evidence) {
-      Evidence.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EvidenceList {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEvidenceList();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.evidence.push(Evidence.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EvidenceList {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Evidence.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: EvidenceList): unknown {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Evidence.toJSON(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EvidenceList>): EvidenceList {
-    const message = createBaseEvidenceList();
-    message.evidence = object.evidence?.map(e => Evidence.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: EvidenceListSDKType): EvidenceList {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Evidence.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: EvidenceList): EvidenceListSDKType {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Evidence.toSDK(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromAmino(object: EvidenceListAmino): EvidenceList {
-    return {
-      evidence: Array.isArray(object?.evidence) ? object.evidence.map((e: any) => Evidence.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: EvidenceList): EvidenceListAmino {
-    const obj: any = {};
-    if (message.evidence) {
-      obj.evidence = message.evidence.map(e => e ? Evidence.toAmino(e) : undefined);
-    } else {
-      obj.evidence = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: EvidenceListAminoMsg): EvidenceList {
-    return EvidenceList.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EvidenceListProtoMsg): EvidenceList {
-    return EvidenceList.decode(message.value);
-  },
-  toProto(message: EvidenceList): Uint8Array {
-    return EvidenceList.encode(message).finish();
-  },
-  toProtoMsg(message: EvidenceList): EvidenceListProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.EvidenceList",
-      value: EvidenceList.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/types/params.ts b/examples/injective/src/codegen/tendermint/types/params.ts
deleted file mode 100644
index 28d5d1ac..00000000
--- a/examples/injective/src/codegen/tendermint/types/params.ts
+++ /dev/null
@@ -1,851 +0,0 @@
-import { Duration, DurationAmino, DurationSDKType } from "../../google/protobuf/duration";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/**
- * ConsensusParams contains consensus critical parameters that determine the
- * validity of blocks.
- */
-export interface ConsensusParams {
-  block: BlockParams | undefined;
-  evidence: EvidenceParams | undefined;
-  validator: ValidatorParams | undefined;
-  version: VersionParams | undefined;
-}
-export interface ConsensusParamsProtoMsg {
-  typeUrl: "/tendermint.types.ConsensusParams";
-  value: Uint8Array;
-}
-/**
- * ConsensusParams contains consensus critical parameters that determine the
- * validity of blocks.
- */
-export interface ConsensusParamsAmino {
-  block?: BlockParamsAmino | undefined;
-  evidence?: EvidenceParamsAmino | undefined;
-  validator?: ValidatorParamsAmino | undefined;
-  version?: VersionParamsAmino | undefined;
-}
-export interface ConsensusParamsAminoMsg {
-  type: "/tendermint.types.ConsensusParams";
-  value: ConsensusParamsAmino;
-}
-/**
- * ConsensusParams contains consensus critical parameters that determine the
- * validity of blocks.
- */
-export interface ConsensusParamsSDKType {
-  block: BlockParamsSDKType | undefined;
-  evidence: EvidenceParamsSDKType | undefined;
-  validator: ValidatorParamsSDKType | undefined;
-  version: VersionParamsSDKType | undefined;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParams {
-  /**
-   * Max block size, in bytes.
-   * Note: must be greater than 0
-   */
-  maxBytes: bigint;
-  /**
-   * Max gas per block.
-   * Note: must be greater or equal to -1
-   */
-  maxGas: bigint;
-  /**
-   * Minimum time increment between consecutive blocks (in milliseconds) If the
-   * block header timestamp is ahead of the system clock, decrease this value.
-   * 
-   * Not exposed to the application.
-   */
-  timeIotaMs: bigint;
-}
-export interface BlockParamsProtoMsg {
-  typeUrl: "/tendermint.types.BlockParams";
-  value: Uint8Array;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParamsAmino {
-  /**
-   * Max block size, in bytes.
-   * Note: must be greater than 0
-   */
-  max_bytes: string;
-  /**
-   * Max gas per block.
-   * Note: must be greater or equal to -1
-   */
-  max_gas: string;
-  /**
-   * Minimum time increment between consecutive blocks (in milliseconds) If the
-   * block header timestamp is ahead of the system clock, decrease this value.
-   * 
-   * Not exposed to the application.
-   */
-  time_iota_ms: string;
-}
-export interface BlockParamsAminoMsg {
-  type: "/tendermint.types.BlockParams";
-  value: BlockParamsAmino;
-}
-/** BlockParams contains limits on the block size. */
-export interface BlockParamsSDKType {
-  max_bytes: bigint;
-  max_gas: bigint;
-  time_iota_ms: bigint;
-}
-/** EvidenceParams determine how we handle evidence of malfeasance. */
-export interface EvidenceParams {
-  /**
-   * Max age of evidence, in blocks.
-   * 
-   * The basic formula for calculating this is: MaxAgeDuration / {average block
-   * time}.
-   */
-  maxAgeNumBlocks: bigint;
-  /**
-   * Max age of evidence, in time.
-   * 
-   * It should correspond with an app's "unbonding period" or other similar
-   * mechanism for handling [Nothing-At-Stake
-   * attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
-   */
-  maxAgeDuration: Duration | undefined;
-  /**
-   * This sets the maximum size of total evidence in bytes that can be committed in a single block.
-   * and should fall comfortably under the max block bytes.
-   * Default is 1048576 or 1MB
-   */
-  maxBytes: bigint;
-}
-export interface EvidenceParamsProtoMsg {
-  typeUrl: "/tendermint.types.EvidenceParams";
-  value: Uint8Array;
-}
-/** EvidenceParams determine how we handle evidence of malfeasance. */
-export interface EvidenceParamsAmino {
-  /**
-   * Max age of evidence, in blocks.
-   * 
-   * The basic formula for calculating this is: MaxAgeDuration / {average block
-   * time}.
-   */
-  max_age_num_blocks: string;
-  /**
-   * Max age of evidence, in time.
-   * 
-   * It should correspond with an app's "unbonding period" or other similar
-   * mechanism for handling [Nothing-At-Stake
-   * attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
-   */
-  max_age_duration?: DurationAmino | undefined;
-  /**
-   * This sets the maximum size of total evidence in bytes that can be committed in a single block.
-   * and should fall comfortably under the max block bytes.
-   * Default is 1048576 or 1MB
-   */
-  max_bytes: string;
-}
-export interface EvidenceParamsAminoMsg {
-  type: "/tendermint.types.EvidenceParams";
-  value: EvidenceParamsAmino;
-}
-/** EvidenceParams determine how we handle evidence of malfeasance. */
-export interface EvidenceParamsSDKType {
-  max_age_num_blocks: bigint;
-  max_age_duration: DurationSDKType | undefined;
-  max_bytes: bigint;
-}
-/**
- * ValidatorParams restrict the public key types validators can use.
- * NOTE: uses ABCI pubkey naming, not Amino names.
- */
-export interface ValidatorParams {
-  pubKeyTypes: string[];
-}
-export interface ValidatorParamsProtoMsg {
-  typeUrl: "/tendermint.types.ValidatorParams";
-  value: Uint8Array;
-}
-/**
- * ValidatorParams restrict the public key types validators can use.
- * NOTE: uses ABCI pubkey naming, not Amino names.
- */
-export interface ValidatorParamsAmino {
-  pub_key_types: string[];
-}
-export interface ValidatorParamsAminoMsg {
-  type: "/tendermint.types.ValidatorParams";
-  value: ValidatorParamsAmino;
-}
-/**
- * ValidatorParams restrict the public key types validators can use.
- * NOTE: uses ABCI pubkey naming, not Amino names.
- */
-export interface ValidatorParamsSDKType {
-  pub_key_types: string[];
-}
-/** VersionParams contains the ABCI application version. */
-export interface VersionParams {
-  appVersion: bigint;
-}
-export interface VersionParamsProtoMsg {
-  typeUrl: "/tendermint.types.VersionParams";
-  value: Uint8Array;
-}
-/** VersionParams contains the ABCI application version. */
-export interface VersionParamsAmino {
-  app_version: string;
-}
-export interface VersionParamsAminoMsg {
-  type: "/tendermint.types.VersionParams";
-  value: VersionParamsAmino;
-}
-/** VersionParams contains the ABCI application version. */
-export interface VersionParamsSDKType {
-  app_version: bigint;
-}
-/**
- * HashedParams is a subset of ConsensusParams.
- * 
- * It is hashed into the Header.ConsensusHash.
- */
-export interface HashedParams {
-  blockMaxBytes: bigint;
-  blockMaxGas: bigint;
-}
-export interface HashedParamsProtoMsg {
-  typeUrl: "/tendermint.types.HashedParams";
-  value: Uint8Array;
-}
-/**
- * HashedParams is a subset of ConsensusParams.
- * 
- * It is hashed into the Header.ConsensusHash.
- */
-export interface HashedParamsAmino {
-  block_max_bytes: string;
-  block_max_gas: string;
-}
-export interface HashedParamsAminoMsg {
-  type: "/tendermint.types.HashedParams";
-  value: HashedParamsAmino;
-}
-/**
- * HashedParams is a subset of ConsensusParams.
- * 
- * It is hashed into the Header.ConsensusHash.
- */
-export interface HashedParamsSDKType {
-  block_max_bytes: bigint;
-  block_max_gas: bigint;
-}
-function createBaseConsensusParams(): ConsensusParams {
-  return {
-    block: BlockParams.fromPartial({}),
-    evidence: EvidenceParams.fromPartial({}),
-    validator: ValidatorParams.fromPartial({}),
-    version: VersionParams.fromPartial({})
-  };
-}
-export const ConsensusParams = {
-  typeUrl: "/tendermint.types.ConsensusParams",
-  encode(message: ConsensusParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.block !== undefined) {
-      BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.evidence !== undefined) {
-      EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.validator !== undefined) {
-      ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.version !== undefined) {
-      VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ConsensusParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensusParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.block = BlockParams.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.evidence = EvidenceParams.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.validator = ValidatorParams.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.version = VersionParams.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ConsensusParams {
-    return {
-      block: isSet(object.block) ? BlockParams.fromJSON(object.block) : undefined,
-      evidence: isSet(object.evidence) ? EvidenceParams.fromJSON(object.evidence) : undefined,
-      validator: isSet(object.validator) ? ValidatorParams.fromJSON(object.validator) : undefined,
-      version: isSet(object.version) ? VersionParams.fromJSON(object.version) : undefined
-    };
-  },
-  toJSON(message: ConsensusParams): unknown {
-    const obj: any = {};
-    message.block !== undefined && (obj.block = message.block ? BlockParams.toJSON(message.block) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceParams.toJSON(message.evidence) : undefined);
-    message.validator !== undefined && (obj.validator = message.validator ? ValidatorParams.toJSON(message.validator) : undefined);
-    message.version !== undefined && (obj.version = message.version ? VersionParams.toJSON(message.version) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ConsensusParams>): ConsensusParams {
-    const message = createBaseConsensusParams();
-    message.block = object.block !== undefined && object.block !== null ? BlockParams.fromPartial(object.block) : undefined;
-    message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceParams.fromPartial(object.evidence) : undefined;
-    message.validator = object.validator !== undefined && object.validator !== null ? ValidatorParams.fromPartial(object.validator) : undefined;
-    message.version = object.version !== undefined && object.version !== null ? VersionParams.fromPartial(object.version) : undefined;
-    return message;
-  },
-  fromSDK(object: ConsensusParamsSDKType): ConsensusParams {
-    return {
-      block: object.block ? BlockParams.fromSDK(object.block) : undefined,
-      evidence: object.evidence ? EvidenceParams.fromSDK(object.evidence) : undefined,
-      validator: object.validator ? ValidatorParams.fromSDK(object.validator) : undefined,
-      version: object.version ? VersionParams.fromSDK(object.version) : undefined
-    };
-  },
-  toSDK(message: ConsensusParams): ConsensusParamsSDKType {
-    const obj: any = {};
-    message.block !== undefined && (obj.block = message.block ? BlockParams.toSDK(message.block) : undefined);
-    message.evidence !== undefined && (obj.evidence = message.evidence ? EvidenceParams.toSDK(message.evidence) : undefined);
-    message.validator !== undefined && (obj.validator = message.validator ? ValidatorParams.toSDK(message.validator) : undefined);
-    message.version !== undefined && (obj.version = message.version ? VersionParams.toSDK(message.version) : undefined);
-    return obj;
-  },
-  fromAmino(object: ConsensusParamsAmino): ConsensusParams {
-    return {
-      block: object?.block ? BlockParams.fromAmino(object.block) : undefined,
-      evidence: object?.evidence ? EvidenceParams.fromAmino(object.evidence) : undefined,
-      validator: object?.validator ? ValidatorParams.fromAmino(object.validator) : undefined,
-      version: object?.version ? VersionParams.fromAmino(object.version) : undefined
-    };
-  },
-  toAmino(message: ConsensusParams): ConsensusParamsAmino {
-    const obj: any = {};
-    obj.block = message.block ? BlockParams.toAmino(message.block) : undefined;
-    obj.evidence = message.evidence ? EvidenceParams.toAmino(message.evidence) : undefined;
-    obj.validator = message.validator ? ValidatorParams.toAmino(message.validator) : undefined;
-    obj.version = message.version ? VersionParams.toAmino(message.version) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusParamsAminoMsg): ConsensusParams {
-    return ConsensusParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ConsensusParamsProtoMsg): ConsensusParams {
-    return ConsensusParams.decode(message.value);
-  },
-  toProto(message: ConsensusParams): Uint8Array {
-    return ConsensusParams.encode(message).finish();
-  },
-  toProtoMsg(message: ConsensusParams): ConsensusParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.ConsensusParams",
-      value: ConsensusParams.encode(message).finish()
-    };
-  }
-};
-function createBaseBlockParams(): BlockParams {
-  return {
-    maxBytes: BigInt(0),
-    maxGas: BigInt(0),
-    timeIotaMs: BigInt(0)
-  };
-}
-export const BlockParams = {
-  typeUrl: "/tendermint.types.BlockParams",
-  encode(message: BlockParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxBytes !== BigInt(0)) {
-      writer.uint32(8).int64(message.maxBytes);
-    }
-    if (message.maxGas !== BigInt(0)) {
-      writer.uint32(16).int64(message.maxGas);
-    }
-    if (message.timeIotaMs !== BigInt(0)) {
-      writer.uint32(24).int64(message.timeIotaMs);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BlockParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBlockParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxBytes = reader.int64();
-          break;
-        case 2:
-          message.maxGas = reader.int64();
-          break;
-        case 3:
-          message.timeIotaMs = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BlockParams {
-    return {
-      maxBytes: isSet(object.maxBytes) ? BigInt(object.maxBytes.toString()) : BigInt(0),
-      maxGas: isSet(object.maxGas) ? BigInt(object.maxGas.toString()) : BigInt(0),
-      timeIotaMs: isSet(object.timeIotaMs) ? BigInt(object.timeIotaMs.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: BlockParams): unknown {
-    const obj: any = {};
-    message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());
-    message.maxGas !== undefined && (obj.maxGas = (message.maxGas || BigInt(0)).toString());
-    message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BlockParams>): BlockParams {
-    const message = createBaseBlockParams();
-    message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? BigInt(object.maxBytes.toString()) : BigInt(0);
-    message.maxGas = object.maxGas !== undefined && object.maxGas !== null ? BigInt(object.maxGas.toString()) : BigInt(0);
-    message.timeIotaMs = object.timeIotaMs !== undefined && object.timeIotaMs !== null ? BigInt(object.timeIotaMs.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: BlockParamsSDKType): BlockParams {
-    return {
-      maxBytes: object?.max_bytes,
-      maxGas: object?.max_gas,
-      timeIotaMs: object?.time_iota_ms
-    };
-  },
-  toSDK(message: BlockParams): BlockParamsSDKType {
-    const obj: any = {};
-    obj.max_bytes = message.maxBytes;
-    obj.max_gas = message.maxGas;
-    obj.time_iota_ms = message.timeIotaMs;
-    return obj;
-  },
-  fromAmino(object: BlockParamsAmino): BlockParams {
-    return {
-      maxBytes: BigInt(object.max_bytes),
-      maxGas: BigInt(object.max_gas),
-      timeIotaMs: BigInt(object.time_iota_ms)
-    };
-  },
-  toAmino(message: BlockParams): BlockParamsAmino {
-    const obj: any = {};
-    obj.max_bytes = message.maxBytes ? message.maxBytes.toString() : undefined;
-    obj.max_gas = message.maxGas ? message.maxGas.toString() : undefined;
-    obj.time_iota_ms = message.timeIotaMs ? message.timeIotaMs.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BlockParamsAminoMsg): BlockParams {
-    return BlockParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BlockParamsProtoMsg): BlockParams {
-    return BlockParams.decode(message.value);
-  },
-  toProto(message: BlockParams): Uint8Array {
-    return BlockParams.encode(message).finish();
-  },
-  toProtoMsg(message: BlockParams): BlockParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.BlockParams",
-      value: BlockParams.encode(message).finish()
-    };
-  }
-};
-function createBaseEvidenceParams(): EvidenceParams {
-  return {
-    maxAgeNumBlocks: BigInt(0),
-    maxAgeDuration: Duration.fromPartial({}),
-    maxBytes: BigInt(0)
-  };
-}
-export const EvidenceParams = {
-  typeUrl: "/tendermint.types.EvidenceParams",
-  encode(message: EvidenceParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.maxAgeNumBlocks !== BigInt(0)) {
-      writer.uint32(8).int64(message.maxAgeNumBlocks);
-    }
-    if (message.maxAgeDuration !== undefined) {
-      Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.maxBytes !== BigInt(0)) {
-      writer.uint32(24).int64(message.maxBytes);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): EvidenceParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseEvidenceParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.maxAgeNumBlocks = reader.int64();
-          break;
-        case 2:
-          message.maxAgeDuration = Duration.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.maxBytes = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): EvidenceParams {
-    return {
-      maxAgeNumBlocks: isSet(object.maxAgeNumBlocks) ? BigInt(object.maxAgeNumBlocks.toString()) : BigInt(0),
-      maxAgeDuration: isSet(object.maxAgeDuration) ? Duration.fromJSON(object.maxAgeDuration) : undefined,
-      maxBytes: isSet(object.maxBytes) ? BigInt(object.maxBytes.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: EvidenceParams): unknown {
-    const obj: any = {};
-    message.maxAgeNumBlocks !== undefined && (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || BigInt(0)).toString());
-    message.maxAgeDuration !== undefined && (obj.maxAgeDuration = message.maxAgeDuration ? Duration.toJSON(message.maxAgeDuration) : undefined);
-    message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<EvidenceParams>): EvidenceParams {
-    const message = createBaseEvidenceParams();
-    message.maxAgeNumBlocks = object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null ? BigInt(object.maxAgeNumBlocks.toString()) : BigInt(0);
-    message.maxAgeDuration = object.maxAgeDuration !== undefined && object.maxAgeDuration !== null ? Duration.fromPartial(object.maxAgeDuration) : undefined;
-    message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? BigInt(object.maxBytes.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: EvidenceParamsSDKType): EvidenceParams {
-    return {
-      maxAgeNumBlocks: object?.max_age_num_blocks,
-      maxAgeDuration: object.max_age_duration ? Duration.fromSDK(object.max_age_duration) : undefined,
-      maxBytes: object?.max_bytes
-    };
-  },
-  toSDK(message: EvidenceParams): EvidenceParamsSDKType {
-    const obj: any = {};
-    obj.max_age_num_blocks = message.maxAgeNumBlocks;
-    message.maxAgeDuration !== undefined && (obj.max_age_duration = message.maxAgeDuration ? Duration.toSDK(message.maxAgeDuration) : undefined);
-    obj.max_bytes = message.maxBytes;
-    return obj;
-  },
-  fromAmino(object: EvidenceParamsAmino): EvidenceParams {
-    return {
-      maxAgeNumBlocks: BigInt(object.max_age_num_blocks),
-      maxAgeDuration: object?.max_age_duration ? Duration.fromAmino(object.max_age_duration) : undefined,
-      maxBytes: BigInt(object.max_bytes)
-    };
-  },
-  toAmino(message: EvidenceParams): EvidenceParamsAmino {
-    const obj: any = {};
-    obj.max_age_num_blocks = message.maxAgeNumBlocks ? message.maxAgeNumBlocks.toString() : undefined;
-    obj.max_age_duration = message.maxAgeDuration ? Duration.toAmino(message.maxAgeDuration) : undefined;
-    obj.max_bytes = message.maxBytes ? message.maxBytes.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: EvidenceParamsAminoMsg): EvidenceParams {
-    return EvidenceParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: EvidenceParamsProtoMsg): EvidenceParams {
-    return EvidenceParams.decode(message.value);
-  },
-  toProto(message: EvidenceParams): Uint8Array {
-    return EvidenceParams.encode(message).finish();
-  },
-  toProtoMsg(message: EvidenceParams): EvidenceParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.EvidenceParams",
-      value: EvidenceParams.encode(message).finish()
-    };
-  }
-};
-function createBaseValidatorParams(): ValidatorParams {
-  return {
-    pubKeyTypes: []
-  };
-}
-export const ValidatorParams = {
-  typeUrl: "/tendermint.types.ValidatorParams",
-  encode(message: ValidatorParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.pubKeyTypes) {
-      writer.uint32(10).string(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pubKeyTypes.push(reader.string());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorParams {
-    return {
-      pubKeyTypes: Array.isArray(object?.pubKeyTypes) ? object.pubKeyTypes.map((e: any) => String(e)) : []
-    };
-  },
-  toJSON(message: ValidatorParams): unknown {
-    const obj: any = {};
-    if (message.pubKeyTypes) {
-      obj.pubKeyTypes = message.pubKeyTypes.map(e => e);
-    } else {
-      obj.pubKeyTypes = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorParams>): ValidatorParams {
-    const message = createBaseValidatorParams();
-    message.pubKeyTypes = object.pubKeyTypes?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: ValidatorParamsSDKType): ValidatorParams {
-    return {
-      pubKeyTypes: Array.isArray(object?.pub_key_types) ? object.pub_key_types.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: ValidatorParams): ValidatorParamsSDKType {
-    const obj: any = {};
-    if (message.pubKeyTypes) {
-      obj.pub_key_types = message.pubKeyTypes.map(e => e);
-    } else {
-      obj.pub_key_types = [];
-    }
-    return obj;
-  },
-  fromAmino(object: ValidatorParamsAmino): ValidatorParams {
-    return {
-      pubKeyTypes: Array.isArray(object?.pub_key_types) ? object.pub_key_types.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: ValidatorParams): ValidatorParamsAmino {
-    const obj: any = {};
-    if (message.pubKeyTypes) {
-      obj.pub_key_types = message.pubKeyTypes.map(e => e);
-    } else {
-      obj.pub_key_types = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorParamsAminoMsg): ValidatorParams {
-    return ValidatorParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValidatorParamsProtoMsg): ValidatorParams {
-    return ValidatorParams.decode(message.value);
-  },
-  toProto(message: ValidatorParams): Uint8Array {
-    return ValidatorParams.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorParams): ValidatorParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.ValidatorParams",
-      value: ValidatorParams.encode(message).finish()
-    };
-  }
-};
-function createBaseVersionParams(): VersionParams {
-  return {
-    appVersion: BigInt(0)
-  };
-}
-export const VersionParams = {
-  typeUrl: "/tendermint.types.VersionParams",
-  encode(message: VersionParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.appVersion !== BigInt(0)) {
-      writer.uint32(8).uint64(message.appVersion);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): VersionParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVersionParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.appVersion = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): VersionParams {
-    return {
-      appVersion: isSet(object.appVersion) ? BigInt(object.appVersion.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: VersionParams): unknown {
-    const obj: any = {};
-    message.appVersion !== undefined && (obj.appVersion = (message.appVersion || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<VersionParams>): VersionParams {
-    const message = createBaseVersionParams();
-    message.appVersion = object.appVersion !== undefined && object.appVersion !== null ? BigInt(object.appVersion.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: VersionParamsSDKType): VersionParams {
-    return {
-      appVersion: object?.app_version
-    };
-  },
-  toSDK(message: VersionParams): VersionParamsSDKType {
-    const obj: any = {};
-    obj.app_version = message.appVersion;
-    return obj;
-  },
-  fromAmino(object: VersionParamsAmino): VersionParams {
-    return {
-      appVersion: BigInt(object.app_version)
-    };
-  },
-  toAmino(message: VersionParams): VersionParamsAmino {
-    const obj: any = {};
-    obj.app_version = message.appVersion ? message.appVersion.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: VersionParamsAminoMsg): VersionParams {
-    return VersionParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: VersionParamsProtoMsg): VersionParams {
-    return VersionParams.decode(message.value);
-  },
-  toProto(message: VersionParams): Uint8Array {
-    return VersionParams.encode(message).finish();
-  },
-  toProtoMsg(message: VersionParams): VersionParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.VersionParams",
-      value: VersionParams.encode(message).finish()
-    };
-  }
-};
-function createBaseHashedParams(): HashedParams {
-  return {
-    blockMaxBytes: BigInt(0),
-    blockMaxGas: BigInt(0)
-  };
-}
-export const HashedParams = {
-  typeUrl: "/tendermint.types.HashedParams",
-  encode(message: HashedParams, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockMaxBytes !== BigInt(0)) {
-      writer.uint32(8).int64(message.blockMaxBytes);
-    }
-    if (message.blockMaxGas !== BigInt(0)) {
-      writer.uint32(16).int64(message.blockMaxGas);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): HashedParams {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHashedParams();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockMaxBytes = reader.int64();
-          break;
-        case 2:
-          message.blockMaxGas = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): HashedParams {
-    return {
-      blockMaxBytes: isSet(object.blockMaxBytes) ? BigInt(object.blockMaxBytes.toString()) : BigInt(0),
-      blockMaxGas: isSet(object.blockMaxGas) ? BigInt(object.blockMaxGas.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: HashedParams): unknown {
-    const obj: any = {};
-    message.blockMaxBytes !== undefined && (obj.blockMaxBytes = (message.blockMaxBytes || BigInt(0)).toString());
-    message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<HashedParams>): HashedParams {
-    const message = createBaseHashedParams();
-    message.blockMaxBytes = object.blockMaxBytes !== undefined && object.blockMaxBytes !== null ? BigInt(object.blockMaxBytes.toString()) : BigInt(0);
-    message.blockMaxGas = object.blockMaxGas !== undefined && object.blockMaxGas !== null ? BigInt(object.blockMaxGas.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: HashedParamsSDKType): HashedParams {
-    return {
-      blockMaxBytes: object?.block_max_bytes,
-      blockMaxGas: object?.block_max_gas
-    };
-  },
-  toSDK(message: HashedParams): HashedParamsSDKType {
-    const obj: any = {};
-    obj.block_max_bytes = message.blockMaxBytes;
-    obj.block_max_gas = message.blockMaxGas;
-    return obj;
-  },
-  fromAmino(object: HashedParamsAmino): HashedParams {
-    return {
-      blockMaxBytes: BigInt(object.block_max_bytes),
-      blockMaxGas: BigInt(object.block_max_gas)
-    };
-  },
-  toAmino(message: HashedParams): HashedParamsAmino {
-    const obj: any = {};
-    obj.block_max_bytes = message.blockMaxBytes ? message.blockMaxBytes.toString() : undefined;
-    obj.block_max_gas = message.blockMaxGas ? message.blockMaxGas.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: HashedParamsAminoMsg): HashedParams {
-    return HashedParams.fromAmino(object.value);
-  },
-  fromProtoMsg(message: HashedParamsProtoMsg): HashedParams {
-    return HashedParams.decode(message.value);
-  },
-  toProto(message: HashedParams): Uint8Array {
-    return HashedParams.encode(message).finish();
-  },
-  toProtoMsg(message: HashedParams): HashedParamsProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.HashedParams",
-      value: HashedParams.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/types/types.ts b/examples/injective/src/codegen/tendermint/types/types.ts
deleted file mode 100644
index c614db62..00000000
--- a/examples/injective/src/codegen/tendermint/types/types.ts
+++ /dev/null
@@ -1,2190 +0,0 @@
-import { Proof, ProofAmino, ProofSDKType } from "../crypto/proof";
-import { Consensus, ConsensusAmino, ConsensusSDKType } from "../version/types";
-import { Timestamp } from "../../google/protobuf/timestamp";
-import { ValidatorSet, ValidatorSetAmino, ValidatorSetSDKType } from "./validator";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, bytesFromBase64, base64FromBytes, DeepPartial, toTimestamp, fromTimestamp } from "../../helpers";
-/** BlockIdFlag indicates which BlcokID the signature is for */
-export enum BlockIDFlag {
-  BLOCK_ID_FLAG_UNKNOWN = 0,
-  BLOCK_ID_FLAG_ABSENT = 1,
-  BLOCK_ID_FLAG_COMMIT = 2,
-  BLOCK_ID_FLAG_NIL = 3,
-  UNRECOGNIZED = -1,
-}
-export const BlockIDFlagSDKType = BlockIDFlag;
-export const BlockIDFlagAmino = BlockIDFlag;
-export function blockIDFlagFromJSON(object: any): BlockIDFlag {
-  switch (object) {
-    case 0:
-    case "BLOCK_ID_FLAG_UNKNOWN":
-      return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;
-    case 1:
-    case "BLOCK_ID_FLAG_ABSENT":
-      return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;
-    case 2:
-    case "BLOCK_ID_FLAG_COMMIT":
-      return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;
-    case 3:
-    case "BLOCK_ID_FLAG_NIL":
-      return BlockIDFlag.BLOCK_ID_FLAG_NIL;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return BlockIDFlag.UNRECOGNIZED;
-  }
-}
-export function blockIDFlagToJSON(object: BlockIDFlag): string {
-  switch (object) {
-    case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:
-      return "BLOCK_ID_FLAG_UNKNOWN";
-    case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:
-      return "BLOCK_ID_FLAG_ABSENT";
-    case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:
-      return "BLOCK_ID_FLAG_COMMIT";
-    case BlockIDFlag.BLOCK_ID_FLAG_NIL:
-      return "BLOCK_ID_FLAG_NIL";
-    case BlockIDFlag.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** SignedMsgType is a type of signed message in the consensus. */
-export enum SignedMsgType {
-  SIGNED_MSG_TYPE_UNKNOWN = 0,
-  /** SIGNED_MSG_TYPE_PREVOTE - Votes */
-  SIGNED_MSG_TYPE_PREVOTE = 1,
-  SIGNED_MSG_TYPE_PRECOMMIT = 2,
-  /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */
-  SIGNED_MSG_TYPE_PROPOSAL = 32,
-  UNRECOGNIZED = -1,
-}
-export const SignedMsgTypeSDKType = SignedMsgType;
-export const SignedMsgTypeAmino = SignedMsgType;
-export function signedMsgTypeFromJSON(object: any): SignedMsgType {
-  switch (object) {
-    case 0:
-    case "SIGNED_MSG_TYPE_UNKNOWN":
-      return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;
-    case 1:
-    case "SIGNED_MSG_TYPE_PREVOTE":
-      return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;
-    case 2:
-    case "SIGNED_MSG_TYPE_PRECOMMIT":
-      return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;
-    case 32:
-    case "SIGNED_MSG_TYPE_PROPOSAL":
-      return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;
-    case -1:
-    case "UNRECOGNIZED":
-    default:
-      return SignedMsgType.UNRECOGNIZED;
-  }
-}
-export function signedMsgTypeToJSON(object: SignedMsgType): string {
-  switch (object) {
-    case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:
-      return "SIGNED_MSG_TYPE_UNKNOWN";
-    case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:
-      return "SIGNED_MSG_TYPE_PREVOTE";
-    case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:
-      return "SIGNED_MSG_TYPE_PRECOMMIT";
-    case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:
-      return "SIGNED_MSG_TYPE_PROPOSAL";
-    case SignedMsgType.UNRECOGNIZED:
-    default:
-      return "UNRECOGNIZED";
-  }
-}
-/** PartsetHeader */
-export interface PartSetHeader {
-  total: number;
-  hash: Uint8Array;
-}
-export interface PartSetHeaderProtoMsg {
-  typeUrl: "/tendermint.types.PartSetHeader";
-  value: Uint8Array;
-}
-/** PartsetHeader */
-export interface PartSetHeaderAmino {
-  total: number;
-  hash: Uint8Array;
-}
-export interface PartSetHeaderAminoMsg {
-  type: "/tendermint.types.PartSetHeader";
-  value: PartSetHeaderAmino;
-}
-/** PartsetHeader */
-export interface PartSetHeaderSDKType {
-  total: number;
-  hash: Uint8Array;
-}
-export interface Part {
-  index: number;
-  bytes: Uint8Array;
-  proof: Proof | undefined;
-}
-export interface PartProtoMsg {
-  typeUrl: "/tendermint.types.Part";
-  value: Uint8Array;
-}
-export interface PartAmino {
-  index: number;
-  bytes: Uint8Array;
-  proof?: ProofAmino | undefined;
-}
-export interface PartAminoMsg {
-  type: "/tendermint.types.Part";
-  value: PartAmino;
-}
-export interface PartSDKType {
-  index: number;
-  bytes: Uint8Array;
-  proof: ProofSDKType | undefined;
-}
-/** BlockID */
-export interface BlockID {
-  hash: Uint8Array;
-  partSetHeader: PartSetHeader | undefined;
-}
-export interface BlockIDProtoMsg {
-  typeUrl: "/tendermint.types.BlockID";
-  value: Uint8Array;
-}
-/** BlockID */
-export interface BlockIDAmino {
-  hash: Uint8Array;
-  part_set_header?: PartSetHeaderAmino | undefined;
-}
-export interface BlockIDAminoMsg {
-  type: "/tendermint.types.BlockID";
-  value: BlockIDAmino;
-}
-/** BlockID */
-export interface BlockIDSDKType {
-  hash: Uint8Array;
-  part_set_header: PartSetHeaderSDKType | undefined;
-}
-/** Header defines the structure of a Tendermint block header. */
-export interface Header {
-  /** basic block info */
-  version: Consensus | undefined;
-  chainId: string;
-  height: bigint;
-  time: Date | undefined;
-  /** prev block info */
-  lastBlockId: BlockID | undefined;
-  /** hashes of block data */
-  lastCommitHash: Uint8Array;
-  dataHash: Uint8Array;
-  /** hashes from the app output from the prev block */
-  validatorsHash: Uint8Array;
-  /** validators for the next block */
-  nextValidatorsHash: Uint8Array;
-  /** consensus params for current block */
-  consensusHash: Uint8Array;
-  /** state after txs from the previous block */
-  appHash: Uint8Array;
-  lastResultsHash: Uint8Array;
-  /** consensus info */
-  evidenceHash: Uint8Array;
-  /** original proposer of the block */
-  proposerAddress: Uint8Array;
-}
-export interface HeaderProtoMsg {
-  typeUrl: "/tendermint.types.Header";
-  value: Uint8Array;
-}
-/** Header defines the structure of a Tendermint block header. */
-export interface HeaderAmino {
-  /** basic block info */
-  version?: ConsensusAmino | undefined;
-  chain_id: string;
-  height: string;
-  time?: Date | undefined;
-  /** prev block info */
-  last_block_id?: BlockIDAmino | undefined;
-  /** hashes of block data */
-  last_commit_hash: Uint8Array;
-  data_hash: Uint8Array;
-  /** hashes from the app output from the prev block */
-  validators_hash: Uint8Array;
-  /** validators for the next block */
-  next_validators_hash: Uint8Array;
-  /** consensus params for current block */
-  consensus_hash: Uint8Array;
-  /** state after txs from the previous block */
-  app_hash: Uint8Array;
-  last_results_hash: Uint8Array;
-  /** consensus info */
-  evidence_hash: Uint8Array;
-  /** original proposer of the block */
-  proposer_address: Uint8Array;
-}
-export interface HeaderAminoMsg {
-  type: "/tendermint.types.Header";
-  value: HeaderAmino;
-}
-/** Header defines the structure of a Tendermint block header. */
-export interface HeaderSDKType {
-  version: ConsensusSDKType | undefined;
-  chain_id: string;
-  height: bigint;
-  time: Date | undefined;
-  last_block_id: BlockIDSDKType | undefined;
-  last_commit_hash: Uint8Array;
-  data_hash: Uint8Array;
-  validators_hash: Uint8Array;
-  next_validators_hash: Uint8Array;
-  consensus_hash: Uint8Array;
-  app_hash: Uint8Array;
-  last_results_hash: Uint8Array;
-  evidence_hash: Uint8Array;
-  proposer_address: Uint8Array;
-}
-/** Data contains the set of transactions included in the block */
-export interface Data {
-  /**
-   * Txs that will be applied by state @ block.Height+1.
-   * NOTE: not all txs here are valid.  We're just agreeing on the order first.
-   * This means that block.AppHash does not include these txs.
-   */
-  txs: Uint8Array[];
-}
-export interface DataProtoMsg {
-  typeUrl: "/tendermint.types.Data";
-  value: Uint8Array;
-}
-/** Data contains the set of transactions included in the block */
-export interface DataAmino {
-  /**
-   * Txs that will be applied by state @ block.Height+1.
-   * NOTE: not all txs here are valid.  We're just agreeing on the order first.
-   * This means that block.AppHash does not include these txs.
-   */
-  txs: Uint8Array[];
-}
-export interface DataAminoMsg {
-  type: "/tendermint.types.Data";
-  value: DataAmino;
-}
-/** Data contains the set of transactions included in the block */
-export interface DataSDKType {
-  txs: Uint8Array[];
-}
-/**
- * Vote represents a prevote, precommit, or commit vote from validators for
- * consensus.
- */
-export interface Vote {
-  type: SignedMsgType;
-  height: bigint;
-  round: number;
-  /** zero if vote is nil. */
-  blockId: BlockID | undefined;
-  timestamp: Date | undefined;
-  validatorAddress: Uint8Array;
-  validatorIndex: number;
-  signature: Uint8Array;
-}
-export interface VoteProtoMsg {
-  typeUrl: "/tendermint.types.Vote";
-  value: Uint8Array;
-}
-/**
- * Vote represents a prevote, precommit, or commit vote from validators for
- * consensus.
- */
-export interface VoteAmino {
-  type: SignedMsgType;
-  height: string;
-  round: number;
-  /** zero if vote is nil. */
-  block_id?: BlockIDAmino | undefined;
-  timestamp?: Date | undefined;
-  validator_address: Uint8Array;
-  validator_index: number;
-  signature: Uint8Array;
-}
-export interface VoteAminoMsg {
-  type: "/tendermint.types.Vote";
-  value: VoteAmino;
-}
-/**
- * Vote represents a prevote, precommit, or commit vote from validators for
- * consensus.
- */
-export interface VoteSDKType {
-  type: SignedMsgType;
-  height: bigint;
-  round: number;
-  block_id: BlockIDSDKType | undefined;
-  timestamp: Date | undefined;
-  validator_address: Uint8Array;
-  validator_index: number;
-  signature: Uint8Array;
-}
-/** Commit contains the evidence that a block was committed by a set of validators. */
-export interface Commit {
-  height: bigint;
-  round: number;
-  blockId: BlockID | undefined;
-  signatures: CommitSig[];
-}
-export interface CommitProtoMsg {
-  typeUrl: "/tendermint.types.Commit";
-  value: Uint8Array;
-}
-/** Commit contains the evidence that a block was committed by a set of validators. */
-export interface CommitAmino {
-  height: string;
-  round: number;
-  block_id?: BlockIDAmino | undefined;
-  signatures: CommitSigAmino[];
-}
-export interface CommitAminoMsg {
-  type: "/tendermint.types.Commit";
-  value: CommitAmino;
-}
-/** Commit contains the evidence that a block was committed by a set of validators. */
-export interface CommitSDKType {
-  height: bigint;
-  round: number;
-  block_id: BlockIDSDKType | undefined;
-  signatures: CommitSigSDKType[];
-}
-/** CommitSig is a part of the Vote included in a Commit. */
-export interface CommitSig {
-  blockIdFlag: BlockIDFlag;
-  validatorAddress: Uint8Array;
-  timestamp: Date | undefined;
-  signature: Uint8Array;
-}
-export interface CommitSigProtoMsg {
-  typeUrl: "/tendermint.types.CommitSig";
-  value: Uint8Array;
-}
-/** CommitSig is a part of the Vote included in a Commit. */
-export interface CommitSigAmino {
-  block_id_flag: BlockIDFlag;
-  validator_address: Uint8Array;
-  timestamp?: Date | undefined;
-  signature: Uint8Array;
-}
-export interface CommitSigAminoMsg {
-  type: "/tendermint.types.CommitSig";
-  value: CommitSigAmino;
-}
-/** CommitSig is a part of the Vote included in a Commit. */
-export interface CommitSigSDKType {
-  block_id_flag: BlockIDFlag;
-  validator_address: Uint8Array;
-  timestamp: Date | undefined;
-  signature: Uint8Array;
-}
-export interface Proposal {
-  type: SignedMsgType;
-  height: bigint;
-  round: number;
-  polRound: number;
-  blockId: BlockID | undefined;
-  timestamp: Date | undefined;
-  signature: Uint8Array;
-}
-export interface ProposalProtoMsg {
-  typeUrl: "/tendermint.types.Proposal";
-  value: Uint8Array;
-}
-export interface ProposalAmino {
-  type: SignedMsgType;
-  height: string;
-  round: number;
-  pol_round: number;
-  block_id?: BlockIDAmino | undefined;
-  timestamp?: Date | undefined;
-  signature: Uint8Array;
-}
-export interface ProposalAminoMsg {
-  type: "/tendermint.types.Proposal";
-  value: ProposalAmino;
-}
-export interface ProposalSDKType {
-  type: SignedMsgType;
-  height: bigint;
-  round: number;
-  pol_round: number;
-  block_id: BlockIDSDKType | undefined;
-  timestamp: Date | undefined;
-  signature: Uint8Array;
-}
-export interface SignedHeader {
-  header: Header | undefined;
-  commit: Commit | undefined;
-}
-export interface SignedHeaderProtoMsg {
-  typeUrl: "/tendermint.types.SignedHeader";
-  value: Uint8Array;
-}
-export interface SignedHeaderAmino {
-  header?: HeaderAmino | undefined;
-  commit?: CommitAmino | undefined;
-}
-export interface SignedHeaderAminoMsg {
-  type: "/tendermint.types.SignedHeader";
-  value: SignedHeaderAmino;
-}
-export interface SignedHeaderSDKType {
-  header: HeaderSDKType | undefined;
-  commit: CommitSDKType | undefined;
-}
-export interface LightBlock {
-  signedHeader: SignedHeader | undefined;
-  validatorSet: ValidatorSet | undefined;
-}
-export interface LightBlockProtoMsg {
-  typeUrl: "/tendermint.types.LightBlock";
-  value: Uint8Array;
-}
-export interface LightBlockAmino {
-  signed_header?: SignedHeaderAmino | undefined;
-  validator_set?: ValidatorSetAmino | undefined;
-}
-export interface LightBlockAminoMsg {
-  type: "/tendermint.types.LightBlock";
-  value: LightBlockAmino;
-}
-export interface LightBlockSDKType {
-  signed_header: SignedHeaderSDKType | undefined;
-  validator_set: ValidatorSetSDKType | undefined;
-}
-export interface BlockMeta {
-  blockId: BlockID | undefined;
-  blockSize: bigint;
-  header: Header | undefined;
-  numTxs: bigint;
-}
-export interface BlockMetaProtoMsg {
-  typeUrl: "/tendermint.types.BlockMeta";
-  value: Uint8Array;
-}
-export interface BlockMetaAmino {
-  block_id?: BlockIDAmino | undefined;
-  block_size: string;
-  header?: HeaderAmino | undefined;
-  num_txs: string;
-}
-export interface BlockMetaAminoMsg {
-  type: "/tendermint.types.BlockMeta";
-  value: BlockMetaAmino;
-}
-export interface BlockMetaSDKType {
-  block_id: BlockIDSDKType | undefined;
-  block_size: bigint;
-  header: HeaderSDKType | undefined;
-  num_txs: bigint;
-}
-/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */
-export interface TxProof {
-  rootHash: Uint8Array;
-  data: Uint8Array;
-  proof: Proof | undefined;
-}
-export interface TxProofProtoMsg {
-  typeUrl: "/tendermint.types.TxProof";
-  value: Uint8Array;
-}
-/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */
-export interface TxProofAmino {
-  root_hash: Uint8Array;
-  data: Uint8Array;
-  proof?: ProofAmino | undefined;
-}
-export interface TxProofAminoMsg {
-  type: "/tendermint.types.TxProof";
-  value: TxProofAmino;
-}
-/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */
-export interface TxProofSDKType {
-  root_hash: Uint8Array;
-  data: Uint8Array;
-  proof: ProofSDKType | undefined;
-}
-function createBasePartSetHeader(): PartSetHeader {
-  return {
-    total: 0,
-    hash: new Uint8Array()
-  };
-}
-export const PartSetHeader = {
-  typeUrl: "/tendermint.types.PartSetHeader",
-  encode(message: PartSetHeader, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.total !== 0) {
-      writer.uint32(8).uint32(message.total);
-    }
-    if (message.hash.length !== 0) {
-      writer.uint32(18).bytes(message.hash);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): PartSetHeader {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePartSetHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.total = reader.uint32();
-          break;
-        case 2:
-          message.hash = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): PartSetHeader {
-    return {
-      total: isSet(object.total) ? Number(object.total) : 0,
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array()
-    };
-  },
-  toJSON(message: PartSetHeader): unknown {
-    const obj: any = {};
-    message.total !== undefined && (obj.total = Math.round(message.total));
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<PartSetHeader>): PartSetHeader {
-    const message = createBasePartSetHeader();
-    message.total = object.total ?? 0;
-    message.hash = object.hash ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: PartSetHeaderSDKType): PartSetHeader {
-    return {
-      total: object?.total,
-      hash: object?.hash
-    };
-  },
-  toSDK(message: PartSetHeader): PartSetHeaderSDKType {
-    const obj: any = {};
-    obj.total = message.total;
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAmino(object: PartSetHeaderAmino): PartSetHeader {
-    return {
-      total: object.total,
-      hash: object.hash
-    };
-  },
-  toAmino(message: PartSetHeader): PartSetHeaderAmino {
-    const obj: any = {};
-    obj.total = message.total;
-    obj.hash = message.hash;
-    return obj;
-  },
-  fromAminoMsg(object: PartSetHeaderAminoMsg): PartSetHeader {
-    return PartSetHeader.fromAmino(object.value);
-  },
-  fromProtoMsg(message: PartSetHeaderProtoMsg): PartSetHeader {
-    return PartSetHeader.decode(message.value);
-  },
-  toProto(message: PartSetHeader): Uint8Array {
-    return PartSetHeader.encode(message).finish();
-  },
-  toProtoMsg(message: PartSetHeader): PartSetHeaderProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.PartSetHeader",
-      value: PartSetHeader.encode(message).finish()
-    };
-  }
-};
-function createBasePart(): Part {
-  return {
-    index: 0,
-    bytes: new Uint8Array(),
-    proof: Proof.fromPartial({})
-  };
-}
-export const Part = {
-  typeUrl: "/tendermint.types.Part",
-  encode(message: Part, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.index !== 0) {
-      writer.uint32(8).uint32(message.index);
-    }
-    if (message.bytes.length !== 0) {
-      writer.uint32(18).bytes(message.bytes);
-    }
-    if (message.proof !== undefined) {
-      Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Part {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBasePart();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.index = reader.uint32();
-          break;
-        case 2:
-          message.bytes = reader.bytes();
-          break;
-        case 3:
-          message.proof = Proof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Part {
-    return {
-      index: isSet(object.index) ? Number(object.index) : 0,
-      bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(),
-      proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined
-    };
-  },
-  toJSON(message: Part): unknown {
-    const obj: any = {};
-    message.index !== undefined && (obj.index = Math.round(message.index));
-    message.bytes !== undefined && (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Part>): Part {
-    const message = createBasePart();
-    message.index = object.index ?? 0;
-    message.bytes = object.bytes ?? new Uint8Array();
-    message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined;
-    return message;
-  },
-  fromSDK(object: PartSDKType): Part {
-    return {
-      index: object?.index,
-      bytes: object?.bytes,
-      proof: object.proof ? Proof.fromSDK(object.proof) : undefined
-    };
-  },
-  toSDK(message: Part): PartSDKType {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.bytes = message.bytes;
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toSDK(message.proof) : undefined);
-    return obj;
-  },
-  fromAmino(object: PartAmino): Part {
-    return {
-      index: object.index,
-      bytes: object.bytes,
-      proof: object?.proof ? Proof.fromAmino(object.proof) : undefined
-    };
-  },
-  toAmino(message: Part): PartAmino {
-    const obj: any = {};
-    obj.index = message.index;
-    obj.bytes = message.bytes;
-    obj.proof = message.proof ? Proof.toAmino(message.proof) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: PartAminoMsg): Part {
-    return Part.fromAmino(object.value);
-  },
-  fromProtoMsg(message: PartProtoMsg): Part {
-    return Part.decode(message.value);
-  },
-  toProto(message: Part): Uint8Array {
-    return Part.encode(message).finish();
-  },
-  toProtoMsg(message: Part): PartProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Part",
-      value: Part.encode(message).finish()
-    };
-  }
-};
-function createBaseBlockID(): BlockID {
-  return {
-    hash: new Uint8Array(),
-    partSetHeader: PartSetHeader.fromPartial({})
-  };
-}
-export const BlockID = {
-  typeUrl: "/tendermint.types.BlockID",
-  encode(message: BlockID, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.hash.length !== 0) {
-      writer.uint32(10).bytes(message.hash);
-    }
-    if (message.partSetHeader !== undefined) {
-      PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BlockID {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBlockID();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.hash = reader.bytes();
-          break;
-        case 2:
-          message.partSetHeader = PartSetHeader.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BlockID {
-    return {
-      hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(),
-      partSetHeader: isSet(object.partSetHeader) ? PartSetHeader.fromJSON(object.partSetHeader) : undefined
-    };
-  },
-  toJSON(message: BlockID): unknown {
-    const obj: any = {};
-    message.hash !== undefined && (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
-    message.partSetHeader !== undefined && (obj.partSetHeader = message.partSetHeader ? PartSetHeader.toJSON(message.partSetHeader) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BlockID>): BlockID {
-    const message = createBaseBlockID();
-    message.hash = object.hash ?? new Uint8Array();
-    message.partSetHeader = object.partSetHeader !== undefined && object.partSetHeader !== null ? PartSetHeader.fromPartial(object.partSetHeader) : undefined;
-    return message;
-  },
-  fromSDK(object: BlockIDSDKType): BlockID {
-    return {
-      hash: object?.hash,
-      partSetHeader: object.part_set_header ? PartSetHeader.fromSDK(object.part_set_header) : undefined
-    };
-  },
-  toSDK(message: BlockID): BlockIDSDKType {
-    const obj: any = {};
-    obj.hash = message.hash;
-    message.partSetHeader !== undefined && (obj.part_set_header = message.partSetHeader ? PartSetHeader.toSDK(message.partSetHeader) : undefined);
-    return obj;
-  },
-  fromAmino(object: BlockIDAmino): BlockID {
-    return {
-      hash: object.hash,
-      partSetHeader: object?.part_set_header ? PartSetHeader.fromAmino(object.part_set_header) : undefined
-    };
-  },
-  toAmino(message: BlockID): BlockIDAmino {
-    const obj: any = {};
-    obj.hash = message.hash;
-    obj.part_set_header = message.partSetHeader ? PartSetHeader.toAmino(message.partSetHeader) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BlockIDAminoMsg): BlockID {
-    return BlockID.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BlockIDProtoMsg): BlockID {
-    return BlockID.decode(message.value);
-  },
-  toProto(message: BlockID): Uint8Array {
-    return BlockID.encode(message).finish();
-  },
-  toProtoMsg(message: BlockID): BlockIDProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.BlockID",
-      value: BlockID.encode(message).finish()
-    };
-  }
-};
-function createBaseHeader(): Header {
-  return {
-    version: Consensus.fromPartial({}),
-    chainId: "",
-    height: BigInt(0),
-    time: new Date(),
-    lastBlockId: BlockID.fromPartial({}),
-    lastCommitHash: new Uint8Array(),
-    dataHash: new Uint8Array(),
-    validatorsHash: new Uint8Array(),
-    nextValidatorsHash: new Uint8Array(),
-    consensusHash: new Uint8Array(),
-    appHash: new Uint8Array(),
-    lastResultsHash: new Uint8Array(),
-    evidenceHash: new Uint8Array(),
-    proposerAddress: new Uint8Array()
-  };
-}
-export const Header = {
-  typeUrl: "/tendermint.types.Header",
-  encode(message: Header, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.version !== undefined) {
-      Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.chainId !== "") {
-      writer.uint32(18).string(message.chainId);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(24).int64(message.height);
-    }
-    if (message.time !== undefined) {
-      Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();
-    }
-    if (message.lastBlockId !== undefined) {
-      BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.lastCommitHash.length !== 0) {
-      writer.uint32(50).bytes(message.lastCommitHash);
-    }
-    if (message.dataHash.length !== 0) {
-      writer.uint32(58).bytes(message.dataHash);
-    }
-    if (message.validatorsHash.length !== 0) {
-      writer.uint32(66).bytes(message.validatorsHash);
-    }
-    if (message.nextValidatorsHash.length !== 0) {
-      writer.uint32(74).bytes(message.nextValidatorsHash);
-    }
-    if (message.consensusHash.length !== 0) {
-      writer.uint32(82).bytes(message.consensusHash);
-    }
-    if (message.appHash.length !== 0) {
-      writer.uint32(90).bytes(message.appHash);
-    }
-    if (message.lastResultsHash.length !== 0) {
-      writer.uint32(98).bytes(message.lastResultsHash);
-    }
-    if (message.evidenceHash.length !== 0) {
-      writer.uint32(106).bytes(message.evidenceHash);
-    }
-    if (message.proposerAddress.length !== 0) {
-      writer.uint32(114).bytes(message.proposerAddress);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Header {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.version = Consensus.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.chainId = reader.string();
-          break;
-        case 3:
-          message.height = reader.int64();
-          break;
-        case 4:
-          message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 5:
-          message.lastBlockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.lastCommitHash = reader.bytes();
-          break;
-        case 7:
-          message.dataHash = reader.bytes();
-          break;
-        case 8:
-          message.validatorsHash = reader.bytes();
-          break;
-        case 9:
-          message.nextValidatorsHash = reader.bytes();
-          break;
-        case 10:
-          message.consensusHash = reader.bytes();
-          break;
-        case 11:
-          message.appHash = reader.bytes();
-          break;
-        case 12:
-          message.lastResultsHash = reader.bytes();
-          break;
-        case 13:
-          message.evidenceHash = reader.bytes();
-          break;
-        case 14:
-          message.proposerAddress = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Header {
-    return {
-      version: isSet(object.version) ? Consensus.fromJSON(object.version) : undefined,
-      chainId: isSet(object.chainId) ? String(object.chainId) : "",
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      time: isSet(object.time) ? new Date(object.time) : undefined,
-      lastBlockId: isSet(object.lastBlockId) ? BlockID.fromJSON(object.lastBlockId) : undefined,
-      lastCommitHash: isSet(object.lastCommitHash) ? bytesFromBase64(object.lastCommitHash) : new Uint8Array(),
-      dataHash: isSet(object.dataHash) ? bytesFromBase64(object.dataHash) : new Uint8Array(),
-      validatorsHash: isSet(object.validatorsHash) ? bytesFromBase64(object.validatorsHash) : new Uint8Array(),
-      nextValidatorsHash: isSet(object.nextValidatorsHash) ? bytesFromBase64(object.nextValidatorsHash) : new Uint8Array(),
-      consensusHash: isSet(object.consensusHash) ? bytesFromBase64(object.consensusHash) : new Uint8Array(),
-      appHash: isSet(object.appHash) ? bytesFromBase64(object.appHash) : new Uint8Array(),
-      lastResultsHash: isSet(object.lastResultsHash) ? bytesFromBase64(object.lastResultsHash) : new Uint8Array(),
-      evidenceHash: isSet(object.evidenceHash) ? bytesFromBase64(object.evidenceHash) : new Uint8Array(),
-      proposerAddress: isSet(object.proposerAddress) ? bytesFromBase64(object.proposerAddress) : new Uint8Array()
-    };
-  },
-  toJSON(message: Header): unknown {
-    const obj: any = {};
-    message.version !== undefined && (obj.version = message.version ? Consensus.toJSON(message.version) : undefined);
-    message.chainId !== undefined && (obj.chainId = message.chainId);
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.time !== undefined && (obj.time = message.time.toISOString());
-    message.lastBlockId !== undefined && (obj.lastBlockId = message.lastBlockId ? BlockID.toJSON(message.lastBlockId) : undefined);
-    message.lastCommitHash !== undefined && (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));
-    message.dataHash !== undefined && (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));
-    message.validatorsHash !== undefined && (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));
-    message.nextValidatorsHash !== undefined && (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));
-    message.consensusHash !== undefined && (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));
-    message.appHash !== undefined && (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));
-    message.lastResultsHash !== undefined && (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));
-    message.evidenceHash !== undefined && (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));
-    message.proposerAddress !== undefined && (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Header>): Header {
-    const message = createBaseHeader();
-    message.version = object.version !== undefined && object.version !== null ? Consensus.fromPartial(object.version) : undefined;
-    message.chainId = object.chainId ?? "";
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.time = object.time ?? undefined;
-    message.lastBlockId = object.lastBlockId !== undefined && object.lastBlockId !== null ? BlockID.fromPartial(object.lastBlockId) : undefined;
-    message.lastCommitHash = object.lastCommitHash ?? new Uint8Array();
-    message.dataHash = object.dataHash ?? new Uint8Array();
-    message.validatorsHash = object.validatorsHash ?? new Uint8Array();
-    message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();
-    message.consensusHash = object.consensusHash ?? new Uint8Array();
-    message.appHash = object.appHash ?? new Uint8Array();
-    message.lastResultsHash = object.lastResultsHash ?? new Uint8Array();
-    message.evidenceHash = object.evidenceHash ?? new Uint8Array();
-    message.proposerAddress = object.proposerAddress ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: HeaderSDKType): Header {
-    return {
-      version: object.version ? Consensus.fromSDK(object.version) : undefined,
-      chainId: object?.chain_id,
-      height: object?.height,
-      time: object.time ?? undefined,
-      lastBlockId: object.last_block_id ? BlockID.fromSDK(object.last_block_id) : undefined,
-      lastCommitHash: object?.last_commit_hash,
-      dataHash: object?.data_hash,
-      validatorsHash: object?.validators_hash,
-      nextValidatorsHash: object?.next_validators_hash,
-      consensusHash: object?.consensus_hash,
-      appHash: object?.app_hash,
-      lastResultsHash: object?.last_results_hash,
-      evidenceHash: object?.evidence_hash,
-      proposerAddress: object?.proposer_address
-    };
-  },
-  toSDK(message: Header): HeaderSDKType {
-    const obj: any = {};
-    message.version !== undefined && (obj.version = message.version ? Consensus.toSDK(message.version) : undefined);
-    obj.chain_id = message.chainId;
-    obj.height = message.height;
-    message.time !== undefined && (obj.time = message.time ?? undefined);
-    message.lastBlockId !== undefined && (obj.last_block_id = message.lastBlockId ? BlockID.toSDK(message.lastBlockId) : undefined);
-    obj.last_commit_hash = message.lastCommitHash;
-    obj.data_hash = message.dataHash;
-    obj.validators_hash = message.validatorsHash;
-    obj.next_validators_hash = message.nextValidatorsHash;
-    obj.consensus_hash = message.consensusHash;
-    obj.app_hash = message.appHash;
-    obj.last_results_hash = message.lastResultsHash;
-    obj.evidence_hash = message.evidenceHash;
-    obj.proposer_address = message.proposerAddress;
-    return obj;
-  },
-  fromAmino(object: HeaderAmino): Header {
-    return {
-      version: object?.version ? Consensus.fromAmino(object.version) : undefined,
-      chainId: object.chain_id,
-      height: BigInt(object.height),
-      time: object.time,
-      lastBlockId: object?.last_block_id ? BlockID.fromAmino(object.last_block_id) : undefined,
-      lastCommitHash: object.last_commit_hash,
-      dataHash: object.data_hash,
-      validatorsHash: object.validators_hash,
-      nextValidatorsHash: object.next_validators_hash,
-      consensusHash: object.consensus_hash,
-      appHash: object.app_hash,
-      lastResultsHash: object.last_results_hash,
-      evidenceHash: object.evidence_hash,
-      proposerAddress: object.proposer_address
-    };
-  },
-  toAmino(message: Header): HeaderAmino {
-    const obj: any = {};
-    obj.version = message.version ? Consensus.toAmino(message.version) : undefined;
-    obj.chain_id = message.chainId;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.time = message.time;
-    obj.last_block_id = message.lastBlockId ? BlockID.toAmino(message.lastBlockId) : undefined;
-    obj.last_commit_hash = message.lastCommitHash;
-    obj.data_hash = message.dataHash;
-    obj.validators_hash = message.validatorsHash;
-    obj.next_validators_hash = message.nextValidatorsHash;
-    obj.consensus_hash = message.consensusHash;
-    obj.app_hash = message.appHash;
-    obj.last_results_hash = message.lastResultsHash;
-    obj.evidence_hash = message.evidenceHash;
-    obj.proposer_address = message.proposerAddress;
-    return obj;
-  },
-  fromAminoMsg(object: HeaderAminoMsg): Header {
-    return Header.fromAmino(object.value);
-  },
-  fromProtoMsg(message: HeaderProtoMsg): Header {
-    return Header.decode(message.value);
-  },
-  toProto(message: Header): Uint8Array {
-    return Header.encode(message).finish();
-  },
-  toProtoMsg(message: Header): HeaderProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Header",
-      value: Header.encode(message).finish()
-    };
-  }
-};
-function createBaseData(): Data {
-  return {
-    txs: []
-  };
-}
-export const Data = {
-  typeUrl: "/tendermint.types.Data",
-  encode(message: Data, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.txs) {
-      writer.uint32(10).bytes(v!);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Data {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseData();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.txs.push(reader.bytes());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Data {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => bytesFromBase64(e)) : []
-    };
-  },
-  toJSON(message: Data): unknown {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => base64FromBytes(e !== undefined ? e : new Uint8Array()));
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Data>): Data {
-    const message = createBaseData();
-    message.txs = object.txs?.map(e => e) || [];
-    return message;
-  },
-  fromSDK(object: DataSDKType): Data {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => e) : []
-    };
-  },
-  toSDK(message: Data): DataSDKType {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e);
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromAmino(object: DataAmino): Data {
-    return {
-      txs: Array.isArray(object?.txs) ? object.txs.map((e: any) => e) : []
-    };
-  },
-  toAmino(message: Data): DataAmino {
-    const obj: any = {};
-    if (message.txs) {
-      obj.txs = message.txs.map(e => e);
-    } else {
-      obj.txs = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: DataAminoMsg): Data {
-    return Data.fromAmino(object.value);
-  },
-  fromProtoMsg(message: DataProtoMsg): Data {
-    return Data.decode(message.value);
-  },
-  toProto(message: Data): Uint8Array {
-    return Data.encode(message).finish();
-  },
-  toProtoMsg(message: Data): DataProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Data",
-      value: Data.encode(message).finish()
-    };
-  }
-};
-function createBaseVote(): Vote {
-  return {
-    type: 0,
-    height: BigInt(0),
-    round: 0,
-    blockId: BlockID.fromPartial({}),
-    timestamp: new Date(),
-    validatorAddress: new Uint8Array(),
-    validatorIndex: 0,
-    signature: new Uint8Array()
-  };
-}
-export const Vote = {
-  typeUrl: "/tendermint.types.Vote",
-  encode(message: Vote, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== 0) {
-      writer.uint32(8).int32(message.type);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(16).int64(message.height);
-    }
-    if (message.round !== 0) {
-      writer.uint32(24).int32(message.round);
-    }
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();
-    }
-    if (message.validatorAddress.length !== 0) {
-      writer.uint32(50).bytes(message.validatorAddress);
-    }
-    if (message.validatorIndex !== 0) {
-      writer.uint32(56).int32(message.validatorIndex);
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(66).bytes(message.signature);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Vote {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseVote();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = (reader.int32() as any);
-          break;
-        case 2:
-          message.height = reader.int64();
-          break;
-        case 3:
-          message.round = reader.int32();
-          break;
-        case 4:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 5:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 6:
-          message.validatorAddress = reader.bytes();
-          break;
-        case 7:
-          message.validatorIndex = reader.int32();
-          break;
-        case 8:
-          message.signature = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Vote {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      round: isSet(object.round) ? Number(object.round) : 0,
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined,
-      validatorAddress: isSet(object.validatorAddress) ? bytesFromBase64(object.validatorAddress) : new Uint8Array(),
-      validatorIndex: isSet(object.validatorIndex) ? Number(object.validatorIndex) : 0,
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array()
-    };
-  },
-  toJSON(message: Vote): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.round !== undefined && (obj.round = Math.round(message.round));
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    message.validatorAddress !== undefined && (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));
-    message.validatorIndex !== undefined && (obj.validatorIndex = Math.round(message.validatorIndex));
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Vote>): Vote {
-    const message = createBaseVote();
-    message.type = object.type ?? 0;
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.round = object.round ?? 0;
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.timestamp = object.timestamp ?? undefined;
-    message.validatorAddress = object.validatorAddress ?? new Uint8Array();
-    message.validatorIndex = object.validatorIndex ?? 0;
-    message.signature = object.signature ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: VoteSDKType): Vote {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: object?.height,
-      round: object?.round,
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      timestamp: object.timestamp ?? undefined,
-      validatorAddress: object?.validator_address,
-      validatorIndex: object?.validator_index,
-      signature: object?.signature
-    };
-  },
-  toSDK(message: Vote): VoteSDKType {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));
-    obj.height = message.height;
-    obj.round = message.round;
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    obj.validator_address = message.validatorAddress;
-    obj.validator_index = message.validatorIndex;
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAmino(object: VoteAmino): Vote {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: BigInt(object.height),
-      round: object.round,
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      timestamp: object.timestamp,
-      validatorAddress: object.validator_address,
-      validatorIndex: object.validator_index,
-      signature: object.signature
-    };
-  },
-  toAmino(message: Vote): VoteAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.round = message.round;
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.timestamp = message.timestamp;
-    obj.validator_address = message.validatorAddress;
-    obj.validator_index = message.validatorIndex;
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAminoMsg(object: VoteAminoMsg): Vote {
-    return Vote.fromAmino(object.value);
-  },
-  fromProtoMsg(message: VoteProtoMsg): Vote {
-    return Vote.decode(message.value);
-  },
-  toProto(message: Vote): Uint8Array {
-    return Vote.encode(message).finish();
-  },
-  toProtoMsg(message: Vote): VoteProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Vote",
-      value: Vote.encode(message).finish()
-    };
-  }
-};
-function createBaseCommit(): Commit {
-  return {
-    height: BigInt(0),
-    round: 0,
-    blockId: BlockID.fromPartial({}),
-    signatures: []
-  };
-}
-export const Commit = {
-  typeUrl: "/tendermint.types.Commit",
-  encode(message: Commit, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.height !== BigInt(0)) {
-      writer.uint32(8).int64(message.height);
-    }
-    if (message.round !== 0) {
-      writer.uint32(16).int32(message.round);
-    }
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();
-    }
-    for (const v of message.signatures) {
-      CommitSig.encode(v!, writer.uint32(34).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Commit {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommit();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.height = reader.int64();
-          break;
-        case 2:
-          message.round = reader.int32();
-          break;
-        case 3:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.signatures.push(CommitSig.decode(reader, reader.uint32()));
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Commit {
-    return {
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      round: isSet(object.round) ? Number(object.round) : 0,
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => CommitSig.fromJSON(e)) : []
-    };
-  },
-  toJSON(message: Commit): unknown {
-    const obj: any = {};
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.round !== undefined && (obj.round = Math.round(message.round));
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? CommitSig.toJSON(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Commit>): Commit {
-    const message = createBaseCommit();
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.round = object.round ?? 0;
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.signatures = object.signatures?.map(e => CommitSig.fromPartial(e)) || [];
-    return message;
-  },
-  fromSDK(object: CommitSDKType): Commit {
-    return {
-      height: object?.height,
-      round: object?.round,
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => CommitSig.fromSDK(e)) : []
-    };
-  },
-  toSDK(message: Commit): CommitSDKType {
-    const obj: any = {};
-    obj.height = message.height;
-    obj.round = message.round;
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? CommitSig.toSDK(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAmino(object: CommitAmino): Commit {
-    return {
-      height: BigInt(object.height),
-      round: object.round,
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => CommitSig.fromAmino(e)) : []
-    };
-  },
-  toAmino(message: Commit): CommitAmino {
-    const obj: any = {};
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.round = message.round;
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    if (message.signatures) {
-      obj.signatures = message.signatures.map(e => e ? CommitSig.toAmino(e) : undefined);
-    } else {
-      obj.signatures = [];
-    }
-    return obj;
-  },
-  fromAminoMsg(object: CommitAminoMsg): Commit {
-    return Commit.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CommitProtoMsg): Commit {
-    return Commit.decode(message.value);
-  },
-  toProto(message: Commit): Uint8Array {
-    return Commit.encode(message).finish();
-  },
-  toProtoMsg(message: Commit): CommitProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Commit",
-      value: Commit.encode(message).finish()
-    };
-  }
-};
-function createBaseCommitSig(): CommitSig {
-  return {
-    blockIdFlag: 0,
-    validatorAddress: new Uint8Array(),
-    timestamp: new Date(),
-    signature: new Uint8Array()
-  };
-}
-export const CommitSig = {
-  typeUrl: "/tendermint.types.CommitSig",
-  encode(message: CommitSig, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockIdFlag !== 0) {
-      writer.uint32(8).int32(message.blockIdFlag);
-    }
-    if (message.validatorAddress.length !== 0) {
-      writer.uint32(18).bytes(message.validatorAddress);
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(26).fork()).ldelim();
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(34).bytes(message.signature);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): CommitSig {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseCommitSig();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockIdFlag = (reader.int32() as any);
-          break;
-        case 2:
-          message.validatorAddress = reader.bytes();
-          break;
-        case 3:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 4:
-          message.signature = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): CommitSig {
-    return {
-      blockIdFlag: isSet(object.blockIdFlag) ? blockIDFlagFromJSON(object.blockIdFlag) : -1,
-      validatorAddress: isSet(object.validatorAddress) ? bytesFromBase64(object.validatorAddress) : new Uint8Array(),
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined,
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array()
-    };
-  },
-  toJSON(message: CommitSig): unknown {
-    const obj: any = {};
-    message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));
-    message.validatorAddress !== undefined && (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<CommitSig>): CommitSig {
-    const message = createBaseCommitSig();
-    message.blockIdFlag = object.blockIdFlag ?? 0;
-    message.validatorAddress = object.validatorAddress ?? new Uint8Array();
-    message.timestamp = object.timestamp ?? undefined;
-    message.signature = object.signature ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: CommitSigSDKType): CommitSig {
-    return {
-      blockIdFlag: isSet(object.block_id_flag) ? blockIDFlagFromJSON(object.block_id_flag) : -1,
-      validatorAddress: object?.validator_address,
-      timestamp: object.timestamp ?? undefined,
-      signature: object?.signature
-    };
-  },
-  toSDK(message: CommitSig): CommitSigSDKType {
-    const obj: any = {};
-    message.blockIdFlag !== undefined && (obj.block_id_flag = blockIDFlagToJSON(message.blockIdFlag));
-    obj.validator_address = message.validatorAddress;
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAmino(object: CommitSigAmino): CommitSig {
-    return {
-      blockIdFlag: isSet(object.block_id_flag) ? blockIDFlagFromJSON(object.block_id_flag) : -1,
-      validatorAddress: object.validator_address,
-      timestamp: object.timestamp,
-      signature: object.signature
-    };
-  },
-  toAmino(message: CommitSig): CommitSigAmino {
-    const obj: any = {};
-    obj.block_id_flag = message.blockIdFlag;
-    obj.validator_address = message.validatorAddress;
-    obj.timestamp = message.timestamp;
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAminoMsg(object: CommitSigAminoMsg): CommitSig {
-    return CommitSig.fromAmino(object.value);
-  },
-  fromProtoMsg(message: CommitSigProtoMsg): CommitSig {
-    return CommitSig.decode(message.value);
-  },
-  toProto(message: CommitSig): Uint8Array {
-    return CommitSig.encode(message).finish();
-  },
-  toProtoMsg(message: CommitSig): CommitSigProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.CommitSig",
-      value: CommitSig.encode(message).finish()
-    };
-  }
-};
-function createBaseProposal(): Proposal {
-  return {
-    type: 0,
-    height: BigInt(0),
-    round: 0,
-    polRound: 0,
-    blockId: BlockID.fromPartial({}),
-    timestamp: new Date(),
-    signature: new Uint8Array()
-  };
-}
-export const Proposal = {
-  typeUrl: "/tendermint.types.Proposal",
-  encode(message: Proposal, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.type !== 0) {
-      writer.uint32(8).int32(message.type);
-    }
-    if (message.height !== BigInt(0)) {
-      writer.uint32(16).int64(message.height);
-    }
-    if (message.round !== 0) {
-      writer.uint32(24).int32(message.round);
-    }
-    if (message.polRound !== 0) {
-      writer.uint32(32).int32(message.polRound);
-    }
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();
-    }
-    if (message.timestamp !== undefined) {
-      Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();
-    }
-    if (message.signature.length !== 0) {
-      writer.uint32(58).bytes(message.signature);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Proposal {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseProposal();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.type = (reader.int32() as any);
-          break;
-        case 2:
-          message.height = reader.int64();
-          break;
-        case 3:
-          message.round = reader.int32();
-          break;
-        case 4:
-          message.polRound = reader.int32();
-          break;
-        case 5:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 6:
-          message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
-          break;
-        case 7:
-          message.signature = reader.bytes();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Proposal {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: isSet(object.height) ? BigInt(object.height.toString()) : BigInt(0),
-      round: isSet(object.round) ? Number(object.round) : 0,
-      polRound: isSet(object.polRound) ? Number(object.polRound) : 0,
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      timestamp: isSet(object.timestamp) ? new Date(object.timestamp) : undefined,
-      signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array()
-    };
-  },
-  toJSON(message: Proposal): unknown {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));
-    message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());
-    message.round !== undefined && (obj.round = Math.round(message.round));
-    message.polRound !== undefined && (obj.polRound = Math.round(message.polRound));
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());
-    message.signature !== undefined && (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Proposal>): Proposal {
-    const message = createBaseProposal();
-    message.type = object.type ?? 0;
-    message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
-    message.round = object.round ?? 0;
-    message.polRound = object.polRound ?? 0;
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.timestamp = object.timestamp ?? undefined;
-    message.signature = object.signature ?? new Uint8Array();
-    return message;
-  },
-  fromSDK(object: ProposalSDKType): Proposal {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: object?.height,
-      round: object?.round,
-      polRound: object?.pol_round,
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      timestamp: object.timestamp ?? undefined,
-      signature: object?.signature
-    };
-  },
-  toSDK(message: Proposal): ProposalSDKType {
-    const obj: any = {};
-    message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));
-    obj.height = message.height;
-    obj.round = message.round;
-    obj.pol_round = message.polRound;
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    message.timestamp !== undefined && (obj.timestamp = message.timestamp ?? undefined);
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAmino(object: ProposalAmino): Proposal {
-    return {
-      type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : -1,
-      height: BigInt(object.height),
-      round: object.round,
-      polRound: object.pol_round,
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      timestamp: object.timestamp,
-      signature: object.signature
-    };
-  },
-  toAmino(message: Proposal): ProposalAmino {
-    const obj: any = {};
-    obj.type = message.type;
-    obj.height = message.height ? message.height.toString() : undefined;
-    obj.round = message.round;
-    obj.pol_round = message.polRound;
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.timestamp = message.timestamp;
-    obj.signature = message.signature;
-    return obj;
-  },
-  fromAminoMsg(object: ProposalAminoMsg): Proposal {
-    return Proposal.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ProposalProtoMsg): Proposal {
-    return Proposal.decode(message.value);
-  },
-  toProto(message: Proposal): Uint8Array {
-    return Proposal.encode(message).finish();
-  },
-  toProtoMsg(message: Proposal): ProposalProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Proposal",
-      value: Proposal.encode(message).finish()
-    };
-  }
-};
-function createBaseSignedHeader(): SignedHeader {
-  return {
-    header: Header.fromPartial({}),
-    commit: Commit.fromPartial({})
-  };
-}
-export const SignedHeader = {
-  typeUrl: "/tendermint.types.SignedHeader",
-  encode(message: SignedHeader, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.header !== undefined) {
-      Header.encode(message.header, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.commit !== undefined) {
-      Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SignedHeader {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSignedHeader();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.header = Header.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.commit = Commit.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SignedHeader {
-    return {
-      header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,
-      commit: isSet(object.commit) ? Commit.fromJSON(object.commit) : undefined
-    };
-  },
-  toJSON(message: SignedHeader): unknown {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toJSON(message.header) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? Commit.toJSON(message.commit) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SignedHeader>): SignedHeader {
-    const message = createBaseSignedHeader();
-    message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined;
-    message.commit = object.commit !== undefined && object.commit !== null ? Commit.fromPartial(object.commit) : undefined;
-    return message;
-  },
-  fromSDK(object: SignedHeaderSDKType): SignedHeader {
-    return {
-      header: object.header ? Header.fromSDK(object.header) : undefined,
-      commit: object.commit ? Commit.fromSDK(object.commit) : undefined
-    };
-  },
-  toSDK(message: SignedHeader): SignedHeaderSDKType {
-    const obj: any = {};
-    message.header !== undefined && (obj.header = message.header ? Header.toSDK(message.header) : undefined);
-    message.commit !== undefined && (obj.commit = message.commit ? Commit.toSDK(message.commit) : undefined);
-    return obj;
-  },
-  fromAmino(object: SignedHeaderAmino): SignedHeader {
-    return {
-      header: object?.header ? Header.fromAmino(object.header) : undefined,
-      commit: object?.commit ? Commit.fromAmino(object.commit) : undefined
-    };
-  },
-  toAmino(message: SignedHeader): SignedHeaderAmino {
-    const obj: any = {};
-    obj.header = message.header ? Header.toAmino(message.header) : undefined;
-    obj.commit = message.commit ? Commit.toAmino(message.commit) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SignedHeaderAminoMsg): SignedHeader {
-    return SignedHeader.fromAmino(object.value);
-  },
-  fromProtoMsg(message: SignedHeaderProtoMsg): SignedHeader {
-    return SignedHeader.decode(message.value);
-  },
-  toProto(message: SignedHeader): Uint8Array {
-    return SignedHeader.encode(message).finish();
-  },
-  toProtoMsg(message: SignedHeader): SignedHeaderProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.SignedHeader",
-      value: SignedHeader.encode(message).finish()
-    };
-  }
-};
-function createBaseLightBlock(): LightBlock {
-  return {
-    signedHeader: SignedHeader.fromPartial({}),
-    validatorSet: ValidatorSet.fromPartial({})
-  };
-}
-export const LightBlock = {
-  typeUrl: "/tendermint.types.LightBlock",
-  encode(message: LightBlock, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.signedHeader !== undefined) {
-      SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.validatorSet !== undefined) {
-      ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): LightBlock {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseLightBlock();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.signedHeader = SignedHeader.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.validatorSet = ValidatorSet.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): LightBlock {
-    return {
-      signedHeader: isSet(object.signedHeader) ? SignedHeader.fromJSON(object.signedHeader) : undefined,
-      validatorSet: isSet(object.validatorSet) ? ValidatorSet.fromJSON(object.validatorSet) : undefined
-    };
-  },
-  toJSON(message: LightBlock): unknown {
-    const obj: any = {};
-    message.signedHeader !== undefined && (obj.signedHeader = message.signedHeader ? SignedHeader.toJSON(message.signedHeader) : undefined);
-    message.validatorSet !== undefined && (obj.validatorSet = message.validatorSet ? ValidatorSet.toJSON(message.validatorSet) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<LightBlock>): LightBlock {
-    const message = createBaseLightBlock();
-    message.signedHeader = object.signedHeader !== undefined && object.signedHeader !== null ? SignedHeader.fromPartial(object.signedHeader) : undefined;
-    message.validatorSet = object.validatorSet !== undefined && object.validatorSet !== null ? ValidatorSet.fromPartial(object.validatorSet) : undefined;
-    return message;
-  },
-  fromSDK(object: LightBlockSDKType): LightBlock {
-    return {
-      signedHeader: object.signed_header ? SignedHeader.fromSDK(object.signed_header) : undefined,
-      validatorSet: object.validator_set ? ValidatorSet.fromSDK(object.validator_set) : undefined
-    };
-  },
-  toSDK(message: LightBlock): LightBlockSDKType {
-    const obj: any = {};
-    message.signedHeader !== undefined && (obj.signed_header = message.signedHeader ? SignedHeader.toSDK(message.signedHeader) : undefined);
-    message.validatorSet !== undefined && (obj.validator_set = message.validatorSet ? ValidatorSet.toSDK(message.validatorSet) : undefined);
-    return obj;
-  },
-  fromAmino(object: LightBlockAmino): LightBlock {
-    return {
-      signedHeader: object?.signed_header ? SignedHeader.fromAmino(object.signed_header) : undefined,
-      validatorSet: object?.validator_set ? ValidatorSet.fromAmino(object.validator_set) : undefined
-    };
-  },
-  toAmino(message: LightBlock): LightBlockAmino {
-    const obj: any = {};
-    obj.signed_header = message.signedHeader ? SignedHeader.toAmino(message.signedHeader) : undefined;
-    obj.validator_set = message.validatorSet ? ValidatorSet.toAmino(message.validatorSet) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: LightBlockAminoMsg): LightBlock {
-    return LightBlock.fromAmino(object.value);
-  },
-  fromProtoMsg(message: LightBlockProtoMsg): LightBlock {
-    return LightBlock.decode(message.value);
-  },
-  toProto(message: LightBlock): Uint8Array {
-    return LightBlock.encode(message).finish();
-  },
-  toProtoMsg(message: LightBlock): LightBlockProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.LightBlock",
-      value: LightBlock.encode(message).finish()
-    };
-  }
-};
-function createBaseBlockMeta(): BlockMeta {
-  return {
-    blockId: BlockID.fromPartial({}),
-    blockSize: BigInt(0),
-    header: Header.fromPartial({}),
-    numTxs: BigInt(0)
-  };
-}
-export const BlockMeta = {
-  typeUrl: "/tendermint.types.BlockMeta",
-  encode(message: BlockMeta, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.blockId !== undefined) {
-      BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.blockSize !== BigInt(0)) {
-      writer.uint32(16).int64(message.blockSize);
-    }
-    if (message.header !== undefined) {
-      Header.encode(message.header, writer.uint32(26).fork()).ldelim();
-    }
-    if (message.numTxs !== BigInt(0)) {
-      writer.uint32(32).int64(message.numTxs);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): BlockMeta {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseBlockMeta();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.blockId = BlockID.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.blockSize = reader.int64();
-          break;
-        case 3:
-          message.header = Header.decode(reader, reader.uint32());
-          break;
-        case 4:
-          message.numTxs = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): BlockMeta {
-    return {
-      blockId: isSet(object.blockId) ? BlockID.fromJSON(object.blockId) : undefined,
-      blockSize: isSet(object.blockSize) ? BigInt(object.blockSize.toString()) : BigInt(0),
-      header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,
-      numTxs: isSet(object.numTxs) ? BigInt(object.numTxs.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: BlockMeta): unknown {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined);
-    message.blockSize !== undefined && (obj.blockSize = (message.blockSize || BigInt(0)).toString());
-    message.header !== undefined && (obj.header = message.header ? Header.toJSON(message.header) : undefined);
-    message.numTxs !== undefined && (obj.numTxs = (message.numTxs || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<BlockMeta>): BlockMeta {
-    const message = createBaseBlockMeta();
-    message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined;
-    message.blockSize = object.blockSize !== undefined && object.blockSize !== null ? BigInt(object.blockSize.toString()) : BigInt(0);
-    message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined;
-    message.numTxs = object.numTxs !== undefined && object.numTxs !== null ? BigInt(object.numTxs.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: BlockMetaSDKType): BlockMeta {
-    return {
-      blockId: object.block_id ? BlockID.fromSDK(object.block_id) : undefined,
-      blockSize: object?.block_size,
-      header: object.header ? Header.fromSDK(object.header) : undefined,
-      numTxs: object?.num_txs
-    };
-  },
-  toSDK(message: BlockMeta): BlockMetaSDKType {
-    const obj: any = {};
-    message.blockId !== undefined && (obj.block_id = message.blockId ? BlockID.toSDK(message.blockId) : undefined);
-    obj.block_size = message.blockSize;
-    message.header !== undefined && (obj.header = message.header ? Header.toSDK(message.header) : undefined);
-    obj.num_txs = message.numTxs;
-    return obj;
-  },
-  fromAmino(object: BlockMetaAmino): BlockMeta {
-    return {
-      blockId: object?.block_id ? BlockID.fromAmino(object.block_id) : undefined,
-      blockSize: BigInt(object.block_size),
-      header: object?.header ? Header.fromAmino(object.header) : undefined,
-      numTxs: BigInt(object.num_txs)
-    };
-  },
-  toAmino(message: BlockMeta): BlockMetaAmino {
-    const obj: any = {};
-    obj.block_id = message.blockId ? BlockID.toAmino(message.blockId) : undefined;
-    obj.block_size = message.blockSize ? message.blockSize.toString() : undefined;
-    obj.header = message.header ? Header.toAmino(message.header) : undefined;
-    obj.num_txs = message.numTxs ? message.numTxs.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: BlockMetaAminoMsg): BlockMeta {
-    return BlockMeta.fromAmino(object.value);
-  },
-  fromProtoMsg(message: BlockMetaProtoMsg): BlockMeta {
-    return BlockMeta.decode(message.value);
-  },
-  toProto(message: BlockMeta): Uint8Array {
-    return BlockMeta.encode(message).finish();
-  },
-  toProtoMsg(message: BlockMeta): BlockMetaProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.BlockMeta",
-      value: BlockMeta.encode(message).finish()
-    };
-  }
-};
-function createBaseTxProof(): TxProof {
-  return {
-    rootHash: new Uint8Array(),
-    data: new Uint8Array(),
-    proof: Proof.fromPartial({})
-  };
-}
-export const TxProof = {
-  typeUrl: "/tendermint.types.TxProof",
-  encode(message: TxProof, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.rootHash.length !== 0) {
-      writer.uint32(10).bytes(message.rootHash);
-    }
-    if (message.data.length !== 0) {
-      writer.uint32(18).bytes(message.data);
-    }
-    if (message.proof !== undefined) {
-      Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): TxProof {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseTxProof();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.rootHash = reader.bytes();
-          break;
-        case 2:
-          message.data = reader.bytes();
-          break;
-        case 3:
-          message.proof = Proof.decode(reader, reader.uint32());
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): TxProof {
-    return {
-      rootHash: isSet(object.rootHash) ? bytesFromBase64(object.rootHash) : new Uint8Array(),
-      data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
-      proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined
-    };
-  },
-  toJSON(message: TxProof): unknown {
-    const obj: any = {};
-    message.rootHash !== undefined && (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));
-    message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<TxProof>): TxProof {
-    const message = createBaseTxProof();
-    message.rootHash = object.rootHash ?? new Uint8Array();
-    message.data = object.data ?? new Uint8Array();
-    message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined;
-    return message;
-  },
-  fromSDK(object: TxProofSDKType): TxProof {
-    return {
-      rootHash: object?.root_hash,
-      data: object?.data,
-      proof: object.proof ? Proof.fromSDK(object.proof) : undefined
-    };
-  },
-  toSDK(message: TxProof): TxProofSDKType {
-    const obj: any = {};
-    obj.root_hash = message.rootHash;
-    obj.data = message.data;
-    message.proof !== undefined && (obj.proof = message.proof ? Proof.toSDK(message.proof) : undefined);
-    return obj;
-  },
-  fromAmino(object: TxProofAmino): TxProof {
-    return {
-      rootHash: object.root_hash,
-      data: object.data,
-      proof: object?.proof ? Proof.fromAmino(object.proof) : undefined
-    };
-  },
-  toAmino(message: TxProof): TxProofAmino {
-    const obj: any = {};
-    obj.root_hash = message.rootHash;
-    obj.data = message.data;
-    obj.proof = message.proof ? Proof.toAmino(message.proof) : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: TxProofAminoMsg): TxProof {
-    return TxProof.fromAmino(object.value);
-  },
-  fromProtoMsg(message: TxProofProtoMsg): TxProof {
-    return TxProof.decode(message.value);
-  },
-  toProto(message: TxProof): Uint8Array {
-    return TxProof.encode(message).finish();
-  },
-  toProtoMsg(message: TxProof): TxProofProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.TxProof",
-      value: TxProof.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/types/validator.ts b/examples/injective/src/codegen/tendermint/types/validator.ts
deleted file mode 100644
index f960a63f..00000000
--- a/examples/injective/src/codegen/tendermint/types/validator.ts
+++ /dev/null
@@ -1,411 +0,0 @@
-import { PublicKey, PublicKeyAmino, PublicKeySDKType } from "../crypto/keys";
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial, bytesFromBase64, base64FromBytes } from "../../helpers";
-export interface ValidatorSet {
-  validators: Validator[];
-  proposer: Validator | undefined;
-  totalVotingPower: bigint;
-}
-export interface ValidatorSetProtoMsg {
-  typeUrl: "/tendermint.types.ValidatorSet";
-  value: Uint8Array;
-}
-export interface ValidatorSetAmino {
-  validators: ValidatorAmino[];
-  proposer?: ValidatorAmino | undefined;
-  total_voting_power: string;
-}
-export interface ValidatorSetAminoMsg {
-  type: "/tendermint.types.ValidatorSet";
-  value: ValidatorSetAmino;
-}
-export interface ValidatorSetSDKType {
-  validators: ValidatorSDKType[];
-  proposer: ValidatorSDKType | undefined;
-  total_voting_power: bigint;
-}
-export interface Validator {
-  address: Uint8Array;
-  pubKey: PublicKey | undefined;
-  votingPower: bigint;
-  proposerPriority: bigint;
-}
-export interface ValidatorProtoMsg {
-  typeUrl: "/tendermint.types.Validator";
-  value: Uint8Array;
-}
-export interface ValidatorAmino {
-  address: Uint8Array;
-  pub_key?: PublicKeyAmino | undefined;
-  voting_power: string;
-  proposer_priority: string;
-}
-export interface ValidatorAminoMsg {
-  type: "/tendermint.types.Validator";
-  value: ValidatorAmino;
-}
-export interface ValidatorSDKType {
-  address: Uint8Array;
-  pub_key: PublicKeySDKType | undefined;
-  voting_power: bigint;
-  proposer_priority: bigint;
-}
-export interface SimpleValidator {
-  pubKey: PublicKey | undefined;
-  votingPower: bigint;
-}
-export interface SimpleValidatorProtoMsg {
-  typeUrl: "/tendermint.types.SimpleValidator";
-  value: Uint8Array;
-}
-export interface SimpleValidatorAmino {
-  pub_key?: PublicKeyAmino | undefined;
-  voting_power: string;
-}
-export interface SimpleValidatorAminoMsg {
-  type: "/tendermint.types.SimpleValidator";
-  value: SimpleValidatorAmino;
-}
-export interface SimpleValidatorSDKType {
-  pub_key: PublicKeySDKType | undefined;
-  voting_power: bigint;
-}
-function createBaseValidatorSet(): ValidatorSet {
-  return {
-    validators: [],
-    proposer: Validator.fromPartial({}),
-    totalVotingPower: BigInt(0)
-  };
-}
-export const ValidatorSet = {
-  typeUrl: "/tendermint.types.ValidatorSet",
-  encode(message: ValidatorSet, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    for (const v of message.validators) {
-      Validator.encode(v!, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.proposer !== undefined) {
-      Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.totalVotingPower !== BigInt(0)) {
-      writer.uint32(24).int64(message.totalVotingPower);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): ValidatorSet {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidatorSet();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.validators.push(Validator.decode(reader, reader.uint32()));
-          break;
-        case 2:
-          message.proposer = Validator.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.totalVotingPower = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): ValidatorSet {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromJSON(e)) : [],
-      proposer: isSet(object.proposer) ? Validator.fromJSON(object.proposer) : undefined,
-      totalVotingPower: isSet(object.totalVotingPower) ? BigInt(object.totalVotingPower.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: ValidatorSet): unknown {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toJSON(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.proposer !== undefined && (obj.proposer = message.proposer ? Validator.toJSON(message.proposer) : undefined);
-    message.totalVotingPower !== undefined && (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<ValidatorSet>): ValidatorSet {
-    const message = createBaseValidatorSet();
-    message.validators = object.validators?.map(e => Validator.fromPartial(e)) || [];
-    message.proposer = object.proposer !== undefined && object.proposer !== null ? Validator.fromPartial(object.proposer) : undefined;
-    message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? BigInt(object.totalVotingPower.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorSetSDKType): ValidatorSet {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromSDK(e)) : [],
-      proposer: object.proposer ? Validator.fromSDK(object.proposer) : undefined,
-      totalVotingPower: object?.total_voting_power
-    };
-  },
-  toSDK(message: ValidatorSet): ValidatorSetSDKType {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toSDK(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    message.proposer !== undefined && (obj.proposer = message.proposer ? Validator.toSDK(message.proposer) : undefined);
-    obj.total_voting_power = message.totalVotingPower;
-    return obj;
-  },
-  fromAmino(object: ValidatorSetAmino): ValidatorSet {
-    return {
-      validators: Array.isArray(object?.validators) ? object.validators.map((e: any) => Validator.fromAmino(e)) : [],
-      proposer: object?.proposer ? Validator.fromAmino(object.proposer) : undefined,
-      totalVotingPower: BigInt(object.total_voting_power)
-    };
-  },
-  toAmino(message: ValidatorSet): ValidatorSetAmino {
-    const obj: any = {};
-    if (message.validators) {
-      obj.validators = message.validators.map(e => e ? Validator.toAmino(e) : undefined);
-    } else {
-      obj.validators = [];
-    }
-    obj.proposer = message.proposer ? Validator.toAmino(message.proposer) : undefined;
-    obj.total_voting_power = message.totalVotingPower ? message.totalVotingPower.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorSetAminoMsg): ValidatorSet {
-    return ValidatorSet.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValidatorSetProtoMsg): ValidatorSet {
-    return ValidatorSet.decode(message.value);
-  },
-  toProto(message: ValidatorSet): Uint8Array {
-    return ValidatorSet.encode(message).finish();
-  },
-  toProtoMsg(message: ValidatorSet): ValidatorSetProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.ValidatorSet",
-      value: ValidatorSet.encode(message).finish()
-    };
-  }
-};
-function createBaseValidator(): Validator {
-  return {
-    address: new Uint8Array(),
-    pubKey: PublicKey.fromPartial({}),
-    votingPower: BigInt(0),
-    proposerPriority: BigInt(0)
-  };
-}
-export const Validator = {
-  typeUrl: "/tendermint.types.Validator",
-  encode(message: Validator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.address.length !== 0) {
-      writer.uint32(10).bytes(message.address);
-    }
-    if (message.pubKey !== undefined) {
-      PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();
-    }
-    if (message.votingPower !== BigInt(0)) {
-      writer.uint32(24).int64(message.votingPower);
-    }
-    if (message.proposerPriority !== BigInt(0)) {
-      writer.uint32(32).int64(message.proposerPriority);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Validator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.address = reader.bytes();
-          break;
-        case 2:
-          message.pubKey = PublicKey.decode(reader, reader.uint32());
-          break;
-        case 3:
-          message.votingPower = reader.int64();
-          break;
-        case 4:
-          message.proposerPriority = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Validator {
-    return {
-      address: isSet(object.address) ? bytesFromBase64(object.address) : new Uint8Array(),
-      pubKey: isSet(object.pubKey) ? PublicKey.fromJSON(object.pubKey) : undefined,
-      votingPower: isSet(object.votingPower) ? BigInt(object.votingPower.toString()) : BigInt(0),
-      proposerPriority: isSet(object.proposerPriority) ? BigInt(object.proposerPriority.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Validator): unknown {
-    const obj: any = {};
-    message.address !== undefined && (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? PublicKey.toJSON(message.pubKey) : undefined);
-    message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());
-    message.proposerPriority !== undefined && (obj.proposerPriority = (message.proposerPriority || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Validator>): Validator {
-    const message = createBaseValidator();
-    message.address = object.address ?? new Uint8Array();
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined;
-    message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? BigInt(object.votingPower.toString()) : BigInt(0);
-    message.proposerPriority = object.proposerPriority !== undefined && object.proposerPriority !== null ? BigInt(object.proposerPriority.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ValidatorSDKType): Validator {
-    return {
-      address: object?.address,
-      pubKey: object.pub_key ? PublicKey.fromSDK(object.pub_key) : undefined,
-      votingPower: object?.voting_power,
-      proposerPriority: object?.proposer_priority
-    };
-  },
-  toSDK(message: Validator): ValidatorSDKType {
-    const obj: any = {};
-    obj.address = message.address;
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? PublicKey.toSDK(message.pubKey) : undefined);
-    obj.voting_power = message.votingPower;
-    obj.proposer_priority = message.proposerPriority;
-    return obj;
-  },
-  fromAmino(object: ValidatorAmino): Validator {
-    return {
-      address: object.address,
-      pubKey: object?.pub_key ? PublicKey.fromAmino(object.pub_key) : undefined,
-      votingPower: BigInt(object.voting_power),
-      proposerPriority: BigInt(object.proposer_priority)
-    };
-  },
-  toAmino(message: Validator): ValidatorAmino {
-    const obj: any = {};
-    obj.address = message.address;
-    obj.pub_key = message.pubKey ? PublicKey.toAmino(message.pubKey) : undefined;
-    obj.voting_power = message.votingPower ? message.votingPower.toString() : undefined;
-    obj.proposer_priority = message.proposerPriority ? message.proposerPriority.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ValidatorAminoMsg): Validator {
-    return Validator.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ValidatorProtoMsg): Validator {
-    return Validator.decode(message.value);
-  },
-  toProto(message: Validator): Uint8Array {
-    return Validator.encode(message).finish();
-  },
-  toProtoMsg(message: Validator): ValidatorProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.Validator",
-      value: Validator.encode(message).finish()
-    };
-  }
-};
-function createBaseSimpleValidator(): SimpleValidator {
-  return {
-    pubKey: PublicKey.fromPartial({}),
-    votingPower: BigInt(0)
-  };
-}
-export const SimpleValidator = {
-  typeUrl: "/tendermint.types.SimpleValidator",
-  encode(message: SimpleValidator, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.pubKey !== undefined) {
-      PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();
-    }
-    if (message.votingPower !== BigInt(0)) {
-      writer.uint32(16).int64(message.votingPower);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): SimpleValidator {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseSimpleValidator();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.pubKey = PublicKey.decode(reader, reader.uint32());
-          break;
-        case 2:
-          message.votingPower = reader.int64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): SimpleValidator {
-    return {
-      pubKey: isSet(object.pubKey) ? PublicKey.fromJSON(object.pubKey) : undefined,
-      votingPower: isSet(object.votingPower) ? BigInt(object.votingPower.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: SimpleValidator): unknown {
-    const obj: any = {};
-    message.pubKey !== undefined && (obj.pubKey = message.pubKey ? PublicKey.toJSON(message.pubKey) : undefined);
-    message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<SimpleValidator>): SimpleValidator {
-    const message = createBaseSimpleValidator();
-    message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined;
-    message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? BigInt(object.votingPower.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: SimpleValidatorSDKType): SimpleValidator {
-    return {
-      pubKey: object.pub_key ? PublicKey.fromSDK(object.pub_key) : undefined,
-      votingPower: object?.voting_power
-    };
-  },
-  toSDK(message: SimpleValidator): SimpleValidatorSDKType {
-    const obj: any = {};
-    message.pubKey !== undefined && (obj.pub_key = message.pubKey ? PublicKey.toSDK(message.pubKey) : undefined);
-    obj.voting_power = message.votingPower;
-    return obj;
-  },
-  fromAmino(object: SimpleValidatorAmino): SimpleValidator {
-    return {
-      pubKey: object?.pub_key ? PublicKey.fromAmino(object.pub_key) : undefined,
-      votingPower: BigInt(object.voting_power)
-    };
-  },
-  toAmino(message: SimpleValidator): SimpleValidatorAmino {
-    const obj: any = {};
-    obj.pub_key = message.pubKey ? PublicKey.toAmino(message.pubKey) : undefined;
-    obj.voting_power = message.votingPower ? message.votingPower.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: SimpleValidatorAminoMsg): SimpleValidator {
-    return SimpleValidator.fromAmino(object.value);
-  },
-  fromProtoMsg(message: SimpleValidatorProtoMsg): SimpleValidator {
-    return SimpleValidator.decode(message.value);
-  },
-  toProto(message: SimpleValidator): Uint8Array {
-    return SimpleValidator.encode(message).finish();
-  },
-  toProtoMsg(message: SimpleValidator): SimpleValidatorProtoMsg {
-    return {
-      typeUrl: "/tendermint.types.SimpleValidator",
-      value: SimpleValidator.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/tendermint/version/types.ts b/examples/injective/src/codegen/tendermint/version/types.ts
deleted file mode 100644
index 8fd026e7..00000000
--- a/examples/injective/src/codegen/tendermint/version/types.ts
+++ /dev/null
@@ -1,262 +0,0 @@
-import { BinaryReader, BinaryWriter } from "../../binary";
-import { isSet, DeepPartial } from "../../helpers";
-/**
- * App includes the protocol and software version for the application.
- * This information is included in ResponseInfo. The App.Protocol can be
- * updated in ResponseEndBlock.
- */
-export interface App {
-  protocol: bigint;
-  software: string;
-}
-export interface AppProtoMsg {
-  typeUrl: "/tendermint.version.App";
-  value: Uint8Array;
-}
-/**
- * App includes the protocol and software version for the application.
- * This information is included in ResponseInfo. The App.Protocol can be
- * updated in ResponseEndBlock.
- */
-export interface AppAmino {
-  protocol: string;
-  software: string;
-}
-export interface AppAminoMsg {
-  type: "/tendermint.version.App";
-  value: AppAmino;
-}
-/**
- * App includes the protocol and software version for the application.
- * This information is included in ResponseInfo. The App.Protocol can be
- * updated in ResponseEndBlock.
- */
-export interface AppSDKType {
-  protocol: bigint;
-  software: string;
-}
-/**
- * Consensus captures the consensus rules for processing a block in the blockchain,
- * including all blockchain data structures and the rules of the application's
- * state transition machine.
- */
-export interface Consensus {
-  block: bigint;
-  app: bigint;
-}
-export interface ConsensusProtoMsg {
-  typeUrl: "/tendermint.version.Consensus";
-  value: Uint8Array;
-}
-/**
- * Consensus captures the consensus rules for processing a block in the blockchain,
- * including all blockchain data structures and the rules of the application's
- * state transition machine.
- */
-export interface ConsensusAmino {
-  block: string;
-  app: string;
-}
-export interface ConsensusAminoMsg {
-  type: "/tendermint.version.Consensus";
-  value: ConsensusAmino;
-}
-/**
- * Consensus captures the consensus rules for processing a block in the blockchain,
- * including all blockchain data structures and the rules of the application's
- * state transition machine.
- */
-export interface ConsensusSDKType {
-  block: bigint;
-  app: bigint;
-}
-function createBaseApp(): App {
-  return {
-    protocol: BigInt(0),
-    software: ""
-  };
-}
-export const App = {
-  typeUrl: "/tendermint.version.App",
-  encode(message: App, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.protocol !== BigInt(0)) {
-      writer.uint32(8).uint64(message.protocol);
-    }
-    if (message.software !== "") {
-      writer.uint32(18).string(message.software);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): App {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseApp();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.protocol = reader.uint64();
-          break;
-        case 2:
-          message.software = reader.string();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): App {
-    return {
-      protocol: isSet(object.protocol) ? BigInt(object.protocol.toString()) : BigInt(0),
-      software: isSet(object.software) ? String(object.software) : ""
-    };
-  },
-  toJSON(message: App): unknown {
-    const obj: any = {};
-    message.protocol !== undefined && (obj.protocol = (message.protocol || BigInt(0)).toString());
-    message.software !== undefined && (obj.software = message.software);
-    return obj;
-  },
-  fromPartial(object: DeepPartial<App>): App {
-    const message = createBaseApp();
-    message.protocol = object.protocol !== undefined && object.protocol !== null ? BigInt(object.protocol.toString()) : BigInt(0);
-    message.software = object.software ?? "";
-    return message;
-  },
-  fromSDK(object: AppSDKType): App {
-    return {
-      protocol: object?.protocol,
-      software: object?.software
-    };
-  },
-  toSDK(message: App): AppSDKType {
-    const obj: any = {};
-    obj.protocol = message.protocol;
-    obj.software = message.software;
-    return obj;
-  },
-  fromAmino(object: AppAmino): App {
-    return {
-      protocol: BigInt(object.protocol),
-      software: object.software
-    };
-  },
-  toAmino(message: App): AppAmino {
-    const obj: any = {};
-    obj.protocol = message.protocol ? message.protocol.toString() : undefined;
-    obj.software = message.software;
-    return obj;
-  },
-  fromAminoMsg(object: AppAminoMsg): App {
-    return App.fromAmino(object.value);
-  },
-  fromProtoMsg(message: AppProtoMsg): App {
-    return App.decode(message.value);
-  },
-  toProto(message: App): Uint8Array {
-    return App.encode(message).finish();
-  },
-  toProtoMsg(message: App): AppProtoMsg {
-    return {
-      typeUrl: "/tendermint.version.App",
-      value: App.encode(message).finish()
-    };
-  }
-};
-function createBaseConsensus(): Consensus {
-  return {
-    block: BigInt(0),
-    app: BigInt(0)
-  };
-}
-export const Consensus = {
-  typeUrl: "/tendermint.version.Consensus",
-  encode(message: Consensus, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter {
-    if (message.block !== BigInt(0)) {
-      writer.uint32(8).uint64(message.block);
-    }
-    if (message.app !== BigInt(0)) {
-      writer.uint32(16).uint64(message.app);
-    }
-    return writer;
-  },
-  decode(input: BinaryReader | Uint8Array, length?: number): Consensus {
-    const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
-    let end = length === undefined ? reader.len : reader.pos + length;
-    const message = createBaseConsensus();
-    while (reader.pos < end) {
-      const tag = reader.uint32();
-      switch (tag >>> 3) {
-        case 1:
-          message.block = reader.uint64();
-          break;
-        case 2:
-          message.app = reader.uint64();
-          break;
-        default:
-          reader.skipType(tag & 7);
-          break;
-      }
-    }
-    return message;
-  },
-  fromJSON(object: any): Consensus {
-    return {
-      block: isSet(object.block) ? BigInt(object.block.toString()) : BigInt(0),
-      app: isSet(object.app) ? BigInt(object.app.toString()) : BigInt(0)
-    };
-  },
-  toJSON(message: Consensus): unknown {
-    const obj: any = {};
-    message.block !== undefined && (obj.block = (message.block || BigInt(0)).toString());
-    message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());
-    return obj;
-  },
-  fromPartial(object: DeepPartial<Consensus>): Consensus {
-    const message = createBaseConsensus();
-    message.block = object.block !== undefined && object.block !== null ? BigInt(object.block.toString()) : BigInt(0);
-    message.app = object.app !== undefined && object.app !== null ? BigInt(object.app.toString()) : BigInt(0);
-    return message;
-  },
-  fromSDK(object: ConsensusSDKType): Consensus {
-    return {
-      block: object?.block,
-      app: object?.app
-    };
-  },
-  toSDK(message: Consensus): ConsensusSDKType {
-    const obj: any = {};
-    obj.block = message.block;
-    obj.app = message.app;
-    return obj;
-  },
-  fromAmino(object: ConsensusAmino): Consensus {
-    return {
-      block: BigInt(object.block),
-      app: BigInt(object.app)
-    };
-  },
-  toAmino(message: Consensus): ConsensusAmino {
-    const obj: any = {};
-    obj.block = message.block ? message.block.toString() : undefined;
-    obj.app = message.app ? message.app.toString() : undefined;
-    return obj;
-  },
-  fromAminoMsg(object: ConsensusAminoMsg): Consensus {
-    return Consensus.fromAmino(object.value);
-  },
-  fromProtoMsg(message: ConsensusProtoMsg): Consensus {
-    return Consensus.decode(message.value);
-  },
-  toProto(message: Consensus): Uint8Array {
-    return Consensus.encode(message).finish();
-  },
-  toProtoMsg(message: Consensus): ConsensusProtoMsg {
-    return {
-      typeUrl: "/tendermint.version.Consensus",
-      value: Consensus.encode(message).finish()
-    };
-  }
-};
\ No newline at end of file
diff --git a/examples/injective/src/codegen/utf8.ts b/examples/injective/src/codegen/utf8.ts
deleted file mode 100644
index 9e518f1e..00000000
--- a/examples/injective/src/codegen/utf8.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-
-// Copyright (c) 2016, Daniel Wirtz  All rights reserved.
-
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-
-// * Redistributions of source code must retain the above copyright
-//   notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright
-//   notice, this list of conditions and the following disclaimer in the
-//   documentation and/or other materials provided with the distribution.
-// * Neither the name of its author, nor the names of its contributors
-//   may be used to endorse or promote products derived from this software
-//   without specific prior written permission.
-
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"use strict";
-
-/**
- * Calculates the UTF8 byte length of a string.
- * @param {string} string String
- * @returns {number} Byte length
- */
-export function utf8Length(str: string) {
-  let len = 0,
-    c = 0;
-  for (let i = 0; i < str.length; ++i) {
-    c = str.charCodeAt(i);
-    if (c < 128) len += 1;
-    else if (c < 2048) len += 2;
-    else if (
-      (c & 0xfc00) === 0xd800 &&
-      (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00
-    ) {
-      ++i;
-      len += 4;
-    } else len += 3;
-  }
-  return len;
-}
-
-/**
- * Reads UTF8 bytes as a string.
- * @param {Uint8Array} buffer Source buffer
- * @param {number} start Source start
- * @param {number} end Source end
- * @returns {string} String read
- */
-export function utf8Read(
-  buffer: ArrayLike<number>,
-  start: number,
-  end: number
-) {
-  const len = end - start;
-  if (len < 1) return "";
-  const chunk = [];
-  let parts: string[] = [],
-    i = 0, // char offset
-    t; // temporary
-  while (start < end) {
-    t = buffer[start++];
-    if (t < 128) chunk[i++] = t;
-    else if (t > 191 && t < 224)
-      chunk[i++] = ((t & 31) << 6) | (buffer[start++] & 63);
-    else if (t > 239 && t < 365) {
-      t =
-        (((t & 7) << 18) |
-          ((buffer[start++] & 63) << 12) |
-          ((buffer[start++] & 63) << 6) |
-          (buffer[start++] & 63)) -
-        0x10000;
-      chunk[i++] = 0xd800 + (t >> 10);
-      chunk[i++] = 0xdc00 + (t & 1023);
-    } else
-      chunk[i++] =
-        ((t & 15) << 12) |
-        ((buffer[start++] & 63) << 6) |
-        (buffer[start++] & 63);
-    if (i > 8191) {
-      (parts || (parts = [])).push(String.fromCharCode(...chunk));
-      i = 0;
-    }
-  }
-  if (parts) {
-    if (i) parts.push(String.fromCharCode(...chunk.slice(0, i)));
-    return parts.join("");
-  }
-  return String.fromCharCode(...chunk.slice(0, i));
-}
-
-/**
- * Writes a string as UTF8 bytes.
- * @param {string} string Source string
- * @param {Uint8Array} buffer Destination buffer
- * @param {number} offset Destination offset
- * @returns {number} Bytes written
- */
-export function utf8Write(
-  str: string,
-  buffer: Uint8Array | Array<number>,
-  offset: number
-) {
-  const start = offset;
-  let c1, // character 1
-    c2; // character 2
-  for (let i = 0; i < str.length; ++i) {
-    c1 = str.charCodeAt(i);
-    if (c1 < 128) {
-      buffer[offset++] = c1;
-    } else if (c1 < 2048) {
-      buffer[offset++] = (c1 >> 6) | 192;
-      buffer[offset++] = (c1 & 63) | 128;
-    } else if (
-      (c1 & 0xfc00) === 0xd800 &&
-      ((c2 = str.charCodeAt(i + 1)) & 0xfc00) === 0xdc00
-    ) {
-      c1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff);
-      ++i;
-      buffer[offset++] = (c1 >> 18) | 240;
-      buffer[offset++] = ((c1 >> 12) & 63) | 128;
-      buffer[offset++] = ((c1 >> 6) & 63) | 128;
-      buffer[offset++] = (c1 & 63) | 128;
-    } else {
-      buffer[offset++] = (c1 >> 12) | 224;
-      buffer[offset++] = ((c1 >> 6) & 63) | 128;
-      buffer[offset++] = (c1 & 63) | 128;
-    }
-  }
-  return offset - start;
-}
diff --git a/examples/injective/src/codegen/varint.ts b/examples/injective/src/codegen/varint.ts
deleted file mode 100644
index ea730ab5..00000000
--- a/examples/injective/src/codegen/varint.ts
+++ /dev/null
@@ -1,488 +0,0 @@
-/**
-* This file and any referenced files were automatically generated by @cosmology/telescope@0.106.0
-* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
-* and run the transpile command or yarn proto command to regenerate this bundle.
-*/
-
-
-// Copyright 2008 Google Inc.  All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Code generated by the Protocol Buffer compiler is owned by the owner
-// of the input file used when generating it.  This code is not
-// standalone and requires a support library to be linked with it.  This
-// support library is itself covered by the above license.
-
-
-
-/**
- * Read a 64 bit varint as two JS numbers.
- *
- * Returns tuple:
- * [0]: low bits
- * [1]: high bits
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175
- */
-export function varint64read(this: ReaderLike): [number, number] {
-  let lowBits = 0;
-  let highBits = 0;
-
-  for (let shift = 0; shift < 28; shift += 7) {
-    let b = this.buf[this.pos++];
-    lowBits |= (b & 0x7f) << shift;
-    if ((b & 0x80) == 0) {
-      this.assertBounds();
-      return [lowBits, highBits];
-    }
-  }
-
-  let middleByte = this.buf[this.pos++];
-
-  // last four bits of the first 32 bit number
-  lowBits |= (middleByte & 0x0f) << 28;
-
-  // 3 upper bits are part of the next 32 bit number
-  highBits = (middleByte & 0x70) >> 4;
-
-  if ((middleByte & 0x80) == 0) {
-    this.assertBounds();
-    return [lowBits, highBits];
-  }
-
-  for (let shift = 3; shift <= 31; shift += 7) {
-    let b = this.buf[this.pos++];
-    highBits |= (b & 0x7f) << shift;
-    if ((b & 0x80) == 0) {
-      this.assertBounds();
-      return [lowBits, highBits];
-    }
-  }
-
-  throw new Error("invalid varint");
-}
-
-/**
- * Write a 64 bit varint, given as two JS numbers, to the given bytes array.
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344
- */
-export function varint64write(lo: number, hi: number, bytes: number[]): void {
-  for (let i = 0; i < 28; i = i + 7) {
-    const shift = lo >>> i;
-    const hasNext = !(shift >>> 7 == 0 && hi == 0);
-    const byte = (hasNext ? shift | 0x80 : shift) & 0xff;
-    bytes.push(byte);
-    if (!hasNext) {
-      return;
-    }
-  }
-
-  const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);
-  const hasMoreBits = !(hi >> 3 == 0);
-  bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);
-
-  if (!hasMoreBits) {
-    return;
-  }
-
-  for (let i = 3; i < 31; i = i + 7) {
-    const shift = hi >>> i;
-    const hasNext = !(shift >>> 7 == 0);
-    const byte = (hasNext ? shift | 0x80 : shift) & 0xff;
-    bytes.push(byte);
-    if (!hasNext) {
-      return;
-    }
-  }
-
-  bytes.push((hi >>> 31) & 0x01);
-}
-
-// constants for binary math
-const TWO_PWR_32_DBL = 0x100000000;
-
-/**
- * Parse decimal string of 64 bit integer value as two JS numbers.
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10
- */
-export function int64FromString(dec: string): { lo: number; hi: number } {
-  // Check for minus sign.
-  const minus = dec[0] === "-";
-  if (minus) {
-    dec = dec.slice(1);
-  }
-
-  // Work 6 decimal digits at a time, acting like we're converting base 1e6
-  // digits to binary. This is safe to do with floating point math because
-  // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.
-  const base = 1e6;
-  let lowBits = 0;
-  let highBits = 0;
-
-  function add1e6digit(begin: number, end?: number) {
-    // Note: Number('') is 0.
-    const digit1e6 = Number(dec.slice(begin, end));
-    highBits *= base;
-    lowBits = lowBits * base + digit1e6;
-    // Carry bits from lowBits to
-    if (lowBits >= TWO_PWR_32_DBL) {
-      highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);
-      lowBits = lowBits % TWO_PWR_32_DBL;
-    }
-  }
-
-  add1e6digit(-24, -18);
-  add1e6digit(-18, -12);
-  add1e6digit(-12, -6);
-  add1e6digit(-6);
-  return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);
-}
-
-/**
- * Losslessly converts a 64-bit signed integer in 32:32 split representation
- * into a decimal string.
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10
- */
-export function int64ToString(lo: number, hi: number): string {
-  let bits = newBits(lo, hi);
-  // If we're treating the input as a signed value and the high bit is set, do
-  // a manual two's complement conversion before the decimal conversion.
-  const negative = bits.hi & 0x80000000;
-  if (negative) {
-    bits = negate(bits.lo, bits.hi);
-  }
-  const result = uInt64ToString(bits.lo, bits.hi);
-  return negative ? "-" + result : result;
-}
-
-/**
- * Losslessly converts a 64-bit unsigned integer in 32:32 split representation
- * into a decimal string.
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10
- */
-export function uInt64ToString(lo: number, hi: number): string {
-  ({ lo, hi } = toUnsigned(lo, hi));
-  // Skip the expensive conversion if the number is small enough to use the
-  // built-in conversions.
-  // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with
-  // highBits <= 0x1FFFFF can be safely expressed with a double and retain
-  // integer precision.
-  // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.
-  if (hi <= 0x1fffff) {
-    return String(TWO_PWR_32_DBL * hi + lo);
-  }
-
-  // What this code is doing is essentially converting the input number from
-  // base-2 to base-1e7, which allows us to represent the 64-bit range with
-  // only 3 (very large) digits. Those digits are then trivial to convert to
-  // a base-10 string.
-
-  // The magic numbers used here are -
-  // 2^24 = 16777216 = (1,6777216) in base-1e7.
-  // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.
-
-  // Split 32:32 representation into 16:24:24 representation so our
-  // intermediate digits don't overflow.
-  const low = lo & 0xffffff;
-  const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;
-  const high = (hi >> 16) & 0xffff;
-
-  // Assemble our three base-1e7 digits, ignoring carries. The maximum
-  // value in a digit at this step is representable as a 48-bit integer, which
-  // can be stored in a 64-bit floating point number.
-  let digitA = low + mid * 6777216 + high * 6710656;
-  let digitB = mid + high * 8147497;
-  let digitC = high * 2;
-
-  // Apply carries from A to B and from B to C.
-  const base = 10000000;
-  if (digitA >= base) {
-    digitB += Math.floor(digitA / base);
-    digitA %= base;
-  }
-
-  if (digitB >= base) {
-    digitC += Math.floor(digitB / base);
-    digitB %= base;
-  }
-
-  // If digitC is 0, then we should have returned in the trivial code path
-  // at the top for non-safe integers. Given this, we can assume both digitB
-  // and digitA need leading zeros.
-  return (
-    digitC.toString() +
-    decimalFrom1e7WithLeadingZeros(digitB) +
-    decimalFrom1e7WithLeadingZeros(digitA)
-  );
-}
-
-function toUnsigned(lo: number, hi: number): { lo: number; hi: number } {
-  return { lo: lo >>> 0, hi: hi >>> 0 };
-}
-
-function newBits(lo: number, hi: number): { lo: number; hi: number } {
-  return { lo: lo | 0, hi: hi | 0 };
-}
-
-/**
- * Returns two's compliment negation of input.
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers
- */
-function negate(lowBits: number, highBits: number) {
-  highBits = ~highBits;
-  if (lowBits) {
-    lowBits = ~lowBits + 1;
-  } else {
-    // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,
-    // adding 1 to that, results in 0x100000000, which leaves
-    // the low bits 0x0 and simply adds one to the high bits.
-    highBits += 1;
-  }
-  return newBits(lowBits, highBits);
-}
-
-/**
- * Returns decimal representation of digit1e7 with leading zeros.
- */
-const decimalFrom1e7WithLeadingZeros = (digit1e7: number) => {
-  const partial = String(digit1e7);
-  return "0000000".slice(partial.length) + partial;
-};
-
-/**
- * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`
- *
- * Copyright 2008 Google Inc.  All rights reserved.
- *
- * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144
- */
-export function varint32write(value: number, bytes: number[]): void {
-  if (value >= 0) {
-    // write value as varint 32
-    while (value > 0x7f) {
-      bytes.push((value & 0x7f) | 0x80);
-      value = value >>> 7;
-    }
-    bytes.push(value);
-  } else {
-    for (let i = 0; i < 9; i++) {
-      bytes.push((value & 127) | 128);
-      value = value >> 7;
-    }
-    bytes.push(1);
-  }
-}
-
-/**
- * Read an unsigned 32 bit varint.
- *
- * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220
- */
-export function varint32read(this: ReaderLike): number {
-  let b = this.buf[this.pos++];
-  let result = b & 0x7f;
-  if ((b & 0x80) == 0) {
-    this.assertBounds();
-    return result;
-  }
-
-  b = this.buf[this.pos++];
-  result |= (b & 0x7f) << 7;
-  if ((b & 0x80) == 0) {
-    this.assertBounds();
-    return result;
-  }
-
-  b = this.buf[this.pos++];
-  result |= (b & 0x7f) << 14;
-  if ((b & 0x80) == 0) {
-    this.assertBounds();
-    return result;
-  }
-
-  b = this.buf[this.pos++];
-  result |= (b & 0x7f) << 21;
-  if ((b & 0x80) == 0) {
-    this.assertBounds();
-    return result;
-  }
-
-  // Extract only last 4 bits
-  b = this.buf[this.pos++];
-  result |= (b & 0x0f) << 28;
-
-  for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)
-    b = this.buf[this.pos++];
-
-  if ((b & 0x80) != 0) throw new Error("invalid varint");
-
-  this.assertBounds();
-
-  // Result can have 32 bits, convert it to unsigned
-  return result >>> 0;
-}
-
-type ReaderLike = {
-  buf: Uint8Array;
-  pos: number;
-  len: number;
-  assertBounds(): void;
-};
-
-/**
- * encode zig zag
- */
-export function zzEncode(lo: number, hi: number) {
-  let mask = hi >> 31;
-  hi = (((hi << 1) | (lo >>> 31)) ^ mask) >>> 0;
-  lo = ((lo << 1) ^ mask) >>> 0;
-  return [lo, hi];
-}
-
-/**
- * decode zig zag
- */
-export function zzDecode(lo: number, hi: number) {
-  let mask = -(lo & 1);
-  lo = (((lo >>> 1) | (hi << 31)) ^ mask) >>> 0;
-  hi = ((hi >>> 1) ^ mask) >>> 0;
-  return [lo, hi];
-}
-
-/**
- * unsigned int32 without moving pos.
- */
-export function readUInt32(buf: Uint8Array, pos: number) {
-  return (
-    (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) +
-    buf[pos + 3] * 0x1000000
-  );
-}
-
-/**
- * signed int32 without moving pos.
- */
-export function readInt32(buf: Uint8Array, pos: number) {
-  return (
-    (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) +
-    (buf[pos + 3] << 24)
-  );
-}
-
-/**
- * writing varint32 to pos
- */
-export function writeVarint32(
-  val: number,
-  buf: Uint8Array | number[],
-  pos: number
-) {
-  while (val > 127) {
-    buf[pos++] = (val & 127) | 128;
-    val >>>= 7;
-  }
-  buf[pos] = val;
-}
-
-/**
- * writing varint64 to pos
- */
-export function writeVarint64(
-  val: { lo: number; hi: number },
-  buf: Uint8Array | number[],
-  pos: number
-) {
-  while (val.hi) {
-    buf[pos++] = (val.lo & 127) | 128;
-    val.lo = ((val.lo >>> 7) | (val.hi << 25)) >>> 0;
-    val.hi >>>= 7;
-  }
-  while (val.lo > 127) {
-    buf[pos++] = (val.lo & 127) | 128;
-    val.lo = val.lo >>> 7;
-  }
-  buf[pos++] = val.lo;
-}
-
-export function int64Length(lo: number, hi: number) {
-  let part0 = lo,
-    part1 = ((lo >>> 28) | (hi << 4)) >>> 0,
-    part2 = hi >>> 24;
-  return part2 === 0
-    ? part1 === 0
-      ? part0 < 16384
-        ? part0 < 128
-          ? 1
-          : 2
-        : part0 < 2097152
-          ? 3
-          : 4
-      : part1 < 16384
-        ? part1 < 128
-          ? 5
-          : 6
-        : part1 < 2097152
-          ? 7
-          : 8
-    : part2 < 128
-      ? 9
-      : 10;
-}
-
-export function writeFixed32(
-  val: number,
-  buf: Uint8Array | number[],
-  pos: number
-) {
-  buf[pos] = val & 255;
-  buf[pos + 1] = (val >>> 8) & 255;
-  buf[pos + 2] = (val >>> 16) & 255;
-  buf[pos + 3] = val >>> 24;
-}
-
-export function writeByte(
-  val: number,
-  buf: Uint8Array | number[],
-  pos: number
-) {
-  buf[pos] = val & 255;
-}